37
Traduction d’un modèle Entité - Association en modèle relationnel

Chap 3 Traduction Dun Modle EA-Relation

Embed Size (px)

Citation preview

  • Traduction dun modle Entit - Association en

    modle relationnel

  • I. Concepts de base Le modle relationnel consiste percevoir lensemble des donnes comme des tableaux o chaque table reprsente une relation, au sens mathmatique d'ensemble. L'ensemble des valeurs des tableaux reprsente le contenu de la base de donnes. Ce contenu peut tre modifi en ajoutant des lignes, en supprimant des lignes ou en modifiant le contenu des lignes. Modle : une reprsentation du monde rel. Cette reprsentation doit tre simple et fiable.

    Domaine : un ensemble de valeurs caractrises par un nom.

    Ex. : Domaine (couleurs) = {bleu, rouge, blanc, }

    : Domaine (noms) = {ali, salah, }

    Relation : est un ensemble d'enregistrements. Enregistrement = n-uplet = tuple : une squence ordonnes d'informations.

  • NUM_PDT DES_PDT COUL_PDT

    P1 D1 C1

    P2 D2 C2

    Relation PRODUIT

    Enregistrement

    Domaine

    Degr dune relation : cest le nombre de colonne (domaines) dans une relation

    Ex. Degr de PRODUIT=3

  • Attribut : nom d'une colonne d'une relation. Ex.

    NUM_PDT

    DES_PDT attributs de la relation PRODUIT.

    COUL_PDT

    Schma de relation : nom de la relation suivi de la liste des attributs et de la dfinition de leurs domaines

    Ex. : PRODUIT (NUM_PDT, DES_PDT, COUL_PDT)

    Cl primaire : un attribut (ou plusieurs) permettant d'identifier d'une faon unique un tuple d'une relation. Cet attribut doit avoir toutes ses valeurs diffrentes dans la relation R.

    Ex. : PRODUIT (NUM_PDT, DES_PDT, COUL_PDT)

    ETUDIANT (NUM_ET, NOM_ET, DATNAIS_ET, ADR_ET)

  • Cl trangre : soit la relation R1 (A, B, , S, ).

    On dit que S est une cl trangre de R1 s'il y a une relation R2 ayant

    pour cl primaire S.

    Ex. : PRODUIT (NUM_PDT, DES_PDT, COUL_PDT, #NUM_MAG)

    MAGASIN (NUM_MAG, ADR_MAG, TEL_MAG)

    => si on connat la cl primaire d'un produit, on dispose des informations

    concernant ce produit ainsi que celles du magasin o il est stock.

    Contraintes d'intgrit (CI)

    Cest une rgle qui doit tre vrifie au moment de la cration et de la

    manipulation de donnes afin que le rsultat soit considr correct et

    cohrent. A tout instant de l'existence d'une BD, on doit pouvoir ajouter,

    modifier ou supprimer une contrainte d'intgrit et le SGBD doit tre

    capable de vrifier que la base est toujours cohrente vis vis du

    changement apport son environnement; dans le cas contraire, il doit

    rejeter notre intervention.

  • Gnralisation et hirarchie

    Un ensemble dentits E1 est un sous-ensemble de E2 si toute

    occurrence de E1 est aussi une occurrence de E2. Lensemble

    dentits E1 hrite des attributs de E2.

    Un ensemble dentits E est une gnralisation de E1, E2, En si

    chaque occurrence de E est seule entit E1, E2, ..., En.

    Les ensembles E1, E2, ..., En sont des spcialisations de

    lensemble dentits E. Les ensembles dentit E1, E2, En hritent

    des attributs de E et possdent en outre des attributs spcifiques

    qui expriment leur spcialisation.

    Notation "EST-UN" (IS A) : B "EST-UN" A si lensemble A est

    une extension de B ou B un cas particulier de A.

  • II. Traduction

    1.Traduction des entits

    Toute entit est traduite selon les trois rgles suivantes :

    Lentit se transforme en une relation.

    Lidentifiant de lentit devient la cl primaire de la relation.

    Les proprits de lentit deviennent des attributs de la

    relation.

  • 2. Traduction des associations

    Nous distinguons deux catgories dassociations :

    les associations binaires

    et les associations n-aires.

    La traduction dune association seffectue selon les

    cardinalits relatives aux entits participant

    lassociation.

    Plusieurs cas peuvent se prsenter.

  • a. Traduction des associations binaires

    Soient deux entits A et B relies par une association

    AssAB

    Cas1 : Association Un--Un

    Cardinalit entit A 0, 1 ou 1, 1 et Cardinalit entit

    B 0, 1 ou 1, 1

    Pour ce type dassociation deux traductions sont

    possibles :

  • Solution 1 :

    Les deux entits et lassociation seront transformes en une seule relation contenant les attributs des deux entits ainsi que les attributs ventuels de lassociation, la cl de lentit A ou de lentit B sera choisie comme cl de la nouvelle relation.

    Solution 2 :

    Les deux entits seront transformes en deux relations. Une de ces deux relatons sera choisie et tendue par la liste des attributs ventuels de lassociation ainsi que de la cl de lautre entit en tant que cl trangre.

  • Le modle relationnel correspondant est le suivant : Commande (NCmd, DateCmd)

    Livraison (NLiv, Qt, Adresse, # NCmd)

    La relation 'Livraison' a comme cl trangre l'identifiant de 'Commande' car la cration d'une

    livraison survient aprs la cration d'une commande.

    Exemple 1

  • Le modle relationnel correspondant est le suivant :

    Personne (IdPers, NomPrenom, DateNaiss)

    CIN (N CIN, DateCIN, Lieu, # IdPers)

    La relation 'CIN' a comme cl trangre l'identifiant de 'Personne' en

    supposant que la cration d'une CIN survient aprs la cration d'une

    personne. Il est possible galement dutiliser la deuxime solution et de

    fusionner les deux tables 'Personne' et 'CIN' car les cardinalits 1,1 de

    chaque ct ne risquent pas de changer dans le temps. En effet, une

    personne a une et une seule CIN et une CIN correspond une et une seule

    personne; et cette rgle ne risque pas de changer dans l'avenir.

    Exemple 2

  • Exemple 3

    Le modle relationnel correspondant est le suivant : Sinistre (NSinistre, Date Sinistre)

    Rglement (NRegl, Montant, N Chque, # NSinistre,

    Date)

    La relation 'Rglement' a comme cl trangre l'identifiant de 'Sinistre' car un rglement fait obligatoirement rfrence

    au sinistre qui lui a donn naissance.

  • Cas2 : Association Un--plusieurs (Matre-Esclave):

    Cardinalit entit A (Matre) 0, N ou 1, N et Cardinalit

    entit B (Esclave) 0, 1 ou 1, 1

    Les rgles de traduction de ce type dassociation sont les suivantes :

    Lentit Matre (Entit A) devient la relation Matre.

    Lentit Esclave (Entit B) devient la relation Esclave.

    Lidentifiant de lentit Matre devient attribut de la relation Esclave. Cet attribut est dsign comme cl

    trangre.

    Les attributs ventuels de lassociation (AssAB) migrent vers la relation esclave et deviennent ses attributs.

  • Cas 3 : Association plusieurs--plusieurs :

    Cardinalit entit A 0, N ou 1, N et Cardinalit

    entit B 0, N ou 1, N

    Les rgles de traduction de ce type dassociation

    sont les suivantes

    Chaque entit (Entit A et Entit B) devient une relation.

    L'association sera transforme aussi en une relation

    ayant comme cl la concatnation des deux cls issues

    des entits A et B. Les attributs ventuels de

    l'association seront stocks dans cette relation en tant

    qu'attributs.

  • Le modle relationnel correspondant est le suivant :

    Client (NCl, NomCl, AdrCl)

    Produit (RefProduit, Designation, PU)

    Acheter (#NCl, #RefProduit, Quantite)

  • b. Traduction des associations n-aires

    Ce type dassociation sera transform en une relation

    ayant comme liste dattributs la liste des cls des

    relations correspondantes aux entits qui participent

    cette association en plus de ses attributs ventuels.

    Une cl minimale sera choisie parmi la liste des

    attributs ainsi constitue

  • 3. Traduction du lien IS

    La traduction du lien is-a peut se faire selon plusieurs rgles.

    Dans ce qui suit, nous considrerons une entit mre R avec

    n entits filles S1, S2, .Sn.

    La traduction dun lien is-a se fait selon lune des trois rgles

    suivantes :

  • R1 : Reprsentation de lentit mre et de ses entits filles

    Lentit mre sera transforme en une nouvelle relation avec ses attributs.

    Chaque entit fille Si sera transforme en une relation comportant comme

    Cl lidentifiant de lentit mre et comme attributs les attributs de Si

  • Cette rgle est adapte pour tout type de spcialisation ce qui permettra de reprsenter lentit mre et les entits filles explicitement.

  • R2 : Pas de reprsentation de lentit mre

    Chaque entit fille Si sera transforme en une relation comportant comme Cl

    lidentifiant de lentit mre et comme attributs les attributs de Si en plus des

    attributs de lentit mre.

  • Cette rgle pose un problme lorsque les sous-entits ne

    sont pas disjointes. Dans ce cas, il peut y avoir

    duplication de certaines donnes. Certains problmes

    d'incohrence peuvent alors avoir lieu.

    Cette rgle est applicable donc, dans le cas de sous-entits

    sont totalement disjointes, tels que :

    Homme, Femme -> Personne

    ou aussi, Alimentaire, Habillement, Electromnager ->

    Article.

    Pour le cas, Etudiant, Employ -> Personne cette rgle

    conduirait dupliquer les donnes hrites pour des

    employs tudiants.

  • R3 : Fusion des entits filles et de lentit mre

    Lentit mre et ses entits filles seront transformes toutes en une seule relation

    ayant comme Cl lidentifiant de lentit mre et comme attributs les attributs de

    toutes les entits (mre et filles).

  • Le problme pos par cette rgle est que certains attributs risquent

    d'avoir une valeur nulle.

    Par exemple, pour la hirarchie Homme, Femme -> Personne, suite

    lutilisation de cette rgle les attributs spcifiques aux hommes

    seront nuls pour les femmes et vice versa.

    En utilisant cette rgle par exemple pour la hirarchie Etudiant,

    Employ -> Personne, tout tudiant non employ aura les attributs

    spcifiques aux tudiants nuls, et tout employ non tudiant aura

    les attributs d'tudiants nuls.

  • Pour traduire cette hirarchie nous utilisons deux rgles :

    Pour le deuxime niveau de la hirarchie Professeur Employ

    nous pouvons utiliser la troisime rgle et nous obtiendrons la

    relation suivante :

    Employ (NumEmp, NumProf,Grade)

    Pour le premier niveau de la hirarchie nous utilisons la premire

    rgle, nous obtiendrons alors comme modle relationnel final :

    Personne (CIN)

    Employ (#CIN, NumEmp, NumProf, Grade)

    Etudiant (#CIN, NumImm)