Vous êtes sur la page 1sur 48

Modle EA

Bases de Donnes
Jean Fruitet
jf@univ-mlv.fr

Universit de Marne-La-Valle

Septembre 1997
JF - Bases de Donnes - 1

SGBD

1.

Introduction aux systmes de gestion de bases de donnes

1.1.

Un peu dhistoire

Les Systmes de Gestion de Bases de Donnes (SGBD) ont vu le jour dans les annes 60 pour grer dimportants volumes de donnes de gestion. Il sagissait de systmes propritaires (appartenant une marque dordinateur, par exemple IBM [International Buisinesss Machine Big Blue]), sur grands systmes [main frame] conus selon un schma dorganisation hirarchique ou rseau. Le modle relationnel de Codd En 1970, Codd, chercheur chez IBM , proposa le modle relationnel. Ce modle conceptuel constitue un progrs important car il repose sur une reprsentation unifie de linformation sous forme de tables. Il dispose dun fondement mathmatique solide avec lalgbre relationnelle (oprations ensemblistes). Il permet une plus grande indpendance entre les applications, les donnes et le support physique [hardware et software]. Il propose une dmarche cohrente et unifie pour la description (Langage de Description des Donnes - LDD) et pour linterrogation (Langage de Manipulation des Donnes - LMD). Enfin le modle relationnel supporte le langage SQL [Sequel : Standard English Query Language] aussi bien comme LDD que LMD, bas lui-aussi sur lalgbre relationnelle. Les SGBD dans les anne 90 De nombreux SGBD sont aujourdhui disponibles sur micro ordinateurs. La plupart sont dots de capacits relationnelles, bien que lanctre des SGBD sur micro, DBase (Borland) ne soit quun gestionnaire de fichiers structurs avec un langage de programmation. On peut citer FoxPro (clone de DBase) et Access (Microsoft) et Paradox (Borland). Sur stations de travail et mini ordinateurs sous Unix, trois ou quatre SGBD relationnels dominent : Oracle, Ingres, Informix, Sybase. DB2 (IBM) est un SGBD relationnel sur main frame. Les SGBD, qui sont la raison d'tre de linformatique de gestion, ont vu leur domaine dutilisation slargir considrablement. Bases de Connaissances, Systmes Experts, Systmes dInformation Gographique, Edition de Documents Informatiss (EDI), Systmes dInformation Documentaire (SID), Conception Assiste par Ordinateur (CAO), Gestion de Production Assiste par Ordinateur (GPAO) sont des domaines o une information structure est enregistre et gre par un SGBD gnrique (relationnel) et traite selon des besoins spcifiques, linterface et les outils de traitement dpendant plus particulirement de lapplication. 1.2. Base de donnes et Systme de Gestion de Base de Donne [Data Base Management System] Une base de donnes est un ensemble structur de donnes enregistres avec le minimum de redondance pour satisfaire simultanment plusieurs utilisateurs de faon slective en un temps opportun. Lapproche base de donnes correspond une triple volution : - volution des entreprises (volumes importants de donnes, centralises ou rparties, qui doivent tre accessibles en temps utile,...)
JF - Bases de Donnes - 2

SGBD

- volution technologique (accroissement des performances, intgration des composants, diminution des cots, ...) - volution des systmes dexploitation (SE) et des architectures : extension logicielle du matriel initial, les SE ralisent une machine virtuelle trs puissante qui dfinit un environnement pour des langages de haut niveau ; architectures client serveur et rseaux, combinant de faon transparente des machines et des applications htrognes. Un systme organis autour dune base de donnes est centr sur les donnes, contrairement aux systmex de gestion plus anciens (et dpasss) bass sur les fonctions et les traitements (par exemple : chane de traitement de la paye, chane de la facturation, gestion des stocks, etc.) Cependant les modes informatiques changent et mme lapproche base de donnes est remise en question. On voit merger un nouveau modle, dit modle objet, qui est lui centr sur les structures. Nous naborderons pas cette approche dans ce cours. Dans lapproche gestion de fichiers, les fichiers sont dfinis pour un ou plusieurs programmes de traitement. Les donnes dun fichier sont directement associes un programme par une description contenue dans le programme de traitement lui-mme. Il nexiste aucune indpendance entre le programme et les donnes. Toute modification de la structure des donnes ncessite la rcriture du programme. Dans lapproche base de donnes, la partie de structuration et de description des donnes est unifie et spare des programmes dapplication. Bien sr la gestion de ces donnes (stockage, modification, recherche) qui est troitement dpendante de leur structuration, est fournie par le Systme de gestion des donnes, les applications ne communiquant avec les donnes quau travers de linterface de gestion. Do lindpendance entre les donnes et les applications, qui peuvent tre modifies indpendamment. Le programmeur des applications (et a fortiori lutilisateur) na pas connatre lorganisation physique des donnes...

JF - Bases de Donnes - 3

SGBD
Programme d'application 1 Modle fichier

Programme

Donnes

FICHIER

Programme d'application 2

Programme

Donnes

Modle BD

LIAISON 1

Programme 1

BD

Description unique

LIAISON 2

Programme 2

SGBD

Exemple : Base de donnes dune compagnie arienne Les donnes sont relatives aux passagers, aux vols, aux appareils, aux quipages... Les requtes sont trs varies : - une rservation : liste des passagers qui ont rserv sur un vol dtermin ; - un quipage : quel est le pilote du vol Air France Paris-Londres du 15 octobre, dpart 17h20 ? - un appareil : quelle est la date de la dernire rvision de lappareil Airbus A300 numro X ? 1.1 Systmes de Gestion de Base de Donnes Un Systme de Gestion de Base de Donnes (SGBD - DBMS) permet un utilisateur de communiquer avec une base de donnes pour : - dcrire et organiser les donnes sur les mmoires secondaires (disques) - rechercher, slectionner et modifier les donnes

Un SGBD offre la possibilit lutilisateur de manipuler les reprsentations abstraites des donnes, indpendamment de leur organisation et de leur implantation sur les supports physiques (mmoires). On peut considrer un SGBD comme un interprteur dun langage de programmation de haut niveau qui, dans le cas idal, permet lutilisateur de dcrire prcisment ce quil veut obtenir et non comment lobtenir : quoi et non comment, cest--dire formuler une assertion et non dcrire une procdure (langage assertionnel langage procdural).

JF - Bases de Donnes - 4

SGBD

Exemple : (SQL) 1. Donner la liste des numros de vols au dpart de Toulouse qui sont des vols bleus SQL> SELECT N-VOL FROM VOL WHERE TYPE-VOL = BLEU AND ORIGINE = TOULOUSE ; 2. Table EMPLOYES MATRICULE 0079 0101 0126 0846 2312 4684 6587 NOM HENRION PIERRE MARTINON JEANCARD BARON DENIS MARTIN SERVICE Comptabilit Comptabilit Ventes Comptabilit Distribution Rception Rception TELEPHONE 2111 2211 6312 2112 3756 3855 4422

Requte : A partir de la table EMPLOYES, fournir tous les noms par ordre alphabtique des personnes appartenent au service Comptabilit avec leur numro de Tlphone SQL> SELECT NOM, TELEPHONE FROM EMPLOYES WHERE SERVICE = Comptabilit ORDER BY NOM ; SQL> NOM TELEPHONE HENRION 2111 JEANCARD 2112 PIERRE 2211

Un SGBD assure - la description des donnes, - leur recherche et mise jour, - la sret : vrifier les droits daccs des utilisateurs ; limiter les accs non autoriss ; crypter les informations sensibles - la scurit : sauvegarde et restauration des donnes ; limiter les erreurs de saisie, de manipulation - lintgrit : dfinir des rgles qui maintiennent lintgrit de la base de donnes (contraintes dintgrit) - la concurrence daccs : dtecter et traiter les cas o il y a conflit daccs entre plusieurs utilisateurs et les traiter correctement. 1.3. Mise en oeuvre dun SGBD

On distingue trois niveaux dapprhension dune base de donnes. A chaque niveau correspond un schma de reprsentation :
JF - Bases de Donnes - 5

SGBD

- le niveau interne avec le schma physique - le niveau conceptuel avec le schma conceptuel - le niveau externe avec les vues Le niveau interne Le schma physique spcifie comment les donnes sont enregistres sur les mmoires secondaires (disques, bandes, tambours, ...). La base physique de donnes, seule, a une existence matrielle. Cette base est elle-mme perue diffrents niveaux dabstractions : - enregistrement, article (struct ou record dun langage de programmation) - enregistrement logique [logical record] - fichier [file] - Octet / mot machine - bit / adresse physique en mmoire Le niveau conceptuel Le schma conceptuel dcrit en termes abstraits mais fidles la ralit du domaine dapplication (par exemple lentreprise). Pour une base de donnes dune compagnie arienne le niveau conceptuel exprimera la ralit en termes de vol, quipage, passager, horaire... Le SGBD fournit un langage de dfinition de donnes (LDD - Data Description Language), qui spcifie le schma conceptuel. Cest un langage de haut niveau, qui dcrit et exprime la base de donnes conceptuelle par rfrence un modle de donnes (un outil formel utilis pour comprendre et interprter le monde rel). Un graphe Entit-Association constitue un exemple de modle de donnes. Le niveau externe Il sagit de dcrire laide dun schma externe parfois appel vue [view] la faon dont seront perues les donnes par un programme dapplication. Une vue est une reprsentation abstraite dune partie de la base de donnes conceptuelle (ou un sous-schma du schma conceptuel). Dans lexemple de la compagnie arienne, le service de rservation ne soccupe que des vols et des passagers, et na donc pas accs aux donnes relatives au personnel et laffectation des pilotes sur les diffrents vols. En gnral, une vue est un sous-ensemble de la base conceptuelle de donnes. Cependant, dans certains cas, une vue peut tre plus abstraite que la base conceptuelle de donnes, par exemple les donnes quelle utilise se dduisent de la base conceptuelle de donnes mais ne sont pas prsentent dans cette base.

JF - Bases de Donnes - 6

SGBD

Exemple 1 : Une vue fournissant lge des employs, qui sera calcul partir de la date de naissance, seule enregistre dans le systme... Exemple 2 : Tableau n lignes de m colonnes dentiers - au niveau conceptuel int A[n][m] - au niveau physique A enregistr squentiellement partir de ladresse a0 ; A[i][j] est implant ladresse a0+sizeof(int)*(m*(i-1)+j-1) - une vue du tableau A peut tre dfinie en dclarant une fonction f(i) dfinie par

f( i) = A(i , j )
j = 0 , m 1

On voit les sommes des lments des diffrentes lignes. Lors de la conception dune base de donnes on raisonne sur le schma conceptuel. Lors de lexploitation de la base des donnes, on sintresse aux donnes effectivement prsentes. Lensemble des donnes prsentes un instant dtermin est dnomm lextension de la base (instances). 1.4. Indpendance physique - Indpendance logique

La classification prcdente suggre deux types dindpendances : - lindpendance physique : on change le schma physique sans modifier le schma conceptuel et sans redfinir les vues. Les programmes dapplication nont pas tre rcrits quand on change de configuration matrielle ou de version du systme dexploitation. - lindpendance logique : on peut modifier le schma conceptuel en ajoutant des informations certaines classes dobjets ou introduire de nouveaux objets sans modifier les programmes dapplication. SGBD et Langages Dans les langages de programmation classiques, les dclarations et les instructions excutables appartiennent au mme langage. Dans le SGBD on exprime les dclarations et les instructions excutables dans deux langages diffrents. En effet dans un SGBD les donnes existent en permanence et doivent tre dclares une fois pour toutes, contrairement aux variables des programmes classiques qui disparaissent de la mmoire quand le programme sarrte. Le langage de description des donnes (LDD) spcifie le schma conceptuel Cest un langage descriptif des types dentits, de leur attributs et domaines et des associations (ou relations) entre ces entits. On lutilise lors de la dfinition de la base de donnes, lors des modifications de schma et pour prciser la faon dont les donnes sont enregistres et comment y accder (correspondance entre le schma conceptuel et le schma physique). Langage de manipulation des donnes, ou langage dinterrogation [query language] (LMD) 1.5.

JF - Bases de Donnes - 7

SGBD

Pour interroger la base, mettre jour les donnes et effectuer les manipulations sur cellesci. Exemples : - enregistrer un nouvel employ - rechercher un vol avec une place disponible de Paris Londres le 15 septembre... Gnralement un programme dapplication (ex. : grer les rservations) est crit dans un langage de programmation traditionnel, dnomm langage hte (C, COBOL, ...), mais la communication avec la base de donne seffectue par des instructions du LMD, actives partir du langage hte. On conserve ainsi la puissance cratrice des langages de programmation (interfaces, contrles, aides lutilisateur, copyright) pour lapplication tout en profitant de la gnralit et de la portabilit du LMD. Le portage dun systme lautre en est facilit. 1.6. Les intervenants

Ladministrateur de la base de donnes a la responsabilit de la gestion du systme dans son ensemble : - la dfinition du schma original de la base - le choix des structures de donnes et des mthodes daccs au niveau physique - la modification du schma et de lorganisation physique en fonction de lvolution de la base - la gestion des droits daccs et des privilges des utilisateurs - la spcification des contraintes dintgrit - les sauvegardes et restaurations - la programmation (ou lacquisition) dapplications Les utilisateurs occasionnels interagissent avec le systme sans crire de programme mais en formulant leurs requtes avec le LMD. Les utilisateurs habituels (ex. : Service de la paye) utilisent des programmes dapplication prdfinis et permanents.

JF - Bases de Donnes - 8

SGBD

Utilisateurs Programmeurs Utilisateurs Administrateur d'applications occasionnels de la base de nafs donnes

programmes d'applications

appels systme

requtes (LMD)

schma de la base de donnes (LDD)

Prcompilateur du LMD Programmes d'application code objet Gestionnaire de donnes

Processeur de requtes

Compilateur de LDD

Systme de Gestion de Base de Donnes

Gestion de fichiers du systme hte


Fichiers de donnes Dictionnaire de donnes

Rle du gestionnaire de donnes : - interaction avec le gestionnaire de fichier du systme hte - intgrit de la base - scurit - sauvegardes et restaurations - contrle des accs concurrents

JF - Bases de Donnes - 9

Modle EA

2.

Le modle entit-association

Linformatisation de nombre dactivits ncessite leur modlisation, cest--dire leur expression sous une forme symbolique (le plus souvent mathmatique) susceptible dtre reprsente en machine. Le modle EA (Entit-Association ou Entit-Relation) fournit un outil informel pour analyser les situations du monde rel (entreprises, institutions...) 2.1. Entit Une entit est un tre ou un objet (concret ou abstrait) qui existe et peut tre distingu dun autre objet Exemple : une personne (Dupond), un vhicule (vlo), un concept (emploi), un sentiment (douleur, joie...) On regroupe les entits de mme nature en un ensemble dentits, par exemple toutes les personnes, les vhicules, les sentiments... Classes dentits La classe dentits reprsente de manire abstraite lensemble dentits ; on dfiniera par exemple la classe dentits PERSONNE, VEHICULE, SENTIMENT... Un ensemble dentits se dfinit : - en extension : {masculin, fminin} - en intention : {x est une personne telle que sexe(x) = masculin} - par un produit cartsien X, Y, Z dsignent des noms densembles X x Y x Z dsigne lensemble des triplets de la forme (x, y, z) avec x appartenant X, y appartenant Y et z appartenant Z Exemple : au rayon produits frais dun super march, les denres peuvent tre considres comme des ensembles dentits dfinis par 3 ensembles : NOM, PRIX, POIDS DENREE NOM Oranges Carottes Haricots verts

PRIX (au kilo) 6 5.40 15.50

POIDS 2 1 0.5

(Carottes, 5.40, 1) est un tuple (ici un triplet) de lensemble dentits DENREE. Attribut, valeur, domaine, cl Un attribut est une proprit caractristique des entits de mme classe. Un attribut associe chaque entit une valeur appartenant un domaine. Un domaine est un ensemble de valeurs acceptables pour lattribut considr ; le domaine de lattribut PRIX est lensemble des rels positifs. Exemple Les entits de lensemble dentits ETUDIANT ont les attributs NOM, DDN (date de naissance), ADRESSE; les domaines de valeurs sont ici les ensembles de chanes de caractres qui permettent

JF - Bases de Donnes - 10

Modle EA

de prciser le nom (de type texte), la date de naissance (qui peut tre prcisment de type date) et ladresse dun tudiant (texte). Une cl est un attribut ou un ensemble dattributs dont les valeurs identifient de manire unique une entit au sein de lensemble dentits. Exemple pour ETUDIANT (entit), NOM, DDN et ADRESSE ne forment pas une cl car deux tudiants jumeaux ne sont pas distingus par ces tuples. Par contre les attributs NUMERO DETUDIANT, et N SS sont chacuns des cls. Notations E = (A1, A2, ...., An), est le schma de lensemble dentits E ; Ai sont des attributs. D(A1) est le domaine de lattribut A1 e = (a1, ..., an) est une entit, cest dire une instanciation ou une occurrence de E avec chaque ai lment de D(Ai) K(E) = (Ai, Aj, Ak) est la cl de (A1, A2, ...., An) (Ai, Aj, Ak) --> (A1, A2, ...., An) signifie que (Ai, Aj, Ak) dtermine de faon unique (A1, A2, ...., An) Le choix des attributs, des domaines et des cls constitue une tape essentielle lors de la dfinition dun modle du monde rel. Parmi toutes les cls qui identifient une entit dans un ensemble, on appelle cl primaire celle qui est retenue par le concepteur de la base de donnes pour identifier lensemble considr. Entit dominante et entit subordonne Si lexistence dune entit y dpend de lexistence dune entit y, x est dominante et y subordonne. Si x est limin de la base de donnes, y doit ltre aussi. Exemple : une base de donnes BANQUE ; les entits CLIENT, EMPLOYE, COMPTE, TRANSACTION, avec - COMPTE dfini par les attributs N_COMPTE et SOLDE - TRANSACTION dfini par les attributs N_TRANSACTION, DATE, MONTANT Un compte peut tre concern par plusieurs transactions. Une transaction doit tre associe un compte. Si un compte est supprim, on supprime galement toutes les transactions qui le concernent (linverse nest pas vrai). Lentit COMPTE est dominante, TRANSACTION est lentit subordonne. Gnralisation et hirarchie Un ensemble dentits E1 est un sous-ensemble de E2 si toute occurrence de E1 est aussi une occurrence de E2. Lensemble dentits E1 hrite des attributs de E2. Par exemple lensemble des PILOTES est un sous-ensemble de lensemble des EMPLOYES dune compagnie arienne. Un ensemble dentits E est une gnralisation de E1, E2, En si chaque occurrence de E est aussi une occurrence dune et une seule entit E1, E2;... En. Les ensembles E1, E2, ..., En sont des spcialisations de lensemble dentits E. Par exemple lensemble des VEHICULES est une gnralisation de lensemble des AUTOMOBILES et des CYCLES. Les ensembles dentit E1,

JF - Bases de Donnes - 11

Modle EA

E2, En hritent des attributs de E et possdent en outre des attributs spcifiques qui expriment leur spcialisation. Exemples : VEHICULES(Marque, Modle) ; AUTOMOBILE(Marque, Modle, Immatriculation, Puissance) ; CYCLE(Marque, Modle, Type). EMPLOY et INGNIEUR, SECRTAIRE et TECHNICIEN :chaque occurrence d'EMPLOY est une occurrence d'INGNIEUR, de SECRTAIRE ou de TECHNICIEN. Notation EST-UN [IS A] : A EST-UN B si lensemble B est une extension de A ou A un cas particulier de B. Exemple : Base de donnes dune compagnie arienne Ensemble dentits EMPLOYE Ensemble dentits PILOTE PILOTE EST-UN EMPLOYE Lensemble PILOTE peut ne pas avoir dattribut mais simplement tre dfini par la relation avec un autre ensemble AVION, par exemple en indiquant que le pilote est qualifi sur AirBus. La relation EST-UN de PILOTE vers EMPLOYE dfinit uniquement chaque pilote. Association Une association dentits est un regroupement dentits traduisant une certaine ralit. Comme pour les entits, on regroupe les associations de mme nature en classe dassociation. Exemple : entre les entits ETUDIANT et ENSEIGNEMENT on peut considrer la classe dassociation INSCRIT pour traduire le fait quun tudiant est inscrit un enseignement. INSCRIT ETUDIANT ----------------------------------ENSEIGNEMENT Cette association est une table ordonne de ces ensembles dentits
ETUDIANT

2.2.

#ETUDIANT 245 1854

NOM Durand Pierre Perrot Marthe

INSCRIT ADRESSE DDN. DINSC 2 Rue Desroses 22/11/73 10/09/93 5 Rue Du Bois 15/1/75 15/10/94

ENSEIGNE MENT

COURS CODE Algbre1 102 Algbre1 102

Exemple : pour traduire le fait que Irne Curie est la fille de Marie Curie on pourra utiliser une association de classe A-POUR-MERE entre les deux entits reprsentant ces personnes. La classe dassociation A-POUR-MERE peut alors tre considre comme un sous-ensemble du produit cartsien de lensemble dentits PERSONNE avec lui-mme. A-POUR-MERE PERSONNE----------------------------- PERSONNE A-POUR-MERE PERSONNE NOM PRENOM Curie Irne Attribut dune association
JF - Bases de Donnes - 12

PERSONNE NOM Curie

PRENOM Marie

Modle EA

Un attribut dune classe dassociation est une proprit qui dpend de toutes les entits intervenant dans lassociation Exemple : La classe dassociation INSCRIT dfinie entre les classes dentits ETUDIANT et ENSEIGNEMENT a pour attribut lanne de premire inscription de ltudiant lenseignement. Cette anne dinscription et attribut de lassociation et non de lune des entits, car il faut connatre ltudiant et lenseignement pour pouvoir la dterminer. Type dassociation Le type d'association caractrise le nombre de liens autoriss entre entits. Il sert distinguer les associations en fonction du nombre d'entits et de classes d'entits qu'elles mettent en jeu. On distingue : - les associations n-aires qui relient plus de deux entits. - les association binaires qui ne relient que deux entits . de type 1:1 (ou un--un) si une entit de E peut correspondre par l'association A au plus une entit de F et que, rciproquement une entit de F ne peut correspondre au plus qu'une entit de E. . de type 1:n (ou un--plusieurs) : si une entit de E peut correspondre par l'association A plusieurs entits de F mais une entit de F au plus une entit de E. . de type n:n (ou plusieurs--plusieurs) : si une entit de E peuvent correspondre plusieurs entits de F et rciproquement. Cardinalit La cardinalit d'un couple entit-association est dfinie de la manire suivante : Etant donnes une classe d'entit E et une classe d'association A reliant E une (ou plusieurs) autre(s) classes(s) d'entits, on dfinit m (respectivement M) le nombre minimum (respectivement maximum) d'associations de classe A pouvant exister pour une entit donne de classe E. Alors (m,M) est la cardinalit du couple (E,A). Remarques : Le minimum m peut valoir 0, 1 ou un entier strictement plus grand que 1. Le maximum M peut valoir 1 ou une valeur n>1, n ntant souvent pas prcis de manire numrique, faute de connaissance suffisante. Exemple : La relation entre PROPRIETAIRE et VEHICULE est de type n :m car il est lgalement possible dacheter un vhicule plusieurs, bien que ce soit peu frquent, et une mme personne puisse possder plusieurs vhicules... Quant aux cardinalits, elles sont (0,n) et (1,n) car certains vhicules sont abandonns (0,n) mais quil faut possder au moins un vhicule pour tre propritaire (1,n) !

VEHICULE

(0,n)

n:m

(1,n)

PROPRIETAIRE

Contrainte didentit fonctionnelle (CIF) : Quand on dtermine, entre une association et une entit, une cardinalit prsentant les valeurs 0,1 ou 1,1, lassociation est particulire. On
JF - Bases de Donnes - 13

Modle relationnel

lappellera alors contrainte didentit fonctionnelle (CIF). Cette association particulire nest en gnral pas nomme. Elle indique que lune des entits est totalement dtermine par la connaissance de lautre ; par exemple si on connat une commande bien prcise, on connat un client bien prcis...

CLIENT N client Nom client ...

1,n CIF

1,1

COMMANDE N commande Montant Cde ...

Une CIF qui met en relation plus de deux entits est une CIF multiple.

CLASSE N classe 1,1 Nb lves CIF 1,n

MATIERE Code matire Libell matire ...

PROFESSEUR Code professeur Nom professeur Adresse professeur

2.3.

Diagramme Entit-Association

Un graphe Entit-Association (E-A) dcrit la structure d'ensemble d'une base de donnes en combinant les objets graphiques suivants : - des rectangles qui reprsentent des ensembles d'objets, c'est--dire des entits concrtes ou abstraites (par exemple : lecteur, ouvrage, compte bancaire, client...) - des ellipses (soit crits en colonnes) qui reprsentent des attributs attachs aux entits (le nom, l'adresse, le titre, la cote, numro,...) - des losanges, qui reprsentent des relations ("a emprunt", "possde le compte", "suit le cours de",...) - des artes qui relient les attributs (ellipses) aux entits (rectangles) et les entits aux associations (losanges).

JF - Bases de Donnes - 14

Modle relationnel

Cardinalit (m,M) d'un coupe entit (E) - association (A) E (m,M) A

1:1
(0,1)

CITOYEN

Mari_A

(0,1)

CITOYENNE NSS-f Nom-f Prnom-f Nb-enfants

N SS Nom Prnom Grade militaire Une vision sexiste de la socit... 1:n Personne Mre-de

Nom Prnom

Le domaine d'un attribut caractrise la fois le type de donne (numr, caractre, entier, rel, chane de carcatres...) et l'ensemble des valeurs admissibles de celui-ci. Le domaine peut tre une liste numre, un intervalle numrique ou une chane alphanumrique. La cl primaire d'une classe d'entits est un attribut ou un ensemble dattributs qui permet d'identifier explicitement chaque entit de la classe (par exemple le NUMERO_DE_LECTEUR). Dans le diagramme les cls sont soulignes. La restriction consiste prlever un sous-ensemble d'une classe d'entits d'un certain niveau pour crer une classe de niveau infrieur (par exemple classe des vhicules, restriction la sous-classe des deux-roues).

JF - Bases de Donnes - 15

Modle relationnel

CITOYEN

Nom Prnom N SS

extraction

1:1
(0,1)

HOMME Grade militaire

Mari_A

(0,1)

FEMME Nb-enfants

On a extrait de l'ensemble des CITOYENS les deux sous-ensembles HOMME et FEMME... L'extension (ou agrgation) est l'opration inverse de la restriction, qui consiste runir plusieurs classes de faon crer une classe de niveau suprieur (exemple : classe des priodiques et des monographies pour crer la classe des publications). Exemple de diagramme entit-association cardinalit type d'association numro nom-tu ETUDIANT (0,n)

n:m
INSCRIT anne-1er-inscr ENSEIGNANT nom-ens fonction type d'association (0,n) (0,n)

code ENSEIGNEMENT (1,1) RESPONSABLE

1:n

Le diagramme ENTITE-ASSOCIATION ci-dessus modlise entre deux ensembles d'entits ETUDIANT et ENSEIGNEMENT une classe d'association INSCRIT qui traduit qu'un tudiant est inscrit un enseignement. Pour un ensemble d'entits ENSEIGNANT, il exprime qu'un enseignant est RESPONSABLE d'un enseignement (on suppose qu'il n'y a pas d'enseignants homonymes).

2.4.

Dictionnaire des donnes

JF - Bases de Donnes - 16

Modle relationnel

Le dictionnaire des donnes liste les entits et leurs attributs, en spcifiant le domaine de chacun ainsi que leur catgorie : - donnes lmentaires (information stocke) - donnes dinformation dduite ou calcule dutilisation frquente (ce qui vite de refaire le calcul plusieurs fois) ainsi que les rgles de calcul - donnes calcules de type situation ou historique (total HT des commandes par mois...) - paramtres utiliss dans des cas particuliers (TVA) ... Il se prsente sous forme dune grille danalyse :
Nom de la donne Nom client Code postal Ville client ... Total HT Taux TVA Alpha Num Alpha ... Num Num Format Type Elmentaire X X X X X Calcule Paramtre Signaltique X X X X Somme 18,60% Situation Facture Facture Facture ... Facture Facture Rgle de Contrainte calcul d'intgrit Document

2.5.

Rgles de validation1 Ces rgles doivent tre respectes pour la cohrence du modle Entit-Association. - Chaque entit possde un identifiant - Chaque proprit (attribut) dune occurrence dentit ne possde, au plus, quune valeur. - Toutes les proprits doivent tre lmentaires. - Toutes les proprits autres que lidentifiant doivent dpendre pleinement et directement de lidentifiant. - A chaque occurrence dune association correspond une et une seule occurrence de chaque entit participant lassociation. - Pour une occurrence dune association, il ne doit exister au plus quune valeur pour chaque proprit (attribut) de cette association. - Chaque proprit dune association doit dpendre pleinement et directement de tout identifiant (cl) et non pas dune partie seulement de lidentifiant. - Une cardinalit (0,1) ou (1,1) indique une contrainte dintgrit fonctionnelle (CIF) et rciproquement.

1 Daprs J. GABAY Apprendre et pratique MERISE

JF - Bases de Donnes - 17

Modle relationnel

3.

Le modle relationnel

Le modle relationnel a t propos par Codd IBM-St-Jos en 1970. Une BD relationnelle est une BD dont le schma est un ensemble de schmas de relations et dont les occurrences sont des tuples ou n-uplets de ces relations. Autrement dit, les entits et les associations du modle E-A sont reprsentes exclusivement par des relations (des tables). Une entit est reprsente par sa liste d'attributs. Une association est reprsente par la liste des cls des entits qu'elle associe et ses propres attributs. Les objets de la base sont les tuples (lignes) des tables. Les objets sont manipuls (LMD - langage de manipulation des donnes) par des oprateurs algbriques relationnels (UNION, INTERSECTION, PRODUIT CARTESIEN, SELECTION, PROJECTION, JOINTURE, ...) Un Systme de Gestion de Base de Donnes (SGBD) est dit minimalement relationnel si : - les informations de la base sont reprsentes par des tables - il n'y a pas de pointeurs visibles (pour l'utilisateur) sur les tables - le systme supporte les oprateurs relationnels . restriction (slection) . projection . jointure Un SGBD est compltement relationnel si de plus : - il ralise toutes les oprateurs de l'algbre relationnel - il y a unicit des cls (pas de doublons) - il assure la contrainte rfrentielle (exemple : pouvoir s'assurer que le produit dont on a pass commande se trouve bien dans la relation PRODUIT) 3.1. Relation Un domaine est un ensemble de valeurs. Exemple : Domaines D1 = D2 = {chanes de caractres} D3 = {entiers}. Un attribut est une variable prenant ses valeurs dans un domaine. Exemple : attribut A1=NOM valeurs dans D1; attribut A2=ADR valeurs dans D2; attribut A3=NUM valeurs dans D3; Une relation sur les attributs A1, A2,..., An, de domaines respectifs D1, D2,..., Dn, est un sousensemble du produit cartsien des domaines D1, D2, ..., Dn, soit un ensemble de n-uplets de D1.D2..Dn. Exemple : r = {(DUPONT, PARIS, 2140)}, (DURAND, ORLY,1123), (DUBOIS, NOISY,3425)} Reprsentation dune relation
JF - Bases de Donnes - 18

Modle relationnel

Chaque tuple (n-uplet) de la relation est crit dans une ligne dun tableau dont les noms des colonnes sont les attributs de la relation. Chaque tuple est unique. Les duplications ne sont pas autorises. Lordre des tuples est indiffrent. Exemple : NOM DUPONT DURAND DUBOIS ADR PARIS ORLY NOISY NUM 2140 1123 3425

Le schma de la relation r est la liste des attributs de r avec, pour chacun, son domaine, parfois sous-entendu. Exemple : Le schma de r est R = (NOM : D1, ADR : D2, NUM : D3), crit en abrg R = (NOM, ADR, NUM). On dit que r est une relation de schma R (attention : ne pas confondre r et R). Lorsquon repre chaque attribut dune relation par un nom, lordre des colonnes nest pas important. Cl dune relation Une cl est une liste ordonne dattributs qui caractrise un tuple (n-uplet) de la relation. Une cl primaire caractrise un tuple de manire unique. Exemple : NOM DUPONT DURAND DURAND DUBOIS R = (NOM, ADR, NUM) ADR PARIS ORLY PARIS NOISY NUM 2140 1123 453 3425

(NOM, ADR, NUM), (NOM, ADR) et (NUM) sont des cls. (NOM, ADR) et (NUM) sont des cls primaires. Par contre (NOM) ou (ADR) ne sont pas des cls eux tout seuls. Remarque : Avec le schma (NOM, ADR), la modlisation ne permet pas des homonymes habitant la mme ville. 3.2. Schma de base de donnes relationnelle Un schma de base de donnes relationnelle B est un ensemble de schmas de relations R1, R2,..., Rp.

JF - Bases de Donnes - 19

Modle relationnel

Une base de donnes b de schma B est un ensemble de relations r1, r2, .., rp de schmas respectifs R1, R2, ..., Rp. 3.3. Passage modle Entit-Association / modle Relationnel. La modlisation EA des donnes tant effectue, il faut implanter la structure obtenue en machine, par exemple sous forme d'un SGBD relationnel. Nous allons donc transformer notre structure sous une forme relationnelle. On dit aussi que l'on transforme le diagramme EA en schma relationnel. Principes. Principes gnraux. Traduction d'une classe d'entit Toute classe d'entit se traduit par une table relationnelle, dont les attributs sont : l'identifiant de l'objet, qui forme la cl primaire du tuple correspondant. tous les attributs de la classe. Traduction des liens n:1 Tout lien n:1 se traduit par un attribut dans la table reprsentant la classe de dpart. Cet attribut reprsente l'identifiant de l'objet de la classe d'entit d'arrive. Si le lien comporte des attributs, ceux-ci sont placs dans la table de dpart. Traduction des liens 1:n Tout lien 1:n se traduit par un attribut dans la table reprsentant la classe d'arrive. Cet attribut reprsente l'identifiant de l'objet de la classe de dpart. Si le lien comporte des attributs, ceux-ci sont placs dans la table d'arrive. Traduction des liens n:m Tout lien n:m se traduit par une table relationnelle, dont les attributs sont: l'identifiant de l'objet de dpart. l'identifiant de l'objet d'arrive. les attributs (ventuels) du lien. La cl primaire est constitue des trois attributs. Principes d'optimisation: Il est souvent utile de minimiser le nombre de tables d'un schma. C'est pourquoi, aprs l'application des principes gnraux, on cherche regrouper des tables. Ce sont gnralement des tables issues de sous-classes d'une mme classe. Encore faut-il qu'elles prsentent un maximum d'attributs et de liens en commun. Exemple On considre le diagramme EA suivante:

JF - Bases de Donnes - 20

Modle relationnel

N INSEE

Nom Depuis (1,1) est administr par 1:1 (1,1)

Nom Population NINSEE

MAIRES
(0,1) appartient (0,n)

COMMUNES

n:1

jouxte n:m

Sigle

PARTIS POLITIQUES
Les liens sont de type : 1:1 pour "est administre par" n:1 pour "appartient " n:m pour "jouxte". La traduction des entits donne: MAIRES (#INSEE-Maire, Nom) COMMUNES (#INSEE-Commune, nom, population) PARTIS POLITIQUES (#Sigle) La traduction des liens La traduction du lien 1:1 entre COMMUNES et MAIRES donne: COMMUNES(#INSEE-Commune, nom, population, est administre par, depuis) Alternativement, "est administr par" tant 1:1, on peut aussi le traduire par le lien inverse "administre" et l'intgrer la relation MAIRES : MAIRES (#INSEE-Maire, nom, administre, depuis) La traduction du lien n:1 donne : MAIRES(#INSEE-Maire, Nom, appartient) La traduction du lien n:m donne: JOUXTE (#INSEE-Commune1 , #INSEE-Commune2) Optimisation : La table PARTIS POLITIQUES n'a qu'un seul attribut et elle n'est relie qu' une seule table. On peut donc envisager de la supprimer et de modifier la table MAIRES : MAIRES (#INSEE-Maire, Nom, administre, depuis, Parti-politique)

JF - Bases de Donnes - 21

Modle relationnel

Schma final : Il faut ensuite choisir des noms dattributs non ambigs et bien faire apparatre dans les intituls les cls trangres : MAIRES (#INSEE-Maire, Nom-maire, #INSEE-Commune, Date-lection, Sigle-Parti) COMMUNES (#INSEE-Commune, Nom-commune, Population) JOUXTE (#INSEE-Commune1 , #INSEE-Commune2)

3.4. Les Langages de Manipulation de Donnes (LMD) La notion de relation correspond un certain tat de la base de donnes. Pour passer dun tat lautre, on utilise des oprations agissant sur les relations. Un langage de manipulation des donnes (LMD) se compose dun ensemble de commandes permettant linterrogation de la base et dun ensemble de commandes permettant de modifier celle-ci (insertion, mise jour, suppression). Le LMD est souvent intgr un langage de programmation classique appel langage hte afin de raliser des transactions programmes. Le langage relationnel a engendr le dveloppement de langages dinterrogation assertionnels qui permettent de dfinir les donnes que lon souhaite visualiser sans dire comment y accder. Il y a trois grandes classes de LMD relationnels - Les langages algbriques, o lexpression dun besoin dutilisateur se fait laide doprations dont les oprandes sont des relations. Issus de lalgbre relationnelle de Codd, ils consistent en une squence d'oprateurs sur les relations ; on peut aussi en donner une reprsentation graphique sous forme d'arbre. Exemple : le langage SQL (Sequel : Structured English QUEry Language) - Les langages prdicatifs o lutilisation de prdicats permet de slectionner lensemble des tuples souhaits. On distingue : - le calcul relationnel de tuples, issus de la logique des prdicats Exemple : le langage QUEL (QUEry Language) sur systme Ingres. - le calcul relationnel de domaines des relations Exemple : QBE (Query By Example)

JF - Bases de Donnes - 22

Modle relationnel

3.5.

Langages bass sur l'algbre relationnelle Les oprateurs de base - oprateurs ensemblistes (binaires) :

R3 = OPERATEUR( R1, R2) R1 R2 OPERATEUR R3

T=RUS

T=R-S

S UNION T=RXS

R DIFFERENCE S T=RXS

PRODUIT CARTESIEN

S JOINTURE

UNION Lunion de deux relations r et s de mme schma R est une relation de mme schma contenant lensemble des tuples appartenant r ou s. Exemple : Soient deux relations P1 et P2 de schma PROD: PROD(NP, NOP, QTES, COUL) P1 NO 100 110 120

NOP X Y Z

QTES 10 15 20

COUL R B R

JF - Bases de Donnes - 23

Modle relationnel

P2 100 130

X W

10 10

R V

P3 = P1 U P2 100 X 110 Y 120 Z 130 W

10 15 20 10 DIFFERENCE

R B R V

La diffrence de 2 relations r et s de mme schma (dans lordre R, S) est une relation T de mme schma contenant les tuples appartenant r et nappartenant pas s. Exemple : P4 = P1 - P2 P4 = P1 - P2 110 Y 120 Z

15 20

B R

PRODUIT CARTESIEN Le produit cartsien de 2 relations r et s de schma quelconque R et S, est une relation ayant pour attributs la concatnation de ceux de R et S et dont les tuples sont toutes les concatnations dun tuple de r un tuple de s. Exemple : PROD(NP, NOP, COUL) et DEPOT(ND, ADRED) P5 D 100 X B 5 A1 120 Y V 7 A2 P5xD NP 100 100 120 120

NOP X X Y Y

COUL B B V V

ND 5 7 5 7

ADRED A1 A2 A1 A2

- oprateurs unaires PROJECTION La projection dune relation r de schma R(A1, A2,...,An) sur les attributs Ai1, Ai2, ..., Aip avec ij ik et p<n) est une relation r de schma R(Ai1, Ai2, ..., Aip) dont les tuples sont obtenus par
JF - Bases de Donnes - 24

Modle relationnel

limination des valeurs des attributs de r nappartenant pas r et par suppression des tuples en double. La projection supprime des colonnes de la table initiale (et les lignes en double). Exemple : P6 NO 100 110 140 160

NOP X Y Z W

QTES 10 15 10 5

COUL R B R V

La projection sur les attributs QTES et COUL donne P7 QTES COUL 10 R 15 B 5 V Loprateur est reprsent graphiquement par un trapze base plus large
(R/QTES,COUL)

QTES, COUL

RESTRICTION ou SELECTION La restriction dune relation r par une qualification Q est une relation r de mme schma R dont les tuples sont ceux de r satisfaisant la qualification Q. La slection (restriction) supprime des lignes dans la table initiale. Exemple : Soit P6 et Q=(QTES = 10) alors P8 = P6[Q] La restriction donne : P8 NO NOP QTES COUL 100 X 10 R 140 Z 10 R Loprateur restriction est reprsent par un trapze base gauche plus haut que la base droite.

JF - Bases de Donnes - 25

Modle relationnel

(R/ QTES=10)

QTES = 10

Les oprateurs supplmentaires Les oprateurs se dduisant des prcdents et donc redondants. Ils sont utiliss en pratique parce que moins coteux en temps de calcul que la combinaison doprateurs qui les dfinit. JOINTURE La jointure de deux relations r et s selon une qualification Q est lensemble des tuples du produit cartsien RxS satisfaisant Q. (On peut donc la programmer comme un produit cartsien suivi dune slection). Exemple : PROD(NP, NOP, COUL, ADR-FAB) et DEPOT(ND, ADR-D) P9 NO 100 110 150 D ND 5 7 12

NOP X Y Z

COUL B V B

ADR-FAB A1 A2 A2

ADR-D A3 A1 A2

Soit Q = (ADR-FAB = ADR-D)

IXIQ (P9,D)
NO 100 110 150 NOP X Y Z COUL B V B ADR-FAB A1 A2 A2 ND 7 12 12 ADR-D A1 A2 A2

Cas particuliers EQUI-JOINTURE

JF - Bases de Donnes - 26

Modle relationnel

de r et s de schma R et S sur les attributs Ai et Bj : cest la jointure selon Q= (Ai=Bj) THETA-JOINTURE de r et s de schma R et S sur les attributs Ai et Bj : cest la jointure selon Q= (Ai Bj) avec {<, >, , , } AUTO-JOINTURE de r et s de schma R selon lattribut Ai : cest la jointure de r avec elle-mme selon Q= (Ai = Ai) JOINTURE NATURELLE de r et s de schma R et S note r IXI s est lqui-jointure de r et s sur tous les attributs de mme nom dans R et S, suivie de la projection qui limine les doublures de tuples. Exemple : PROD(NP, NOP, COUL, FAB) et PRIX(NP, PU, FAB) NO NOP COUL FAB 100 X B F1 110 Y V F2 120 Z B F2 PRIX NP 100 110 120

PU 25 30 10

FAB F1 F2 F2

Jointure naturelle de P et PRIX NO NOP COUL FAB 100 X B F1 110 Y V F2 120 Z B F2 INTERSECTION

PU 25 30 10

Lintersection de deux relations r et s de mme schma R est une relation T de mme schma contenant les tuples appartenant la fois r et s. On vrifiera que lintersection sexprime aussi par la diffrence. R S = R - (R - S) DIVISION Le quotient de la relation r de schma R(A1, A2, ..., An) par la sous-relation s de schma S(Ap+1, ..., An) est la relation q de schma Q(A1, ..., Ap) forme de tous les tuples qui, concatns chacun des tuples de s donne toujours un tuple de r. Soit ai une valeur de Ai q = {(a1 , a2 , .., ap) / (ap+1 .. an) s, (a1 , .., ap, ap+1.,.,.an) r} La division permet de rechercher lensemble de tous les sous-tuples satisfaisant une sous-relation de la relation.
JF - Bases de Donnes - 27

Modle relationnel

On a : R/S = T-U avec T = P(R)/ A1, A2, ..., Ap) et U= ((TxS) - R) / A1, A2, ..., Ap) Exemple PROD(NOP, COUL) et COUL(COUL) X B B Y B R Z V X R T J Le quotient de PROD par COUL est NOP(NOP) X Composition doprateurs Avec les oprateurs, il est possible de composer la plupart des requtes que lon peut faire sur une base de donnes relationnelle. Les requtes sexpriment laide dune succession doprations : Union, Diffrence, Jointure, Restriction et Projection. Exemple : Schma de la Base de Donnes Relationnelle: PROD(NP, NOP, COUL, QTES) ACHAT(NP, NCLI, QTEA) CLI(NCLI, NOM, ADR) Question : Couleur et nom des produits achets par le client DURAND ?

JF - Bases de Donnes - 28

SQL

4.

SQL

La plupart des SGBD qui prsentent les donnes sous forme de tables supportent un langage de requte dnomm SQL (Sequel : Structured Query Language) qui a t propos en 1973 par une quipe de chercheurs dIBM. La syntaxe de base du langage SQL se retrouve sur la plupart des implmentations. 4.1. Gnralits Organisation des donnes Sous forme de tables [tables], de colonnes [columns], de cls primaires [primary keys] et de cls trangres [foreign keys]. Gestion des donnes Elle consiste ajouter et retirer des lignes dune table. Il est possible de modifier les valeurs dune colonne dans certaines lignes dune table. SQL permet aussi dajouter et de supprimer une table dans une base de donnes, et dajouter une colonne dans une table. Accs aux donnes Grce au langage SQL, qui permet de dfinir les proprits densemble de donnes sans faire rfrence aux techniques daccs. Une requte SQL produit une table, partir dextraits dune ou plusieurs tables de la base de donnes. Les donnes peuvent tre dduites ou calcules, et le rsultat dune requte stock ensuite dans la base de donnes. Prsentation des donnes extraites Elles sont affiches lcran ou imprimes sous forme de tables, de rapports, ordonnes ou non, selon les spcifications de lutilisateur. SQL langage de manipulation de donnes (LMD) Tant la dfinition des structures de donnes (le schma relationnel, les attributs des tables, les contraintes dintgrit) que la manipulation du contenu des tables (les tuples) seffectue au moyen de requtes SQL. Chaque requte est la traduction dune expression de lalgbre relationnel. Le langage SQL peut tre hberg par un programme hte du type Pascal, C ou Cobol. Exemple : schma dune base de donnes Produit-Achat-Client PRODUIT (NP, LIB, COUL, QTES, PRIX) ACHAT(NP, NCLI, QTEA) CLIENT(NCLI, NOM, ADR) Projection SELECT liste_dattributs FROM nom_relation ; Exemple : Liste des Libells et des Quantits par Produit SELECT LIB, QTES
JF - Bases de Donnes - 29

4.2.

SQL

FROM PRODUIT ; Pour liminer les doubles il faut rajouter le mot cl DISTINCT SELECT DISTINCT LIB, QTES FROM PRODUIT ; Slection Une slection est une restriction suivie dune projection. Restriction SELECT * FROM nom_relation WHERE qualification ; Exemple : Liste des Produits de Couleur 'Rouge' dont la Quantit est infrieure 10. SELECT * FROM PRODUIT WHERE COUL = Rouge AND QTES < 10 ; Slection Exemple : Liste des Numros de produits et Libells des Produits de Couleur 'Rouge' ou dont la quantit est suprieure 10. SELECT NP, LIB FROM PRODUIT WHERE COUL=Rouge OR QTES>10 ; Qualification La condition de slection introduite par la clause WHERE peut tre constitue dune expression boolenne de conditions lmentaires (oprateurs AND, OR, NOT et parenthses). Une condition lmentaire peut porter sur - un oprateur de comparaison : =, < , >, <>, <=, >= - lexistence dun tuple au moins : EXIST - un quantificateur existentiel comparant une valeur un ensemble ANY : il existe un au moins ALL : quel que soit , pour tout - la prsence de la valeur NULL - lappartenance une liste : IN un intervalle : BETWEEN - la prsence de certains caractres dans une valeur : LIKE Tri Il est possible de trier les rsultats suivant lordre ascendant ou descendant dun ou plusieurs attributs. SELECT NP, LIB FROM PRODUIT

JF - Bases de Donnes - 30

SQL

WHERE COUL = Rouge AND QTES < 10 ORDER BY NP DESC, LIB ASC ; Formats et calculs La clause SELECT peut spcifier des calculs et des formats daffichage des donnes extraites par la requte. Exemple : SELECT Valeur du stock de ,LIB, (en mF) :, QTES*PRIX/1000 FROM PRODUIT; Valeur du stock de Vis (en mF) : 15 Valeur du stock de Pince (en mF) : 0,4 Valeur du stock de Ciment (en mF) : 200 Jointure Produit cartsien (jointure sans qualification) SELECT * FROM relation1, relation2 ; Exemple : Produit cartsien des tables Produit et Achat SELECT * FROM PRODUIT, ACHAT; Jointure avec qualification : - par restriction du produit cartsien Exemple : Liste des produits qui ont fait l'objet d'un achat SELECT * FROM PRODUIT, ACHAT WHERE PRODUIT.NP = ACHAT.NP ; - par requtes imbriques avec loprateur IN : Exemple : Libell des produits qui ont t achets SELECT LIB FROM PRODUIT WHERE NP IN (SELECT NP FROM ACHAT ) ; Combinaison doprateurs Exemple : Nom des clients ayant pass une commande suprieure ou gale 10000 vis, par ordre aphabtique. SELECT DISTINCT NOM FROM PRODUIT, ACHAT, CLIENT WHERE ACHAT.NCLI = CLIENT.NCLI AND ACHAT.NP = PRODUIT.NP AND PRODUIT.LIB = Vis AND ACHAT.QTEA >= 10000 ORDER BY NOM ASC ;

JF - Bases de Donnes - 31

SQL

Le calcul de cette requte risque de prendre normment de temps et ncessite un important espace mmoire puisque toutes les tables PRODUIT, ACHAT, CLIENT doivent etre chrages en mmoire en mme temps pour raliser le produit cartsien. On lacclre en utilisant des requtes imbriques qui limitent la taille des tables intermdiaires. SELECT DISTINCT NOM FROM CLIENT WHERE NCLI IN (SELECT NCLI FROM ACHAT WHERE QTEA >= 10000 AND NP IN (SELECT NP FROM PRODUIT WHERE LIB = Vis) ) ORDER BY NOM ASC ; Union Exemple : Libells des Produits de Couleur rouge OU dont la quantit est infrieure 10. SELECT LIB FROM PRODUIT WHERE COUL = Rouge UNION SELECT LIB FROM PRODUIT WHERE QTES < 10 ; Fonctions de calcul COUNT : nombre de valeurs SUM : somme AVG : moyenne [average] MAX : maximun MIN : minimum Exemple : Quantit moyenne des stocks de vis SELECT AVG(QTES) FROM PRODUIT WHERE LIB=Vis ; Qualification plus complexe GROUP BY liste_attributs HAVING : qualification avec fonctions de calcul Exemple : Numro des produits achets par plus de 100 clients SELECT NP FROM ACHAT GROUP BY NP HAVING COUNT(*) > 100 ;

JF - Bases de Donnes - 32

SQL

SQL : Langage de description de donnes (LDD) La description du schma des tables et la modification des attributs seffectue au moyen de requtes SQL avec les mots rservs CREATE, DROP et ALTER. Cration dune table Cette opration cre une table (vide). Entre parenthses le nom de chaque colonne et son domaine Exemple : CLIENT(NCLI, NOM, ADR, TEL) CREATE TABLE CLIENT (NCLI CHAR (4), NOM CHAR (12), ADR CHAR (30), TEL NUMERIC) ; Types de donnes SQL admet pour domaine des attributs diffrents types dont : - NUMERIC : rel ou entier selon le format spcifi - SMALLINT : entier court (16 bits) - INTEGER : entier sign long (32 bits) - FLOAT : dcimal - CHAR (n) : chane fixe de n caractres - DATE : toute date - RAW : donnes binaires sans format Cls Une cl primaire est spcifie par les mots rservs PRIMARY KEY CREATE TABLE CLIENT (NCLI CHAR (4), NOM CHAR (12), ADR CHAR (30), PRIMARY KEY (NCLI)) Une cl secondaire est spcifie par le mot rserv UNIQUE CREATE TABLE CLIENT (NCLI CHAR (4), NOM CHAR (12), ADR CHAR (30), PRIMARY KEY (NCLI), UNIQUE (NOM, ADR)) ; Contrainte de rfrence Une rfrence une cl trangre est spcifie par le mot rserv FOREIGN KEY (cl) REFERENCES (table.attribut) Exemple : ACHAT(NP, NCLI, QTEA) CREATE TABLE ACHAT (NP INTEGER, NCLI CHAR (4), QTEA FLOAT, FOREIGN KEY (NP) REFERENCES (PRODUIT.NP), FOREIGN KEY (NCLI) REFERENCES (CLIENT.NCLI)) ;

4.3.

JF - Bases de Donnes - 33

SQL

Caractre facultatif / obligatoire dune colonne Par dfaut toute colonne est facultative. Le caractre obligatoire dune colonne se dclarera par la clause NOT NULL : Exemple : PRODUIT (NP, LIB, COUL, QTES) : CREATE TABLE PRODUIT (NP INTEGER NOT NULL, LIB CHAR(10) NOT NULL, COUL CHAR(6), QTES INTEGER NOT NULL, PRIMARY KEY (NP) ) Suppression dune table Toute table peut tre supprime. Exemple : DROP TABLE CLIENT Ajout et retrait dune colonne La commande suivante ajoute la colonne PRIX la table PRODUIT : ALTER TABLE PRODUIT ADD PRIX INTEGER Une colonne peut tre supprime par ALTER TABLE PRODUIT DROP PRIX 4.4. SQL pour les mises jour (LMD) Les clause INSERT, DELETE, UPDATE permettent lajout et la suppression de tuples dans une table existante. Insrer un tuple Exemple : INSERT INTO PRODUIT <200, Pince, Rouge, 200, 25.50> Supprimer un tuple Exemple : supprimer tous les produits achets par Martin : DELETE PRODUIT WHERE Martin IN (SELECT NOM FROM ACHAT, CLIENT, PRODUIT WHERE PRODUIT.NP = ACHAT.NP AND ACHAT.NCLI = CLIENT.NCLI) ; Modifier un tuple Exemple : Mettre la quantit 0 pour tous les clients dadresse Noisy-Le-Grand 93160 UPDATE ACHAT SET QTEA = 0 WHERE Noisy-Le-Grand 93160 IN (SELECT ADR FROM CLIENT, ACHAT WHERE ACHAT.NCLI = CLIENT.NCLI) ;

JF - Bases de Donnes - 34

Dpendances fonctionnelles

5.

Dpendances fonctionnelles et dcomposition en formes normales

Le choix des relations est primordial quand on dfinit un schma relationnel. Il est guid par les dpendances entre les donnes, cest--dire les contraintes que les donnes de la base doivent vrifier. 5.1. Intgrit et dpendance fonctionnelle

Considrons une base de donnes clients - fournisseurs dcrite par les relations suivantes : PRIX_FOURN ( FNOM, FADRESSE, PNOM, COUTS) COMMANDES (NUM_COMDE, NOM, PNOM, QUANTITE) CLIENTS (NOM, ADRESSE_C, BALANCE) Les problmes que soulve ce schma : - redondance : ladresse dun fournisseur est rpte dans plusieurs tuples. Il nest pas justifi de spcifier l'adresse du fournisseur avec le prix du produit, car ces information nont rien voir. Si un fournisseur a 1000 produits son catalogue, son adresse est rpte 1000 fois dans la base... - anomalies de mise jour : cest une consquence de la redondance ; il est possible de modifier ladresse dun fournisseur dans un tuple sans le faire dans tous. Si l'adresse d'un fournisseur change il faut remettre jour tout son catalogue de prix... - anomalies dinsertion et de suppression : on ne peut entrer ladresse dun fournisseur si on na pas la connaissance dau moins un produit quil peut livrer, ainsi que son prix. Avec la suppression du catalogue de prix d'un fournisseur, toute rfrence celui-ci disparat... Une modification du schma relationnel clients-fournisseurs permet dviter ces difficults : FOURNISSEURS (FNOM, FADRESSE) PRIX(FNOM, PNOM, COUT) COMMANDES (NUM_COMDE, NOM, PNOM, QUANTITE) CLIENTS (NOM, ADRESSE_C, BALANCE) Il est vident que la connaissance de FNOM dun fournisseur entrane la connaissance de son adresse FADRESSE. Cest ce type de dpendance quon doit exploiter... Les contraintes suivantes seront exprimes par des dpendances fonctionnelles - "Un fournisseur n'a qu'une adresse" - "Un produit dlivr par un fournisseur unique a un cot unique" - "Un numro de commande dtermine le nom du client, le nom du produit et la quantit commande" Relation FOURNISSEURS : FNOM --> FADRESSE Relation PRIX : FNOM PNOM --> COUTS Relation COMMANDES : NUM_COMDE --> NOM PNOM QUANTITE NOM PNOM --> NUM_COMDE QUANTITE Relation CLIENTS NOM --> ADRESSE_C BALANCE
JF - Bases de Donnes - 35

Dpendances fonctionnelles

Dfinition d'une dpendance fonctionnelle Dfinition Soit R(A1, A2, A3,..., An) un schma de relation et X et Y deux sous-ensembles de {A1,A2,...,An}. On dit qu'il y a une dpendance fonctionnelle de Y sur X et on crit X --> Y si, quel que soit un exemplaire acceptable, r, de R, alors tous les tuples u et v de R qui ont les mmes composantes dans X, ont aussi les mmes composantes dans Y. Exemple On considre le schma relationnel R(A,B,C,D) et la table A B C D 1 a b c d 2 a b c d' 3 a' b c d' - Lensemble des parties de R a 16 lments (2n) P(R) = { {}, {A}, {B}, {C}, {D}, {A,B}, {A,C}, {A,D}, {B,C}, {B,D}, {C,D}, {A,B,C}, {A,B,D}, {A,C,D}, {B,C,D}, {A,B,C,D} }. - L'ensemble des dpendances fonctionnelles sur R : F(R) = {{A}->{B}, {A}-->{C}, {A,B}-->{C}, {A, C}-->{B}, {D}-->{B}, {D}-->{C}, {D,B}-->{C}, {D,C}-->{B} } On calcule ces dpendances en vrifiant par exemple que {A,B}-->{C} car les projections selon (A,B,C) des tuples 1,2 sont identiques et la projection de 3 est unique. Par contre on na pas {A,B}-->{D} car les projections selon (A,B,D) des tuples 1,2 sont diffrentes sur lattribut D alors quelles sont identiques sur les attributs A et B. Exemple : Soit le schma relationnel R(PROF, CODMAT, J, H, SALLE) Un tuple (p,m,s,j,h) d'une relation r de schma R signifie "L'enseignant p enseigne la matire m dans la salle s le jour j l'heure h". Dans la mesure ou un enseignant ne peut se trouver dans deux salles la fois un jour donn une heure donne pour un cours donn, et que deux cours ne peuvent tre donns simultanment par la mme personne dans la mme salle un jour et une heure donne, on a les dpendances : df1 : PROF,H,J --> SALLE, CODMAT df2 : H,J,SALLE --> PROF, CODMAT Si de plus la connaissance dun enseignant implique la connaissance de la matire enseigne on a df3 : PROF --> CODMAT Mais si un professeur peut enseigner plusieurs matires PROF -/-> CODMAT REMARQUE Une dpendance fonctionnelle est une proprit qui s'applique un ensemble de relations ; elle ne peut tre dduite d'une seule table car c'est une proprit du schma, une assertion sur la ralit qui ne peut donc tre prouve !

JF - Bases de Donnes - 36

Dpendances fonctionnelles

Cl et dpendance fonctionnelle Dfinition Soit R(A1, A2, A3,..., An) un schma de relation. Soient X un sous-ensembles de {A1,A2,...,An} On dit que X est une cl pour R si : 1) X --> A1,A2,...,An 2) Quel que soit Y inclus dans X, si Y --> A1,A2,...,An alors X = Y. En clair cela signifie que tous les attributs de la relation sont en dpendance de la cl. Le point 1 exprime l'unicit des tuples Le point 2 traduit qu'une cl est tout ensemble d'attributs minimal impliquant l'unicit des tuples. Si un attribut est cl d'une relation, alors tous les attributs de cette relation sont en dpendance fonctionnelle de la cl Cl primaire et cl candidate Si une relation a plusieurs cls, on peut en choisir une, appele cl primaire; les autres cls sont dites cls candidates. Exemple : Relation COMMANDES (NUM-COMDE, NOM, PNOM, QUANTITE) avec les dpendances : NUM-COMDE --> NOM PNOM QUANTITE NOM PNOM --> NUM-COMDE QUANTITE La cl primaire NUM-COMDE Une cl candidate NOM PNOM 5.2. Consquence logique et clture

Intuitivement, lexistence dune dpendance fonctionnelle peut avoir pour consquence dautres dpendances fonctionnelles. Par exemple, si on a une dpendance fonctionnelle X --> Y et que XCZ (X inclus dans Z) alors la connaissance des attributs de Z implique la connaissance de Y, cest--dire Z --> Y. Consquence logique (I=) Dfinition Soit F un ensemble de dpendances fonctionnelles pour un schma de relation R, et X --> Y une dpendance fonctionnelle. On dit que X --> Y est la consquence logique de F, et on l'crit F I= X --> Y, si tout exemplaire de relation r de R qui satisfait les dpendances de F satisfait aussi X --> Y.

JF - Bases de Donnes - 37

Dpendances fonctionnelles

Clture (ou fermeture) dun ensemble de dpendances La notion de clture permet de prendre en compte toutes les dpendances fonctionnelles consquences logiques dun ensemble de dpendances donnes. Dfinition On appelle clture de F (ou fermeture de F ), l'ensemble F+ = {X -->Y / F I= X --> Y } Dpendances fonctionnelles lmentaires, transitives, directes Certaines dpendances sont plus fondamentales que dautres puisque les autres peuvent sen dduire... Dfinition On appelle dpendance fonctionnelle lmentaire une dpendance fonctionnelle de la forme X --> A o A est un attribut unique non inclus dans X, telle que, quel que soit Y inclus dans X, la dpendance Y --> A IMPLIQUE X = Y. Une dpendance fonctionnelle lmentaire n'est donc pas obtenue par augmentation de son membre gauche. Dfinition On appelle dpendance fonctionnelle transitive une dpendance fonctionnelle de la forme X --> A o A est est un attribut unique non inclus dans X, telle queil existe Y non inclus dans X , X --> Y ET Y --> A ET Y -/-> X Dfinition On appelle dpendance fonctionnelle directe une dpendance fonctionnelle de la forme X --> A, o A est un attribut unique non inclus dans X, telle que quel que soit Y non inclus dans X, X --> Y ET Y -> A IMPLIQUE Y --> X. En d'autres termes une dpendance est directe si elle n'est pas obtenue par transitivit partir d'autres dpendances. X X A
transitive

Y A
non transitive

U
Y A
non lmentaire

Schmas de dpendances de A sur X

JF - Bases de Donnes - 38

Dpendances fonctionnelles

Calcul de la clture d'un ensemble de dpendances La notion de clture a t introduite pour pour prendre en compte l'ensemble de toutes les dpendances fonctionnelles consquences logique d'un ensemble de dpendances donnes. On obtient la clture en itrant les rgles d'Amstrong. Le calcul de F+ peut tre trs long mais il peut tre remplac par le calcul de X + = {A / A U X A} au moyen de l' itration suivante : X = X X (i +1) = X (i ) U {A / Y Z F tel que Y X( i) et A Z}

Rgles d'Amstrong Soient R(A,B,...) et F= {df1,...} l'ensemble des dpendances fonctionnelles sur R, et X, Y,.. des lments de l'ensemble des parties de {A,B,...}. a) Rflexivit Si Y inclus dans X alors X-->Y. b) Augmentation Pour tout Z inclus dans {A,B,...} si X-->Y alors XZ-->YZ. et si X-->Y alors XZ-->Y. c) Transitivit Si X-->Y et Y-->Z alors X-->Z. Thorme: Si X-->Y se dduit de F en appliquant les rgles a, b, c alors X-->Y appartient F+, la fermeture (clture) de F. Rciproquement, toute dpendance fonctionnelle X-->Y de F+ se dduit de F par application des rgles d'Amstrong. Proprits complmentaires des rgles d'Amstrong Ces rgles se dduisent des rgles d'Amstrong. d) Additivit / union X-->Y, X-->Z alors X-->YZ. e) Pseudo-transitivit X-->Y, WY-->Z alors XW-->Z. f) Dcomposition X-->Y alors X-->Z si Z est inclus dans Y.

JF - Bases de Donnes - 39

Dpendances fonctionnelles

Reprsentation graphique de dpendances fonctionnelles (df) On considre l'ensemble F = {A-->B, B-->C, AD-->C, A-->C} Le graphe des dpendances fonctionnelles de F est donn par :

D A B C

Cl minimale d'un schma de relation et fermeture de df On considre la relation ADR (RUE, VILLE, CODEPOSTAL) muni des dpendances fonctionnelles F: df1 : RUE, VILLE --> CODEPOSTAL df2 : CODEPOSTAL --> VILLE Dfinition : On dit que X est une cl de R muni de F si une des conditions quivalentes suivantes est satisfaite 1) X-->R appartient F+ 2) F I= X-->R 3) Toute relation r sur R qui satisfait F vrifie X-->A,B,C... Montrons que (RUE, CODE POSTAL) et (RUE, VILLE) sont des cls pour ADR. (RUE, CODEPOSTAL) est une cl de ADR car : CODEPOSTAL --> VILLE est dans F Par augmentation (CODEPOSTAL, RUE) --> (VILLE, RUE) Par augmentation (CODEPOSTAL, RUE) --> (VILLE, RUE, CODEPOSTAL) Donc (RUE, CODEPOSTAL)--> ADR De mme (RUE,VILLE) --> CODEPOSTAL est dans F Par augmentation (RUE, VILLE) --> (RUE, VILLE, CODEPOSTAL) Donc (RUE, VILLE)-->ADR. Cl minimale Un ensemble dattributs X de R est une cl minimale de R muni de lensemble de dpendances fonctionnelles F si et seulement si X est une cl et si tout sous-ensemble strict de X nen est pas une. (RUE, CODE POSTAL) et (RUE, VILLE) sont des cls minimales pour ADR.

JF - Bases de Donnes - 40

Dpendances fonctionnelles

Couverture minimale dun ensemble de dpendances Pour tout ensemble de dpendances, F il existe un ensemble quivalent F' (au sens F+ = F'+) qui soit minimal. Couverture minimale de F On appelle couverture minimale de F un ensemble G de dpendances fonctionnelles tel que : 1) G+ = F+ 2) Pour aucune dpendance fonctionnelle X-->A de G on n'a G-{X--A} I= G 3) Pour aucune dpendance fonctionnelle X-->A de G on n'a G I= (G-{X-->A}) U Y-->A Il n'y a pas unicit de la couverture minimale en gnral. Conditions de minimalit 1- X Y F , Y ne comporte quun seul attribut, 2 - X A F , lensemble F {X A } nest pas quivalent F, 3 - X A F et Z X , lensemble ( F {X A}) U{Z A } nest pas quivalent F .

5.3.

5.4.

Formes normales

Les relations sont classifies en fonction de leurs proprits vis--vis des dpendances fonctionnelles l'aide de la notion de forme normale. Plus le degr de normalit est lev, plus les anomalies de mise--jour sont rduites. Premire forme normale (1FN) Les relations sont des ensembles d'attributs "atomiques", c'est--dire indcomposables. Deuxime forme normale (2FN) Un schma de relation est dit en deuxime forme normale (2FN) si elle est en 1FN et si tout attribut qui n'appartient aucune des cls minimales du schma ne dpend d'aucun sousensemble de cls du schma. Autrement dit il faut viter la configuration suivante :

R(A, B, C, D, E)
Si D n'appartient pas une cl minimale de R alors il ne faut pas que D dpende d'une partie de la cl.

JF - Bases de Donnes - 41

Dpendances fonctionnelles

Troisime forme normale (3FN) Un schma de relation est dit en troisime forme normale (3FN) si elle est en 2FN et si tout attribut qui n'appartient aucune des cls minimales du schma ne dpend que des cls du schma et des ensembles d'attributs qui le contiennent. Autrement dit il faut viter la configuration suivante :

R(A, B, C, D, E)

Cette configuration n'est pas 3FN !


Soit la relation de schma R(COURS, ETUDIANT, NOTE, PROF) muni de F = {{COURS}-->{PROF}, {COURS,ETUDIANT}-->{NOTE}} Montrons que R n'est pas en 3NF. ETUDIANT COURS

PROF NOTE R n'est pas en 3NF, en effet : - R admet comme seule cl minimale {COURS,ETUDIANT} - PROF n'appartient pas cette cl et dans {COURS}-->{PROF}, {COURS} n'est pas une cl. Pour savoir si un schma est en 3FN , on doit : (a) chercher toutes les cls minimales (b) en dduire les attributs A qui n'appartiennent aucune cl minimale (c) regarder toutes les df X-->A de F+, avec A dtermin au (b), A non inclus dans X et tester pour chacune d'elle si X est une cl. Remarque : Si tous les attributs de R appartiennent une cl minimale de R, alors R est en 3FN. Forme normale de Boyce-Codd (FNBC) Une relation est FNBC si elle est en 3FN et si tout attribut ne dpend que des cls minimales du schma et des ensembles le contenant. Autrement dit il faut viter la configuration :

R( A, B, C, D, E) Ce schma n'est pas en FNBC !


Exemple : Montrer que le schma relationnel ADR(VILLE, RUE, CODEPOSTAL) muni de F ={(RUE, VILLE) --> CODEPOSTAL, (CODEPOSTAL)--> VILLE}
JF - Bases de Donnes - 42

Dpendances fonctionnelles

n'est pas en FNBC. (a) Recherchons les cls minimales : (RUE, CODEPOSTAL) est une cl de ADR car : CODE POSTAL --> VILLE est dans F Par augmentation (CODEPOSTAL, RUE) --> (VILLE, RUE) Par augmentation (CODEPOSTAL, RUE) --> (VILLE, RUE, CODEPOSTAL) Donc (RUE, CODEPOSTAL)--> ADR De mme RUE,VILLE --> CODEPOSTAL est dans F Par augmentation RUE, VILLE -->RUE,VILLE,CODEPOSTAL Donc RUE,VILLE-->ADR. Les cls minimales sont donc (RUE,VILLE) et (RUE,CODEPOSTAL) et la remarque "si tous les attributs de R appartiennent une cl minimale, alors R est en 3FN" s'applique... (b) Mais ADR n'est pas en FNBC car on trouve la dpendance {CODEPOSTAL}--> {VILLE} alors que CODEPOSTAL n'est pas une cl. Proprits des formes normales - Si tous les attributs de R appartiennent une cl minimale de R, alors R est en 3FN. - Un schma en 3FN qui n'admet qu'une seule cl est en FNBC - Un schma muni d'une seule dpendance fonctionnelle X-->Y avec X U Y = R est en FNBC. 5.5. Dpendance multivalue

X et Y sont en dpendance multivalue X-->>Y dans le schma relationnel R si pour toute relation r sur R, chaque valeur de X est associ un ensemble de valeurs {yi} de Y, indpendamment des autres attributs de R. Autrement dit : X-->>Y/Z est quivalent

r R ((x, y, z) r et (x' , y' , z' ) r (x, y' , z) r et (x, y, z' ) r )

Ce qui en clair signifie que la dpendance multivalue exprime une indpendance entre deux objets Y et Z relis un troisime objet X. Exemple : Soit la relation R(ETUDIANT, LIVRE, NOTE) La dpendance multivalue ETUDIANT-->>LIVRE/NOTE signifie qu'un ETUDIANT peut avoir plusieurs livres indpendamment du fait d'avoir des notes et inversement. Quatrime forme normale (4FN)

JF - Bases de Donnes - 43

Dpendances fonctionnelles

R est en 4FN si R est FNBC et s'il n'existe pas de dpendance multivalue non triviale autre que les dpendances fonctionnelles. Autrement dit il faut viter la configuration :

R(A, B, C, D, E)

Ceci n'est pas en 4FN !

5.6.

Dcomposition en formes normales

Dans lexemple choisi au dbut de ce chapitre : PRIX_FOURN ( FNOM, PNOM, FADRESSE, COUTS) les dpendances fonctionnelles sont : FNOM --> FADRESSE (FNOM PNOM) --> COUTS. La cl de cette relation est (FNOM, PNOM). La difficult provient de ce que la partie gauche de la premire dpendance ne contient pas la cl de la relation ; comme il peut y avoir plusieurs tuples qui ont le mme fournisseur, il y a redondance de son adresse. Par contre si on dcompose en relations FOURNISSEURS (FNOM, FADRESSE) et PRIX(FNOM, PNOM, COUTS), la partie gauche de la premire dpendance fonctionnelle est une cl de la relation FOURNISSEURS et ce nest pas une dpendance fonctionnelle de la relation PRIX. Dcomposition sans perte d'un schma de relation Pour rsoudre les difficults inhrentes certaines relations, il est intressant de pouvoir les transformer pour obtenir un autre ensemble de relations qui soit quivalent. Deux proprits doivent tre conserves lors de cette dcomposition : la jointure et les dpendances fonctionnelles, cest--dire les contraintes dintgrit. On appelle dcomposition d'un schma de relation R(A,B,...) le remplacement de R par un ensemble de schmas de relations R1;R2,...Rp obtenus partir de R par projection et de telle sorte que la runion des attributs des Ri soit gale R. Une dcomposition est sans perte d'information (SPI) si toutes les relations r sur R considres sont gales la jointure des relations ri obtenues par projection de r sur les schmas de Ri.

JF - Bases de Donnes - 44

Dpendances fonctionnelles

Thorme: Soit R(X,Y,Z) et X-->Y dans F. Alors la dcomposition de R en S(X,Y) et T(X,Z) est sans perte d'information. Rciproquement, si la dcomposition de R en S et T est sans perte d'information, alors X-->Y ou X-->Z appartient F+ La dcomposition doit conserver les dpendances fonctionnelles. On dit que la dcomposiotion de R en R1;R2,...Rp prserve les df (est sans perte de df SPD) si la fermeture de la runion des Fi est gale F+. En gnral, la runion des Fi est diffrente de F. Dcomposition avec perte de dpendance Si le schma R = {X, Y, Z} n'est pas en 3FN et si la df: X-->Y appartient l'ensemble F des df imposes sur R, il faut remplacer R par R1=(X,Y), muni de la df: X-->Y, et par R2=(X,Z) muni des df de F+ qui s'crivent avec des attributs de R2. 5.7. Conclusion - Les dpendances fonctionnelles sont des proprits provenant du monde rel qui indiquent les exemplaires des relations qui sont acceptables. - La donne dun ensemble de dpendances fonctionnelles induit dautres dpendances, consquences logiques des premires. - Les formes normales sont des proprits des relations vis--vis des dpendances fonctionnelles qui mesurent leur redondance potentielle : - la FNBC caractrise des relations sans redondance - le 3FN limite ces redondances - La dcomposition dun schma relationnel - en FNBC : prserve la jointure mais pas toujours les dpendances - en 3FN : prserve dpendance et jointure.

JF - Bases de Donnes - 45

Bibliographie

6.

Bibliographie

ACSIOME, Modlisation dans la conception des systmes dinformation, Masson, 1989 C. Carrez, Des structures aux bases de donnes, Dunod, 1990 G. Gardarin, Les bases de donnes, les systmes et leurs langages, Eyrolles. GALACSI, Les systmes dinformation, Analyse et conception, Dunod, 1984 GALACSI, Conception des bases de donnes : du schma conceptuel au schma physique, Dunod, 1989 J. Gabay, Apprendre et pratiquer MERISE, Masson, 1991 P.-A. Goupille, J.-M. Rousse, Analyse informatique pour les IUT et BTS, Masson 1993 J.-L. Hainaut, Bases de donnes et modles de calcul, Outils et mthodes pour lutilisateur, InterEditions, 1994 H.F. Korth, A. Silberschatz, Database System Concepts, Mac Graw-Hill, (1986) J.P. Matheron, Comprendre MERISE, Eyrolles, 1989 J.D. Ullman, Principles of Database and Knowledge Base System, Vol. 1, Computer Science Press (1988)

7.

Table des matires

1. Introduction aux systmes de gestion de bases de donnes....................................................... 2 1.1. Un peu dhistoire ...................................................................................................... 2 1.2. Base de donnes et Systme de Gestion de Base de Donne [Data Base Management System] ....................................................................................................... 2 1.3. Mise en oeuvre dun SGBD ...................................................................................... 5 Le niveau interne .................................................................................................. 6 Le niveau conceptuel ............................................................................................ 6 Le niveau externe ................................................................................................. 6 1.4. Indpendance physique - Indpendance logique......................................................... 7 1.5. SGBD et Langages ................................................................................................... 7 Le langage de description des donnes (LDD) spcifie le schma conceptuel ............................................................................................................ 7 Langage de manipulation des donnes, ou langage dinterrogation [query language] (LMD)................................................................................................. 7 1.6. Les intervenants ........................................................................................................ 8 2. Le modle entit-association.................................................................................................. 10 2.1. Entit ...................................................................................................................... 10 Classes dentits ................................................................................................. 10 Attribut, valeur, domaine, cl.............................................................................. 10 Entit dominante et entit subordonne............................................................... 11 Gnralisation et hirarchie................................................................................. 11 2.2. Association ............................................................................................................. 12 Attribut dune association ................................................................................... 12 Type dassociation.............................................................................................. 13 Cardinalit .......................................................................................................... 13 2.3. Diagramme Entit-Association ................................................................................ 14 2.4. Dictionnaire des donnes......................................................................................... 16 2.5. Rgles de validation ................................................................................................ 17
JF - Bases de Donnes - 46

Table des matires

3. Le modle relationnel ............................................................................................................ 18 3.1. Relation .................................................................................................................. 18 Reprsentation dune relation.............................................................................. 18 Cl dune relation ............................................................................................... 19 3.2. Schma de base de donnes relationnelle ................................................................. 19 3.3. Passage modle Entit-Association / modle Relationnel. ........................................ 20 Principes............................................................................................................. 20 Exemple ............................................................................................................. 20 3.4. Les Langages de Manipulation de Donnes (LMD) ................................................. 22 3.5. Langages bass sur l'algbre relationnelle ................................................................ 23 Les oprateurs de base........................................................................................ 23 Les oprateurs supplmentaires........................................................................... 26 Cas particuliers ................................................................................................... 26 Composition doprateurs................................................................................... 28 4. SQL ...................................................................................................................................... 29 4.1. Gnralits.............................................................................................................. 29 Organisation des donnes.................................................................................... 29 Gestion des donnes ........................................................................................... 29 Accs aux donnes ............................................................................................. 29 Prsentation des donnes extraites ...................................................................... 29 4.2. SQL langage de manipulation de donnes (LMD).................................................... 29 Projection........................................................................................................... 29 Slection............................................................................................................. 30 Jointure .............................................................................................................. 31 Combinaison doprateurs .................................................................................. 31 Union ................................................................................................................. 32 Fonctions de calcul ............................................................................................. 32 Qualification plus complexe ................................................................................ 32 4.3. SQL : Langage de description de donnes (LDD).................................................... 33 Cration dune table............................................................................................ 33 Suppression dune table ...................................................................................... 34 Ajout et retrait dune colonne ............................................................................. 34 4.4. SQL pour les mises jour (LMD) .......................................................................... 34 Insrer un tuple................................................................................................... 34 Supprimer un tuple ............................................................................................. 34 Modifier un tuple................................................................................................ 34 5. Dpendances fonctionnelles et dcomposition en formes normales ......................................... 35 5.1. Intgrit et dpendance fonctionnelle....................................................................... 35 Dfinition d'une dpendance fonctionnelle........................................................... 36 Cl et dpendance fonctionnelle .......................................................................... 37 Cl primaire et cl candidate ............................................................................... 37 5.2. Consquence logique et clture............................................................................... 37 Consquence logique (I=)................................................................................... 37 Clture (ou fermeture) dun ensemble de dpendances........................................ 38 Dpendances fonctionnelles lmentaires, transitives, directes ............................. 38 Calcul de la clture d'un ensemble de dpendances.............................................. 39 Rgles d'Amstrong.............................................................................................. 39 Proprits complmentaires des rgles d'Amstrong ............................................. 39 Reprsentation graphique de dpendances fonctionnelles (df).............................. 40
JF - Bases de Donnes - 47

Table des matires

Cl minimale d'un schma de relation et fermeture de df...................................... 40 Cl minimale....................................................................................................... 40 5.3. Couverture minimale dun ensemble de dpendances ............................................... 41 Couverture minimale de F................................................................................... 41 Conditions de minimalit..................................................................................... 41 5.4. Formes normales..................................................................................................... 41 Premire forme normale (1FN) ........................................................................... 41 Deuxime forme normale (2FN).......................................................................... 41 Troisime forme normale (3FN).......................................................................... 42 Forme normale de Boyce-Codd (FNBC)............................................................. 42 Proprits des formes normales........................................................................... 43 5.5. Dpendance multivalue.......................................................................................... 43 Quatrime forme normale (4FN)......................................................................... 43 5.6. Dcomposition en formes normales ......................................................................... 44 Dcomposition sans perte d'un schma de relation .............................................. 44 Dcomposition avec perte de dpendance ........................................................... 45 5.7. Conclusion.............................................................................................................. 45 6. Bibliographie......................................................................................................................... 46 7. Table des matires ................................................................................................................. 46

JF - Bases de Donnes - 48

Vous aimerez peut-être aussi