Systèmes de gestion de BD Généralités
Historique Origine « course à la lune » SGBD : 1er congrès en 1964 Produits de la recherche IBM
Génération I : SGBD Hiérarchiques Génération II : SGBD réseaux Génération 0 : SGF Génération I : SGBD Hiérarchiques (1965-1970) Génération II : SGBD réseaux (1970-1980) Génération III : SGBD relationnels (1985-2000) Génération IV : SGBD Relationnel-Objet (1995- .)
Services Conception en 3 couches Persistance des données SGF intégré Sécurité des données Administration centralisée Consistance (théorie, normalisation)
Développement en 3 couches Couche conceptuelle Chef de projet analystes Couche logique Programmeurs DBA Programmeurs système DBA Couche physique
Le Modèle Conceptuel de Données (MCD) Entité-Associations
Type d’entité
Associations
Associations (suite) Cardinalité (liens hiérarchiques, fonctionnels et maillés) Propriétés Arité (binaires, ternaires, … , n-aires Réflexivité
Types de liens 1,N 1,1 : Lien hiérarchique 1,1 1,N : Lien fonctionnel 1,N 1,N : Lien maillé
Racine feuilles = hiérarchique Feuilles racine = fonctionnel b1 b2 b3 a2 a1 a1 Lien maillé b1 b2 b3 b4 b5
Associations (suite)
Associations (suite)
Acteur FILMS PERSONNES Réalisateur Scénariste Décorateur
MUSEE numMusee nom numStatue nomStatue sculpteur directeur_musee
STATUES numStatue nomStatue sculpteur MUSEE numMusee Nom directeur Expose
Le modèle relationnel
Généralités Né en 70 d'une thèse (E. Codd) Vision ensembliste Implémentation d'un ensemble = une table Type d'entité = une table Concept de domaine : ensemble de valeurs
table = sous-ensemble du produit cartésien de domaines colonne = attribut ligne = n-uplet ou tuple Schéma relationnel = nom + liste des attributs Employes(numemp, nom, prénom,salaire, emploi, département)
clés candidates, clé primaire, clés secondaires intention d’une table, extension d’une table
Traduction MCD Relationnel Un type d'entité = une table Une association construite sur un lien maillé = une table Le lien fonctionnel est traduit par un attribut représentant l’association Les propriétés de l’association sur lien fonctionnel l’accompagnent
Règles d’intégrité fonctionnelle Unicité : Clé primaire (valeur unique, non nulle, implémentée par index) Référence : Pas de BD sans elle ! Domaine : Appartenance d'un attribut à un domaine
Intégrité fonctionnelle Chaque feuille de l’arbre voit sa racine !
Algèbre relationnelle Opérateurs monadiques
Restriction
Projection
Algèbre relationnelle Opérateurs dyadiques
Intersection
Union
Différence
Produit cartésien
Jointures Equi-jointure et inéqui-jointure theta-jointures semi-jointures jointure et semi-jointure naturelles
Jointures (suite)
Composition d’opérations EMP(numemp, nomemp, salaire, emploi, departement) DEPT(numdept, nomdept, adresse, ville)
Composition d’opérations
Normalisation
Anomalies de fonctionnement Relation universelle: U(numemp, nomemp, salaire, emploi, departement, directeur, service, batiment, adresse, bureau, telephone) Incohérences Perte de performances
Dépendances fonctionnelles Modèle « valeur » Attention au sens de la flèche! Les données doivent avoir des valeurs stables : NIP âge L’étudiant doit garder le même âge !!
Axiomes d’Armstrong Réflexivité Augmentation Transitivité Pseudo-transitivité Union Décomposition
Réflexivité : X Y X Y Augmentation : X Y X YW et W Transitivité : X Y X Z et Y Z
Pseudo-transitivité : X Y XW Z et YW Z Union : X Y X YZ et X Z Décomposition : X YZ X Y et X Z
Graphe de D.F Couverture minimale Couverture maximale Fermeture transitive Conformité des schémas de D.F
A B C D E Graphe F
A B C D E Couverture minimale de F
A B C D E Fermeture transitive de F notée F+
Décomposition « sans perte » Projection et jointure : U U1 U ->U2 U U3 on doit avoir : U= U1 join U2 join U3
Première forme normale (1NF) Tous les attributs sont construits sur des domaines simples. Personnes(numper, nom, enfants) Pas 1NF
1 TOTO Pierre, Paul, jacques 2 TRUC Marie, Jean, Françoise 3 MACHIN Georges, Amelie Pierre 1 Paul Jacques Marie 2 Jean … 1 TOTO 2 TRUC 3 MACHIN
Deuxième forme normale (2NF) Clé primaire multi-attributs Pas de dépendance entre une partie de la clé et un attribut non clé.
Anomalies de fonctionnement ex : Stock(refpiece, entrepot, qté, adresse) Insertion : parfois impossible quand toute la clé n’est pas déterminée Mise à jour: balayage exhaustif Suppression : perte possible d’informations associées.
Exemple de table non 2NF Stock(refpiece, entrepot, qté, adresse) Doit être décomposée en : Stock(refpiece, entrepot, qté) Local(entrepot, adresse)
Troisième forme normale (3NF) Pas de dépendance entre attributs non-clé (La clé primaire agit seule vers les autres attributs)
Table non 3NF EMP(numemp, nom, service, batiment) (service bâtiment) Décomposition: EMP(numemp, nom, service) Localisation(service, batiment)
Forme importante Parmi toutes les solutions possibles, il en existe au moins une qui préserve toutes les D.F
Forme de Boyce-Codd (BCNF) La clé ne dépend pas d’attributs non-clé (La clé primaire est la seule clé de la table) En général, perte de D.F
Exemple de non BCNF Entretiens(candidat, datexam, heure, jury, salle) Avec les D.F : Candidat, datexam heure, jury, salle Jury, datexam, heure candidat Jury, datexam salle
Décomposition La D.F jury, datexam, heurecandidat est perdue Entretiens(candidat, datexam, heure, jury) Planning(jury, datexam, salle) La D.F jury, datexam, heurecandidat est perdue
Dépendances multi-valuées AVION VOL PILOTE 100 10 Pierre 20 200 Paul 30 Il n’y a pas de clé possible pour cette table !
Si on a x1zy1 et x2zy2 Si on peut avoir, qu’on a eu ou qu’on aura : x2zy1 et/ou x1zy2 Alors, il y a multi-détermination entre X et Y Z assure un rôle de corrélation entre les deux ensembles X et Y
Axiomes Complémentation Multi-augmentation Pseudo-transitivité Coalescence Union Intersection Différence
4NF Décomposition sans perte d’un ensemble de D.M: Toute source de DM détermine un attribut