Cours BD le modèle relationnel pdf


Télécharger Cours BD le modèle relationnel pdf

★★★★★★★★★★4 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Sommaire

 Le but de ce chapitre n'est pas l'étude du modèle relationnel qui a été vu dans le cours précédent sur les bases de données mais de donner les règles qui permettent la mise en œuvre de la quatrième étape de l'analyse des données, à savoir la traduction logique. Cette étape a pour but de fournir le modèle relationnel à partir du modèle conceptuel. Si cette phase est réalisée en automatique par les outils de modélisation (Power Amc, Windesign, Analyse SI), il n'est pas inutile d'en connaître les règles, ne serais-ce que pour en comprendre les modes de traduction. Cette étape de traduction correspond à la quatrième phase de l'analyse des données 

Le MLD (Modèle Logique des Données ou MRD (Modèle relationnel des données) reste indépendant du SGBD utilisé.

 Le passage du MCD au modèle relationnel ne se fait pas au hasard. Il existe un certain nombre de règles qui vous permettent de réaliser cette opération. C'est d'ailleurs sur ces règles que s'appuient les outils de modélisation afin de réaliser ces opérations. Ces règles restent logique, et un peu de réflexion vous permettra de les comprendre. 

Dans les exemples ci-après, nous utiliserons comme représentation du MRD la notation littérale en soulignant les clés primaires, et en faisant suivre les clés étrangères du caractère #. 

 Le modèle relationnel doit refléter le MCD issu de l'analyse, et donc les éléments présents dans celui-ci (entités, propriétés, associations) doivent se retrouver dans le modèle relationnel. 

•   Chaque entité du MCD est transformé en table

•   Les propriétés de l'entité deviennent les attributs de la table  • L'identifiant de l'entité devient clé primaire 

Exemple :

AUTEUR

num_auteur nom_auteur date_naissance

LIVRE

num_livre

titre_livre

AUTEUR (Num_Auteur, Nom_Auteur, Date_Naissance) LIVRE (Num_Livre, Titre_Livre)

Cette association correspond à une paire de cardinalité 1,1 et 0,n ou 1,n. Ce cas est également dénommé sous le vocabulaire de CIF (Contrainte d'Intégrité Fonctionnelle). Ce type d'association est également appelée association 1,n



Dans ce cas, la table issue de l'entité coté cardinalité 1,1 reçoit comme clé étrangère la clé primaire de l'entité liée. 

Exemple :

AUTEUR (Num_Auteur, Nom_Auteur, Date_Naissance) LIVRE (Num_Livre, Titre_Livre, Num_Auteur#)

Explication : Dans l'exemple ci-dessus, un livre est écrit par un et un seul auteur. Il est donc normal de retrouver l'auteur associé au livre dans la table livre. 

Cette association correspond à une paire de cardinalité 1,1 et 0,1. Dans ce cas, il y a plusieurs solution, une bonne et une moins bonne. Je vous les cite toutes les deux dans la mesure où vous êtes susceptibles de retrouver les deux possibilités. 

Exemple :

 Cet exemple illustre le fait qu'un Micro est équipé de 0 ou 1 CD-Rom. Les nos correspondent à des numéros de série. 

La meilleure solution est que la table CD_ROM reçoivent comme clé étrangère Num_Micro. Car un CD_Rom est affecté à un et un seul micro. Ce qui donne : 

MICRO (Num_Micro, Marque_Micro)

CD_ROM (Num_Cd, Marque_Cd, Num_Micro#) 

Une autre solution à proscrire est l'échange des clés primaires entre les 2 tables, ce qui donnerait : 

MICRO (Num_Micro, Marque_Micro, Num_Cd#)

CD_ROM (Num_Cd, Marque_Cd, Num_Micro#)

Dans ce cas, un micro pouvant ne pas avoir de CD_Rom, la clé étrangère num_CD peut être nulle, ce qu'il faut éviter au maximum. 

Exemple :

Cet exemple illustre le fait que certains CD_Rom n'équipent pas de micro (cas de ventes où l'on ne sait connaît pas la destination du cd-rom. 

 En reprenant le modèle relationnel, et partant qu'une clé étrangère ne peut être nulle, la seule solution est de créer une table intermédiaire qui illustre le fait que l'on mémorise les cas d'association entre un lecteur de CD-Rom et un Micro. Ce cas d'association nécessite la création d'une autre table (ici EQUIPER) prenant comme clé primaire la composition des clés primaires des autres tables devenant clé étrangère dans la table COMPOSER: 

MICRO (Num_Micro, Marque_Micro)

CD_ROM (Num_Cd, Marque_Cd)  

EQUIPER (Num_Micro#, Num_Cd#)

La clé primaire composée exprime le fait que l'unicité d'un enregistrement dans la table se fait sur le couple Num_Micro et Num_CD. Attention, les tables MICRO et CD_ROM ne

"reçoivent" pas les clés primaires. 

 Attention, lorsque vous utilisez un outil de génie logiciel, lorsque vous générez le modèle relationnel, celui-ci pratique souvent l'échange d'identifiant entre table. Vous serez donc amener à rectifier cela. 

Il existe plusieurs solutions, et de la même façon que précédemment l'une meilleure que l'autre. 



•   La premiére solution assimile la cardinalité 0,1 à une cardinalité 1,1 et donc il y a migration de la clé primaire de la table coté 1,n vers la table coté 0,1 ce qui laisse la possibilité d'une valeur nulle pour la clé étrangère.  

•   La deuxième condition consiste à créer une table intermédiaire avec une clé primaire composée. 

Exemple :

 Cet exemple illustre le fait qu'une équipe est dirigée par un responsable mais qu'elle peut n'être dirigée par personne. 

Solution 1 : 

RESPONSABLE (Num_Responsable, Nom_Responsable)  EQUIPE (Nom_Equipe, Num_Responsable#)

Solution 2 : 

EQUIPE (Nom_Equipe)

RESPONSABLE (Num_Responsable, Nom_Responsable) DIRIGER (Nom_Equipe#, Num_Responsable#)

Si la deuxième solution est la meilleure, la premiére est souvent mise en œuvre dans la mesure ou le cas 0 est rare et correspond plus à un cas d'école ou une phase transitoire. C'est pour cela que la solution à 2 tables reste majoritairement utilisée pour des raisons d'allégement du modèle relationnel. 

 En fait, sur l'exemple ci-dessus, est-il possible qu'une équipe ne soit dirigée par personne  ? Oui en cas de démission de l'entraineur, mais cela est rare et ponctuel, d'où la préférence de la premiére solution pour ne pas alourdir le modèle relationnel.

Ce cas regroupe toutes les associations où la cardinalité maximale de part et d'autre est à n, la cardinalité minimale pouvant être 0 ou 1. 

 Dans ce cas, la règle est simple et consiste à la création d'une table issue de l'association, cette table recevant comme clé étrangère les clés primaires des 2 autres tables. La clé primaire de cette table résultant de l'association étant la composition des deux clés étrangères. 

Exemple :

Dans l'exemple ci-dessus, un micro est équipé d'un ou plusieurs type de périphérique (disque dur, cd rom, souris …) et dans l'autre sens, un type de périphérique équipe plusieurs micro. 

La transformation devient : 

MICRO (Num_Micro, Marque_Micro)

PERIPHERIQUE (Type_Periph, Marque_Periph)

EQUIPER (Num_Micro#, Type_Periph#)

Ce cas est une extension du cas précédent, la propriété portée par l'association devient un attribut de la table issue de l'association 

Exemple :

PRODUIT (Num_Produit, Nom_Produit)

COMMANDE (Num_Cde, Date_Cde)

LIGNE_CDE (Num_Cde#, Num_Produit#, Qte_Cde)

Le traitement de ce type d'association est en fait une généralisation du cas précédent. L'association génère une table, cette table reçoit en clé étrangère les attributs clés primaires des autres tables, la composition de chaque clés étrangères devenant la clé primaire composée des trois attributs. Si l'association est porteuse de données, les données portées deviennent des attributs de la table composée. 



Exemple :

ECURIE

nom_ecurie

Cet exemple peut se lire : Une écurie engage un ou plusieurs pilote pour une ou plusieurs saison. Ce qui peut se lire dans tous les sens de l'association. Le modèle relationnel résultant est donc : 

SAISON (Id_Saison)

PILOTE (Num_pilote, Nom_pilote)

ECURIE (Num_Ecurie, Nom_Ecurie)

ENGAGER (Id_Saison#, Num_Ecurie#, Num_Pilote#)

L'association engager pourrait être porteuse d'une donnée salaire par exemple, le salaire étant négocié à chaque engagement. Dans ce cas, salaire deviendrait un attribut de la table ENGAGER. 

Ce cas n'est qu'une généralisation du traitement de l'association ternaire. La table issue de l'association est composée des identifiants de toutes les entités participant à l'association comme clé étrangère et comme clé primaire composée. Les propriétés portées par l'association devenant des attributs de cette table. 

Ces associations sont en en fait des associations binaires, leur traitement dépend donc des cardinalités.

Exemple

PERSONNE (Num_Personne, Nom_Personne)

EPOUSER (Num_Mari#, Num_Femme#, Date_Mariage)

 Vous voilà mieux armé pour venir à bout de la phase 4 de l'analyse. Cependant; il reste bien d'autres choses que nous n'avons pas vues et qui feront l'objet de futurs développement. Il ne vous reste plus maintenant qu'à appliquer… 



1247