52
Chapitre 3 : Le Modèle Relationnel Mr. Mohamed Salah MEDDEB http://meddeb.jimdo.com 1

Chapitre 3 : Le Modèle Relationnel

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre 3 : Le Modèle Relationnel

Chapitre 3 :

Le Modèle Relationnel

Mr. Mohamed Salah MEDDEB

http://meddeb.jimdo.com

1

Page 2: Chapitre 3 : Le Modèle Relationnel

2

Historique : E.F. CODD dans les années 70

• modèle basé sur la théorie des ensembles

• des langages pour manipuler les données (SQL)

• une démarche pour représenter le « monde réel »

Nombreux outils :

• MySQL (logiciel libre)

• Access (Microsoft) versions 1997 – 2003 – 2007 - 2010

• ORACLE (Oracle corp.)

• SQL Server (Microsoft)

• Ingres (Computer Associates)

Modèle relationnel - SQL

Page 3: Chapitre 3 : Le Modèle Relationnel

Concepts des Bases de Données Relationnelles

Relation, faite de 2 composantes:

Instance : une table, avec lignes et colonnes.

#lignes = cardinalité, #colonnes = degré / arité.

Schéma : spécifie le nom de la relation, plus le nom et le

domaine (type) de chaque colonne (attribut).

Une relation est un ensemble de lignes (tuples) distinctes;

chaque tuple a la même arité que le schéma de la relation.

Base de données relationnelles: un ensemble des relations de

la BD, chacune ayant un nom distinct.

Schéma d’une BD: ensemble de schémas des relations

dans la BD.

Instance de la BD: ensemble des instances relationnelles de

la BD.

3

Page 4: Chapitre 3 : Le Modèle Relationnel

Langages de Requêtes Relationnelles

Un avantage majeur du modèle relationnel est qu’ilsupporte de simples et puissantes requêtes sur lesdonnées.

Les requêtes peuvent être écrites de manière intuitive (i.e.déclarative), et le SGBD est responsable de leurévaluation efficiente.

L’utilisateur dit au SGBD quoi faire et le système cherchecomment faire ce qu’il y a à faire de manière efficiente!

La clé du succès: sémantique précise des requêtes.

Permet à l’optimisateur de réordonner les opérations touten garantissant que la réponse ne change pas.

4

Page 5: Chapitre 3 : Le Modèle Relationnel

5

Modèle Relationnel

SCHEMA D’UNE RELATION :

Page 6: Chapitre 3 : Le Modèle Relationnel

6

Modèle Relationnel

ATTRIBUT (COLONNES) : colonne d ’une relation

caractérisée par un nom et un domaine.

CLE D ’UNE RELATION : ensemble minimum d ’attributs

d ’une relation qui détermine les autres attributs.

N-UPLET (LIGNE, TUPLE) : correspond à une occurrence

(ou ligne) d ’une relation

VALEUR NULLE : Valeur inconnue d ’un attribut dans la

base de données. Différente de 0 (zéro) et de chaîne vide.

Page 7: Chapitre 3 : Le Modèle Relationnel

7

INTEGRITE DES DONNEES

Objectif : garantir la cohérence des données afin d ’avoir une

concordance entre la base et le monde réel qu ’elle modélise.

Intégrité de domaine : concerne le contrôle syntaxique et

sémantique d ’un attribut et fait référence au type de définition

du domaine.

Exemple : age : entier compris entre 0 et 120.

Intégrité d ’entité : concerne les valeurs prises par une clé

primaire qui doivent être unique et non nulles.

Exemple : pour la relation CLIENT, CODE_CLIENT est unique et non nul.

Intégrité de référence : Si un même attribut apparaît dans une

relation comme clé et dans une autre comme non clé, toute

valeur de l ’attribut non clé doit exister dans l ’attribut clé.

Page 8: Chapitre 3 : Le Modèle Relationnel

8

Règles de passage d ’un modèle E/A vers

un schéma Relationnel

REGLE n°1 : TOUTE ENTITE DEVIENT UNE RELATION

Les attributs traduisent les propriétés de l ’entité

la clé primaire traduit l'identifiant de l'entité

Page 9: Chapitre 3 : Le Modèle Relationnel

9

Règles (suite)

REGLE n°2 : UNE ASSOCIATION DE DIMENSION 2 AVEC

CARDINALITE 1 A PLUSIEURS SE REECRIT EN :

portant dans la relation fille la clé primaire de la

relation mère.

L'attribut ainsi ajouté s'appelle clé étrangère.

Page 10: Chapitre 3 : Le Modèle Relationnel

10

Règles (suite) REGLE n°3: UNE ASSOCIATION DE DIMENSION 2 AVEC

CARDINALITES PLUSIEURS A PLUSIEURS SE REECRIT EN :

créant une relation contenant comme attributs les identifiants

des 2 entités associées

ces attributs constituent à eux 2 la clé primaire de la relation

ajoutant la ou les éventuelles propriétés de l'association à

cette relation.

Page 11: Chapitre 3 : Le Modèle Relationnel

Règles (suite)

Règle 4: Une association binaire de type 1 :1 est traduite

comme une association binaire de type 1 :n sauf que la clé

étrangère se voit imposer une contrainte d’unicité en plus

d’une éventuelle contrainte de non vacuité (cette contrainte

d’unicité impose à la colonne correspondante de ne prendre

que des valeurs distinctes).

11

Page 12: Chapitre 3 : Le Modèle Relationnel

12

Règles (suite)

REGLE n°5: UNE ASSOCIATION DE DIMENSION

SUPERIEURE A 2 SE REECRIT SELON LA REGLE 3 :

Page 13: Chapitre 3 : Le Modèle Relationnel

exemples

1-n 1-1

13

Page 14: Chapitre 3 : Le Modèle Relationnel

exemples

0-1 1-1

14

Page 15: Chapitre 3 : Le Modèle Relationnel

exemples

0-1 0-1

15

Page 16: Chapitre 3 : Le Modèle Relationnel

Exemples

1-1 1-1

Si fonctionnellement, le marin est le plus important…

MARIN(numMarin , nomMarin , numVoilier ,nomVoilier)

Si fonctionnellement, le voilier est le plus important…

VOILIER(numVoilier , nomVoilier , numMarin , nomMarin)

Si le modèle peut évoluer ou si on a une distinction fonctionnelle

forte entre marin et voilier…

VOILIER(numVoilier , nomVoilier , numMarin)

MARIN(numMarin , nomMarin , #numVoilier)

une course à la voile en solitaire :

16

Page 17: Chapitre 3 : Le Modèle Relationnel

Exemples

0-1 1-1

APPARTEMENT (numAppartement , superficie)

PLACE_PARKING (numPlace , Etage ,

#numAppartement)

Dans un immeuble, un appartement peut bénéficier

d’une place de parking ou pas mais jamais de plusieurs.

17

Page 18: Chapitre 3 : Le Modèle Relationnel

Exemples

0-1 0-1Une activité culturelle peut disposer d’un animateur ou

pas mais jamais de plusieurs. Un animateur peut

s’occuper au maximum d’une activité culturelle.

ANIMATEUR (numAnimateur , nom)

ACTIVITE_CULTURELLE (idActivite , nomActivite)

ANIMER (#numAnimateur , # idActivite)

18

Page 19: Chapitre 3 : Le Modèle Relationnel

exemples

1-n 1-n

19

Page 20: Chapitre 3 : Le Modèle Relationnel

exemples

0-n 0-n 1-n

20

Page 21: Chapitre 3 : Le Modèle Relationnel

21

Page 22: Chapitre 3 : Le Modèle Relationnel

22

Page 23: Chapitre 3 : Le Modèle Relationnel

23

Page 24: Chapitre 3 : Le Modèle Relationnel

Réflexive

SALARIE (matricule, nom, prénom, fonction,…,

#matricule_chef)

PIECE (référence, libellé)

COMPOSITION(#référence_composé, #référence_composant,

nombre)

24

Page 25: Chapitre 3 : Le Modèle Relationnel

Transformation de l'identifiant relatif

25

Page 26: Chapitre 3 : Le Modèle Relationnel

Propriétaire (Numpro, Ruepro,…)

PP (Numpro#, NomPP…)

SCI (Numpro#, NomSCI, Refbanque, Fraisges…)

26

Page 27: Chapitre 3 : Le Modèle Relationnel

Intérêt de la normalisation Risques:

Exemple 1: Soit la relation

PRODUIT (prod_id, libellé, pu, qte, dep_id, adr, volume)

Anomalies

o -Redondance : libellé et pu apparaissent pour chaque instance d'un

produit

o -Risque d'introduction d'incohérence lors de l'insertion d'une nouvelle

instance de p1

o -Risque de perte d'information : la suppression du produit p3 entraine

la perte de son libellé, son pu et des information relatives au dépôt 4

27

Page 28: Chapitre 3 : Le Modèle Relationnel

Intérêt de la normalisationExemple 2: Soit la relation

Emprunt_Amis (N°DVD, Nom, Prénom, Contact, Date_emp)

Pourquoi cette relation a t-elle des anomalies?

Anomalies:

Anomalie de mise à jour (exp : Michel Valon a changé de numéro de portable :

mise à jour dans tous les tuples concernés)

Anomalie d’insertion (exp : Nouvel ami, Dupreu Jean : je ne peux l’entrer dans la

base que lorsqu’il m’empruntera un DVD)

Anomalie de suppression (exp : J’ai perdu le DVD n°230 : si je le

supprime de la base, je perds les information sur Prunier Marie)

28

Page 29: Chapitre 3 : Le Modèle Relationnel

Objectifs:

Supprimer les anomalies précédentes

élimination des redondances : éviter les incohérences + minimiser

l’espace de stockage

Normaliser une relation consiste à décomposer une relation ayant

des anomalies en plusieurs sous relations sans anomalies.

Normalisation s’inscrit dans la partie conception d’une base de

données -> peut être vu comme un outil théorique de vérification

Problème :

Comment décomposer une relation , sachant qu’une mauvaise

décomposition peut mener à une perte d’informations ????

La Normalisation

Page 30: Chapitre 3 : Le Modèle Relationnel

La Normalisation

PRINCIPE

Appliquer les règles : Formes Normales

Une forme normale: une méthode de classification de table qui

repose sur les dépendances fonctionnelles

30

Page 31: Chapitre 3 : Le Modèle Relationnel

Dépendance fonctionnelle (Définition)Définition :

Un attribut ou une liste d'attributs Y dépend fonctionnellement

d'un attribut ou d'une liste d'attributs X dans une relation R, Si étant

donnée une valeur de X, il ne lui est associé qu'une seule valeur de

Y dans toute instance de R.

On note x y une telle dépendance.

Exemples :

PRODUIT (prod_id, libellé, pu, qte, dep_id, adr, volume)

prod_id libellé

prod_id pu

dep_id adr, volume

prod_id, dep_id qte

31

Page 32: Chapitre 3 : Le Modèle Relationnel

Un attribut ou une liste d'attributs X est une clé pour la relation

R(X,Y) si Y dépend fonctionnellement de X dans R

X est une clé minimale si x y est élémentaire

Si une relation possède plusieurs clés, nous on choisissons une

qui sera

appelée clé primaire (soulignée dans les schémas de relation).

Les autres clés seront appelées clés secondaires

Exemple : la relation

Voiture(immat , chassis, type, marque, puissance)

admet « immat » et « chassis » comme clés

Dépendance fonctionnelle (clé d’une relation)

Page 33: Chapitre 3 : Le Modèle Relationnel

33

Les dépendance Fonctionnelles

DEPENDANCE FONCTIONNELLE (DF) SIMPLE :

Il existe une dépendance fonctionnelle entre deux attributs d ’une

relation, si à toute valeur de A on ne peut associer à tout instant

qu’une et une seule valeur de B.

A B : A détermine B

Exemple : Le numéro de salarié dans une entreprise détermine son

nom

DF DE PLUSIEURS VARIABLES:

A <-> B A détermine plusieurs B

Exemple : Le nom d’un professeur détermine la liste de ses étudiants

Page 34: Chapitre 3 : Le Modèle Relationnel

34

Les dépendance Fonctionnelles

DF ELEMENTAIRE :

A B est élémentaire s ’il n ’existe pas X A tel que X B

Autrement dit A,X B, X B n ’est pas une DF élémentaire

Exemple :

R1(Fournisseur,Article,Adresse,Prix)

Fournisseur,Article Prix est une DF élémentaire

Fournisseur,Article Adresse est juste mais redondante car

Fournisseur Adresse, donc dans R1, Adresse ne dépend que

d ’une partie de la clé.

R1 doit être décomposée en :

R2(Fournisseur, Adresse)

R3(Fournisseur, Article, Prix)

Page 35: Chapitre 3 : Le Modèle Relationnel

35

Les dépendance Fonctionnelles

DF DIRECTE :

A B est directe s ’il n ’existe pas X tel que A X et X B

Exemple :

R1(Numéro_Véhicule, Marque, Type_Véhicule, Puissance, Couleur)

Les dépendances fonctionnelles sont les suivantes :

Numero_Vehicule Type_Vehicule,Couleur

Type_Vehicule Marque,Puissance

Type_Vehicule est donc une clé pour Marque et Puissance

donc R1 doit être décomposée en :

R2(Type_Vehicule, Marque,Puissance)

R3(Numero_Vehicule,Couleur,Type_Vehicule)

Page 36: Chapitre 3 : Le Modèle Relationnel

1NF :

Une relation est dite en première forme normale si

chacun de ses attributs a un domaine atomique mono-valué

Exemple :

Personne(id, nom, les_diplômes) n'est pas en 1NF

où « les_diplômes » est l'ensemble des diplômes obtenus par

une personne

Personne(id, nom) est en 1NF

Diplôme(id, unDiplome) est en 1NF

Formes normales (1FN)

Page 37: Chapitre 3 : Le Modèle Relationnel

37

Formes normales (1FN)

1FN: exemple 2

Emprunteur LivrecodEmprunteur

NomTitre

emprunter

1,3 1,1

CodEmprunt Livre1 Livre2 Livre3

1501

1502

La relativité

Tintin et le Lotus bleu

Alice au pays..

Mobby Dick

CodEmpru

1501

1502

NOM

Durand

Leroux

Titre CodEmp

La relativité

Alice au pays ..

Tintin et le Lotus

Mobby Dick

1501

1501

1502

1502

Page 38: Chapitre 3 : Le Modèle Relationnel

Formes normales (2FN)Une relation R est dite en deuxième forme normale si

(i) elle est en 1NF

et

(ii) tout attribut n'appartenant pas à une clé ne dépend pas d'une partie de la clé de R

Exemple :

Stock(prod_id, dep_id, libellé, qte) n'est pas en 2NF

car : prod_id, dep_id qte

prod_id libellé

Stock(prod_id, dep_id, qte) est en 2NF

Produit(prod_id, libellé) est en 2NF

Exercices : Est-ce que ces rélations sont en 2FN

Lignes_Commandes( Num_Comm, Num_produit, Désgnation, Qté, PU)

Emprunt_Amis (N°DVD, Nom, Prénom,Titre, Réalisateur, Genre, Contact, DateEmp)

Page 39: Chapitre 3 : Le Modèle Relationnel

39

Formes Normales 2FN : Exemple

NumSalarié Nom NumProjet Heures

NumSalarié Nom

NumSalarié NumProjet Heures

2036

3690

4502

4502

Durand

Durand

Leroux

Frank

Frank

1

2

2

3

1

18

6.5

8.5

23

4.8

2036

3690

4502

Durand

Leroux

Frank

2036

2036

2036

3690

4502

4502

1

2

2

3

1

18

6.5

8.5

23

4.8

Page 40: Chapitre 3 : Le Modèle Relationnel

3NF :

Une relation est dite en troisième forme normale si

(i) elle est en 2NF

et

(ii) tout attribut n'appartenant pas à une clé ne dépend pas d'un attribut non

clé toutes les DF sont directes

Exemple :

La relation AVION

n'est pas en 3NF

car

type capacité, constructeur et type n'est pas une clé

Avion(no_avion, type, propriétaire) est en 3NF

Modèle(type, constructeur, capacité) est en 3NF

Formes normales (3FN)

Page 41: Chapitre 3 : Le Modèle Relationnel

41

Formes Normales

3FN: Exemple

Nom NumSalarié Date_naiss Service Nomservice NumChef

NumSalarié Nom Date_naiss Service

Service NomService NumSalarié_chef

Durand

Martin

501

502

15/01/1950

12/04/1957

5

6

Vente

Info

458

412

5

6

vente

Info

458

412

501

502

Durand

Martin

15/01/1950

12/04/1957

5

6

Page 42: Chapitre 3 : Le Modèle Relationnel

42

La partie opérationnelle : l'algèbre

relationnelle

Les langages de base de données relationnelle tels que SQL,

se base sur des opérateurs dérivés de la théorie des

ensembles pour pouvoir interroger et mettre à jour les tables

d’une base de données relationnelle.

4 opérations ensemblistes (union, intersection, différence,

produit cartésien)

3 opérations spécifiques des BD relationnelles (sélection,

projection, jointure)

Page 43: Chapitre 3 : Le Modèle Relationnel

43

Opérations ensemblistes (Union)

L'opérateur UNION renvoie les lignesissues des deux interrogations aprèsélimination des doublons.

Prof_debut Prof_fin

A B

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0002 Meddeb Mohamed Base des données

0003 Guerbouj Sonia Java

0004 Bahri Taher Admin Système

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0004 Bahri Taher Admin Système

0005 Chaabani Nizar Sécurité Informtique

0006 Ferjani Anis ProgrWeb

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0002 Meddeb Mohamed Base des données

0003 Guerbouj Sonia Java

0004 Bahri Taher Admin Système

0005 Chaabani Nizar Sécurité Informtique

0006 Ferjani Anis Programmation Web

Prof_debut Prof_fin

Page 44: Chapitre 3 : Le Modèle Relationnel

44

Opérations ensemblistes (Intersection)

L'opérateur INTERSECT renvoie les lignes

communes aux deux interrogations.

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0002 Meddeb Mohamed Base des données

0003 Guerbouj Sonia Java

0004 Bahri Taher Admin Système

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0004 Bahri Taher Admin Système

0005 Chaabani Nizar Sécurité Informtique

0006 Ferjani Anis ProgrWeb

Prof_debut Prof_fin

Prof_debut Prof_fin

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0004 Bahri Taher Admin Système

Page 45: Chapitre 3 : Le Modèle Relationnel

Opérations ensemblistes (Différence)

L'opérateur MINUS renvoie toutes les lignes

distinctes sélectionnées par la première

interrogation, mais non présentes dans

l'ensemble de résultats de la deuxième

interrogation.

45

A B

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0002 Meddeb Mohamed Base des données

0003 Guerbouj Sonia Java

0004 Bahri Taher Admin Système

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0004 Bahri Taher Admin Système

0005 Chaabani Nizar Sécurité Informtique

0006 Ferjani Anis ProgrWeb

Prof_debut Prof_fin

Matricule Nom Prénom Matière

0001 Baccouch Hajer Mobiles

0002 Meddeb Mohamed Base des données

0003 Guerbouj Sonia Java

0004 Bahri Taher Admin Système

Prof_debut - Prof_fin

Page 46: Chapitre 3 : Le Modèle Relationnel

46

Opérations ensemblistes

Produit cartésien

Numéro

coureur

Nom Coureur Code

équipe

Code

pays

8 ULLRICH Jan TEL ALL

31 JALABERT Laurent ONC FRA

61 ROMINGER Tony COF SUI

91 BOARDMAN Chris GAN G-B

Code

pays

Nom Pays

ALL Allemagne

FRA France

SUI Suisse

G-B Grande -

Bretagne

Numéro

coureur

Nom Coureur Code

équipe

Code

pays

Code

pays

Nom Pays

8 ULLRICH Jan TEL ALL ALL Allemagne

8 ULLRICH Jan TEL ALL FRA France

8 ULLRICH Jan TEL ALL SUI Suisse

8 ULLRICH Jan TEL ALL G-B Grande -Bretagne

31 JALABERT Laurent ONC FRA ALL Allemagne…

R

R1 R2

-

Page 47: Chapitre 3 : Le Modèle Relationnel

47

Opérations spécifiques

Sélection (ou restriction) : relation composée de n-upletsvérifiant une condition

Numéro

coureur

Nom Coureur Code

équipe

Code

pays

8 ULLRICH Jan TEL ALL

31 JALABERT Laurent ONC FRA

61 ROMINGER Tony COF SUI

91 BOARDMAN Chris GAN G-B

114 CIPOLLINI Mario SAE ITA

Quels sont les coureurs suisses ?

R = SELECTION(COUREUR, CodePays = ‘‘SUI’’)

NOTATION : CodePays = ‘‘SUI’’(COUREUR)

Relation

résultat

Page 48: Chapitre 3 : Le Modèle Relationnel

48

Opérations spécifiques

Projection : relation restreinte aux attributs spécifiés dans

la projection

Exemple : Nom et nationalité des coureurs ?

R = PROJECTION(COUREUR, NomCoureur, Nationalité)

NOTATION : {NomCoureur,Nationalité}(COUREURS)

Nom Coureur Code pays

ULLRICH Jan ALL

JALABERT Laurent FRA

ROMINGER Tony SUI

BOARDMAN Chris G-B

CIPOLLINI Mario ITA

Relation

résultat

Page 49: Chapitre 3 : Le Modèle Relationnel

49

Opérations spécifiques

Jointure :

Code pays Nom Pays

ALL Allemagne

FRA France

SUI Suisse

G-B Grande -Bretagne

Numéro

coureurNom Coureur

Code

équipe

Code

pays

8 ULLRICH Jan TEL ALL

31 JALABERT Laurent ONC FRA

61 ROMINGER Tony COF SUI

91 BOARDMAN Chris GAN G-B

Numéro

coureurNom Coureur

Code

équipe

Code

paysNom Pays

8 ULLRICH Jan TEL ALL Allemagne

31 JALABERT Laurent ONC FRA France

61 ROMINGER Tony COF SUI Suisse

91 BOARDMAN Chris GAN G-B Grande -

Bretagne

Relation

résultat

Page 50: Chapitre 3 : Le Modèle Relationnel

50

Opérations spécifiques

Jointure (suite)

Notation : Coureur Pays

-jointure : jointure sous condition autre que

l’égalité

Code

pays

Code

pays

Page 51: Chapitre 3 : Le Modèle Relationnel

51

Opérations spécifiques

Division : relation composée des n-uplets tels que le produit

cartésien avec le diviseur soit un sous-ensemble de la relation

dividende (…?)

Athlète Epreuve Epreuve Athlète

Dupont 200 m 200 m Dupont

Durand 400 m 400 m

Dupont 400 m 110 m H

Martin 110 m H

Dupont 110 m H

Martin 200 m

Participer Epreuve

Relation résultat de

Particier Epreuve

Quels sont les athlètes qui ont participé à toutes les épreuves ?

Page 52: Chapitre 3 : Le Modèle Relationnel

52

a

b

c

x

y

a

a

b

b

c

c

x

y

x

y

x

y

Produit cartésien

Sélection Projection

Union Intersection Différence