conception dune base de données passage au schéma relationnel

Post on 04-Apr-2015

120 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Conception d’une Base de Données

Passage au SchémaRelationnel

2

Conception d’une BD : les niveaux

• conceptuel• logique• physique• externe

schémaphysique

schémaconceptuel

schémalogique

R1R2

UtilisateursUtilisateurs

3

Conception d’une BD : les étapes

Monde ExtérieurMonde Extérieur

Modélisation(UML)

Modélisation(UML)

Produits

idProdésignationpoids

Fournisseurs

idFourraisonSocialeadresse

Fournir

prixAchat

<< Association >>1 1* 1..*

Schéma Conceptuel : DCSchéma Conceptuel : DC

Produits (IdPro, désignation, poids)

Fournir(IdPro, IdFour, PrixAchat)

Fournisseurs(IdFour, RaisonSociale, adresse)

Produits (IdPro, désignation, poids)

Fournir(IdPro, IdFour, PrixAchat)

Fournisseurs(IdFour, RaisonSociale, adresse)

Schéma Logique ou RelationnelSchéma Logique ou Relationnel

Règles depassageRègles depassage

Normalisation ?Normalisation ?

Mise en œuvre

de la BD

Mise en œuvre

de la BD Schéma PhysiqueSchéma Physique

4

Schéma Logique : Schéma Relationnel Présentation

• Base théorique du langage SQL• Modèle basé sur les valeurs

– Di = {valeurs atomiques}

• Attribut – ai prenant sa valeur dans Di

• Relation – R[a1,..., an] définie sur les domaines D1, ..., Dn

– R sous-ensemble du produit cartésien D1*D2*...*Dn ETUDIANT (INE, NOM,ADRESSE)

INE = {100, 200, 300}NOM = {‘Sylvie’,’Patrick’}ADRESSE = {‘Toulouse’,’Montauban’}

ETUDIANT (INE, NOM,ADRESSE)

INE = {100, 200, 300}NOM = {‘Sylvie’,’Patrick’}ADRESSE = {‘Toulouse’,’Montauban’}

5

Schéma relationnelConcepts et Terminologie

• Relation : nom de la structure tabulaire regroupant les informations de même nature

• Tuple ou N-Uplet : ligne d’une relation• Attribut : nom du domaine • Clé primaire : attribut(s) permettant d’identifier

d’une manière unique une ligne • Clé étrangère : attribut(s) permettant d’identifier

d’une manière unique une ligne d’une autre relation (correspondant à une clé primaire)

• Clé candidate : attribut(s) pouvant se substituer à la clé primaire

6

Schéma relationnelExemple

10 Informatique 2

20 Achats 3

IdSerIdSer

SERVICESERVICE

NomSerNomSer NombreEmpNombreEmp

100 Michel 20 300

200 Sylvie 10 400

300 Bernard 20 ------

400 Claude 10 ------

500 Thomas 10 400

EMPLOYEEMPLOYE

IdEmpIdEmp NomEmpNomEmp IdSerIdSer IdEmp_RespIdEmp_Resp

Clés PrimairesClés Primaires

Clés ÉtrangèresClés ÉtrangèresClé CandidateClé Candidate

7

Schéma relationnelQuelques postulats

• Clé primaire – Obligatoire pour toutes les relations– Peut être composée de plusieurs attributs – Ne peut pas avoir de valeur indéfinie (NULL)

• Clé étrangère – Aucune ou plusieurs par relation – Peut être composée de plusieurs attributs Contrainte d’Intégrité Référentielle

• Clé candidate– Accès rapide dans le schéma physique

8

Passage du S. Conceptuel au S. RelationnelLes règles de passage

• Règle n°1 : Classes normales– Chaque classe devient une relation – L’identifiant de la classe devient la clé primaire de la relation

• Règle n°2 : Classes d’Associations 1-N (Mère-Fille)– Cette classe disparaît– La clé de la relation mère glisse dans la relation fille Clé Étrangère

• Règle n°3 : Classes d’Associations N-M (et n-aires) – Cette classe devient une relation– La clé primaire est composée des clés associées (clé primaire

composée)

• Règle n°4 : Classes d’Associations 1-1 – Cas particulier : expliqué plus loin

• Règle n°5 : Généralisation et Spécialisation– Expliqué plus loin

9

Association 1-N : Exemple

DiplomeDiplome EtudiantEtudiant

IdDipNomDipRespDip

IdDipNomDipRespDip

IneEtudiantNomEtudiantAdrEtudiant

IneEtudiantNomEtudiantAdrEtudiant**11

InscrireInscrire

DIPLÔME (IdDip, NomDip, RespDip)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant, IdDip#)

DIPLÔME (IdDip, NomDip, RespDip)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant, IdDip#)

10

Association N-N sans attribut : Exemple

EtudiantEtudiant StageStage

IneEtudiantNomEtudiantAdrEtudiant

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntrepriseRespStage

IdStageThémeStageEntrepriseRespStage

1..*1..***

ChoisirChoisir

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

11

Clé primaire composée : postulats

• Autant de composants que de classes associées (N-aires)

• Composée entièrement de clés étrangères• L’ordre des composants n’a pas d’importance

(pour le schéma relationnel)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

CHOISIR (IneEtudiant#, IdStage# )

STAGE (IdStage, Thèmestage, Entreprise, RespStage)

12

Association N-N avec attributs : Exemple

FournisseurFournisseur ProduitProduit

IdFourNomFourAdrFour

IdFourNomFourAdrFour

IdProduitNomProduitQtéStock

IdProduitNomProduitQtéStock

** 1..*1..*

FournirFournir

PrixDélaiLivQtéMin

PrixDélaiLivQtéMin

FOURNISSEUR(IdFour, NomFour, AdrFour)

FOURNIR (IdFour #, IdProduit#, Prix, DélaiLiv, QtéMin )

PRODUIT (IdProduit, NomProduit, QtéStock)

FOURNISSEUR(IdFour, NomFour, AdrFour)

FOURNIR (IdFour #, IdProduit#, Prix, DélaiLiv, QtéMin )

PRODUIT (IdProduit, NomProduit, QtéStock)

13

Association de type N-aires : Exemple

FournisseurFournisseur ProduitProduit

IdFourNomFourAdrFour

IdFourNomFourAdrFour

IdProduitNomProduitQtéStock

IdProduitNomProduitQtéStock

FournirFournir

PrixDélaiLivQtéMin

PrixDélaiLivQtéMin

ConditionnementConditionnement

IdCondLibCondIdCondLibCond

1..*1..*

**

**

14

Association de type N-aires : Exemple

FOURNISSEUR(IdFour, NomFour, AdrFour)

PRODUIT (IdProduit, NomProduit, QtéStock)

CONDITIONNEMENT (IdCond, LibCond)

FOURNIR (IdFour #, IdProduit#, IdCond#,

Prix, DélaiLiv, QtéMin )

FOURNISSEUR(IdFour, NomFour, AdrFour)

PRODUIT (IdProduit, NomProduit, QtéStock)

CONDITIONNEMENT (IdCond, LibCond)

FOURNIR (IdFour #, IdProduit#, IdCond#,

Prix, DélaiLiv, QtéMin )

15

Association 1-N réflexive : Exemple

EnseignantEnseignant

IdEnsNomEnsFonction

IdEnsNomEnsFonction

Est responsable deEst responsable de

A pour responsable A pour responsable **

0..10..1

ENSEIGNANT (IdEns, NomEns, Fonction, IdEns_Resp#)ENSEIGNANT (IdEns, NomEns, Fonction, IdEns_Resp#)

(nul autorisé)(nul autorisé)

16

Association N-N réflexive : Exemple

ProduitProduit

IdProduitLibProduitPrix

IdProduitLibProduitPrix

Est composé de Est composé de

Entre dans la composition de Entre dans la composition de **

**

ComposerComposer

QtéQté

PRODUIT (IdProduit, LibProduit, Prix)

COMPOSER (IdProduitComposé#, IdProduitComposant#, Qté)

PRODUIT (IdProduit, LibProduit, Prix)

COMPOSER (IdProduitComposé#, IdProduitComposant#, Qté)

17

Reprise de classe d’association : Exemple

JoueurJoueur TournoiTournoiIdLicenceNomJoueurClassement

IdLicenceNomJoueurClassement

IdTournoiNomTournoiVilleDate

IdTournoiNomTournoiVilleDate

** **

ParticiperParticiperRésultatRésultat

AmendeAmendeIdAmendeMontantIdAmendeMontant

** **

RecevoirRecevoirPrixPrix

IdPrixMontantIdPrixMontant

ObtenirObtenir

0..10..1**

18

Reprise de classe d’association : Exemple

JOUEUR (IdLicence, NomJoueur, Classement)

TOURNOI (IdTournoi, NomTournoi, Ville, date)

PARTICIPER (IdLicence#, IdTournoi#, Résultat, IdPrix#)

PRIX (IdPrix, Montant)

AMENDE (IdAmende, Montant)

RECEVOIR (IdAmende#,(IdLicence,IdTournoi)#)

JOUEUR (IdLicence, NomJoueur, Classement)

TOURNOI (IdTournoi, NomTournoi, Ville, date)

PARTICIPER (IdLicence#, IdTournoi#, Résultat, IdPrix#)

PRIX (IdPrix, Montant)

AMENDE (IdAmende, Montant)

RECEVOIR (IdAmende#,(IdLicence,IdTournoi)#)

(nul autorisé)(nul autorisé)

2 clés étrangères2 clés étrangères

19

Associations de type symétrique (1-1)Règle N°4 : 3 cas possibles

C1C1 C2C2

IdC1IdC1 IdC2IdC2

AssociationAssociation

11 11

C1 (IdC1, ……., IdC2#)

C2 (IdC2, ………..)

C1 (IdC1, ……., IdC2#)

C2 (IdC2, ………..)

C1 (IdC1, …….)

C2 (IdC2, ……….., IdC1#)

C1 (IdC1, …….)

C2 (IdC2, ……….., IdC1#)

C1 (IdC1, …….)

C2 (IdC2, ………..)

Association (IdC1#, IdC2#)

C1 (IdC1, …….)

C2 (IdC2, ………..)

Association (IdC1#, IdC2#)

UNIQUEUNIQUE

Valeurs nulles autorisées ou passelon les valeursminimums

Valeurs nulles autorisées ou passelon les valeursminimums

Dans le cas d’uneassociation optionnelle

Dans le cas d’uneassociation optionnelle

20

Associations de type 1-1 : Exemple

EtudiantEtudiant StageStage

IneEtudiantNomEtudiantAdrEtudiant

IneEtudiantNomEtudiantAdrEtudiant

IdStageThémeStageEntreprise

IdStageThémeStageEntreprise0..10..10..10..1

EffectuerEffectuer

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

STAGE (IdStage, ThèmeStage, Entreprise)

EFFECTUER (IdStage#, IdEtudiant#)

ETUDIANT (IneEtudiant, NomEtudiant, AdrEtudiant)

STAGE (IdStage, ThèmeStage, Entreprise)

EFFECTUER (IdStage#, IdEtudiant#)

UNIQUEUNIQUE

21

Généralisation et Spécialisation : Règle N°5

• Chaque classe devient une relation• Une ‘super classe’ peut contenir un attribut de

spécialisation• Chaque relation de l’ensemble possède la même

clé primaire• La vraie spécialisation avec l’héritage

correspondant sera pris en charge avec les SGBD Objet-Relationnel

22

Généralisation et Spécialisation : Exemple

PersonnelPersonnelIdPersNomIndice

IdPersNomIndice

ChercheurChercheur

SpécialitéLaboratoireSpécialitéLaboratoire

EnseignantEnseignantSectionTitreHeuresCours

SectionTitreHeuresCours

IngénieurIngénieurGradeFonctionDomaine

GradeFonctionDomaine

23

Généralisation et Spécialisation : Exemple

PERSONNEL (IdPers, Nom, Indice, TypePers)

INGENIEUR (IdPers, Grade, Fonction, Domaine)

ENSEIGNANT (IdPers, Section, Titre, HeuresCours)

CHERCHEUR (IdPers, Spécialité, laboratoire)

PERSONNEL (IdPers, Nom, Indice, TypePers)

INGENIEUR (IdPers, Grade, Fonction, Domaine)

ENSEIGNANT (IdPers, Section, Titre, HeuresCours)

CHERCHEUR (IdPers, Spécialité, laboratoire)

Attribut de SpécialisationAttribut de Spécialisation

top related