480 likes | 649 Views
III. Conception de schéma de base de données. Introduction à la conception. Le schéma change rarement importance du choix initial de regroupement des attributs respect de certains critères Processus appelé conception de schéma : description d’une un « bon » schéma
E N D
Introduction à la conception • Le schéma change rarement • importance du choix initial de regroupement des attributs • respect de certains critères Processus appelé conception de schéma : description d’une un « bon » schéma application Bases de données - Yann Loyer
Description d’une application • Attributs : caractéristiques pertinentes des informations (ex: nom, département,…) • Univers : ensemble des attributs • Les liens sémantiques entre attributs, appelés dépendances de données • décrivent des propriétés que doivent satisfaire les données • imposent des restrictions sur les bases possibles • Peuvent être considérées comme des contraintes d’intégrité • donnent les bons regroupements d’attributs en schémas de relation Bases de données - Yann Loyer
Description du processus (1) • Définition de l’univers U • Définition de l’ensemble des dépendances F • Décompositions successives de U par rapport à F un ou plusieurs schémas de BD Décomposition de U : tout ensemble S = {R1,…, Rn}de schémas de relation tel que 1inRi = U S est un schéma de base de données Bases de données - Yann Loyer
Description du processus (2) • Le processus est dirigé par certains critères que doivent respecter les décompositions finales : • Économie de stockage des données • Économie dans le traitement des mises à jours • Forme appropriée pour les dépendances dans chaque schéma de relation • Nous considérerons un type particulier de dépendances appelées dépendances fonctionnelles • II.1) aspects essentiels de dépendances fonctionnelles (df) • II.2) processus de conception de schéma fondé sur les df Bases de données - Yann Loyer
II.1) Dépendances fonctionnelles Soit U un schéma de relation • Une dépendance fonctionnelle (df) sur U est un symbole de la forme X Y tel que XU et YU • Une relation r sur U satisfait XY , noté r╞XY, si t,t’ r ( t(X) = t’(X) t(Y) = t’(Y) ) • r╞ XY peut également se lire : • X donne Y dans r • X détermine Y dans r Bases de données - Yann Loyer
Dépendances fonctionnelles • Dépendance fonctionnelle triviale : • XY avec Y X • satisfaites par toute relation • information sans intérêt • Soit F un ensemble de df sur U : • F = indique que F contient uniquement des df triviales • r satisfait F, noté r╞ F, si f F (r╞ f) Bases de données - Yann Loyer
Implication sémantique (1) Soient F et G deux ensembles de df sur U et f une df sur U • F implique f, noté F╞ f, si r (r╞ F r╞ f) • F implique G, noté F╞ G, si gG (F╞ g) • F et G sont équivalents, noté F G, si F╞ G et G╞ F La fermeture de F est l’ensemble de toutes les df que l’on peut impliquer à partir de F, i.e. F+ = {XY | F╞ XY} F et G sont équivalents si F+ = G+ Bases de données - Yann Loyer
Convention Soient R et S deux sous-ensembles de U, soit A un attribut de U, • RS représente R S • RA représente R {A} Bases de données - Yann Loyer
Implication sémantique (2) Proposition: • F╞ X • X Y╞ XZ YZ • X Y, Y Z ╞ X Z • X Y, X Z ╞ X YZ • X YZ ╞ X Y • X Y, YZ W ╞ XZ W Bases de données - Yann Loyer
Axiomatisation Répondre à la question « F implique-t-il f ? » est difficile Caractérisation syntaxique de l’implication sémantique à l’aide d’un axiome et de deux règles (axiome, augmentation, transitivité) Le système d’inférence qui en résulte est appelé système d’Armstrong Bases de données - Yann Loyer
Système d’Armstrong F engendre f, noté F├ f s’il existe une suite de df f1,…,fntelle que f = fn et i{1,…,n} • soit fi F • soit fiest engendrée par f1,…,fi-1à partir de: • Axiome :F├ X • Augmentation :X Y├ XZ YZ • Transitivité : X Y, Y Z ├ X Z Bases de données - Yann Loyer
Système d’Armstrong (2) La suite f1,…,fnest appelée dérivation ou démonstration de f à partir de F Exemple : F = {A C; B D} ├ AB CD Théorème 1 : F├ X Y F╞ X Y • le système d’Armstrong est sain et complet • implication dérivation Bases de données - Yann Loyer
Fermeture d’un ensemble d’attributs Difficile de répondre à la question « F engendre-t-il f ? » • recherche d’un algorithme efficace fondé sur la notion de fermeture d’un ensemble d’attributs Bases de données - Yann Loyer
Fermeture d’un ensemble d’attributs Soit X un ensemble d’attributs La fermeture de X par rapport à F, notée XF+, est définie par XF+= max {Y U | F├ X Y} nouvelle caractérisation de F├ X Y Théorème 2 : F├ X Y Y XF+ Bases de données - Yann Loyer
Algorithmes (1) Le théorème 1 fournit un algorithme pour répondre à la question « F implique-t-il f ? » : • Calculer XF+, • Si Y XF+ alors oui sinon non Besoin d’un algorithme efficace de calcul de XF+ Bases de données - Yann Loyer
Algorithmes (2) Calcul de XF+: Entrée: un schéma de relation U, un ensemble d’attributs X U, un ensemble F de df sur U Sortie: XF+ Méthode: ferm := X tant que (ferm change et ferm U) répéter pour tout Y Z F si Y ferm alors ferm := ferm Z return ferm Bases de données - Yann Loyer
Clé d’un schéma de relation Soit K U et F un ensemble de df sur U • Définition : K est une surclé de U par rapport à F si l’une des propriétés suivantes est satisfaite : • F╞ K U • F├ K U • KF+ = U • K est une clé de U par rapport à F si : • K est une surclé de U par rapport à F, et • K est minimale (i.e. X K(X=K XF+ U) Bases de données - Yann Loyer
III.2 Conception de schéma fondée sur les df Le processus de conception est guidé par des critères que doit satisfaire la décomposition finale qui doit être : • Sans Perte d’Information (SPI) • Sans Perte de Dépendances (SPD) • en Forme Normale Bases de données - Yann Loyer
III.2.1 Décomposition Sans Perte d’Information (SPI) • La décomposition d’un schéma de relation consiste à scinder ce schéma en plusieurs sous-schémas Décomposition de U : tout ensemble S = {R1,…, Rn}de schémas de relation tel que 1inRi = U acceptable si on peut à tout moment reconstruire la relation de départ par jointure Bases de données - Yann Loyer
Décomposition SPI Définition : Soient U un schéma de relation et F un ensemble de df sur U. Une décomposition S = {R1,…,Rn}est sans perte d’information(SPI) si u (u╞ F R1(u) || … ||Rn(u) = u) Bases de données - Yann Loyer
Algorithme de poursuite (chase) Entrée: U = {A1,…, An} , S = {R1,…, Rm}, F Sortie: oui/non S est SPI par rapport à F Méthode: • Construction du tableau initial pour i=1 à m, faire pour j=1 à n, faire si Aj Ri then T[i](Aj) := aj else T[i](Aj) := xi,j • Construction du tableau final tant que le tableau change, faire pour toute df X Y F, si deux lignes ont les mêmes valeurs sur X, alors égaliser leurs valeurs sur Y 3. s’il existe une ligne sans variables alors retourner oui sinon retourner non Bases de données - Yann Loyer
Algorithme de poursuite (chase) Remarques: • l’algorithme termine • le tableau final ne dépend pas de l’ordre d’application des df • on peut utiliser toute couverture de F • dès que le tableau contient une ligne sans variables, on peut arrêter Bases de données - Yann Loyer
III.2.1 Décomposition Sans Perte de Dépendances (SPD) On choisit de stocker les données suivant une décomposition S du schéma il faut vérifier que la base reste cohérente, i.e. qu’elle satisfait les df à chaque m.a.j., il faut reconstruire la relation sur le schéma de départ U, sur lequel sont énoncées les df. Bases de données - Yann Loyer
Décomposition SPD Problème : les jointures sont coûteuses est-il possible de vérifier la cohérence de la base sans reconstruire la relation sur U, i.e. en se servant uniquement des relations stockées ? oui si S « incorpore » un ensemble de df G équivalent à F Bases de données - Yann Loyer
Décomposition SPD Définition : une décomposition S de U est dite sans perte de dépendances (SPD) par rapport à F s’il existe un ensemble G de df tel que : • F G • XY G (Ri S (XY Ri)) Bases de données - Yann Loyer
Décomposition SPD Définition : XY est applicable sur R si XY R Définition :FR est l’ensemble de toutes les df impliquées par F applicables sur R, i.e. FR = {XY | F├ X Y et XY R} FR est l’ensemble de toutes les df impliquées par F dont la satisfaction peut être vérifiée « sur R » Bases de données - Yann Loyer
Algorithme SPD Proposition : une décomposition S = {R1,…,Rn} de U est SPD par rapport à F si FR1 … FRn╞ F • algorithme pour vérifier qu’une décomposition S = {R1,…,Rn}de U est SPD par rapport à F : • pour i = 1 à n, calculer FRi • si FR1 … FRn╞ F alors S est SPD Bases de données - Yann Loyer
III.2.3 Formes Normales Les formes normales permettent d’éviter le stockage de données redondantes Définition : U est en troisième forme normale (3FN) par rapport à F si tout attribut n’appartenant à aucune clé de U ne dépend que des surclés de U Définition : U est en forme normale de Boyce-Codd (FNBC) par rapport à F si toute df non triviale de F a pour partie gauche une surclé de U Bases de données - Yann Loyer
Algorithme de Bernstein Entrée: U = {A1,…, An} , F Sortie: une décomposition S de U SPI, SPD et 3FN par rapport à F Méthode: • Calculer les clés de U par rapport à F • Si U est en 3FN par rapport à F alors stop • Sinon • calculer une couverture minimale G de F • regrouper les df de G ayant la même partie gauche {XY1 ,… , XYn} et créer un schéma RX = (X,Y1 ,… , Yn) • si aucun des schémas obtenus à l’étape précédente ne contient une clé de U alors rajouter un schéma contenant une clé de U Bases de données - Yann Loyer
Calcul de couverture minimale La couverture minimale de F est un ensemble de df équivalent à F et se calcule en trois étapes : • Réduction à droite • Réduction à gauche • Suppression des redondances Bases de données - Yann Loyer
Calcul de couverture minimale • Réduction à droite : remplacer toute df XA1…An de F par {XA1 ,… , XAn} • Réduction à gauche : pour toute df XY, s’il existe Z X tel que F├ ZY, alors remplacer XY par ZY • Suppression des redondances : pour toute df XY, si F \ {XY}├ XY alors supprimer XY Bases de données - Yann Loyer
III.3 Conception de schéma de BD Modèle Entité/Association
Éléments du modèle : entité Les entités permettent de décrire des objets ou individus du système d’information Exemple : « Pierre », « la voiture »… • Entité : classe générique d’objets ou individus ayant les mêmes caractéristiques pour un modélisateur placé dans un environnement donné Exemple : Personne, Voiture… Bases de données - Yann Loyer
Éléments du modèle : association • Les associations représentent des liens entre objets et individus du système d’information • Elles structurent les objets dans l’espace du discours Exemple : « Pierre » « possède » « la voiture », « Pierre » « est le fils de » « Marie » • Association : classe générique de liens reconnus ou possibles entre objets et/ou individus appartenant à des entités du système Exemple : « Personne » « possède » « Voiture » • Association entre 2 entités : association binaire • Association entre n entités : association n-aire Bases de données - Yann Loyer
Éléments du modèle : attributs • Attributs : propriété distinctive d’une entité ou d’une association Exemple : « Personne » nom, prénom,… • Occurrence : valeur des attributs d’une entité ou association Exemple : nom = « Dupont », prénom = « Pierre »,… est une occurrence de « Personne » Bases de données - Yann Loyer
Remarques • Plusieurs occurrences d’une entité ou d’une association peuvent avoir une même valeur pour un attribut • Certains attributs permettent l’identification des occurrences (exemple : n° d’étudiant) • Une entité possède au moins un attribut • Un attribut appartient à au plus une entité • Les noms d’attributs doivent être aussi peu ambigu que possible (exemple : l’entité « étudiant » possède l’attribut nom_étudiant et l’entité « prof » possède l’attribut nom_prof) Bases de données - Yann Loyer
Clé d’entités • Clé d’entités : attribut ou ensemble d’attributs permettant d’identifier de manière unique les occurrences de l’entité • Une entité peut avoir plusieurs clés • En général, on résout le problème de l’attribution de clé à une entité en y ajoutant un attribut fictif tel qu’un code ou numéro Bases de données - Yann Loyer
Types d’association • Type d’association: couple déterminé par le nombre d’occurrences mises en jeu de part et d’autre d’une association binaire • Association un à un (1:1) : si à une occurrence de l’entité E1 est associée au plus occurrence de l’entité E2 et réciproquement (exemple : « voiture » « correspond à » « carte grise ») • Association un à plusieurs (1:n) : si à une occurrence de l’entité E1 est associée au plus une occurrence de l’entité E2, mais qu’à une occurrence de l’entité E2 peuvent être associées plusieurs occurrences de l’entité E1 (ex : « musée » « situé dans » « ville ») • Association plusieurs à plusieurs (n:m) : si à une occurrence de l’entité E1 peuvent être associées plusieurs occurrences de l’entité E2 et réciproquement (ex : « personne » « possède » « voiture ») Bases de données - Yann Loyer
Cardinalité d’un couple E/A • Cardinalité d’un couple E/A : couple (x,y) d’entiers tels que : • x est le nombre minimal d’occurrences de l’association pouvant exister pour une occurrence donnée de l’entité • y est le nombre maximal d’occurrences de l’association pouvant exister pour une occurrence donnée de l’entité Exemple : « Client » « Passe » « Commande » (0,n) (1,1) Bases de données - Yann Loyer
Représentation graphique (0,n) 1:n (1,1) entité 1 association entité 2 attribut1 attribut5 attribut4 attribut2 attribut6 attribut3 Bases de données - Yann Loyer
Processus de conception • Reconnaissance des entités • Reconnaissance des associations • Reconnaissance des attributs pertinents • Placement des attributs • Choix des types d’associations (binaires) • Choix des cardinalités des couples E/A • Traduction en relationnel Bases de données - Yann Loyer
Problème de représentation du temps • Une représentation est dite synchronique lorsque le temps n’intervient pas comme élément discriminateur (vision instantanée de la réalité modélisée) étudiant assure voiture montant date-contrat Bases de données - Yann Loyer
Problème de représentation du temps • Une représentation est dite diachronique lorsque l’on prend en compte des éléments temporels comme attributs ou entités discriminants (vision historique de la réalité modélisée) • Deux méthodes : • Entités temporelles • Entités représentant des événements datés Bases de données - Yann Loyer
Entités temporelles Exemple : étudiant assure voiture date Bases de données - Yann Loyer
Événements datés Exemple : étudiant assure voiture police numéro-police date-police montant-police Bases de données - Yann Loyer
Traduction de E/A en MR Règles de traduction : • à chaque entité est associée un schéma de relation composé de tous les attributs de l’entité • si dans une association A il existe une entité E pour laquelle la cardinalité du couple (E,A) est égale à (0,1) ou (1,1), on ajoute dans le schéma de relation R qui traduit E une clé de chacune des autres entités participant à l’association et les attributs de A • si dans une association A il n’existe pas d’entité E pour laquelle la cardinalité du couple (E,A) est égale à (0,1) ou (1,1), on crée un nouveau schéma de relation contenant une clé de chacune des entités participant à l’association et les attributs de A Bases de données - Yann Loyer