Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLouie Carpentier Modifié depuis plus de 10 années
1
Modèle conceptuel : Entité Association Modèle logique : Relationnel
Modélisation des BD Modèle conceptuel : Entité Association Modèle logique : Relationnel Conversion Normalisation
2
Démarche de construction d’une BD relationnelle
Interview Documents Modélisation Entité association Schéma logique en Entité-Association Transformation en relationnel Schéma conceptuel en relationnel Thomas Devogele ISI 204
3
Démarche Analyse du problème et modélisation conceptuelle de la BD
représentation informationnelle de l’organisation étudiée à l ’aide de méthodes : AXIAL, OMT, MERISE UML (étudié en VA) ... Implantation logique de la BD transformation du modèle conceptuel des données en objets propres au type de SGBD utilisé Implantation physique de la BD : phase totalement prise en charge par le SGBD adopté Thomas Devogele ISI 204
4
Modèle Conceptuel des Données
Entité - Association
5
Modèle ER entité-relation ou entité-association
Modèle Conceptuel des Données (MCD) description statique du système d’information visé à l’aide : D’entité : D’association : D’attributs: Pas de modélisation des traitements Langage Graphique Thomas Devogele ISI 204
6
Entité permet de modéliser un ensemble d'objets concrets ou abstraits de même nature. représentent des phénomènes du monde réel (élèves, écoles). l'entité élèves représente tous les élèves de notre système d'information. Représentation graphique (rectangle) élèves écoles Thomas Devogele ISI 204
7
Association ou relation
représentent les liens entre deux ou plusieurs entités.. Généralement 2 : associations binaires Exemple a pour école Représentation graphique (rectangle arrondi, ellipse, hexagone) élèves écoles a pour école Thomas Devogele ISI 204
8
Attributs Décrit les entités et les associations Exemple
L’entité élèves a pour attributs : nom, prénom, pays, … L’entité école a des attributs : adresse, ville, … l ’association « a pour école » a des attributs : date d’embarquement, date de débarquement Représentation graphique Élèves nom prénom pays a pour école date embarquement date débarquement Écoles adresse ville Thomas Devogele ISI 204
9
Types des attributs Les attributs sont de types simples entier
flottant chaîne de caractères date Thomas Devogele ISI 204
10
Clé un ou plusieurs attributs permettant d’identifier, de façon unique, chaque occurrence d’une entité exemple num élève pour Elèves chaque élève doit avoir un numéro unique Représentation graphique (attribut(s) souligné(s)) Élèves num élève nom prénom pays Écoles num école adresse ville a pour école date embarquement date débarquement Thomas Devogele ISI 204
11
Cardinalité Les entités participant aux associations ont des cardinalités minimales et maximales. cardinalité minimale : nombre minimum de fois qu’une occurrence d’une entité participe aux occurrences de l ’association (O, 1, ...) cardinalité maximale : nombre maximum de fois qu’une occurrence d ’une entité participe aux occurrences de l ’association (1, n, ...) Exemple Une école à un ou plusieurs élèves Un élève à une et une seule école Thomas Devogele ISI 204
12
Cardinalité Représentation graphique
Le nombre de gauche indique la cardinalité minimale, le nombre de droite indique la cardinalité maximale. Élèves num élève nom prénom pays Écoles num école adresse ville a pour école date embarquement date débarquement 1,1 1,n Thomas Devogele ISI 204
13
Cardinalité : exemples
l’association « a pour époux » BD pays monogame BD pays polygame (homme) BD de la mairie (service mariage) BD historique homme femme a pour époux 0,1 homme femme a pour époux 0,N 0,1 homme femme a pour époux 1,1 a pour époux date début date fin cause fin 0,N 0,N homme femme Thomas Devogele ISI 204
14
Associations spécifiques
Associations réflexives Représentation graphique (ajout obligatoire de rôles) Associations n-aires Représentation graphique (exemple de d’association ternaire) 0,2 humain a pour enfants parents 0,N enfants 1,N 1,N professeur enseigne classe 1,N matière Thomas Devogele ISI 204
15
Exemple Thomas Devogele ISI 204
16
Le modèle Logique Le modèle Relationnel
17
Le modèle relationnel Inventé par CODD en 1970 (IBM)
fondement mathématique Basé sur les relation n-aire. algèbre relationnel langage d’interrogation simple déclaratif SQL Organisation des données en Tables (relations): des lignes (enregistrements ou n-uplets) des colonnes (champs ou attributs) Thomas Devogele ISI 204
18
Le modèle relationnel (2)
Une BD relationnels Composés de plusieurs tables Les associations sont matérialisées par les valeurs d’attributs, non par des références physiques (pointeurs) Les tables Sont une représentation naturelle Thomas Devogele ISI 204
19
Exemple de BD relationnelle
Intuitivement, il est possible de passer d’une table à une autre Thomas Devogele ISI 204
20
Concepts fondamentaux (1)
Relation (table relationnelle, table) : caractérisé par: un nom des champs (attributs) qui correspondent aux noms de chacun des domaines mis en jeu (les colonnes) des n-uplets (tuples, enregistrements) qui correspondent à une ligne de la relation. chaque attribut, a une unique valeurs Personne Nom Prénom TRICHET Francky GILBERT Jacques ANDRE Pascal Thomas Devogele ISI 204
21
Concepts fondamentaux (2)
Exemple la relation Client Thomas Devogele ISI 204
22
Concepts fondamentaux (3)
Valeurs scalaires Une valeur scalaire représente la plus petite unité sémantique de données. Atomiques Nom d ’une ville ‘St Denis’ possède une sémantique ‘S’, ‘t’, ‘ ’, ‘D’, ‘e’ , ‘n’, ‘i’, ‘s’ n ’en possèdent pas Thomas Devogele ISI 204
23
Concepts fondamentaux (4)
Domaine Ensemble nommé de valeurs scalaires toutes du même type Groupe de valeurs d’où sont extraites les valeurs effectives Exemple D1={rouge,vert, NULL}, D2={3,2, NULL} jours = {lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche, NULL} couleurs = {rouge, vert, bleu, jaune, ... , pourpre, NULL} âges = [0, 125] NULL salaires = R+ NULL Tous les domaines ont une valeur NULL qui représente soit Valeur inconnue Pas de valeur la valeur NULL est différente de la valeur zéro. Thomas Devogele ISI 204
24
Concepts fondamentaux (5)
Produit Cartésien d’un ensemble de domaines D1, D2 ... Dn l’ensemble des n-uplets {<v1,v2,…,vn>} tels que vi Di D1 × D2 = {<rouge,3>,<rouge,2>,<vert,3>,<vert,2>, <rouge,NULL}, <vert, NULL>, <NULL,3>, <NULL,2>, <NULL,NULL> } Thomas Devogele ISI 204
25
Concepts fondamentaux (5)
Relation Une relation R sur un ensemble de domaines D1, D2, …, Dn est constituée de deux parties L ’en-tête : ensemble fixé d ’attributs (<nom-attribut : nom-domaine>) {<A1 : D1>, <A2 : D2>, …, <An : Dn>} Chaque attribut Aj prend ses valeurs dans Dj et les noms des attributs sont distincts Thomas Devogele ISI 204
26
Concepts fondamentaux (6)
Relation Le corps : ensemble de n-uplets (<nom-attribut : valeur-attribut>) {<A1 : vi1>, <A2 : vi2>, …, <An : vin>} pour le n-uplet i Tout couple attribut - valeur doit correspondre à un couple attribut - domaine de l’en-tête et toute valeur vij Dj Le corps est un sous-ensemble du produit cartésien Le corps est un ensemble non ordonnée Chaque n-uplet est unique (Impossible d’avoir 2 n-uplets qui ont exactement les mêmes valeurs) Thomas Devogele ISI 204
27
Concepts fondamentaux (7)
Attribut Colonne d’une relation caractérisée par un nom Pas d ’ordonnancement des attributs référence par nom Les valeurs des attributs sont homogènes :Elles appartiennent au même domaine atomiques : Une unique valeur pour chaque attribut de chaque n-uplet) NF PRODUIT NF NP QTE NP QTE F1 F2 P P P F P F P F P Thomas Devogele ISI 204
28
Concepts fondamentaux (8)
Degré d’une relation nombre d’attributs Cardinalité d’une relation nombre de n-uplets Thomas Devogele ISI 204
29
Concepts fondamentaux (9)
Exemple rouge, vert, gris, jaune bleu, blanc, noir Domaine Attribut Cardinalité 8 n-uplet Degré 5 Thomas Devogele ISI 204
30
Concepts fondamentaux (10)
Deux facettes du concept de table relationnel Schéma d’une table (intention) Définition de son type (sa structure) Décrit par le nom de la table puis entre parenthèse les noms des attributs Ex. Client(n°Client, nom, prénom) Instance d’une table (extension) État de la table à un instant donné Ensemble de n lignes (enregistrements) Schéma d’une BD relationnel Ensemble de schémas des tables Thomas Devogele ISI 204
31
Exemple de BD relationnelle
Le schéma : produits(pno,design,prix,poids,couleur) fournisseurs(fno,nom,adresse,ville) commandes(cno,fno,pno,qute) Thomas Devogele ISI 204
32
Les contraintes d’intégrité les clés primaires Les clés étrangères
Contraintes et clés Les contraintes d’intégrité les clés primaires Les clés étrangères
33
Contraintes d’intégrité (1)
A tout instant la base représente une partie du monde réel à travers une configuration particulière des valeurs des données Mais il faut restreindre l’ensemble des états possibles de la BD par exemple éviter les erreurs Certaines configurations des valeurs n’ont pas de sens exemple age d ’une personne = -35 Thomas Devogele ISI 204
34
Contraintes d’intégrité (2)
Comment ? Lors de la programmation, vérifier les données entrées Exemple : la balance des paiements doit être équilibré Ajouter des contraintes : règles d’intégrité au niveau du SGBD pour obliger que la contrainte soit vraie. Thomas Devogele ISI 204
35
Contraintes d’intégrité (3)
Exemple de contraintes d’intégrité Le numéro de produit (pno) doit être sous la forme de 3 chiffres La valeur de l’attribut couleur doit appartenir à l’ensemble {rouge, vert, gris, jaune, bleu, blanc, noir } La quantité commandé (qute) doit être positive La valeur de pno de la table commandes, doit être une valeur d’un pno de la table produits Thomas Devogele ISI 204
36
Intégrité et clés Propriétés d’intégrité générale Clé unique
clés uniques clés candidates et clés primaires clés étrangères Clé unique Un ensemble de colonnes de la table est dite clé unique si deux lignes de la table ne peuvent pas avoir les mêmes valeurs. Identifie de manière unique une ligne de la table Une clé composée est un ensemble contenant plusieurs colonnes Thomas Devogele ISI 204
37
Clés candidates (1) Définition Remarque :
une clé unique minimale est dite clé candidate Ensemble minimal d’attributs dont la connaissance des valeurs permet d’identifier un n-uplet unique de la relation considérée Chaque relation contient au moins une clé candidate Remarque : Une clé candidate ne peut pas avoir de valeur NULL Thomas Devogele ISI 204
38
Clés candidates (2) Clés candidates Propriétés
Soit R et une relation et soit K un ensemble d’attributs (clé candidate) Unicité : t1 et t2 R, K(t1) ≠ K(t2 ) Irréductibilité : il n ’existe pas d’ensemble L tel que L K et L clé candidate Thomas Devogele ISI 204
39
Clés candidates (3) Clés candidates Utilité
mécanisme d’adressage au niveau des n-uplets d’une table Exemples Professeur WHERE MAT = 34560, produit un seul n-uplet en résultat Professeur WHERE AN_ENT = 1994, va produire un nombre imprévisible de n-uplets en résultat Thomas Devogele ISI 204
40
Clés primaire (1) Définition Propriétés
Parmi les clés candidates, il y en a une qui est choisie comme la clé primaire. La clé primaire est utilisée pour faire référence aux lignes d’une table. Propriétés Une clé choisie parmi l’ensemble des clés candidates Le choix est arbitraire Peux se faire selon des heuristiques Plus simple par exemple Les attributs formant la clé primaire d’une table relationnelle sont soulignés dans le schéma Thomas Devogele ISI 204
41
Clés primaire (2) Exemple
ETUDIANT(matricule, nom, prénom, adresse, num-insee) Etudiant (Code_per, Nom, Prenom, Adresse, Date_nais, Lieu_nais, NASS) Quelles sont les clés candidates ? Quelle clé primaire choisir ? Clé primaire Clé candidate Thomas Devogele ISI 204
42
Clé étrangère (1) Définition
Une clé étrangère est un ensemble d’une ou de plusieurs colonnes d’une table qui fait référence à une clé primaire d’une autre table.” Soir R2 une relation, un sous-ensemble d’attributs FK dans R2 est dit clé étrangère dans le cas où : il existe une relation R1 avec une clé candidate CK (R1 peut être R2) à tout instant, chaque valeur de FK dans R2 est identique à une valeur de CK dans R1 Thomas Devogele ISI 204
43
Clé étrangère (2) Propriétés
Il n’est pas nécessaire d’avoir pour toute valeur de CK dans R1 une valeur identique de FK dans R2 Une clé étrangère est composée ou simple Chaque attribut d’une clé étrangère doit être défini sur le même domaine que son équivalent dans la clé candidate correspondante Une clé étrangère peut avoir pour valeur NULL Thomas Devogele ISI 204
44
Clé étrangère (3) Un attribut d’une clé étrangère peut faire partie d’une clé primaire de sa relation Employe (Mat, Nom, …) Projet (Num, Designation, …) Role (Mat, Num, role) Pour Role l’attribut Mat fait partie de la clé primaire et est une clé étrangère (vers Employe) Pour Role l’attribut Num fait partie de la clé primaire et est une clé étrangère (vers Projet) Thomas Devogele ISI 204
45
Clé étrangère (4) Diagramme référentiel Projet Employe Role Dept
représentation graphique des références Employe Projet Role Dept Thomas Devogele ISI 204
46
Clé étrangère (5) Exemple Employe (mat, nom, adresse, dept, superieur)
Projet (num, designation) Departement (dept, directeur, nom) Role (mat, num, role_emp) Remarques : directeur et superieur ont pour valeur des valeurs prisent par mat Le couple mat, num est la clé primaire de Role Mat est la clé primaire de la table Employe et est une clé étrangère de la table Role Thomas Devogele ISI 204
47
Clé étrangère (6) Intégrité référentielle
La base de données ne doit pas contenir une valeurs de clé étrangère non « unifiable » C’est-à-dire : une clé étrangère non nulle doit faire référence à une valeur existante de la clé primaire correspondante Cette contrainte est dite référentielle Conséquence : Il faut créer et détruire les n-uplets dans un ordre particulier Thomas Devogele ISI 204
48
Exemple de BD relationnelle
Le schéma : produits(pno,design,prix,poids,couleur) fournisseurs(fno,nom,adresse,ville) commandes(cno,fno,pno,qute) Question : peut on supprimer cno ? Thomas Devogele ISI 204
49
Conversion du modèle conceptuel en modèle logique
ER Relationnel
50
Conversion des entités
chaque entité devient une table attributs colonnes clé clé primaire occurrences n-uplets Exemple Élèves num élève nom prénom pays eleves (numeleve, nom, prenom, pays) Thomas Devogele ISI 204
51
conversion des associations binaires (1)
Association ...,1 ...,N exemple recopie de la clé de Écoles en tant que colonne de Élèves (clé étrangère) migration des attributs de l’association en tant que colonne de Élèves ecole(num_ecole, nom, adresse, ville) eleve( num_eleves, nom, prénom, pays,num_école, date_embarquement, date débarquement) Élèves num élève nom prénom pays Écoles num école adresse ville a pour école date embarquement date débarquement 1,1 1,n Thomas Devogele ISI 204
52
conversion des associations binaires (2)
Association ...,N ...,N création d’une nouvelle table avec comme colonnes, les clés de homme et de femme création de colonnes pour les attributs de l’association homme femme a pour époux date début date fin cause fin 0,N tables relationnelles correspondantes homme (numhomme…), femme (numfemme…), a_pour_epoux (numhomme, numfemme, date_debut, date_fin, cause_fin…), Clé de a_pour_epoux ??? Thomas Devogele ISI 204
53
conversion des associations binaires (3)
Clés primaires de tables relationnelles représentant des associations Association ...,N ...,N Remarques : Il faut une clé primaire unique Les attributs clés primaires des entités associées font partie de la clé Pas toujours suffisant Exemple Si impossible de se remarier avec son ancien conjoint a_pour_epoux (numhomme, numfemme, date_debut, date_fin, cause_fin…) Si possible de se remarier avec son ancien conjoint Thomas Devogele ISI 204
54
Exemple de conversion des associations binaires
tables relationnelles correspondantes homme ( numhomme… numfemme), femme (numfemme…) ou homme ( numhomme…), femme (numfemme… numhomme) homme femme a pour époux 0,1 Thomas Devogele ISI 204
55
Exemple de conversion des associations binaires
Produits pno design prix poids couleur Commandes cno Fournisseur fno nom adresse ville Concerne qute Est passé à 1,N 1,1 Les tables relationnelles correspondantes : Produits(pno,design,prix,poids,couleur) Fournisseurs(fno,nom,adresse,ville) Commandes(cno, qute fno,pno) Thomas Devogele ISI 204
56
conversion des associations binaires
Fonction des cardinalités max min des entités E1 et E2 (0,1) et (0,1) recopie de la clé de E1 en tant que colonne de E2 (ou inverse) migration des attributs de l’association en tant que colonne de E2 (0,1) et (1,1) (ou inverse) recopie de la clé de E1 en tant que colonne de E2 (1,1) et (1,1) (-,N) et (-,1) (ou inverse) (-,N) et (-,N) création d’une table avec comme colonnes, les clés de E1et E2 création de colonnes pour les attributs de l’association Thomas Devogele ISI 204
57
conversion des associations N-aires (N >2)
professeur enseigne classe 1,N matière création d’une nouvelle table avec comme colonnes, les clés Professeur (numprof…) Classe (numcla…) Matiere (nummat…) Enseigne (numprof,numcla, nummat) Thomas Devogele ISI 204
58
Conversion des associations réflexives
0,2 humain a pour enfants parents 0,N enfants Humain(num, nom, prénom) A_pour_enfants(num_parent,num_enfant) Thomas Devogele ISI 204
59
Conversion des associations réflexives
0,1 humain a pour père père 0,N enfants Humain(num, nom, prénom, num_père) Thomas Devogele ISI 204
60
Les principes de normalisation
Les 3 formes normales et les Dépendances Fonctionnelles
61
La normalisation objectif de la normalisation
définir un schéma de relations permettant d’éviter : la redondance de données les incohérences lors des mises à jour les anomalies lors d’insertion et/ou suppression Repose sur l’analyse des dépendances entre attributs moyen : décomposer les relations sujettes à redondance conserver la possibilité de reconstituer les relations originelles en combinant les n-uplets des tables (jointure) Thomas Devogele ISI 204
62
La normalisation : exemple
Une entreprise de vente de bateaux qui souhaite constituer un système d ’information relatif à leur activité Achats(IdClient, NomClient, PrénomClient, AdresseClient, ImmatriculationBateau, ModèleBateau, LongueurBateau, DateAchat, MontantAchat) Problèmes potentiels redondance de données : une personne qui achète plusieurs bateaux incohérence suite à une Mise à jour : une personne qui change d’adresse anomalies lors d’insertion/suppression : un client potentiel ne peut être enregistré dans la BD s’il n’a pas encore acheté de bateau lorsqu’un client vend son bateau, il est supprimé du système d’information Thomas Devogele ISI 204
63
Comment normaliser ? Décomposition des relations jusqu’à ce que toutes respectent les 3 Formes Normales suivantes : Première Forme Normale Une relation est dite en Première Forme Normale si tous ses attributs sont atomiques ; aucun des attributs ne doit être une relation entre « sous-attributs » pas de colonnes dans une colonne Thomas Devogele ISI 204
64
Dépendance Fonctionnelle
Définition Deux groupes d’attributs X et Y de la relation R sont en Dépendance Fonctionnelle si dans R, chaque valeur de X détermine une et une seule valeur de Y si je connais la valeur de X alors je connais la valeur de Y une DF est une assertion sur toutes les extensions possibles d’une relation et pas uniquement sur ses n-uplets actuels Exemple : ensemble de DF pour une table Thomas Devogele ISI 204
65
Seconde Forme Normale Condition Exemple Première Forme Normale
tous les attributs n’appartenant pas à la clé sont en dépendance fonctionnelle élémentaire avec la clé dès qu’un attribut non-clé dépend d’une partie de la clé, la relation n’est pas en 2FN. Exemple pretK7 (numcli, numk7,nomcli,adrcli,titrek7,dateprêt) DF numcli nomcli, adrcli numk7 titrek7 numcli, numk7 dateprêt pretK7 n ’est pas en 2 FN car nomcli dépend uniquement de numcli et pas de numcli et de numk7 … décomposition à l’aide des DF client (numcli, nomcli,adrcli) K7 (numk7,titrek7) prêt (numcli, numk7,dateprêt) Thomas Devogele ISI 204
66
Troisième Forme Normale
Condition Seconde Forme Normale (2FN) Aucun de ses attributs non-clés dépend d’un autre attribut non-clé ; il n ’existe pas de DF entre 2 attributs non-clés Exemple ville(num_ville, nom_ville, num_dept, nom_dept) DF num_ville nom_ville, num_dept, nom_dept num_dept nom_dept ville n’est pas en 3 FN car nom_dept dépend de num_dept décomposition à l’aide des DF ville(num_ville, nom_ville, num_dept) dept(num_dept, nom_dept) Thomas Devogele ISI 204
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.