Professional Documents
Culture Documents
Grande quantit de donnes (ou ensemble dinformations), Centralises (ou non) Servant pour les besoins dune ou plusieurs applications d une applications, Interrogeables et modifiables par un groupe dutilisateurs travaillant en parallle.
SGBD (1)
Dfinition : Le logiciel qui permet dinteragir avec une BD est Systme de Gestion de Base de Donnes (SGBD) ou DBMS
Dfinition ; une base de donnes est un ensemble structur de donnes (1) enregistres sur des supports (2) pour satisfaire simultanment plusieurs utilisateurs (3) de manire slective (4) en un temps opportun (5).
(1) : Organisation et description de donnes (2) : Stockage sur disque (3) : Partage des donnes (4) : Confidentialit (5) : Performance
SGBD
BD
Plus besoin de travailler directement sur les fichiers physiques (tels quils sont enregistrs sur disque). Permet d d i l d P t de dcrire les donnes et l li t les liens entre elles d t ll dune f faon logique sans se soucier du comment cela va se faire physiquement dans les fichiers. On parle alors dimage logique de la base de donnes,
Image logique Image physique Fichiers physiques
Base de donnes
Directement sur le schma logique. On peut insrer, supprimer, modifier des donnes directement sur limage logique. Le SGBD va soccuper de faire le travail sur les fichiers physiques.
diffrents. diffrents Toutes ces visions personnelles des donnes doivent tre intgrs dans une vision globale par le SGBD.
qui
Ces langages doivent p g g permettre dobtenir des rponses aux p interrogations en un temps raisonnable . Il doivent donc tre optimiss (minimiser le nombre daccs disques) Dune faon compltement transparente pour lutilisateur.
Etc
Ds que lon essaie de saisir une valeur qui ne respecte pas cette contrainte, le SGBD le refuse.
Prvoir de rcuprer une base dans un tat sain . Deux solutions sont possibles : Rcuprer les donnes dans ltat dans lequel elles taient avant la modification, Soit terminer lopration interrompue.
Codification structuration, grce un Langage de Description de Donnes (LDD) Schma Externe1 T Schma Externe2
Modlisation
Mise en uvre laide dun Langage de Manipulation de Donnes (LMD) S.Q.L. (Structures Query Langage) : Langage standard
Schma conceptuel
Schma physique
Permet la description
Des objets : exemple OUVRAGES, ETUDIANTS Des proprits des objets (attributs) : exemple Titre de OUVRAGES Des liens entre les objets : un OUVRAGE peut tre emprunt par un ETUDIANT Des contraintes : le nombre dexemplaires dun OUVRAGE est suprieur zro
Description informatique des donnes et de leur organisation : en terme de fichiers, dindex, de mthodes daccs, Passage du modle logique au modle physique tend tre assist par le SGBD : transparent et/ou semi-automatique Objectifs : optimiser les performances
Afin de raliser les oprations suivantes Insertion : saisir des donnes Supprimer Modifier Interroger : rechercher des donnes via des requtes La manipulation des donnes est mise en uvre laide dun Langage de manipulation de Donnes (LMD). SQL (Structured Query Language) est le langage standard de manipulation de BD
Partage de donnes :
Plusieurs utilisateurs peuvent utiliser en mme temps une base de donnes Se pose le problme de la confidentialit des donnes. Des droits doivent tre grs sur les donnes droits de lecture mise jour donnes, lecture, jour, cration; qui permettent daffiner.
accs la mme information par plusieurs utilisateurs en mme temps. Le SGBD inclut un mcanisme de contrle de la concurrence bas sur des techniques de verrouillage des donnes Pour viter par exemple quon puisse lire une information quon est en train de mettre jour
Scurit :
Une base de donnes est souvent vitale dans le fonctionnement dune organisation, Il nest pas tolrable quune panne puisse remettre en cause son fonctionnement de manire durable. Les SGBD fournissent des mcanismes pour assurer cette scurit.
Le SGBD veille ce que toutes les contraintes soient vrifies chaque insertion, suppression, ou modification dune donne.
Quelques SGBD
Architecture centralise
programme d'application et SGBD sur mme machine (mme site) premiers systmes
Micro : ACCESS, Paradox, Dbase, PostSQL, MySQL, Gros systme : DB2, ORACLE, SYBASE,
SGBD = serveur (de donnes data server ) machines (sites) diffrentes deux couches, niveaux, strates (two tier )
Donnes sur le serveur partages entre N clients Interfaces graphiques sur la station de travail personnelle Communication par des protocoles standardiss Clients et serveurs communiquant par des requtes avec rponses
BD Rseau
Client
Serveur
Architecture 3 tiers
BD locale Rseau
BD locale
Client mince
Serveur d'application
Serveur de donnes
Client
Serveur de donnes
Serveur de donnes
Entrept de donnes
BD oprationnelle (OLTP)
Unit de traitement
Unit de traitement
Unit de traitement
Mmoire vive
BD oprationnelle (OLTP)
Disque
Disque
Disque
Disque
Disque
Entrept de donnes
grand volume de donnes historiques extraites de bases oprationnelles pour le support la prise de dcision OLAP ( On Line Analytical Processing )
Prospection de donnes , ou forage, fouille, exploration de donnes, ou dcouverte de connaissances dans les BD (data mining, analysis, dredging, archeology, knowledge discovery in databases - KDD)
Langage SQL
extraction non triviale d'informations implicites, inconnues et utiles apprentissage machine , statistiques
plan
Introduction Interrogation Manipulation des donnes Dfinition des donnes Contrle des donnes
SQL : Structured Query Language Un langage ANSI American National Standards Institute standard de gestion des bases de donnes relationnelles Conu par IBM dans les annes 70
Dfinition des donnes DDL : create, drop, alter / tables , procdures et vues Manipulation des donnes DML : i M i l ti d d insert, d l t update / t delete, d t tables Interrogation des donnes DQL : select / tables Contrle de donnes DCL : grant, revoke / tables , procdures et vues Contrle de transactions : commit, rollback / requtes
Le langage SQL est utilis directement partir dun diteur Indirectement depuis un langage de programmation tels que Java, C++, par le biais dun outil dinterfaage : ODBC, JDBC, Sous forme de procdures stockes ou fonctions enregistres dans la base de donnes elle-mme Avec des triggers (dclencheurs) : gestion des vnements lis aux modifications du contenu de la base de donnes
Le langage SQL est un langage dclaratif : dcrit le rsultat escompt et non la manire de lobtenir Gnralement quip dun optimiseur de requtes pour rduire la complexit algorithmique
Une relation du schma relationnel est converti vers une table dans la base de donnes Une table est compose de lignes et de colonnes Lignes : enregistrements (occurrences) Colonnes: champs (attributs) Toutes les donnes dune colonnes doivent avoir le mme type dfini au pralable
Nom
Numriques: Nombres entiers: SMALLINT (2 octets) ; INTEGER (4 octets) Nombres dcimaux: NUMERIC (p d) ; DECIMAL (p d) (p, (p, 456.12 : p=5; d=2
TYPE DE DONNES
40
Type de donnes
Types numriques
Nombres entiers :
Types numriques Types pour les chanes de caractres Types temporels (dates, heures minutes ) (dates heures, minutes,)
Types Temporels
Temporels:
DATE (2,2,4) : pour les dates ( , , ) p TIME (H, M, S) : pour les heures, minutes et secondes TIMESTAMP (date + heure) pour un moment prcis INTERVAL ( intervalle de temps)
Interrogation / SELECT
Base essentiellement sur linstruction SELECT Syntaxe : SELECT exp 1 , , exp n exp_1 exp_n FROM table_1 , , table_n WHERE Prdicat ======================== SELECT * FROM table_1 , , table_n WHERE Prdicat
45
Interrogations simples
Interrogation / SELECT
Interrogation / Exemples
SELECT : retourne les donnes spcifies dans la clause exp_1, , exp_n depuis les tables table_1, , table_n et vrifiant les conditions dcrites dans Prdicat exp 1 , , exp n : colonnes de tables ou expressions p_ p_ p bases dessus (constantes, ) FROM : spcifies les tables de slections table_1 , , table_n : (tables, vues, ) WHERE : introduit des contraintes logiques vrifier Prdicat : contraintes logiques vrifier qui peuvent tre assez complexes
Nom Nom
Nadiri Nadiri
456884 Zerwal 456884 Zerwal Bouchra Moutawakil Marwan 878955 Moutawakil 878955 685499 Moutawakil Nidal Moutawakil 685499
Interrogation / Exemples
Interrogation / Exemples
Nom
Nom
Nadiri
456884 12 Zerwal Zerwal Bouchra 456884 14 878955 10 Moutawakil Moutawakil Marwan 878955 12 Moutawakil Moutawakil Nidal 685499 16 685499 14
Interrogation / Exemples
SELECT Nom, CNE FROM Etudiant WHERE nom like Mout% Mout% Nom======================== Prnom CNE note Email
Nom 132542 Ahmed CNE Moutawakil 878955 Bouchra 456884 Moutawakil 878955 Moutawakil Marwan 685499 Nadiri Zerwal Moutawakil Nidal 685499 15 12 10 14 Nadiri@yahoo.fr Zerwal@hotmail.com Moutawakil.M@gmail.com Moutawakil.N@gmail.com
Interrogation / Exemples
SELECT * FROM Etudiant WHERE Nom = Nadiri AND Prnom = Nadiri Ahmed Nom Prno CNE note Email ========================
m Nadiri Ahmed 132542 15 Nadiri@yahoo.fr
56
Exemple : create table article (ref char(5) not null, nom varchar(20), prix numeric(9,2), dateMAJ date);
58
INSERT pour ajouter des lignes UPDATE pour modifier d li difi des lignes DELETE pour supprimer des lignes
10
Exemple update emp set sal = sal * 1.1 where poste = 'Commercial';
SQL/ Exercices
Soit le modle relationnel suivant relatif une base de donnes sur des reprsentations musicales : REPRESENTATION (nreprsentation, titre_reprsentation, lieu) MUSICIEN (nom, nreprsentation*) PROGRAMMER (date, nreprsentation*, tarif) NB : les cls primaires sont soulignes et les cls trangres sont marques par *
1.
SQL/ Exercices
Soit le modle relationnel suivant relatif une base de donnes sur des reprsentations musicales : REPRESENTATION (nreprsentation, titre_reprsentation, lieu) MUSICIEN (nom, nreprsentation*) PROGRAMMER (date, nreprsentation*, tarif) NB : les cls primaires sont soulignes et les cls trangres sont marques par *
2.
Donner la liste des titres des reprsentations ayant lieu l'opra PARIS.
SQL/ Exercices
Soit le modle relationnel suivant relatif une base de donnes sur des reprsentations musicales : REPRESENTATION (nreprsentation, titre_reprsentation, lieu) MUSICIEN (nom, nreprsentation*) PROGRAMMER (date, nreprsentation*, tarif) NB : les cls primaires sont soulignes et les cls trangres sont marques par *
3.
SQL/ Exercices
Soit le modle relationnel suivant relatif une base de donnes sur des reprsentations musicales : REPRESENTATION (nreprsentation, titre_reprsentation, lieu) MUSICIEN (nom, nreprsentation*) PROGRAMMER (date, nreprsentation*, tarif) NB : les cls primaires sont soulignes et les cls trangres sont marques par *
4.
Donner la liste des noms des musiciens et des titres des reprsentations auxquelles ils participent.
Donner la liste des titres des reprsentations, les lieux et les tarifs pour la journe du 14/09/96
SELECT titre_reprsentation, lieu, tarif FROM REPRESENTATION, PROGRAMMER WHERE PROGRAMMER.nreprsentation = REPRESENTATION.nreprsentation AND date='14/06/96' ;
11
SQL/ Exercices
Soit le modle relationnel suivant relatif la gestion des notes annuelles d'une promotion d'tudiants : ETUDIANT(NEtudiant, Nom, Prnom) MATIERE(CodeMat, LibellMat, CoeffMat) EVALUER(NEtudiant*, CodeMat*, Date, Note) NB: les l NB l cls primaires sont soulignes et l cls t i i t li t les l trangres sont marques par * t 1 - Quel est le nombre total d'tudiants ?
SQL/ Exercices
Soit le modle relationnel suivant relatif la gestion des notes annuelles d'une promotion d'tudiants : ETUDIANT(NEtudiant, Nom, Prnom) MATIERE(CodeMat, LibellMat, CoeffMat) EVALUER(NEtudiant*, CodeMat*, Date, Note) NB: les l NB l cls primaires sont soulignes et l cls t i i t li t les l trangres sont marques par * t
2.
Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la plus basse ?
Le modle relationnel correspondant : REPRESENTANT (Num_rep, Nom_rep, Ad_rep, CP_rep, Vil_rep, Age_rep) COUVRIR (#Num_rep, #Code_dep) DEPARTEMENT (Code_dep, nom_dep, chef secteur) CLIENT (Code_clt, Nom_clt, #Num-rep,#Num-cat) CATEGORIE TARIFAIRE (Num cat Nom cat Remise) (Num_cat, Nom_cat, Ecrire les requtes suivantes 1) Afficher la liste des clients appartenant la catgorie tarifaire n1, classe par ordre alphabtique
Quelles sont les moyennes de chaque tudiant dans chacune des matires ?
SELECT ETUDIANT.NEtudiant, Nom, Prnom, LibellMat, CoeffMat, AVG(Note) AS MoyEtuMat FROM EVALUER, MATIERE, ETUDIANT WHERE EVALUER.CodeMat = MATIERE.CodeMat AND EVALUER.NEtudiant = ETUDIANT.NEtudiant GROUP BY ETUDIANT.NEtudiant, Nom, Prnom, LibellMat, CoeffMat;
SQL/ Exercices
Le modle relationnel correspondant : REPRESENTANT (Num_rep, Nom_rep, Ad_rep, CP_rep, Vil_rep, Age_rep) COUVRIR (#Num_rep, #Code_dep) DEPARTEMENT (Code_dep, nom_dep, chef secteur) CLIENT (Code_clt, Nom_clt, #Num-rep,#Num-cat) CATEGORIE TARIFAIRE (Num cat Nom cat Remise) (Num_cat, Nom_cat, Ecrire les requtes suivantes 2) Afficher la liste des clients (code, nom de client) rattachs au reprsentant HINAUD
SQL/ Exercices
Le modle relationnel correspondant : REPRESENTANT (Num_rep, Nom_rep, Ad_rep, CP_rep, Vil_rep, Age_rep) COUVRIR (#Num_rep, #Code_dep) DEPARTEMENT (Code_dep, nom_dep, chef secteur) CLIENT (Code_clt, Nom_clt, #Num-rep,#Num-cat) CATEGORIE TARIFAIRE (Num cat Nom cat Remise) (Num_cat, Nom_cat, Ecrire les requtes suivantes 3) Afficher la liste des clients bnficiant d'une remise de 10%
R2) SELECT Client.code-clt, Client.Nom-clt FROM Client, Reprsentant WHERE Reprsentant.Nom-rep = Hinaud AND Client.Num-rep = Rerpsentant.numrep
R3) SELECT Client.* FROM Client, Catgorie tarifaire WHERE Catgorie tarifaire.remise = 10% AND Client.Num-cat = Catgorie tarifaire.Num-cat
12
SQL/ Exercices
Le modle relationnel correspondant : REPRESENTANT (Num_rep, Nom_rep, Ad_rep, CP_rep, Vil_rep, Age_rep) COUVRIR (#Num_rep, #Code_dep) DEPARTEMENT (Code_dep, nom_dep, chef secteur) CLIENT (Code_clt, Nom_clt, #Num-rep,#Num-cat) CATEGORIE TARIFAIRE (Num cat Nom cat Remise) (Num_cat, Nom_cat, Ecrire les requtes suivantes 4) Afficher la liste des reprsentants (Numro et nom) dpendant du chef de secteur PONS
R4) SELECT Reprsentant.num-rep, Reprsentant.Nom-rep FROM Reprsentant, Couvrir, Dpartement Where Dpartement.chef secteur = Pons AND Reprsentant.Num-rep = Couvrir.Num-rep AND Couvrir.code-dep = Dpartement.code-dep
13