• Aucun résultat trouvé

Base de données

N/A
N/A
Protected

Academic year: 2022

Partager "Base de données"

Copied!
46
0
0

Texte intégral

(1)

Base de données

Traduction

modèle E/A schéma relationnel

L3 Informatique

Antoine Spicher

antoine.spicher@u-pec.fr

(2)

Plan

Rappels du modèle relationnel

Entité/Association ⇒ schéma relationnel

(3)

Modèle relationnel, rappels

Origine

Edgar Frank “Ted” Codd (1970)

A relational model of data for large shared data banks

Présentation informelle

Relation : table à deux dimension

Ligne : tuple

ensemble de lignes : contenu de la relation (occurrences, extension) Colonne : attribut

en-tête du tableau : schéma de la relation (description du type)

Exemple

Base de données - L3 Informatique - A. Spicher 3

Edgar Frank "Ted" Codd (source : Wikipédia)

VIN N°VIN CRU MILLESIME REGION N°VITICULTEUR

100 Julienas 97 Beaujolais 3

150 Bourgueuil 96 Loire 3

125 Bourgueuil 96 Loire 4

(4)

Modèle relationnel, rappels

Présentation formelle

Domaine de valeurs

Ensemble de valeurs

Les entiers, chaînes de caractère, type énuméré, etc.

Relation

Sous-ensemble du produit cartésien de plusieurs domaines

⊆ × × … ×

Tuple d’une relation

Élément de la relation

( , , … , ) avec ∀ , ∈

Attribut

Ne pas considérer l’ordre des colonnes

Définition : « nom donné au rôle joué par un domaine »

∶ ⟶

(5)

Modèle relationnel, rappels

Contraintes structurelles

Clé

Définition (clé candidate)

« Ensemble non-vide minimum d’attributs dont chaque valeur détermine un tuple unique dans toute l’extension de la relation »

Exemple

{ N°VIN } ou { CRU, MILLESIME, N°VITICULTEUR } pour la relation VIN

Contrainte d’entité

Toute relation doit posséder au moins une clé

Contrainte référentielle

Traduction du lien sémantique entre deux relations Clé étrangère (ou référence)

« Ensemble non-vide d’attributs qui référence une clé d’une autre relation » Lors de l’insertion d’un tuple

La valeur de la clé étrangère doit exister dans la relation référencée

Base de données - L3 Informatique - A. Spicher 5

(6)

Modèle relationnel, rappels

Schéma d’une base de données

Ensemble des schémas des différentes relations de la BD

Les domaines et noms des attributs Les clés de chaque relation (soulignées) Les contraintes référentielles ( )

Exemple

VITICULTEUR(N°VITICULTEUR, VNOM, VPRENOM, VVILLE)

VIN(N°VIN, CRU, MILLESIME, N°VITICULTEUR, REGION)

COMMANDE(N°COMMANDE, N°CLIENT, N°VIN, CDATE, CQUANTITE)

CLIENT(N°CLIENT, CLNOM, CLPRENOM, CLVILLE)

LIVRAISON(N°COMMANDE, LDATE, LQUANTITE)

(7)

Plan

Rappels du modèle relationnel

Traduction modèle EA ⇒ modèle relationnel

Base de données - L3 Informatique - A. Spicher 7

(8)

Traduction EA SR

Big Picture…

« Réalité »

(Stock, salle /

enseignement, compte, …)

Base de données

représentation de la réalité

Schéma conceptuel Entités/Associations

Schéma

relationnel/logique Produit A B E 1 B 9 2 B 7 Client

A B C D 1 A 5 C 1 B 8 D

Conception

(9)

Traduction EA SR

EA ≠ SR

Un socle commun : SR ⊆ EA ?

Entité ≡ relation

Associations, entités faibles

EA : données explicitement

SR : données implicitement sous forme de contraintes référentielles

Éléments EA de haut niveau

Attributs multivalués et/ou composites Généralisation, spécialisation et héritage Agrégation

EA ⇒ SR

Objectif

Schéma relationnel + définition de vues + contraintes d’intégrité

Traduction par étapes successives

Dénaturer l’EA jusqu’à ne conserver que des entités…

Base de données - L3 Informatique - A. Spicher 9

(10)

Traduction EA SR

Étapes de la traduction EA ⇒ SR

Traduction des héritages

Traduction des attributs multivalués et composés

Traduction des associations, des agrégations et des entités faibles

(Normalisation)

(11)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité

Utilisable lorsque les spécialisations ne sont pas réellement utilisées Pas d’attribut ou peu (utilisation de la valeur null), pas d’association Utilisation de vues pour les spécialisations

La spécialisation doit être dépendante des attributs de la super-entité

Base de données - L3 Informatique - A. Spicher 11

(12)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité

Exemple

Personne ID

nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse type crédits salaire

Vues Etudiant et Employé

ID,nom,adresse,crédits( type étudiant(Personne))

ID,nom,adresse,salaire( type employé(Personne)) Contraintes d’intégrité (type héritage)

type = étu salaire = null crédit null

type = emp salaire null crédit = null

type = étuemp salaire null crédit null

type = autre salaire = null crédit = null

{étu,emp,étuemp,autre} ∋

(13)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité

Exemple

Base de données - L3 Informatique - A. Spicher 13

Personne ID

nom adresse type crédits salaire Personne

ID nom adresse

Employé Etudiant

crédits salaire Vues Etudiant et Employé

ID,nom,adresse,crédits( type étudiant(Personne))

ID,nom,adresse,salaire( type employé(Personne))

{étu,emp,étuemp} ∋

Contraintes d’intégrité (type héritage)

type = étu salaire = null crédit null

type = emp salaire null crédit = null

type = étuemp salaire null crédit null

(14)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité

Exemple

Personne ID

nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse type crédits salaire

Vues Etudiant et Employé

ID,nom,adresse,crédits( type étudiant(Personne))

ID,nom,adresse,salaire( type employé(Personne))

{étu,emp,autre} ∋

Contraintes d’intégrité (type héritage)

type = étu salaire = null crédit null

type = emp salaire null crédit = null

type = autre salaire = null crédit = null

(15)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité

Exemple

Base de données - L3 Informatique - A. Spicher 15

Personne ID

nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse type crédits salaire

Vues Etudiant et Employé

ID,nom,adresse,crédits( type étudiant(Personne))

ID,nom,adresse,salaire( type employé(Personne))

{étu,emp} ∋

Contraintes d’intégrité (type héritage)

type = étu salaire = null crédit null

type = emp salaire null crédit = null

(16)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations

Utilisable lorsque la super-entité n’est pas utilisée Généralisation/spécialisation totale et disjointe Pas d’association propre

Utilisation d’une vue pour la super-entité Chaque spécialisation implante le schéma

(17)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations

Exemple

Base de données - L3 Informatique - A. Spicher 17

Etudiant ID

nom adresse crédits

Employé ID

nom adresse salaire

Vue Personne

ID,nom,adresse(Etudiant) ∪ ID,nom,adresse(Employé) Contrainte d’intégrité

ID(Etudiant) ∩ ID(Employé) = ∅ Personne

ID nom adresse

Employé Etudiant

crédits salaire

(18)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 1 : le schéma est factorisé (seule la clé est partagée) Clés étrangères pour les spécialisations

Inconvénient

Information sur une spécialisation = jointure

(19)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 1 : factorisation

Base de données - L3 Informatique - A. Spicher 19

Personne ID

nom adresse Etudiant

ID crédits

Employé ID

salaire

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID Personne

ID nom adresse

Employé Etudiant

crédits salaire

(20)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 1 : factorisation

Personne ID

nom adresse Etudiant

ID crédits

Employé ID

salaire

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID

Contrainte d’intégrité (suivant le type d’héritage) ID Etudiant ID Employé = ID Personne Personne

ID nom adresse

Employé Etudiant

crédits salaire

(21)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 1 : factorisation

Base de données - L3 Informatique - A. Spicher 21

Personne ID

nom adresse Etudiant

ID crédits

Employé ID

salaire

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID

Contrainte d’intégrité (suivant le type d’héritage) ID Etudiant ID Employé = ∅

Personne ID

nom adresse

Employé Etudiant

crédits salaire

(22)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 1 : factorisation

Personne ID

nom adresse Etudiant

ID crédits

Employé ID

salaire

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID

Contraintes d’intégrité (suivant le type d’héritage)

ID Etudiant ID Employé = ∅

ID Etudiant ID Employé = ID Personne Personne

ID nom adresse

Employé Etudiant

crédits salaire

(23)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 2 : le schéma est dupliqué

Ajout de contraintes d’intégrité sur les clés Inconvénient

Information redondante, cohérence plus difficile à maintenir

Base de données - L3 Informatique - A. Spicher 23

(24)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 2 : duplication

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID Contraintes d’intégrité

ID,nom,adresse Etudiant Personne

ID,nom,adresse Employé Personne Personne

ID nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse Etudiant

ID nom adresse crédits

Employé ID

nom adresse salaire

(25)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 2 : duplication

Base de données - L3 Informatique - A. Spicher 25

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID Contraintes d’intégrité

ID,nom,adresse Etudiant Personne

ID,nom,adresse Employé Personne

ID Etudiant ID Employé = ID Personne Personne

ID nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse Etudiant

ID nom adresse crédits

Employé ID

nom adresse salaire

(26)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 2 : duplication

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID Contraintes d’intégrité

ID,nom,adresse Etudiant Personne

ID,nom,adresse Employé Personne

ID Etudiant ID Employé = ∅ Personne

ID nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse Etudiant

ID nom adresse crédits

Employé ID

nom adresse salaire

(27)

Traduction EA SR – Héritage

Trois solutions possibles

Conserver uniquement la super-entité Conserver uniquement les spécialisations Conserver toutes les entités

Choix 2 : duplication

Base de données - L3 Informatique - A. Spicher 27

Contraintes référentielles

Etudiant.ID ⟶ Personne.ID

Employé.ID ⟶ Personne.ID Contraintes d’intégrité

ID,nom,adresse Etudiant Personne

ID,nom,adresse Employé Personne

ID Etudiant ID Employé = ∅

ID Etudiant ID Employé = ID Personne Personne

ID nom adresse

Employé Etudiant

crédits salaire

Personne ID

nom adresse Etudiant

ID nom adresse crédits

Employé ID

nom adresse salaire

(28)

Traduction EA SR – Attributs composites

Mise à plat des attributs composites Exemple

Mise à plat des attributs nom et adresse d’une Personne

Personne NIR

nom

prénom nom_fam adresse

rue

numero nom ville

code_postal

Personne NIR

prénom nom_fam num_rue nom_rue ville

code_postal

(29)

Traduction EA SR – Attributs multivalués

Deux traductions possibles

Cas général : création d’une nouvelle entité

Regroupant les différentes valeurs de l’attribut Utilisation de la clé de l’entité d’origine

Clé étrangère faisant la référence entre les entités

Exemple

Création de l’entité PersTél

Base de données - L3 Informatique - A. Spicher 29

Personne NIR

{ num_tel }

Personne NIR

PersTél NIR

num_tel

Contraintes référentielles PersTél.NIR Personne.NIR

(30)

Traduction EA SR – Attributs multivalués

Deux traductions possibles

Cas général : création d’une nouvelle entité Cas particulier : multiplication de l’attribut

Le nombre maximal de valeur est borné et assez petit

Difficultés à maintenir (utilisation de la valeur spéciale null)

Exemple

Création de 3 attributs num_tel

Personne NIR

{ num_tel }

Personne NIR

num_tel1 num_tel2 num_tel3

(31)

Traduction EA SR – Associations

Technique générale

Transformation de l’association en un entité

Clé primaire : union des clés des entités

Contraintes référentielles entre l’association et les entités Contraintes d’intégrité pour rendre compte des cardinalités

Définition formelle

Soit # ensembles d’entités $ , … , $

Soit % = { , , … } la clé primaire de l’ensemble d’entités $

Soit l’ensemble d’associations d’entités $ , … , $ et d’attributs , … , &

est traduit en un ensemble d’entités $

d’attributs , … & ∪ ⋃ % et de clé primaire ⋃ % Contraintes référentielles

pour tout , ( ajouter $. ,* ⟶ $ . ,*

Contrainte d’intégrité : si $ a pour cardinalité [, … -] dans ajouter ∀/ ∈ $ , ≤ | 23,4 23,4(5),…($)| ≤ -

Base de données - L3 Informatique - A. Spicher 31

(32)

Technique générale

Traduction EA SR – Associations

$

,

$

,

$

,

$

,

$

,

$

,

$

,

,

,

&

&

Contraintes référentielles

$. , ⟶ $ . ,

$. , ⟶ $ . ,

$. , ⟶ $ . ,

Contraintes d’intégrité

∀/ ∈ $ , ≤ | 24,4 24,4(5),…($)| ≤ -

∀/ ∈ $ , ≤ | 26,4 26,4(5),…($)| ≤ -

[, … - ]

[, … - ]

[, … - ]

(33)

Traduction EA SR – Associations

Technique générale

Base de données - L3 Informatique - A. Spicher 33

1..N

0..N

Etudiant INE

nom

UE UEnom référant

Suivre UEnom INE note Contraintes référentielles

Suivre.UEnom ⟶ UE.UEnom Suivre.INE Etudiant.INE

Contrainte d’intégrité

∀/ ∈ Etudiant 1 ≤ | INE INE(5),…(Suivre)|

UE UEnom référant Etudiant

INE nom

suivre

note

(34)

Traduction EA SR – Associations

Inconvénients de la technique générale

Génération de clés primaires non-minimales

Cardinalité maximale égale à 1

Choisir la clé de l’une des entités de card. max. à 1 comme clé primaire Exemple

Enseignant NUMEN nom prénom

Stage sujet type

Etudiant INE

nom prénom

0..N 0..1

0..1

Tutorat sujet NUMEN INE date tutorat

date

Contraintes référentielles

Tutorat.NUMEN Enseignant.NUMEN Tutorat.INE Etudiant.INE

Tutorat.sujet Stage.sujet Contraintes d’intégrité

(35)

Traduction EA SR – Associations

Inconvénients de la technique générale

Génération de clés primaires non-minimales

Cardinalité maximale égale à 1

Choisir la clé de l’une des entités de card. max. à 1 comme clé primaire Exemple

Base de données - L3 Informatique - A. Spicher 35

Enseignant NUMEN nom prénom

Etudiant INE

nom prénom

Tutorat sujet NUMEN INE date date

Contraintes référentielles

Tutorat.NUMEN Enseignant.NUMEN Tutorat.INE Etudiant.INE

Tutorat.sujet Stage.sujet Contraintes d’intégrité

tutorat

Stage sujet type

0..N 0..1

0..1

(36)

Traduction EA SR – Associations

Inconvénients de la technique générale

Génération de clés primaires non-minimales Création de redondances

Cas particulier des cardinalités [1..1]

Fusionner l’association avec l’entité de cardinalité [1..1]

Exemple : une seule entité

Enseignant NUMEN nom prénom

Etudiant INE

nom prénom

Tutorat sujet NUMEN INE date date

Contraintes référentielles

Tutorat.NUMEN Enseignant.NUMEN Tutorat.INE Etudiant.INE

Tutorat.sujet Stage.sujet Contraintes d’intégrité

tutorat

Stage sujet type

0..N 1..1

0..1

(37)

Traduction EA SR – Associations

Inconvénients de la technique générale

Génération de clés primaires non-minimales Création de redondances

Cas particulier des cardinalités [1..1]

Fusionner l’association avec l’entité de cardinalité [1..1]

Exemple : une seule entité

Base de données - L3 Informatique - A. Spicher 37

Enseignant NUMEN nom prénom

Etudiant INE

nom prénom

Etudiant INE

nom prénom NUMEN sujet date date

Vue Tutorat

INE,NUMEN,sujet,date(Etudiant) Contraintes référentielles

Etudiant.NUMEN Enseignant.NUMEN Etudiant.sujet Stage.sujet

Contraintes d’intégrité

tutorat

Stage sujet type

0..N 1..1

0..1

(38)

Traduction EA SR – Associations

Inconvénients de la technique générale

Génération de clés primaires non-minimales Création de redondances

Cas particulier des cardinalités [1..1]

Fusionner l’association avec l’entité de cardinalité [1..1]

Exemple : une seule entité

Enseignant NUMEN nom prénom

Etudiant INE

nom prénom

Etudiant INE

nom prénom NUMEN sujet date date

Vue Tutorat

INE,NUMEN,sujet,date(Etudiant) Contraintes référentielles

Etudiant.NUMEN Enseignant.NUMEN Etudiant.sujet Stage.sujet

Contraintes d’intégrité

tutorat

Stage sujet type

0..N 1..1

1..1

(39)

Traduction EA SR – Associations

Inconvénients de la technique générale

Génération de clés primaires non-minimales Création de redondances

Cas particulier des cardinalités [1..1]

Fusionner l’association avec l’entité de cardinalité [1..1]

Exemple : plusieurs entités

Base de données - L3 Informatique - A. Spicher 39

Enseignant NUMEN nom prénom

Etudiant INE

nom prénom date

Vues Tutorat et Stage

INE,NUMEN,sujet,date(Etudiant) sujet,type(Etudiant)

Contraintes référentielles

Etudiant.NUMEN Enseignant.NUMEN Contraintes d’intégrité

tutorat

Stage sujet type

0..N 1..1

1..1

Stage sujet type

Etudiant INE

nom prénom NUMEN sujet type date

(40)

Traduction EA SR – Agrégations

Traduction des agrégations

Ordre supérieur des associations

Associations entre associations

Transformation trivial

Association agrégée traduite en entité (cf. slides précédents)

Association d’ordre supérieur ramenée à une association de première ordre

Enseignant NUMEN nom prénom

date tutorat

Stage sujet type

0..1

1..N 0..1

évaltut

Evaluation refApo note

coefficient

0..1 0..1

Etudiant INE

nom prénom

(41)

Traduction EA SR – Agrégations

Traduction des agrégations

Ordre supérieur des associations

Associations entre associations

Transformation trivial

Association agrégée traduite en entité (cf. slides précédents)

Association d’ordre supérieur ramenée à une association de première ordre

Base de données - L3 Informatique - A. Spicher 41

Enseignant NUMEN nom prénom

Stage sujet

type Evaluation

refApo note

coefficient

0..1

0..1

Etudiant INE

nom prénom

Tutorat sujet INE NUMEN date

évaltut

(42)

Traduction EA SR – Agrégations

Traduction des agrégations

Ordre supérieur des associations

Associations entre associations

Transformation triviale

Association agrégée traduite en entité (cf. slides précédents)

Association d’ordre supérieur ramenée à une association de première ordre

Enseignant NUMEN nom prénom

Stage sujet type

Evaluation refApo note

coefficient Etudiant

INE nom prénom

Tutorat sujet INE NUMEN date

Evaltut refApo sujet

(43)

Traduction EA SR – Entités faibles

Traduction des ensembles d’entités faibles

Ensemble d’entités sans clé primaire

Le discriminant définit une sous-partie de la clé primaire

Transformation en ensemble d’entités fort

Fusion avec l’association identifiante

Utilisation des clés primaires des entités identifiantes

Base de données - L3 Informatique - A. Spicher 43

Section groupe semestre descriptif

1..1

UE refApo intitulé nbECTS

1..N

UESec Enseignant

NUMEN nom prénom

0..N

(44)

Traduction EA SR – Entités faibles

Traduction des ensembles d’entités faibles

Ensemble d’entités sans clé primaire

Le discriminant définit une sous-partie de la clé primaire

Transformation en ensemble d’entités fort

Fusion avec l’association identifiante

Utilisation des clés primaires des entités identifiantes

Section groupe semestre refApo NUMEN descriptif UE

refApo intitulé nbECTS Enseignant NUMEN nom prénom

(45)

Traduction EA SR – Entités faibles

Traduction des ensembles d’entités faibles

Ensemble d’entités sans clé primaire

Le discriminant définit une sous-partie d’une clé primaire

Transformation en ensemble d’entités fort

Fusion avec l’association identifiante

Utilisation des clés primaires des entités identifiantes

Base de données - L3 Informatique - A. Spicher 45

Section groupe semestre descriptif

1..1

UE refApo intitulé nbECTS

1..*

suivre Etudiant

INE nom prénom

0..*

(46)

-- FIN --

Références

Documents relatifs

Pour la consultation ou la diffusion, il peut être utile de numériser les images et sons, tâche qui doit être effectuée par des spécialistes A noter que numérisation ne

Colloque organisé par Sylvain Soleil de l’Université de Rennes 1 et Romain Bareau de l’Université Bretagne Sud, avec le soutien du laboratoire Lab-Lex des Universités Bretagne Sud

Au-delà de ces informations, c’est l’encouragement et l’intérêt que vous portez à la réussite éducative de votre enfant qui demeure la meilleure source de motivation..

La production d’aliments in situ (dans le vaisseau ou dans la base) permettra pour une petite partie d’optimiser la masse de nourriture à emporter pour la mission, mais aussi

Le revêtement Glass Protect est si fi n qu’il ne se voit pas à l’oeil nu, il ne modifi e pas la transparence du verre : le seul effet visible révélant la présence de

Ce document d’information vous permettra de mieux connaître les risques auxquels votre commune est soumise mais aussi ceux auxquels vous êtes exposés et d’adopter les

• Nettoyer régulièrement les douchettes en grattant les picos anticalcaires; éventuellement, tremper les dans une solution de vinaigre blanc/eau chaude.. • Nettoyer

Les différences nettes de score moyen entre les individus appartenant aux catégories de contraste des facteurs étudiés (par exemple, les diplômés de l’enseignement tertiaire