Vous êtes sur la page 1sur 87
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com
Cours base de donnée Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com

Cours base de donnée

Enseignante : Pr. Salma GAOU Email: Salma.Gaou@gmail.com

Notion de système

d'éléments

(matériels ou non) transformant des éléments

d'entrées en éléments de sorties que l'on considère comme des flux d'entrées et de sorties.

Un

système

est

ensemble

un

Eléments

d’entrées

Système

Éléments en sorties

flux d'entrées et de sorties. Un système est ensemble un Eléments d’entrées Système Éléments en sorties
flux d'entrées et de sorties. Un système est ensemble un Eléments d’entrées Système Éléments en sorties

Système découpage

Système de Pilotage Système d'Information Système Opérant
Système
de Pilotage
Système d'Information
Système Opérant

contrôle, décisions, définition des objectifs

direction, régulation

Interface entre les deux systèmes précédents

Le SI est la mémoire de l'organisation

Réalisation des tâches

Réalisation des tâches

Système d’information

d’information (S.I.) d’une

organisation c’est l’ensemble des éléments chargés de stocker et de traiter les informations

(ordinateurs, postes de travail, règles et méthodes)

Le

système

Systems d’information

Modèle relationnel

Les modèles de données pour les BD

• Modélisation des données

• Modèles

Modèle entité/association

– Modèle hiérarchique

– Modèle réseau

Modèle relationnel

Modélisation des données

• Modèle de données :

– Ensemble de concepts pour décrire :

• Les données

• Les liens entre les données

• La sémantique des données

– En général, un ensemble d’opérations est associé pour manipuler les données

• Formalisme de description :

– Textuel

– Graphique

– Mathématique

• Exemples de modèles :

– Entité/association

– Hiérarchique/réseau

– Relationnel

– Objet, relationnel-objet

Modèle Entité/Association

code nbH coord UV 1,n num note S’inscrire 3,n nom Élève age 0,n 0,1 adresse
code
nbH
coord
UV
1,n
num
note
S’inscrire
3,n
nom
Élève
age
0,n
0,1
adresse
datePrêt
Emprunter
Louer
0,1
côte
1,1
no
Livre
Chambre
titre
prix

Modèle Entité/Association - 2

Livre 0,1 cote Emprunter titre Eleve datePret UV 0,n num code S’inscrire 1,n 3,n nom
Livre
0,1
cote
Emprunter
titre
Eleve
datePret
UV
0,n
num
code
S’inscrire
1,n
3,n
nom
nbH
note
age
Louer
coord
0,1
adresse
Chambre
no
1,1
prix

Critique du modèle Entité/Association

J Avantages

– Sémantique riche

– Extension aux concepts

objets (héritage,

)

– Aspect visuel

Þ Modèle de conception de BD

L Inconvénients

– Uniquement un modèle de description de données

– Pas de langage de manipulation associé

– Pas de SGBD E/A

Þ Pas un modèle d’implantation de BD

Modèle hiérarchique

• Système IMS d’IBM conçu à la fin des années 60 pour le programme Appolo (NASA)

• Exemple

Élève Livre UV Chambre
Élève
Livre
UV
Chambre
UV Elève
UV
Elève

Modèle hiérarchique (suite)

• Schéma BD

– Structure arborescente (forêt)

BD

– Collection d’enregistrements reliés par des pointeurs

• Langage de manipulation

– Navigationnel et procédural

– Utilisation de pointeurs

– (Exemple du langage DL/1 du système IMS)

• Problèmes :

– Pas d’indépendance logique/physique

– Redondance des données, risques d’incohérence

Modèle réseau

• Modèle défini par le groupe DBTG du comité CODASYL en 1971 (revu en 1978)

• Exemple

Élève
Élève

Chambre

UV

défini par le groupe DBTG du comité CODASYL en 1971 (revu en 1978) • Exemple Élève

Livre

Inscrit

Modèle réseau (suite)

• Schéma BD

– Structure de graphe orienté acyclique (DAG)

• BD

– Collection d’enregistrements reliés par des pointeurs

• Langage de manipulation

– Navigationnel et procédural

– Utilisation de pointeurs

– Standard CODASYL 71, 78

• Systèmes

– IDS2 d’Honeywell (1975), Total de Cincom (1974), Adabas de Soft. Ag (1978)

• Problèmes

– Pas d’indépendance logique/physique

Modèle relationnel

• [CODD 70] « A Relational Model for Large Shared Data Banks »

• Exemple

Élève(num, nom, adresse, age) UV(code, nbH, coord) Inscrit(numElève, codeUV, note) Livre(côte, titre, numElève, datePrêt) Chambre(no, prix, numElève)

Modèle relationnel (2) « MLD » Ecole

LIVRE COTE NUM ELEVE TITRE UV INSCRIT NUM DATEPRET CODE CODE NO NBH NUM NOM
LIVRE
COTE
NUM
ELEVE
TITRE
UV
INSCRIT
NUM
DATEPRET
CODE
CODE
NO
NBH
NUM
NOM
COORD
NOTE
AGE
CHAMBRE
ADRESSE
NO
NUM
PRIX

Modèle relationnel (3)

• Schéma BD

– Structure de relation

• BD

– Ensemble d’enregistrements reliés par des valeurs

• Langage de manipulation

– Ensembliste

– Déclaratif

– Standard international [ SQL 86, 89, 92 ou SQL2]

• Prototypes de recherche

– System/R chez IBM (1976), Ingres à Berkeley (1976)

• Systèmes commerciaux

– SQL/DS et DB2 d’IBM (1982), Oracle (1983), Ingres (1983), Informix (1981), Sybase (1984), SqlServer (1998)

– MySQL (1995)

– Access

Modèle relationnel (suite)

• Avantages

– Indépendance logique/physique

– Langage de manipulation simple

– Basé sur une théorie mathématique solide

Standard

Histoire des modèles

• Le modèle relationnel

ETUDIANT

ENSEIGNANT

NO_ET

NOM

ADRESSE

NO_ENS

NOM

CATEGORIE

1215

Anne

Grenoble

101

Boudrault

MC

1218

Pierre

Paris

105

Gispert

MC

1230

Jean

Marseille

110

Sabatier

MC

UNITE

INSCRIPTION

 

NO_UV

TITRE

NO_ENS

NO_ET

NO_UV

AN

BOOL

152

Bases de données

110

1215

152

1996

Reçu

210

syst èmes

105

1215

210

1996

Echec

212

Langage

101

1215

210

1997

Reçu

255

architecture

105

1218

152

1997

Reçu

 

1230

210

1997

Echec

Objectifs et caractéristiques

• Proposer des schémas de données faciles à utiliser

• Améliorer l’indépendance logique et l’indépendance physique

• Mettre à la disposition des utilisateurs des langages de haut niveau.

• Optimiser l’accès à la base de données

• Améliorer l’intégrité et la confidentialité

• Prendre en compte une variété d’applications.

• Fournir une approche méthodologique.

n La modélisation logiques des données est une représentation des données, issues de la modélisation
n La modélisation logiques des données est une représentation des données, issues de la modélisation

n

La modélisation logiques des données est une

représentation des données, issues de la modélisation conceptuelle puis des données

n

Elle est exprimée dans un formalisme général et

compatible avec l’état de l’art technique

n

Elle tient compte des aspects

coûts/performances liées aux traitements

n La modélisation logique des données conduira aux opérations   suivantes : q Transformation du
n La modélisation logique des données conduira aux opérations   suivantes : q Transformation du

n

La modélisation logique des données conduira aux opérations

 

suivantes:

q

Transformation du MCD, en un MLD exprimé dans un

 

formalisme logique adapté au SGBD envisagé

 

q

Optimisation générale (notamment du coût induit par le mode

 

de gestion)

n

Le MLD sera ensuite transformé et adapté en fonction des

spécificités du langage de définition des données spécifique à

l’outil retenu pour devenir MPD

cycle d’abstraction

Système d’information manuel

Système d’information manuel Expression des Besoins Modèle Conceptuel Modèle Organisationnel

Expression des Besoins

Système d’information manuel Expression des Besoins Modèle Conceptuel Modèle Organisationnel

Modèle Conceptuel

Système d’information manuel Expression des Besoins Modèle Conceptuel Modèle Organisationnel

Modèle Organisationnel

Système d’information manuel Expression des Besoins Modèle Conceptuel Modèle Organisationnel

Modèle Opérationnel

Conceptuel Modèle Organisationnel Modèle Opérationnel Système d’information automatique •Recueil des

Système d’information automatique

•Recueil des informations •Délimiter le système. •…
•Recueil des informations
•Délimiter le système.
•…
•Construire les MCD et MCT
•Construire les MCD et MCT
•Construire les MOD et MOT
•Construire les MOD et MOT
•Construire (entre autres) les MLD,MPD …
•Construire (entre autres) les
MLD,MPD …

22

n Plusieurs modèles (ou formalismes) théoriques de base de données sont disponibles pour représenter le
n Plusieurs modèles (ou formalismes) théoriques de base de données sont disponibles pour représenter le

n

Plusieurs modèles (ou formalismes) théoriques de base de données sont disponibles pour représenter le MLD :

q

Système de Gestion de Fichiers ou SGF (pas vraiment des SGBD)

q

SGBD hiérarchiques organisés selon une arborescence

q

SGBD réseau (ou CODASYL )

q

SGBD relationnels

q

SGBDOO

n

Les SGBD relationnels et objets prennent progressivement la

place des systèmes navigationnels

Modèle relationnel

n

Le modèle relationnel a été défini par E.F. Codd en 1970 à IBM

San José

n

Aspects fondamentaux du modèle relationnel:

q une algèbre permettant de manipuler des tables et des relations

q une démarche de conception permettant de définir une

collection de relations

n

Bibliographie :

q

Delobel, 1982

q

Gardarin, 1982, 1995

q

Bouzeghoub et al, 1990

q

Modèle relationnel

n

Un modèle est dit relationnel dans la mesure où il permet de

parcourir la structure des données empruntant des chemins non prédéfinis, constitués en dynamique par des requêtes

n

Les concepts du modèle relationnel découlent de la théorie des

ensembles

n

A ce type de modèle sont associées les notions suivantes:

q

domaine

q

table relationnelle

q

attribut

q

tuple (ou n-uplet)

Les domaines

n Un domaine est un ensemble de valeurs ayant une signification

pour l'utilisateur

q

Ex: le domaine des noms, le domaine des âges,…

 

q

Ex: le domaine des entiers E={

-2,-1,0,+1,+2,

}

Table relationnelle

n

Une table relationnelle:= Sous-ensemble du produit cartésien

d'une liste de domaines (non nécessairement distincts).

n

Une table relationnelle est généralement caractérisée par un

nom

n

Exemple:

q

D1= {n°compte}

q

D2= {Solde_compte}:

on peut composer la relation "compte".

Table relationnelle

n

La table (ou relation) est définie comme un tableau de

données

n

Les colonnes sont les attributs et les lignes sont des

tuples

n

Un ou plusieurs attributs permettent d’identifier de

façon unique chaque tuple de la table: la clé primaire

n

La clé primaire est dite simple si elle est constituée

d’un seul attribut et composée dans le cas contraire

Clé primaire

n

n

Une clé est un ensemble minimal d'attributs qui

détermine tous les autres

il peut y avoir plusieurs clés pour une même

relation; on en choisit en général une comme clé

primaire

Modèle relationnel

n Le lien entre 2 tables relationnelles est réalisé par la

duplication de la clé primaire d’une table dans l’autre

n Cette clé dupliquée est appelée clé externe (ou

étrangère)

n

Exemple:

CLIENT

Client_Num

Client_Nom

Client_Prénom

1,n

1,n

CLIENT Client_Num Client_Nom Client_Prénom 1,n COMMANDE     passe 1,1 Cmde_Num Cmde_Date

COMMANDE

   
passe 1,1 Cmde_Num Cmde_Date

passe

1,1

Cmde_Num

Cmde_Date

 
 

Exemple : table commande

Clé primaire

Exemple : table commande Clé primaire Attribut Clé étrangère Tuples

Attribut

Clé étrangère

Exemple : table commande Clé primaire Attribut Clé étrangère Tuples
Exemple : table commande Clé primaire Attribut Clé étrangère Tuples
Exemple : table commande Clé primaire Attribut Clé étrangère Tuples
Exemple : table commande Clé primaire Attribut Clé étrangère Tuples

Tuples

Exemple : table commande Clé primaire Attribut Clé étrangère Tuples
Exemple : table commande Clé primaire Attribut Clé étrangère Tuples

Exemple : table client

Client_Num

Client_Nom

Client_Prénom

VH20021

Hugo

Victor

EZ20006

Zola

Emile

AZ19999

Zapata

Achille

EZ19873

Zapata

Emilie

Règles de transformation

MOD en MLD relationnel

Attribut

n Une propriété est transformée en attribut

Clé primaire

n Un identifiant est transformé en une clé primaire

Clé composée

n Une concaténation d’identifiants est transformée en une clé

composée

Table issue d’entité

n Toute entité est transformé en table. Ses propriétés deviennent

les attributs de la table. L’identifiant devient clé primaire de la table

Règles de transformation

MOD en MLD relationnel - Exemple

CLIENT

N° Client Nom Prénom Date_naissance

Entité du MCD

N° Client Nom Prénom Date_naissance Entité du MCD CLIENT ( N° client , Nom, Prénom, Date_naissance)

CLIENT (N° client, Nom, Prénom, Date_naissance)

TABLE RELATIONNELLE

formalisme de Codd

Les cardinalités

n Table issue d’une association binaire:

q

(0,n)-(1,1)

q

(1,n)-(1,1)

n La clé primaire de la table issue de l’entité côté

cardinalités (0,n) ou (1,n) est dupliquée dans la table

issue de l’entité côté cardinalités (1,1) où elle devient clé

externe

Les cardinalités

n Table issue d’une association binaire

n

q

(0,n)-(0,1)

q

(1,n)-(0,1)

La clé primaire de la table issue de l’entité côté

cardinalités (0,n) ou (1,n) est dupliquée dans la table

issue de l’entité côté cardinalités (0,1) où elle

devient clé externe qui peut être une valeur nulle

Les cardinalités

n Table issue d’une association binaire

n

q

(0,1)-(1,1)

La clé primaire de la table issue de l’entité côté

cardinalités (0,1) est dupliquée dans la table issue de

l’entité côté cardinalités (1,1) où elle devient clé externe

Les cardinalités

n Table issue d’une association binaire

n

q

(0,1)-(0,1)

La clé primaire de la

est dupliquée dans la table issue

table issue de l’une des entités

de l’autre entité où

elle devient clé externe qui peut être une valeur

nulle

Les cardinalités

n Table issue d’une association binaire

q

(0,n)-(0,n)

q

(1,n)-(1,n)

q

(1,n)-(0,n)

n Une table ayant comme clé une clé composée des identifiants des 2 entités est créée. Les éventuelles

propriétés de l’association deviennent les attributs de la

table

Les cardinalités

n Table issue d’une relation ternaire ou supérieure

n Une table ayant comme clé une clé composée des

identifiants des entités est créée. Les éventuelles

propriété de l’association deviennent les attributs de

la table

n Table issue d’une association réflexive (0,n)-(0,1)

n La clé primaire de la table issue de l’entité est

dupliquée dans cette table où elle devient une clé

externe qui peut être une valeur nulle. Les éventuelles propriétés de l’association deviennent des attributs de la table

n Table issue d’une association réflexive

q

(0,n)-(0,n)

q

(1,n)-(1,n)

q

(1,n)-0,n)

n Une table ayant comme clé une clé composée de 2 fois

l’identifiant de l’entité est créée. Les éventuelles

propriétés de l’association deviennent des attributs de la

table.

Le modèle conceptuel de données : MCD – Relation ou association

• Une relation ou association est la liaison qui lie entre les entités du SI.

• Exemple: Un client peut commander des produits.

• Les entités de notre SI sont : Client et Produit.

• La relation est Commander.

Le modèle conceptuel de données : MCD – Relation ou association

• Le MCD de l’exemple est le suivant :

Le modèle conceptuel de données : MCD – Relation ou association • Le MCD de l’exemple

Le modèle conceptuel de données : MCD – Les cardinalités

— Définition:

Une cardinalité est le nombre de fois où l’occurrence d’une entité participe aux occurrence de la relation.

Dans notre exemple nous devons poser les questions suivantes:

1- Combien de fois au minimum un client peut commander un produit ?

2- Combien de fois au maximum un client peut commander un produit ?

Le modèle conceptuel de données : MCD – Les cardinalités

Cardinalité maximale 1, n Cardinalité minimale
Cardinalité
maximale
1,
n
Cardinalité
minimale

Le modèle conceptuel de données : MCD – Les cardinalités

• Il faut poser les mêmes questions pour l’entité Produit :

– Un produit peut-être acheté au minimum par combien de clients ?

– Un produit peut-être acheté au maximum par combien de clients ?

Le modèle conceptuel de données : MCD – Les cardinalités

1, 0, n n
1,
0,
n
n

Le modèle conceptuel de données : MCD – Les cardinalités

Notions sur les cardinalités:

– La cardinalité minimale (0 ou 1) exprime le

nombre de fo

is minimum qu’une occurrence

occurrences d’une

relation.

d’une entité participe aux

– La

cardinalité

ou

nombre de fois maximal qu’une occurrence

maximale

(1

ou

n)

(0

n) exprime le

d’une entité participe aux occurrences de la

relation.

Le modèle conceptuel de données : MCD – Les cardinalités

Exercice:

– Nous voulons créer un MCD complet qui représente l’élevage des femmes pour les enfants.

– Une femme est représenter par son nom et son prénom, les enfants aussi.

Le modèle conceptuel de données : MCD – Les cardinalités

Le modèle conceptuel de données : MCD – Les cardinalités • Corrigé:

Corrigé:

Le modèle conceptuel de données : MCD – Les cardinalités • Corrigé:

Le modèle conceptuel de données : MCD – Les cardinalités

Le modèle conceptuel de données : MCD – Les cardinalités — Remarque: ◦ Pour les cardinalités,

— Remarque:

Pour les cardinalités, il n’y a pas de règles exactes à suivre, tout est question d’interprétation, au sein d’une équipe de développement, il peut y avoir des divergences de point de vue. Pour les cardinalités, il faut être le plus logique possible, se référer aux règles de gestion édictées par le commanditaire de l’application.

Exemple: cas du mariage chez les musulmans et les autres !!

Le modèle conceptuel de données : MCD – Rappels

Le modèle conceptuel de données : MCD – Rappels — Analyse et conception pour créer des

— Analyse et conception pour créer des bases de données.

— Il faut utiliser des modèles : Modélisation.

— Méthode Merise : contient plusieurs modèles.

— MCD -> MLD -> MPD (Base de données).

— MCD:

Entité -> propriétés.

Associations.

Cardinalités.

Le modèle conceptuel de données : MCD – Rappels

Le modèle conceptuel de données : MCD – Rappels • MCD: – Occurrence exemple d’une Entité.

• MCD:

Occurrence exemple d’une Entité.

Cardinalités : minimal 0 ou 1;

maximal 1 ou n;

Une entité doit obligatoirement avoir un identifiant qui doit être souligné sur le MCD.

Le modèle conceptuel de données : MCD – Exercices

Le modèle conceptuel de données : MCD – Exercices Exercice 1: — Un groupe hôtelier vous

Exercice 1:

— Un groupe hôtelier vous demande de réaliser une application de gestion hôtelière. Cette application doit permettre la gestion de 8 hôtels, chaque hôtel possède 100 chambres maximum. Ces hôtels sont répartis en 5 classes(*,**,***,****,*****). Pour chaque hôtel il y a au maximum 9 catégories de chambres différentes(capacité, degré de confort).

— Cette application doit gérer aussi, les clients ainsi que leurs réservations.

— Travail à faire:

1- Trouver les entités en proposant leurs propriétés.

2- Trouver les associations et les cardinalités.

3- Elaborer le Modèle Conceptuel de Données.

Modèlisation Logique des Données

• Objectifs

• Règles de passage pour le modèle relationnel

• Exercice

Règle 1

1 objet MCD

Client N° Client Nom Adresse
Client
N° Client
Nom
Adresse
Objet1 Id1 Prop11 . . . . . . Prop1n
Objet1
Id1
Prop11
.
.
.
.
.
.
Prop1n
Nom Adresse Objet1 Id1 Prop11 . . . . . . Prop1n 1 table N° Client
Nom Adresse Objet1 Id1 Prop11 . . . . . . Prop1n 1 table N° Client
Nom Adresse Objet1 Id1 Prop11 . . . . . . Prop1n 1 table N° Client

1 table

N° Client Nom Adresse
N° Client
Nom
Adresse
Table1 Clé1 Att11 . . . . Att1n
Table1
Clé1
Att11
.
.
.
.
Att1n

Règle 2

relation hiérarchique
relation
hiérarchique
Règle 2 relation hiérarchique Id objet parent devient attribut table enfant
Id objet parent devient attribut table enfant
Id objet parent
devient attribut
table enfant

Règle 2

Interlocuteur Nom Interlocuteur Age 0,1 Appartenir 0,n Entreprise Code SIREN Nom Entreprise Adresse
Interlocuteur
Nom Interlocuteur
Age
0,1
Appartenir
0,n
Entreprise
Code SIREN
Nom Entreprise
Adresse

Interlocuteur

Nom Age Code SIREN
Nom
Age
Code SIREN

Entreprise

Code SIREN Nom Adresse
Code SIREN
Nom
Adresse
Nom Age Code SIREN Entreprise Code SIREN Nom Adresse Table1 Table2 Clé1 Clé2 Att11 Att21 .
Table1 Table2 Clé1 Clé2 Att11 Att21 . . . . . . . . Att1n
Table1
Table2
Clé1
Clé2
Att11
Att21
.
.
.
.
.
.
.
.
Att1n
Att2n
Clé1
Objet1 Objet2 Id1 Id2 0,n 0,1 Rel Prop11 Prop21 . . . . . .
Objet1
Objet2
Id1
Id2
0,n
0,1
Rel
Prop11
Prop21
.
.
.
.
.
.
.
.
.
.
.
.
Prop1n
Prop2n
Att2n Clé1 Objet1 Objet2 Id1 Id2 0,n 0,1 Rel Prop11 Prop21 . . . . .

Règle 3

Relations ordre N=2 et de cardinalité NP Relation ordre N>2
Relations ordre N=2 et de cardinalité NP
Relation ordre N>2
ordre N=2 et de cardinalité NP Relation ordre N>2 La relation devient une table. Les clés
La relation devient une table. Les clés de la table sont les identifiants des objets
La relation devient une table.
Les clés de la table sont les identifiants
des objets reliés.

Règle 3

Fournisseur Code Fournisseur Nom Fournisseur Adresse 0,n Proposer Prix Délai 0,n Article Code Article
Fournisseur
Code Fournisseur
Nom Fournisseur
Adresse
0,n
Proposer
Prix
Délai
0,n
Article
Code Article
Description
Code Fournisseur Nom Fournisseur Adresse
Code Fournisseur
Nom Fournisseur
Adresse
Code Fournisseur Code Article Prix Délai
Code Fournisseur
Code Article
Prix
Délai
Code Article Description
Code Article
Description

Règle 3

Fournisseur Article 0,n Livrer 0,n Code Fournisseur Taux de rebut Quantité Code Article 0,n Magasin
Fournisseur
Article
0,n
Livrer
0,n
Code Fournisseur
Taux de rebut
Quantité
Code Article
0,n
Magasin
N° Magasin

Livraison

Quantité Code Article 0,n Magasin N° Magasin Livraison Code Fournisseur Code Article N° Magasin Quantité Taux
Code Fournisseur Code Article N° Magasin Quantité Taux de rebut
Code Fournisseur
Code Article
N° Magasin
Quantité
Taux de rebut

Règle 3

Objet1 Objet2 Id1 Id2 Prop11 Prop21 . . . . . . . . .
Objet1
Objet2
Id1
Id2
Prop11
Prop21
.
.
.
.
.
.
.
.
.
.
.
.
Prop1n
Prop2n
Rel
PR1
.
.
.
PRn
Objet3
Id3
Prop31
.
.
.
.
.
.
Prop3n
Rel PR1 . . . PRn Objet3 Id3 Prop31 . . . . . . Prop3n
Table Rel Id1 Id2 Id3 PR1 . . . . PRn
Table Rel
Id1
Id2
Id3
PR1
.
.
.
.
PRn

Règle 4

Traitement de l'alternative

Règle 4 Traitement de l'alternative 0,1 0,1 Objet1 Objet2 Id1 Id2 0,1 0,1 Prop11 Prop21 .

0,1

0,1

Règle 4 Traitement de l'alternative 0,1 0,1 Objet1 Objet2 Id1 Id2 0,1 0,1 Prop11 Prop21 .
Objet1 Objet2 Id1 Id2 0,1 0,1 Prop11 Prop21 . . . . . . .
Objet1
Objet2
Id1
Id2
0,1
0,1
Prop11
Prop21
.
.
.
.
.
.
.
.
.
.
.
.
Prop1n
Prop2n
Prop21 . . . . . . . . . . . . Prop1n Prop2n Table1
Table1 Table2 Clé1 Clé2 Att11 Att21 . . . . . . . . Att1n
Table1
Table2
Clé1
Clé2
Att11
Att21
.
.
.
.
.
.
.
.
Att1n
Att2n
Clé2
Clé1

Modèlisation Logique des Données

• Objectifs

• Règles de passage pour le modèle relationnel

• Exercice

Exercice

Réalisateur Agent N° Réalisateur Nom Réal Id Agent Nom Agent 1,n 1,n A réalisé Manager
Réalisateur
Agent
N° Réalisateur
Nom Réal
Id Agent
Nom Agent
1,n
1,n
A réalisé
Manager
1,n
1,1
FILM
Acteur
N° Film
Nom Film
N° Acteur
Nom Acteur
1,n
1,n
A tourné dans
N° Contrat

Exercice

Réalisateur Agent N° Réalisateur Nom Réal Id Agent Nom Agent Réaliser N° Réalisateur N° Film
Réalisateur
Agent
N° Réalisateur
Nom Réal
Id Agent
Nom Agent
Réaliser
N° Réalisateur
N° Film
Acteur
FILM
N° Film
Nom Film
N° Acteur
Nom Acteur
Id Agent
Tourner
N° Film
N° Acteur
N° contrat

Elaboration d’une BD

On passe par deux phases :

1) Création du Modèle Conceptuel des Données (MCD)

2) traduction du MCD en Modèle Logique des Données (MLD)

Modèle Conceptuel de Données

Il décrit l’organisation initiale des données sous forme d’entités et de relations

Une entité est un être ou un objet (concret ou abstrait) qui peut être distingué d’un autre objet.

Une entité est composée de champs (ou attributs)

Etudiant

Cours

Nom

Intitulé

Prénom

Nbr heures

Etud

Modèle Conceptuel de Données

Une association (ou relation) exprime une interaction entre une à plusieurs entités. (Une association peut comporter des attributs)

Un étudiant suit 1 ou plusieurs cours

des attributs) Un étudiant suit 1 ou plusieurs cours Cours suit 0 n 1 n Etudiant
Cours suit 0 n 1 n
Cours
suit
0
n
1
n

Etudiant

suit 1 ou plusieurs cours Cours suit 0 n 1 n Etudiant Un cours est suivi

Un cours est suivi par aucun ou plusieurs étudiants

La Cardinalité d’un couple entité – association permet de préciser les nombres minimum et maximum de fois pour lesquelles une entité est concernée par l’association

Modèle Conceptuel de Données

Exemple

Créer un MCD pour modéliser le problème suivant :

Une société de vente par correspondance met en vente des produits.

Chaque produit est identifié par un numéro, un prix unitaire et une quantité en stock.

Un client identifié par un numéro de client, un nom, un prénom et une adresse passe commande à une date donnée d’un ensemble de produits.

Modèle Conceptuel de Données

Client Produit 1 1 1 n N°client Nom Prénom Adresse passe qté contient N°produit Libellé
Client
Produit
1
1
1
n
N°client
Nom
Prénom
Adresse
passe
qté
contient
N°produit
Libellé
Descriptif
Prix unitaire
Qté en stock
Commande
1
n
1
n

Date Prix total

Modèle Logique des Données

Comment passer du MCD au MLD ?

1) Les entités sont traduites en tables

Client

Commande

cl_id

co_id

cl_nom

co_date

cl_prenom

co_prix

cl_adresse

Produit

pr_id

pr_libelle

pr_qte_stock

pr_prix_unit

Modèle Logique des Données

Traduction des relations 1

1

<-> 1

n

L’identifiant de l’entité de cardinalité 1 attributs de l’entité de cardinalité 1 n

Commande

1 attributs de l’entité de cardinalité 1 n Commande co_id co_date co_prix co_id_client 1 est ajouté

co_id

co_date

co_prix

co_id_client

1

est ajouté aux

Modèle Logique des Données

Traduction des relations 1

n

<-> 1

n

Il faut créer une nouvelle table qui comprend les identifiants des deux entités

Comprod

id_cmd

id_prod

qte

Identifiant de commandecomprend les identifiants des deux entités Comprod id_cmd id_prod qte Identifiant de produit Quantité commandée 75

Identifiant de produitcomprend les identifiants des deux entités Comprod id_cmd id_prod qte Identifiant de commande Quantité commandée 75

Quantité commandéeles identifiants des deux entités Comprod id_cmd id_prod qte Identifiant de commande Identifiant de produit 75

Modèle Logique des Données

Client

cl_id

cl_nom

cl_prenom

cl_adresse

Commande

co_id co_date co_prix co_id_client Comprod id_cmd id_prod qte
co_id
co_date
co_prix
co_id_client
Comprod
id_cmd
id_prod
qte

Au final on obtient 4 tables

Produit

pr_id

pr_libelle

pr_qte_stock

pr_prix_unit

Comprod id_cmd id_prod qte Au final on obtient 4 tables Produit pr_id pr_libelle pr_qte_stock pr_prix_unit 76

76

Concepts de base du modèle

• Les objets sont les attributs d’un domaine.

• Les entités sont des relations

• Les liens 1 : N caractérisent l’association entre une clé primaire et des attributs non-clé.

Un domaine est un ensemble de valeurs :

D1 = {voiture, moteur, roue, châssis, essieu, culasse, piston, bielle, pneu, jante } D2 = {1,2,3,4,5}

• Le produit cartésien de domaines D1, D2,…, Di,…, Dn est l’ensemble des n- uplets ou tuples (v1,v2,…, vi, …, vn) tels que vi Î Di.

Une relation est un sous-ensemble du produit cartésien d’une liste de domaine.

Un attribut est la colonne d’une relation caractérisée par un nom. Ceci permet de rendre l’ordre des colonnes sans importance.

Concepts de base du modèle

Un schéma relationnel est le nom de la relation suivit de la liste des attributs avec leurs domaines. Ce schéma représente l’intention de la relation. Le tableau avec tous les tuples représente une extension de la relation. Exemple : R( Composant : D1 ; composé : D1 ; quantité : D2)

Une extension d'un schéma relationnel SR = ( X, C ) est une relation dont le schéma est X et dont la valeur vérifie toutes les contraintes de C.

Base de données relationnelle : BD dont le schéma est un ensemble de schémas relationnels.

Composant

Composé

Quantité

Voiture

Châssis

1

Voiture

Moteur

1

Voiture

Essieu

2

Voiture

Roue

5

Moteur

Culasse

1

Moteur

Piston

4

Moteur

Bielle

4

Roue

Pneu

1

Roue

Jante

1

Relations et associations

E

1

xE x ! xE F

2

k

/

E

k

+

1

xE

k

+

2

x ! xE n
x ! xE
n

R(E 1 , E 2 , …, E n )

Un n-uplet (e 1 , e 2 , …, e n ) Î R si et seulement si (e k+1 , e k+2 , …, e n ) Î F (e 1 , e 2 , …, e k ). de l’exemple du chapitre précédant on peut obtenir

Car la relation est une réalisation du schéma, la notion de relation correspond à un état de la BD et peut se trouver modifiée par suite d’opérations de mise en jour :

- L’addition d’un n-uplet dans une relation.

- La suppression d’un n-uplet dans une relation

- La modification d’un n-uplet dans une relation

- L’opération d’identité.

Exemple - Scolarité

• Ensembles d’entités :

1. ETUDIANT (NoEt,

)

– l’ensemble des étudiants qui suivent des études

actuellement, ou ce qui ont suivi des études dans le passé, jusqu’au 10 ans en arrière.

2. ENSEIGNANT

3. ENSEIGNEMENT

4. UNITÉ

5. SALLE

6. ADRESSE

7. NOM

8. ANNÉE (scolaire)

9. FONCTION ou position = {professeur, maître de conférence, assistant etc.}

10. HEURE

11. JOUR = {lundi, mardi,…}

12. NOMBRE

13. BÂTIMENT

14. BOOL = {vrai, faux}

Exemple - Scolarité

Associations :

15. ETUDIANT (1,1) s’appelle / est le nom de (0,n) NOM

16. ETUDIANT (1,1) habite / est habité par (0,n) ADRESSE

17. ENSEIGNEMENT (1,n) contient / est dans (1,n) UNITÉ

18. SALLE (1,1) a capacité de / est la capacité de (0,n) NOMBRE

19. SALLE (1,1) se trouve dans / contient (1,n) BÂTIMENT

20. ETUDIANT (1,1) est inscrit / étudiant de (0,n) ENSEIGNEMENT

21. ENSEIGNANT (0,n) est responsable de / est mené par (1,1) ENSEIGNEMENT

22. ETUDIANT (1,1) suivi /passe (a passé) ENSEIGNEMENT* ANNÉE* BOOL

23. ENSEIGNEMENT (0,n) requis / est requis par (0,n) ENSEIGNEMENT

24. UNITÉ (1,n) Emploi de temps / (0,1) HEURE* JOUR* SALLE* ENSEIGNANT

25. ENSEIGNANT (1,n) est occupé / (0,1) HEURE* JOUR* SALLE* UNITÉ

26. SALLE (1,1) est utilisée / (0,1) HEURE* JOUR* UNITÉ* ENSEIGNANT

27. ETUDIANT (1,1) a passé/ (0,n) BOOL

28. [(h,j,s,e) Î Emploi de temps(u)] º [(h,j,s,u) Î Occupé(e)] h Î HEURE, j Î JOUR, s Î SALLE, e Î ENSEIGNANT, u Î UNITÉ

29. [(h,j,m) Î utilisé(s)]Þ [$ e Î ENSEIGNANT* (h,j,s,u) Î Occupé(e)]

30. E={n Î ENSEIGNEMENT | $ a Î ANNÉE * (n,a,vrai) Î suivi(t) } où t Î ETUDIANT

31. n = inscrit(t) Þ Requis(n) Í E

Exemple - Scolarité

R1(ETUDIANT, NOM, ADRESSE, ENSEIGNEMENT) à partir des associations 15, 16 et 20. R2(SALLE, NOMBRE, BATIMENT) à partir des associations 18, 19. R3(ESEIGNEMENT, UNITE, ENSEIGNANT) à partir des associations 17, 21. R4(ETUDIANT, ENSEIGNEMENT, ANNEE, BOOL) à partir de l'association 22 R5(ENSEIGNEMENT, ENSEIGNEMENT REQUIS) à partir de l'association 23. R6(UNITE, HEURE, JOUR, SALLE, ENSEIGNANT) à partir des associations 24 ou 25. R7(ETUDIANT, BOOL) à partir de l'association 27. Pour le schéma R (UNITE, HEURE, JOUR, SALLE, ENSEIGNANT) son intention correspond aux contraintes d’intégrité suivantes :

– un prédicat associé à R : « l’enseignant e fait cours dans l'unité u le jour j, à l'heure h dans la salle s »

– le domaine du constituant HEURE est l’ensemble des entiers compris entre 7 et 20.

– Un enseignant à une heure donné ne peut être que dans une seule salle

Dépendance fonctionnelle

Soit la relation R(X, Y, Z). On dit qu’il existe une dépendance fonctionnelle (DF) entre X et Y notée :

X

R

¾¾®

Y

ou X ® Y

si et seulement si, quelles que soient X, Y et Z – valeurs (a, b, c) et (a’, b’, c’)

R

(

, , ) et R a b ¢, c ¢)

a b c

(

,

Þ

(b

= b ¢

)

Soit la relation R(X, Y, Z). On dit qu’il existe une dépendance fonctionnelle (DF) entre X et Y notée ou X ® Y si et seulement si, quelles que soient X, Y et Z – valeurs (a, b, c) et (a’, b’, c)

A 2

4

5

2

5

7

9

8

5

B 7

2

2

7

2

5

3

3

2

Dépendance fonctionnelle

Axiomes d’ Armstrong (1974) :

– Réflexivité : si YÍ X alors X ® Y

– augmentation : si X ® Y et W est un ensemble quelconque d’attributs alors XW ® YW

– transitivité : si X ® Y et Y ® Z alors X ® Z

– pseudo-transitivité : si X ® Y et YW ® Z alors XW ® Z

– union : si X ® Y et X ® Z alors X ® YZ

– décomposition : si X ® YZ alors X ® Y et X ® Z

Dépendance fonctionnelle

• Clé primaire

Le sous-ensemble des attributs X sera une clé de la relation R(A1,A2,…,An) si X ® A1 A2 …An et n’existe pas un sous-ensemble Y Í X tel que Y ® A1 A2 …An. Une relation peut avoir plusieurs clés (clés candidats ou sur-clés) mais une d’eux est choisie comme la clé primaire Dans R1 ETUDIANT est clé, Dans R6 on peut définir plusieurs clés (JOUR, HEURE, SALLE) ou (ENSEIGNANT, JOUR, HEURE) ou (UNITE, JOUR, HEURE).

Règles d’integrité

• Intégrité d’entité

• Intégrité de domaine

• Intégrité de référence – clé étrangère

R1

R2

Relation réferençante attribut non-clé
Relation
réferençante
attribut
non-clé

Relation

réferencée

Clé

Employe

Noem

Nom

Nodept

Depart

Nodept

Nom

NoChef

 

1

Gilbert

1

 

1 Comtab.

3

2

Dubois

2

 

2 Ventes.

2

3

Touré

1

 

3 Product.

4