Vous êtes sur la page 1sur 29

Cours n1 Systmes de Gestion de Donnes

Chantal Reynaud
Universit Paris X - Nanterre UFR SEGMI Licence MIAGE 2003-2004

Plan
I. Introduction aux systmes de bases de donnes II. Larchitecture des bases de donnes III. Une introduction aux bases de donnes relationnelles IV. La conception dun schma relationnel

Partie I. Introduction aux systmes de base de donnes I. Le concept de Systme de Base de Donnes
I.1. Les donnes I.2. Le matriel I.3. Le logiciel I.4. Les utilisateurs

II. Le concept de base de donnes III. Pourquoi utiliser une base de donnes ?

I. Un Systme de Bases de Donnes


Le logiciel qui permet

un utilisateur d exploiter une base de donnes (SGBD)


- organise et conserve les donnes sur les supports priphriques - fournit les procdures de recherche et de slection de ces mmes donnes - cache les dtails de l organisation et de la localisation des donnes sur disques

Les donnes Intgres :


Une unification de fichiers distincts, toute redondance ayant t totalement ou partiellement limine

Partages :
Chaque BD peut tre partage par plusieurs utilisateurs. Chacun peut accder la mme donne en mme temps.

Le matriel Composants :
Volumes de mmorisation secondaires Le(s) processeur(s) et la mmoire principale

Le logiciel
Couche entre la base de donnes physique et le systme : le gestionnaire de BD (DB Manager), communment appel SGBD. Le SGBD est le composant le plus important du systme. Autres utilitaires : outils de dveloppement d applications, d aide la conception, rdacteurs de rapports, gestionnaires des transactions, etc.

Les utilisateurs
Trois classes dutilisateurs :
Les programmeurs d applications Les utilisateurs finaux Ladministrateur de la base de donnes (DBA).

II. Le Concept de Base de Donnes Une collection de donnes persistantes utilises par les systmes d application d une entreprise
Une fois introduites dans la base, elles ne peuvent tre enleves que par une requte explicitement envoye au SGBD et non par le seul effet de bord de l excution d un programme.

III. Pourquoi utiliser une base de donnes ? Partage des donnes Redondance rduite Incohrence vite Transactions gres Intgrit assure Scurit applique Conflits de besoins quilibrs Normes appliques

+ Indpendance des donnes

Partie II. L architecture des bases de donnes I. L architecture ANSI/SPARC trois niveaux
I.1. Le niveau externe I.2. Le niveau conceptuel I.3. Le niveau interne

II. L architecture client/serveur

I. Schma de l architecture ANSI/SPARC


Utilisateur 1 Langage hte + sous langage de donnes Utilisateur 2 Langage hte + sous langage de donnes Utilisateur 3 Langage hte + sous langage de donnes Utilisateur 4 Langage hte + sous langage de donnes

Vue externe A

Vue externe B

SGBD
Vue logique

Donnes stockes (vue interne)

Illustration
Niveau externe : (COBOL)
01 Empl. 02 empno Pic X(6). 02 deptno Pic X(4).

Niveau conceptuel :

EMPLOYE NUMERO_EMPLOYE CHAINE(6) NUMERO_DEPARTEMENT CHAINE(4) SALAIRE ENTIER(5)

Niveau interne :

Stored_Emp Length = 20 PREFIX TYPE=BYTE(6), OFFSET=0 EMP# TYPE=BYTE(6), OFFSET=6, INDEX=EMPX DEPT# TYPE=BYTE(4), OFFSET=12 PAY TYPE=FULLWORD, OFFSET=16

II. Architecture client/serveur


Utilisateurs

Applications SGBD

Clients Serveur Base de donnes

Architecture client/serveur
Traitement distribu
Applications SGBD Client Accs distant Serveur Clients Serveur Clients Serveur Clients Serveur

Rseau

Clients Rseau de communication Serveur

Clients Serveur

Clients Serveur

Partie III. Une introduction aux bases de donnes relationnelles I. Le modle relationnel
I.1. Les concepts de relation - attribut - domaine I.2. Schma d une relation - Schma d une BDR

II. Le passage d un schma entit-association un schma relationnel


II.1. Rgles de passage II.2. Cas particuliers

I. Le modle relationnel
Les concepts de relations - attribut - domaine Une relation sur les attributs A1, A2, ..., An de domaines respectifs D1, D2, ..., Dn est un sous-ensemble du produit cartsien des domaines D1, D2, ..., Dn, soit un ensemble de n-uplets de lensemble produit D1 x D2 ... x Dn.
Ex : la relation r ci-dessous sur les attributs Num, Nom, Adresse r = {(2140, Dupont, Paris), (1128, Durant, Nanterre),(3456, Dubois, La Dfense)}

Les attributs sont des variables prenant leurs valeurs dans des domaines
Ex : Num prend ses valeurs dans D1 avec D1 = {Entiers}

Les noms des attributs dune relation doivent tre tous diffrents. Les noms des domaines peuvent tre identiques.
Ex : Nom et Adresse prennent leurs valeurs dans D2 avec D2 = {Chane de caractres}

La reprsentation des relations sous forme de tableaux


Attributs de r Num 2140 1128 3456 Nom Dupont Durant Dubois Adresse Paris Nanterre La Dfense

Deux lignes ne sont jamais identiques Lordre des lignes est indiffrent Chaque case du tableau ne contient quune seule valeur dun type dtermin Lordre des colonnes est indiffrent (cette condition est satisfaite partir du moment o chaque colonne possde un nom).

Schma d une relation - Schma d une BDR


On appelle schma de la relation r la liste des attributs de la relation r avec, pour chaque attribut, son domaine. On dit aussi que r est une relation de schma R
Ex : soit R le schma de la relation r prsente prcdemment R = (Num : D1, Nom : D2, Adresse : D2) avec D1 = {entiers} et D2 = {chane de caractres}

Souvent, on sous-entend le domaine et on note : R = (Num, Nom, Adresse) Un schma de base de donnes relationnelle B est un ensemble de schmas de relation R1, R2, ..., Rp Une base de donnes b sur B est un ensemble de relations r1, r2, ..., rp de schmas respectifs R1, R2, ..., Rp. Une base de donnes relationnelle peut donc tre vue comme un ensemble de tables.

II. Le passage d un schma entitassociation un schma relationnel


Rgles de passage 1. A chaque classe dentits est associ un schma de relation contenant tous les attributs de lentit 2. Pour traduire une classe dassociations binaires entre deux classes dentits E et E, telle que la cardinalit maximale du couple (E,A) est gale 1, on ajoute dans le schma de relation qui traduit E un identifiant de la classe dentits E et les attributs de lassociation A. 3. Pour traduire une classe dassociations binaires de type n:m ou n-aires (n>2), on cre un nouveau schma de relation contenant un identifiant de chacune des classes dentits participant lassociation A et tous les attributs de lassociation A.

Exemple
n:m (1,n) COMMANDE (1,1) passe (0,n) CLIENT NumCli NomCli AdrCli CLIENT = (NumCli, NomCli, AdrCli) PRODUIT = (NumPro, DsPro, PxUnitBrut) COMMANDE = (NCde, DateCde, NumCli) LIGNECOMMANDE = (NCde, NumPro, QtPro) NCde DateCde QtPro contient des lignes de commande portant sur (0,n) PRODUIT NumPro DsPro PxunitBrut

1:n

Exemple
PLAT NumPlat DsPlat NbPers (0,n) (0,n) INGREDIENT NumIng CatIng NomIng QualifIng

Recette (0,n) Qt

CHEF-CUISINIER NumChef NomChef NomRest AdrRest PLAT = (NumPlat, DsPlat, NbPers) INGREDIENT = (NumIng, CatIng, NomIng, QualifIng) CHEF-CUISINIER = (NumChef, NomChef, NomRest, AdrRest) RECETTE = (NumPlat, NumIng, NumChef, Qt)

Cas particulier (1)


VARIETE DANIMAL (0,n) Consomme (1,n) (0,n) QtAni TYPE DALIMENT NumTypeAlim UnitAlim NumVar ClasseAni RaceAni ProvAni

PERIODE NumPer VARIETE = (NumVar, ClasseAni, RaceAni, ProvAni) TYPEALIMENT = (NumTypeAlim, UnitAlim) CONSOMME = (NumVar, NumPr, NumTypeAlim, QtAni)

Inutile de conserver la relation PERIODE = (NumPer) car les priodes sobtiennent par la relation CONSOMME du fait de la cardinalit min.

Cas particulier (2)


Dans le cas particulier de cardinalits (0,1) on pourra droger la rgle 2 pour viter davoir trop de valeurs nulles dans le schma traduisant E.
ETUDIANT NumEtu .... Date-Adhsion (0,1) 1:n adhre (0,n) MUTUELLE NumMut ....

Sil y a trs peu dtudiants qui adhrent une mutuelle , on pourra avoir la table suivante : ADHERE = (NumEtu, NumMut, Date-Adhsion)

Cas des gnralisations avec hritage


Solutions possibles Une spcialisation d une classe C en plusieurs classes C1, C2, , Cn peut tre traduite par : 1) rptition de la cl de la table reprsentant C au niveau de chacune des tables reprsentant C1, C2, , Cn. 2) rptition des attributs reprsentant C au niveau de chacune des tables reprsentant C1, , Cn et par transformation de C en une vue drive de C1, , Cn. 3) une table unique comportant la traduction de C complte avec C1, , Cn, les tables correspondant C1, , Cn tant des vues drives de C par projection sur les attributs pertinents.

Partie IV. La conception d un schma relationnel I. Les dpendances fonctionnelles (dfs)


I.1. Dfinitions I.2. Proprits I.3. Dpendances triviales et non triviales I.4. Fermeture dun ensemble de dfs I.5. Fermeture dun ensemble dattributs - notion de cl I.6. Couverture minimale dun ensemble de dfs

Dfinitions
Soient A et B des attributs, A dtermine fonctionnellement B (A B) si chaque valeur prise par A dtermine au plus une valeur pour B. De faon plus gnrale, soient A1, , Ap, B1, , Bq des attributs, A1, , Ap dterminent fonctionnellement B1, , Bq si la donne d une valeur pour chacun des attributs A1, , Ap dtermine au plus une valeur pour chacun des attributs B1, , Bq. Dans le contexte du modle relationnel : Soit R un schma de relation et X et Y deux sous-ensembles quelconques de l ensemble des attributs de R. Nous dirons que Y est en dpendance fonctionnelle avec X ssi, pour n importe quelle valeur licite de R, chaque valeur de X dans R correspond exactement une seule valeur de Y dans R.

Proprits
Rgles d Armstrong Rflexivit : YXXY Dfs triviales: impossible quelles ne soient pas satisfaites! Augmentation : X Y XZ YZ Transitivit : X Y et Y Z X Z Autres proprits

Auto-dtermination : X X Dcomposition : X YZ X Y et X Z Union : X Y et X Z X YZ Pseudo-Transitivit : X Y et YZ W XZ W Composition : X Y et Z W XZ YW

Fermeture
On appelle fermeture d un ensemble de dfs F (note F+) l ensemble des dfs impliques par F. La fermeture d un ensemble d attributs X relativement un ensemble de dfs F est l ensemble des attributs A pour lesquels la df X A est dans la fermeture de F. Nous noterons cet ensemble X+. Etant donns R = (A1, , An), F un ensemble de dfs sur R, X un ensemble d attributs de R, on dit que X est une cl de R muni de F si une des conditions suivantes (quivalentes) est satisfaite : (1) X R appartient F+ (2) F |= X R (3) Toute relation r sur R qui satisfait F vrifie X R

Cl - Cl minimale
Vrifier que K est une cl du schma de relation R muni de l ensemble des dfs F revient montrer que tous les attributs de R appartiennent K+. X est une cl minimale (de R muni de F) ssi X est une cl et si tout sous-ensemble de X, diffrent de X, n en est pas une.

Proprits
Tout attribut qui ne figure pas dans le membre droit d une df non triviale de F doit appartenir toute cl de R. Si lensemble des attributs de R qui ne figure pas en membre droit d une df non triviale de F est une cl, alors F possde une cl minimale unique forme de lensemble de ces attributs. Un schma de relation muni d une seule df possde une cl minimale unique.

Couverture minimale

On appelle couverture minimale de F un ensemble G de df tel que : (1) G+ = F+ (2) Tout membre droit dune df est rduit un seul attribut (3) Pour aucune df X A de G, on n a G - {X A} |= G (4) Pour aucune df X A de G, on na G |= ( G - {X A} ) Y A avec Y X. Rq : en gnral, il n y a pas unicit de la couverture minimale