Vous êtes sur la page 1sur 50

Dfinitions

Base de donnes : ensemble cohrent de donnes structures, fiables et partages entre plusieurs utilisateurs Systme de gestion de base de donnes (SGBD / DBMS) : logiciel de haut niveau permettant de grer, contrler et manipuler les donnes

12/03/2006

Architecture fonctionnelle d'un SGBD


Niveau externe

Niveau logique

Niveau physique

Niveau physique

S'appuie sur le systme de gestion de fichiers de l'OS pour stocker les donnes Gre le partage des donnes et les accs concurrents Assure la fiabilit des donnes, notamment suite des pannes La personne responsable de ce niveau est l'administrateur

Niveau logique

Correspond la vision des donnes indpendamment des applications individuelles Le langage de dfinition de donnes permet de mettre en place les donnes de manire structure et correspondant au modle labor Le langage de manipulation de donnes permet la consultation et la mise jour de ces donnes

Niveau externe

Correspond aux vues utilisateurs via leurs applications Les accs utilisateurs peuvent tre distants, provenir de diverses interfaces et langages Chaque utilisateur ne voit que les donnes qui lui sont utiles Il permet le dialogue courant avec la base de donnes

Repres historiques

Dbut des annes 60 : les donnes sont accessibles par les fichiers Milieu des annes 60 : Bases de donnes hirarchiques et rseaux 73 : apparition des bases de donnes relationnelles 90 : apparition de XML

BDD : Objectifs

Assurer l'indpendance physique Assurer l'indpendance logique Assurer la scurit et la confidentialit des donnes Garantir la fiabilit des donnes Garantir la cohrence des donnes Pouvoir rpondre des requtes Fournir diffrents langages d'accs selon l'utilisateur Permettre l'administration centralise

Le modle relationnel

Modle relationnel conu par E.F. Codd en 1970 Correspond une dfinition rigoureuse des donnes Caractris par des rgles d'intgrit garantissant la cohrence des donnes Utilise la puissance des oprateurs de l'algbre relationnelle

Objectifs du modle relationnel

Permettre l'independance des programmes par rapport la reprsentation interne des donnes Pouvoir traiter les problmes de cohrence et de redondance des donnes Dvelopper un langage non procdurale de manipulation des donnes

==> Objectifs atteints : bas sur l'algbre relationnelle + langage de manipulation SQL

Les concepts

3 concepts fondamentaux :

Domaine : ensemble de valeurs Relation : tableau deux dimensions Attribut : nom d'une colonne du tableau

L'attribut prend ses valeurs dans un domaine Deux attributs ne peuvent porter le mme nom Chaque ligne du tableau est appele tuple

Schma relationnel

Schma d'une relation : nom de la relation suivi de la liste des attributs et de la dfinition de leurs domaines Schma relationnel = ensemble des schmas des relations d'une base de donnes

SALARIE(matricule : entier, nom : chane de caractres, grade : {employ, agent, cadre, directeur}, salaire : [7000, 240000])

La relation
SALARIE
Attributs

Tuples

Matricule 1025 521 1489 653 1325

Nom Dubois Martin Journade Lapaj Gayan

Grade Employ Directeur Agent Cadre Employ

Salaire 12000 320000 10000 150000 15000

Cardinalit de la relation = nombre de tuples (5) Dgr de la relation = nombre d'attributs (4)

EXERCICE

Contraintes d'intgrit

Expression logique qui doit tre toujours vrai dans la base de donnes Permet de contrler la cohrence des donnes Contrainte de cl Contrainte de domaine Contrainte de rfrences

Contrainte de cl

Une cl de relation est un sous-ensemble d'attributs qui permet de caractriser tout enregistrement d'une relation Il doit exister un sous-ensemble dattributs pour lequel deux tuples ne peuvent tre identiques Les cls candidates sont les attributs (ou groupes) pouvant jouer le rle de cl. La cl choisie est appele cl primaire

Contrainte de cl : Exemple
R A a a b c a e B 1 3 5 1 2 3 C D Paris a Toulouse c Lyon k Paris a Paris c Toulouse b

R(A, B, C, D)

NB : La cl primaire de la relation est souligne

Cl trangre

On appelle cl trangre tout attribut qui est cl primaire dans une autre relation
Eleve(kEleve, nom, prenom, dateNaissance, kClasse#) Classe(kClasse, libell)

NB : Les cls trangres sont suivies d'un #

EXERCICE

Contraintes d'intgrit (suite)

Contrainte de domaine : Restriction des valeurs possibles d'un attribut


Le montant du salaire doit tre compris entre 1000 et 3000

Contrainte de relation : Une cl primaire doit toujours tre unique et dfinie (NOT NULL) Contrainte d'intgrit rfrentielle : Impose que la valeur d'une cl trangre existe dj comme valeur de cl primaire

EXERCICE

Thorie de la normalisation

Permet de dfinir formellement la qualit des tables au regard du problme pos par la redondance des donnes 2 faons de constituer de bonnes tables :

La dcomposition revient dcomposer une table contenant l'ensemble des attributs Transformer le modle entit-relation en formalisme relationnel

Exemple d'anomalies
stock(numFrs, adrFrs, numProd, puHT, qte)
numFrs adrFrs numProd puHT 3 Toulouse 52 65 22 Colomiers 10 15 22 Colomiers 25 10 3 Toulouse 25 10 3 Blagnac 10 15

qte 10 5 12 5 20

Changement d'adresse d'un fournisseur Insertion d'un produit d'un fournisseur connu qui a chang d'adresse Si tous les produits d'un fournisseur sont supprims, l'adresse du fournisseur est perdue

Normalisation ou traduction EA
Modle EA

Niveau conceptuel

Rgles de validation

Modle EA valide Schma relationnel

Niveau logique

Rgles de validation

Traduction

Schma relationnel normalis

Dpendance fonctionnelle
Soit une relation R(X, Y, Z) Il existe une dpendance fonctionnelle : X --> Y si et seulement si dans R une mme valeur de X correspond toujours une mme valeur de Y X et Y peuvent tre des ensembles d'attributs d'une relation Exemple : numFrs --> nomFrs, adrFrs

Graphe des DF

Ce graphe permet de dterminer les cls de la relation A B C D

Le graphe doit tre minimum :


pas de DF dduite que des DF lmentaires

DF dduites
A B C D

A --> E est une DF dduite car il existe un autre chemin A --> D --> E

DF non lmentaires
A B C

D (A, B, C) --> D est non lmentaire car (A, B) --> D existe

Exemple
R( noEtudiant, nom, prnom, libCours, anne, nbCrdit, prof, note) noEtudiant note libCours anne nbCrdit prof nom prnom

EXERCICE

Normalisation par dcomposition

Si une relation prsente des problmes de redondances il faut la dcomposer en plusieurs relations La dcomposition devra s'effectuer

sans perte d'informations sans perte de dpendances fonctionnelles

Toute DF doit tre dans une des relations obtenues

Forme normale

Une forme normale dsigne un type de relation entre deux entits dans une base de donnes relationnelle. La normalisation des modles de donnes

permet de vrifier la robustesse de leur conception permet d'amliorer la modlisation (obtenir une meilleure reprsentation) permet de faciliter la mmorisation des donnes (et donc viter la redondance et les problmes sousjacents de mise jour ou de cohrence)

La normalisation sapplique toutes les entits et aux relations porteuses de proprits.

Les formes normales

1FN : la table ne contient que des attributs atomiques (non dcomposables) 2FN : il n'existe pas de DF entre une partie de la cl et une colonne non cl 3FN : il n'existe aucune DF entre les colonnes non cl

La plupart des tables en 3FN ne comportent plus de redondance

Premire forme normale

Chaque attribut doit contenir une valeur atomique (non compose) Tous les attributs doivent tre lmentaires et non rptitifs

Exemple : stock(numFrs, adrFrs, numProd, puHT, qte)

Exemple
Dans la relation STAGIAIRE, on veut conserver 3 stages, on a donc rpt 3 fois le code stage.
STAGIAIRE CODE-S NOM-S 89001 90001 92003 89007 91010 ALPHA BRIN CACHOU DUPONT MARTIN CODE-F CAD21 PF12 DOM11 DOM12 INF11 CODE-F CAD22 PF15 CODE-F SIB123

Exemple
Cette relation nest pas en premire forme normale ; le passage en 1NF donne la relation suivante : STAGIAIRE
CODE-S 89001 89001 90001 90001 90001 NOM-S ALPHA ALPHA BRIN BRIN BRIN CODE-F CAD21 CAD22 PF12 PF15 SIB123

Le nombre de tuples a t augment et on introduit une importante redondance (les noms sont rpts dans chaque nouveau tuple).

EXERCICE

Deuxieme forme normale


La relation doit tre en premire forme normale Chaque attribut qui n'appartient pas la cl ne dpend pas uniquement d'une partie de la cl Permet d'liminer les attributs qui ne dcrivent pas "l'objet" Stock(numFrs, villeFrs, numProd, puHT, qte) Fournisseur(numFrs, villeFrs) Produit(numProd, puHT, qte)

Exemple :

Exemple
Pour diffrencier deux tuples de la relation STAGIAIRE mise en 1NF, il faut associer les 3 attributs CODE_S, NOM_S, CODE_F, qui constituent donc la cl primaire. Or, le nom du stagiaire ne dpend que du code stagiaire et le code de la formation est totalement indpendant du stagiaire (il existe indpendamment des stagiaires qui suivent la formation). Cette relation nest donc pas en deuxime forme normale.

Exemple

Pour mettre la relation en deuxime forme normale, on est amen crer deux nouvelles relations: FORMATION: qui permettra de connatre les formations SUIVRE: qui permettra de retrouver lintgralit des informations que lon avait avant la mise en 2NF, cest dire le lien entre un stagiaire et la formation auquel il a particip.

Exemple
STAGIAIRE CODE-S 89001 90001 92003 89007 91010 NOM-S ALPHA BRIN CACHOU DUPONT MARTIN CODE-F CAD21 CAD22 PF12 PF15 SIB123 DOM11 DOM12 INF11 SUIVRE CODE-S 89001 89001 90001 90001 90001 92003 89007 91010 CODE-F CAD21 CAD22 PF12 PF15 SIB123 DOM11 DOM12 INF11 FORMATION LIBELLE Cadastre administratif Cadastre tecnique Publicit Foncire publicit Publicit Foncire Bureatique Domaine Gestion Domaine evaluation Informatique Gnrale

EXERCICE

Troisime forme normale


La relation doit tre en deuxime forme normale Les attributs qui ne font pas partie de la cl ne dpendent pas d'attributs ne faisant pas non plus partie de la cl Permet dliminer des sous-relations incluses Fournisseur(numFrs, ville, pays) Fournisseur(numFrs, ville) Lieu(ville, pays)

Exemple :

Exemple

Considrons la relation PRODUIT qui a pour schma: PRODUIT (CODE-PROD, LIBELLE, PRIX,CODE-TVA, TAUX-TVA) Lattribut TAUX_TVA dpend de lattribut CODE_TVA qui nest pas un lment de la cl; cette relation nest donc pas en troisime forme normale! Le passage en 3NF conduit crer une relation nouvelle, TVA de schma: TVA: (CODE_TVA, TAUX_TVA)

EXERCICE

Forme normale de Boyce-Codd

Si une relation en troisime forme normale a une cl concatne, aucun des attributs de cette cl ne doit tre en dpendance fonctionnelle dun autre attribut Cette normalisation conduit parfois dcomposer une relation en deux relations plus simples.

Exemple
Considrons la relation Vins(cru, pays, rgion) avec les dpendances fonctionnelles supposes : rgion --> pays (cru, pays) --> rgion
Cru Chenas Pomerol Chablis Brouilly Chablis Pays France France France France Etats-Unis Rgion Beaujolais Bordeaux Bourgogne Beaujolais Californie

Exemple

Cette relation est bien en troisime forme normale car aucun attribut non cl ne dpend dune partie de la cl ou dun attribut non cl. Cependant, on y trouve de nombreuses redondances La relation Vins pourra tre dcompose en deux relations :

Crus (cru, rgion#) Rgions (rgion, pays)

La dpendance fonctionnelle (cru, pays)-->rgion est perdue mais elle peut tre recompose par jointure.

Rsum des formes normales


1NF
liminer toute dpendance non totale des attributs sur la cl primaire

2NF
liminer toute dpendance entre deux attributs ne faisant pas partie de la cl primaire

3NF
liminer toute dpendance partir dun attribut ordinaire vers une partie de cl primaire

BCNF

Quatrime forme normale

Pour toute relation de dimension n en forme normale de Boyce-Codd, les relations de dimension n-1 construites sur sa collection doivent avoir un sens. Il ne doit pas tre possible de reconstituer les occurrences de la relation de dimension n par jointure de deux relations de dimension n-1 Cette normalisation conduit parfois dcomposer une relation complexe en deux relations plus simples.

Exemple
Employe(noEmploye, stage, sport)
noEmploye stage sport 10 informatique tennis 10 informatique biathlon 10 cuisine tennis 10 cuisine biathlon

R1(noEmploye, stage) R2(noEmploye, sport)