• Aucun résultat trouvé

Conception logique Projet base de données – 1A – ENS Cachan GROSSHANS Nathan

N/A
N/A
Protected

Academic year: 2022

Partager "Conception logique Projet base de données – 1A – ENS Cachan GROSSHANS Nathan"

Copied!
20
0
0

Texte intégral

(1)

Conception logique

Projet base de données – 1A – ENS Cachan

GROSSHANS Nathan

nathan.grosshans@lsv.ens-cachan.fr

3 mars 2017

(2)

Motivation

I Les données d’une base de données sontorganisées, au niveau logique, d’une certaine manière conforme à un certainmodèle logique de données.

I Parmi ces modèles logiques on notera le modèle relationnel, ou encore XML.

I Après l’élaboration du schéma conceptuel, il est nécessaire de traduire celui-ci en schéma logiqueéquivalent conforme à un certain modèle.

I Ceci s’effectue parapplications successives au schéma source detransformations préservant la sémantique du schéma.

Livre de référence utilisé pour cette séance

Hainaut J.-L.,Bases de données : Concepts, utilisation et développement. 1ère édition (2009).

(3)

Introduction

Modèle

Modèle logique de données classique : lemodèle relationnel.

Définition

Un schéma est ditrelationnels’il respecte les contraintes suivantes.

1. Le schéma comporte des types d’entités (appelés tables).

2. Tout type d’entités possède au moins un attribut (appelé colonne).

3. Un attribut est mono-valué et atomique ; il est obligatoire ou facultatif.

4. Les seules contraintes sont celles qui sont induites par les identifiants (identifiant primaire ousecondaire) et les attributs de référence (clés étrangères).

5. Le schéma relationnel ne contient pas d’autres constructions.

6. Les noms ne contiennent pas d’espaces, de tirets, de signes de ponctuation, d’accents ou d’autres symboles spéciaux autres que ‘_’.

(4)

Clés étrangères

Définitions

I Étant donné deux tables T et T0, une clé étrangère deT vers T0 est un ensemble de colonnesE deT, copie d’un identifiant E0 deT0 vérifiant que pour tout n-uplet t deT, il existe un n-uplet t0 de T0 tel que la valuation donnée aux colonnes de E dans t corresponde à la valuation donnée aux colonnes de E0 danst0 (contrainte référentielle).

I Les colonnes de E et E0 sont donc enmême nombre et de mêmes types.

I Les colonnes de E sont soit toutes obligatoires, soit toutes facultatives et coexistantes (tout n-uplet a soit toutes ses colonnes à NULL, soit elles sont toutes différentes de NULL et référencent un n-uplet de T0).

I En général,E0 est l’identifiant primaire de T0.

(5)

Introduction

Clés étrangères

Représentation graphique

. . .T . . . ref :e1

.. . ek

. . .T’

id :e10 .. . ek0 . . .

Exemple

CONTRAT num_contrat : uint id_client : uint type : varchar(50) duree : uint id : num_contrat

id_client ref : id_client

CLIENT id_client : uint nom : varchar(30) prenom : varchar(30) anciennete : uint id : id_client

(6)

Principe

I Application successive derègles de traduction à un schéma EA source jusqu’à obtenir un schéma relationnel.

I De telle manière que le schéma obtenu après chaque étape soit sémantiquement équivalentau schéma original.

I On supposera ici que le schéma EA source estsimple, c’est-à-dire qu’il vérifie les propriétés suivantes.

I Les types d’associations sont simples, c’est-à-dire binaires, sans attributs ni identifiants, et chacun des rôles ayant pour cardinalité 0–1, 1–1 ou 0–N.

I Le schéma ne contient pas de relation est-un.

Types d’entités

Les types d’entités se traduisent directement, sans transformation.

(7)

Traduction

Types d’associations

Un-à-plusieurs

E1 id_1 id : id_1

E2 id_2 id : id_2 R

0–N 1–1

E1 id_1 id : id_1

E2 id_2 id_1 id : id_2 ref : id_1

(8)

Types d’associations

Un-à-un

E1 id_1 id : id_1

E2 id_2 id : id_2 R

0–1 1–1

E1 id_1 id : id_1

E2 id_2 id_1 id : id_2 id’ : id_1

ref

(9)

Traduction

Types d’associations

Plusieurs-à-plusieurs

E1 id_1 id : id_1

E2 id_2 id : id_2 R

0–N 0–N

E1 id_1 id : id_1

R id_1 id_2 id : id_1

id_2 ref : id_1 ref : id_2

E2 id_2 id : id_2

(10)

Divers

Identifiants

SoitE un type d’entités et un identifiant deE contenant :

I les attributs a1, . . . ,ak;

I les rôles opposésR1.E1, . . . ,Rl.El.

SoitT la table obtenue par traduction deE, ainsi que T1, . . . ,Tl les tables obtenues par traduction, respectivement, deE1, . . . ,El. On noteraC1, . . . ,Cl les ensembles des colonnes référençant, respectivement, les identifiants primaires deT1, . . . ,Tl. L’identifiant correspondant deT sera{a1, . . . ,ak} ∪Sli=1Ci. Noms

Veiller à ce que les noms soientconformesaux restrictions imposées dans la définition d’un schéma relationnel ; les convertir sinon.

Contraintes d’intégrité additionnelles

Il faut lesréexprimersur le schéma relationnel.

(11)

Traduction

Exemple

PERSONNE nss : uint

nom : varchar(30) prenom : varchar(30) date_naissance : date id : nss

DIPLOME nom : varchar(50)

id : DELIVRE.INSTITUTION nom

A 0–N

0–N

INSTITUTION id_institution : uint nom : varchar(50) ville : varchar(50) budget[0–1] : uint id : id_institution id’ : nom

ville DELIVRE

1–1

0–N

DIRIGE

0–1

1–1

APPARTIENT

mère 0–N

fille 0–1

(12)

Exemple

DIPLOME id_institution : uint nom : varchar(50) id : id_institution

nom

ref : id_institution

A nss : uint

id_institution : uint nom : varchar(50) id : nss

id_institution nom

ref : nss

ref : id_institution nom

PERSONNE nss : uint

nom : varchar(30) prenom : varchar(30) date_naissance : date id : nss

INSTITUTION id_institution : uint nom : varchar(50) ville : varchar(50) budget[0–1] : uint mere[0–1] : uint dirigeant : uint id : id_institution id’ : nom

ville id’ : dirigeant ref : mere ref : dirigeant

(13)

Restructuration

Principe

I Si le schéma EA source n’est pas simple, il faut d’abord le restructurer pour que ce soit le cas.

I Cela se fait à nouveau par transformations successives préservant la sémantique.

Cardinalité

Si la cardinalité i–j d’un rôle dans un type d’associations n’est pas 0–1, 1–1 ou 0–N, alors on la remplace par 0–N et l’on ajoute une contrainte additionnelle forçant la bonne cardinalité.

Contraintes d’intégrité additionnelles

Il faut veiller, si nécessaire, à les adapter suite à chaque étape de restructuration.

(14)

Types d’associations complexes

E1 id_1 id : id_1

E2 id_2 id : id_2

. . . . . .

En id_n id : id_n

R id id : id

E1 E2 . . . En

0–N 0–N

0–N

(15)

Restructuration

Types d’associations complexes

E1 id_1 id : id_1

E2 id_2 id : id_2

. . . . . .

En id_n id : id_n

R id id : id

R1.E1 R2.E2 . . . Rn.En R1

0–N

1–1

R2

0–N

1–1

Rn

0–N

1–1

(16)

Relations est-un

Matérialisation

. . .A . . .

B1

. . . . . .

. . . Bn

. . . . . .

. . .A . . .

B1

. . . id :R1.A . . .

R1 1–1

0–1

. . . . . .Bn id :Rn.A . . . Rn

1–1 0–1

. . .

En fonction de la variante, il faut ajouter diverses contraintes.

I Sans contraintes : aucune contrainte.

I Recouvrement total :

∀a∈A,|{i ∈[n]| ∃b ∈Bi,b.Ri.A=a}| ≥1.

I Disjonction:∀a∈A,|{i ∈[n]| ∃b ∈Bi,b.Ri.A=a}| ≤1.

I Partition :∀a∈A,|{i ∈[n]| ∃b ∈Bi,b.Ri.A=a}|= 1.

(17)

Restructuration

Relations est-un

Héritage descendant

A id a1

. . . al

id : id . . .

B1

b1,1

. . . b1,k1

. . .

. . . Bn

bn,1

. . . bn,kn

. . .

A0 id a1

. . . al

id : id . . .

B1

id a1

. . . al

b1,1

. . . b1,k1

id : id . . .

. . .

Bn

id a1

. . . al

bn,1

. . . bn,kn

id : id . . .

(18)

Relations est-un

Il faut obligatoirement ajouter les contraintes suivantes.

I ∀i,j ∈[n],∀(b,b0)∈Bi×Bj,(b.id =b0.id ⇒ ∀ι∈[l],b.aι = b0.aι).

I ∀a0A0,@i ∈[n],∃b ∈Bi,b.id =a0.id.

De plus, en fonction de la variante, il faut ajouter diverses contraintes.

I Sans contraintes : aucune contrainte.

I Recouvrement total :|A0|= 0.

I Disjonction:

∀i,j ∈[n],(i 6=j ⇒ {b.id |bBi} ∩ {b0.id |b0Bj}=∅).

I Partition :|A0|= 0∧ ∀i,j ∈[n],(i 6=j ⇒ {b.id |bBi} ∩ {b0.id |b0Bj}=∅).

(19)

Restructuration

Relations est-un

Héritage ascendant

A id a1

. . . al

id : id . . .

B1

b1,1

. . . b1,k1

. . .

. . . Bn

bn,1

. . . bn,kn

. . .

A id a1

. . . al

B1_b1,1[0–1]

. . .

B1_b1,k1[0–1]

. . . . . . . . .

Bn_bn,1[0–1]

. . .

Bn_bn,kn[0–1]

id : id . . .

(20)

Relations est-un

Il faut obligatoirement ajouter la contrainte suivante :∀a∈A,∀s ∈ [n],∀i,j ∈[ks],(Bs_bs,i 6= NULL⇔Bs_bs,j 6= NULL).

Cette contrainte est plus complexe si au moins un des attributs d’un des sous-types est facultatif.

De plus, en fonction de la variante, il faut ajouter diverses contraintes.

I Sans contraintes : aucune contrainte.

I Recouvrement total :

∀a∈A,|{i ∈[n]|Bi_bi,16= NULL}| ≥1.

I Disjonction:∀a∈A,|{i ∈[n]|Bi_bi,16= NULL}| ≤1.

I Partition :∀a∈A,|{i ∈[n]|Bi_bi,1 6= NULL}|= 1.

Références

Documents relatifs

Alors la propriété ∀x, ∃y, P (x, y) est vraie : en effet pour toute personne vivante il existe un jour qui est le jour de sa naissance. Elle signifie en effet que toutes les

Les données des dépôts distants (objets “commit” et instantanés) sont entièrement copiées dans le dépôt local, et pour chaque branche <branche> d’un dépôt

Type Route Carrefour Nœud SNCF Ligne SNCF Section hydro Nœudhydro Conduite Etablissement Limite administrative. NIVEAU NATIONAL

i) Augmenter la fréquence de manière à diminuer la tension mesurée aux bornes du condensateur. On se placera par exemple sur le calibre 2V alternatif du

Le circuit de comptage est constitué de 2 afficheurs 7 segments l’une à anode commune qui affiche le chiffre de dizaine et l’autre à cathode commune qui affiche le chiffre

Pour compter le nombre de tôle découpé (flanc de boite), on utilise un compteur à base de bascules dont le signal d’horloge est activé par une cellule photo électrique (V) à

A partir d’un schéma conceptuel décrivant une base d’objets complexes, nous proposons des règles de dérivation pour générer, in fine, un schéma

Un modèlre électrique petit-signal de transistor se base sur une approche de type schéma équivalent électrique. Les éléments petits-signal sont déterminés à partir