Vous êtes sur la page 1sur 51

Chapitre 3

Les modèles de données


3.1 Apports et limitations du modèle relationnel
Apports:
Simplicité et intuitivité du modèle
Modèle formalisé
Modèle ensembliste : l'application d'un opérateur à une
relation produit une relation => généricité
SQL, langage assez "propre" et de haut niveau
Bases de données avancées 2
11/26/21 10:00:31 AM 1
Indépendance physique (et un peu logique) : changer le type
de stockage
Optimisations nombreuses
 Gestion de la confidentialité...
 Modèle standard
 Parallélisme
 Puissance des entreprises leaders

Bases de données avancées 2

11/26/21 10:00:31 AM 2
Limitations:
 Prise en compte de la sémantique difficile
pas de hiérarchie d'entités (modèle "à plat")
pas d'héritage
perte d'information sémantique
maintien de l'intégrité difficile
 Difficulté de la normalisation
éclatement en une multitude de relations
multiplicité des opérations de jointure
 Programmation difficile
intégration de SQL avec un autre langage

Bases de données avancées 2

11/26/21 10:00:31 AM 3
3.2 Les nouvelles applications
 - conception assistée par ordinateur
 - production assistée par ordinateur
 - génie logiciel
 - systèmes d'informations géographiques
 - systèmes multi-média
 - recherche et intégration de données de la toile…
3.3 Nouveaux besoins
 - objets structurés, volumineux
 - nouveaux types de données
 - transactions longues
 etc… Bases de données avancées 2

11/26/21 10:00:32 AM 4
3.4 Evolution des modèles
1960
SGBD hiérarchique (IMS)
SGBD réseau (CODASYL)
schéma
langage navigationnel
1970
SGBD relationnel
structure physique cachée aux utilisateurs
modèle simple
formalisation => normalisation
langages déclaratifs
Bases de données avancées 2

11/26/21 10:00:32 AM 5
1980
Modèles sémantiques (EA)
meilleure représentation du réel
outils de conception uniquement
1986
premiers SGBD OO
meilleure représentation du réel au niveau logique
réutilisation

Bases de données avancées 2

11/26/21 10:00:32 AM 6
1993 première norme ODMG pour SGBD OO
( Object Database Management Group )

1998
norme UML pour conception d'applications
OO

1999
norme SQL3 pour SGBD relationnel-objet

Bases de données avancées 2

11/26/21 10:00:32 AM 7
2001
Norme finale d’ODMG (Groupe de normalisation des SGBD
OO)
A regroupé de nombreux vendeurs de SGBO OO
Poet
Ardent
Objectivity
Versant
GemStone

et des constructeurs, des utilisateurs, des chercheurs
Bases de données avancées 2

11/26/21 10:00:32 AM 8
3.5 Les modèles sémantiques
Un modèle sémantique est composé d’un ensemble
d’abstractions.
1. Classe et entité
 Les entités partageant des caractéristiques communes sont
regroupées dans une même famille d’entités appelée Classe.
 L’existence d’une instance est subordonnée à son
appartenance à une classe.

Bases de données avancées 2

11/26/21 10:00:32 AM 9
Chaque entité a une identité unique constante dans le temps
et indépendante de sa valeur ou des modifications qui
peuvent survenir.

Classe Classe
Etudiant Départemen
t

Bases de données avancées 2

11/26/21 10:00:33 AM 10
2. Agrégation:
Elle consiste à regrouper différentes entités en une
nouvelle entité de niveau supérieur.

numéro

Adresse
rue

ville

Bases de données avancées 2

11/26/21 10:00:33 AM 11
3. Association

Classe Classe
Etudie département
Etudiant

Permet de relier plusieurs entités entre elles. La description


d’une association peut être accompagnée de contraintes de
cardinalités.

Bases de données avancées 2

11/26/21 10:00:33 AM 12
La différence entre association et agrégation est que cette
dernière construit une nouvelle entité alors que la première
relie des entités qui existent.
4. Attributs
Permet de représenter certaines caractéristiques d’une classe
d’entités. Un attribut peut être monovalué ( associe une
entité de la classe de départ à une entité de la classe
d’arrivée) ou multivalué ( associe une entité de la classe de
départ à plusieurs entités de la classe d’arrivée)

Bases de données avancées 2

11/26/21 10:00:33 AM 13
nom

âge
numéro
Classe Personne

rue

ville

enfant

Bases de données avancées 2

11/26/21 10:00:33 AM 14
5. Le groupement

Permet de construire une entité à partir d’un ensemble fini


d’entités d’une classe donnée.

pays Ville

Bases de données avancées 2

11/26/21 10:00:33 AM 15
6. Généralisation/Spécialisation

- La spécialisation consiste à affiner une classe en sous


classes
- Peut être explicite quand c’est l’utilisateur qui la définit ou
dérivée quand la sous classe est définie à l’aide d’un
prédicat.

Personne
age ≤30

Bases de données avancées 2

Employé
11/26/21 10:00:34 AM
jeune 16
- La généralisation permet de faire l’union de
plusieurs classes en une même classe d’entités. Cette
dernière n’a pas d’entités propres à elle mais contient les
entités des sous-classes.
- la notion de généralisation/spécialisation introduit le
concept d’héritage.

Engins
terrestres

Camion Voiture
s Bases de données avancées 2 s
11/26/21 10:00:34 AM 17
7. Contraintes d’intégrité

- La notion de clé du relationnel est implicite dans les m.s


du faite que chaque entité a une identité propre
- les contraintes de cardinalités peuvent être représentées
dans les associations

Bases de données avancées 2

11/26/21 10:00:34 AM 18
8. Conclusion
- Les m.s donnent des concepts puissants pour modéliser le
réel. Cependant ils présentent une difficulté
d’implémentation.
- Les modèles orientés objets et le relationnel étendu
donnent des solutions d’implémentations d’un grand
nombre d’abstractions des m.s.

Bases de données avancées 2

11/26/21 10:00:34 AM 19
3.6 Les modèles étendus

L’apparition de nouveaux champs d’application


complexes nécessite des modèles de données plus riche
que le relationnel classique qui a résolu de manière
efficace les données à structures simples. Delà est
venue la notion d’objet complexe ou structuré.

Cette approche consiste à abandonner la 1ère F.N et


considérer des relations dont les attributs ne sont plus
atomiques. Nous présentons dans ce qui suit deux
Bases de données avancées 2
extensions du relationnel.
11/26/21 10:00:34 AM 20
3.6.1 Modèle à valeurs structurées

3.6.1.1 Définitions et exemples


Soit un ensemble d’attributs {A1, A2, …} et un ensemble de
constantes D ={d1, d2, …} constituant les valeurs atomiques.

Un n-uplet construit sur k attributs est noté :


[A1 : …, A2 : …, …, Ak : …].
L’ensemble des valeurs structurées Val sur D est défini par les
règles suivantes :

Bases de données avancées 2

11/26/21 10:00:34 AM 21
Tout élément de D est une valeur de Val (atomique);

Si v1, v2, …, vn sont des valeurs et A1, A2, …An des attributs
distincts, alors
[A1 : v1, A2 : v2, …, An : vn] est une valeur structurée de type n-
uplet ;

Si v1, v2, …, vn sont des valeurs alors {v1, v2,…, vn } est une
valeur structurée de type ensemble ;

On retrouve ici la 1ère forme normale (valeur atomique), ou les


relations hiérarchiques (valeur n-uplet) ou relations imbriquées
(valeur ensemble).Bases de données avancées 2
  11/26/21 10:00:35 AM 22
Exemples :

Exemple1.
[nom : ″Mohamed″,  
Adresse : [ville : ″Oran ″, rue : ″BenMhidi″], Grade : ″Maitre Assistant″,
Age : 32, Université : ″Univ . Es-Sénia, Oran″, Modulens :
{″Compilation″, ″Langages″}].

Exemple2.
{ [nom : ″Mohamed″,  
Adresse : [ville : ″Oran ″, rue : ″BenMhidi″], Grade : ″Maitre Assistant″,
Age : 32, Université : ″Univ . Es-Sénia, Oran″, Modulens :
{″Compilation″, ″Langages″}],
[nom : ″Ahmed″,  
Adresse : [ville : ″Sidi-Bel-Abbès ″, rue : ″Emir AEK″], Grade : ″Maitre
de conférences″, Age :42, Université :
Bases de données avancées 2 ″USTO″, Modulens : {″Système
11/26/21 10:00:35 AM ″, ″Algorithmique″}]}.
d’exploitation 23
 

Exemple 3.
{ [nom : ″Mohamed″,  
Adresse : [ville : ″Oran ″, rue : ″BenMhidi″], Grade : ″Maitre Assistant″,
Age : 32, Université : ″Univ . Es-Sénia, Oran″, Modulens : {″Compilation
″, ″Langages″}],
[nom : ″Ahmed″,  
Adresse : [ville : ″Sidi-Bel-Abbès ″, rue : ″Emir AEK″], Grade : ″Maitre de
conférences″, Age :42, Université : ″USTO″, Modulens : {″Système
d’exploitation″, ″Algorithmique″}],
[Titre: ″SGBD avancés″,  
Auteurs :{″Gardarin ″, ″Valduriez″}, Edition : ″Eyrolles″, Université :
″Univ . Es-Sénia, Oran″, Année : 1990]}.
 
Bases de données avancées 2

11/26/21 10:00:35 AM 24
L’exemple 1 est un n-uplet décrivant une personne où adresse
est une valeur n-uplet modulens valeur ensemble …,
l’exemple 2 est un ensemble de n-uplets avec des champs non
atomiques et le 3ème exemple est un ensemble hétérogène. 

Une valeur structurée peut être représentée sous forme d’un


arbre :

Bases de données avancées 2

11/26/21 10:00:35 AM 25
modulens
age
Grade 32
Nom
adresse

Mohamed M.assistant

Compilation Langages

Ville rue

Oran BenMhidi

Bases de données avancées 2

11/26/21 10:00:35 AM 26
 
3.6.1.2. Les types pour valeurs structurées

L’ensemble Type des expressions de type est défini par la


grammaire suivante :
T ::= Ø/ D/ [A1 : t, A2 : t, …, Ak : t]/ {t}.
(t est une expression de type)

D représente les types atomiques :string, real, boolean, …


 

Bases de données avancées 2

11/26/21 10:00:36 AM 27
Exemples :
A.
[nom : string,  
Adresse : [ville : string , rue : string], Grade : string, Age :
integer, Université : string, Modulens : { string}].
 
B.
{[nom : string,  
Adresse : [ville : string , rue : string], Grade : string, Age :
integer, Université : string, Modulens : { string}]}
L’exemple 1 correspond au type A, tandis que
l’exemple 2 correspond au type B.
Bases de données avancées 2

11/26/21 10:00:36 AM 28
3.6.1.3. Schéma et instance

Soit R={R1, R2,…} un ensemble fini de noms de relations.


- Une affectation pour R est une application σ qui à
chaque élément R de R fait correspondre un ensemble fini
de valeurs structurées de Val.

- Un schéma S d’une base de données est une paire


S=(R,T) où T est une application de R dans Type.
Bases de données avancées 2

11/26/21 10:00:36 AM 29
 Une instance I d’un schéma S est une affectation σ pour
R tel que :
σ(R) ⊆ [[T(R)]] R∊ R
Ce qui exprime le fait que chaque élément d’une affectation
pour un nom de relation R est un ensemble de valeurs du
type associé à R.

Bases de données avancées 2

11/26/21 10:00:36 AM 30
[[t]] désigne l’interprétation d’un type t et est défini comme
suit :
- [[Ø]]= Ø ;
- [[D]]=D ;
- [[[A1 : t1, A2 : t2, …, Ak : tk]]]= {[A1 : v1, A2 : v2, …, Ak : vk]/
vi € [[ti]], i=1..k};
- [[{t}]]={{v1, v2, …, vm}/ vi € [[ti]], i=1..m}.
 

Bases de données avancées 2

11/26/21 10:00:36 AM 31
Exemples :
S=({Enseignant, ouvrage}, T)
T(Enseignant)= [nom : string,  
Adresse : [ville : string , rue : string], Grade : string,
Age :integer, Université : string, Modulens : { string}].

T(ouvrage)=[titre: string, auteurs:{string},


édition: string, Université: string,
année : integer]
La valeur structurée composée des personnes Mohamed et
Ahmed peut être une affectation pour la relation
Enseignant.
Bases de données avancées 2

11/26/21 10:00:36 AM 32
 
3.6.1.4  La manipulation des valeurs
structurées

On dispose d’un alphabet de constantes D, un ensemble de


variables x, y, z, des prédicats R,S,… représentant des
ensembles de valeurs associés à un type, des connecteurs
logiques ┐, Λ,V et des quantificateurs . Les termes sont des
constantes de D, des variables, ou des expressions de la
forme v.a où v est une variable et a un attribut.

Bases de données avancées 2

11/26/21 10:00:37 AM 33
Les formules atomiques sont :

u=v, où u et v sont des termes de type t ;


u∊v où u est de type t et v de type{t} ;
R(u) où u est un terme de type t et R un prédicat de type {t} ;
{x/ Φ} où x est la seule variable libre de la formule valide Φ.

Bases de données avancées 2

11/26/21 10:00:37 AM 34
Une requête est de la forme {x/ Φ} où x est la seule variable
libre de la formule valide Φ.

Un prédicat de type Enseignant(z) s’interprète :


<z est une valeur de la relation Enseignant> où
z∊σ(Enseignant).
 
Exemple : « liste des enseignants d’Oran » s’écrit :
{x/ ∃z (Enseignant(x) Λ(z=x.adresse) Λ (z.ville=’Oran’))}.
Les règles d’évaluation sont celles de la logique du 1erordre et
analogue à celle du modèle relationnel.
Bases de données avancées 2

11/26/21 10:00:37 AM 35
3.6.1.5 Conclusion 

Le modèle à valeurs structurées est une généralisation du


relationnel, quitte l’atomicité d’attribut et représente des
valeurs d’attributs plus complexes grâce à un système de
typage construit à partir des constructeurs d’ensembles et de
n-uplets. Le langage de manipulation reste fondé sur les
mêmes principes et s’appuie sur la logique de 1er ordre .

Cependant une même valeur ne peut être partagée par


plusieurs valeurs d’où l’apparition du modèle avec identité
d’objet.
  Bases de données avancées 2

11/26/21 10:00:37 AM 36
3.6.2. Modèle avec identité d’objet
3.6.2.1 Concept d’identité
 
Ce concept a toujours existé dans les différents modèles mais
de façon plus ou moins apparente. Dans le modèle réseau et
hiérarchique ça apparait dans la notion de clé
d’enregistrement. Dans le modèle relationnel elle se traduit par
la notion d’attribut clé. Dans les modèles sémantiques chaque
unité d’information est identifiée par un nom permettant de
distinguer toutes les entités les unes des autres
indépendamment des valeurs de leurs attributs.
Bases de données avancées 2

11/26/21 10:00:37 AM 37
Voyons les affirmations suivantes :

Omar aide Amine ; Mohamed aide Amine

Dans le modèle par valeurs structurées si Amine n’est pas


la même personne, on ne peut distinguer entre les deux
individus à moins d’ajouter d’autres caractéristiques.
Si on utilise le concept d’identité on peut modéliser les
deux cas possibles :

Bases de données avancées 2

11/26/21 10:00:37 AM 38
Conséquence de ce concept est le partage d’informations.

Bases de données avancées 2

11/26/21 10:00:38 AM 39
 

Exemple :
Mohamed = [nom : ″Mohamed″,  
Adresse : [ville : ″Oran ″, rue : ″BenMhidi″], Grade : ″Maitre Assistant″,
Age : 32, Université : ″Univ . Es-Sénia, Oran″, Modulens : {″Compilation″,
″Langages″}].
 
Ahmed = [nom : ″Ahmed″,  
Adresse : [ville : ″Sidi-Bel-Abbès ″, rue : ″Emir AEK″], Grade : ″Maitre de
conférences″, Age :42, Université : ″USTO″, Modulens : {″Système
d’exploitation″, ″Algorithmique″}].
Oran = [nom : ″Oran ″, population :1200000, Aéroport : {Es-Sénia}]
Sidi-Bel-Abbès = [nom : ″Sidi-Bel-Abbés″, population : 800000, Aéroport :
{}]
 
  Bases de données avancées 2

11/26/21 10:00:38 AM 40
 3.6.2.2 Formalisation

Soit {P1, P2, …} un ensemble de noms de classes


O={O1, O2, …} un ensemble de noms
identifiant les objets.

La différence entre noms de classes et noms de


relations c’est qu’aux classes sont associés des
objets alors qu’aux relations sont associées des
valeurs.
Bases de données avancées 2

11/26/21 10:00:38 AM 41
L’ensemble des valeurs d’objets Obj est défini par :
Tout élément de DUO est une valeur de Obj (dite
atomique) ;
Si v1, …, vn sont des valeurs d’objets et A1, …, An des
attributs distincts alors
[A1 : v1, A2 : v2, …, An : vn] est une valeur d’objet de type n-
uplet ;
Si v1, v2, …, vn sont des valeurs d’objets distinctes alors {v1,
v2, …, vn } est une valeur d’objet de type ensemble ;

Bases de données avancées 2

11/26/21 10:00:38 AM 42
Une affectation d’identificateurs aux classes est une
application π de P dans les parties de Obj. De même à
chaque nom de relation on associe un ensemble de valeurs
d’objets par l’application σ.
 
L’ensemble des expressions de type noté Type est défini par :
T ::=Ø/ D/ P/ [A1 : t, A2 : t, …, Ak : t]/ {t}. (t est une
expression de type)
D représente les types atomiques :string, real, boolean, …
 

Bases de données avancées 2

11/26/21 10:00:38 AM 43
Exemple:
[nom : string,  
Adresse : [ville : Ville , rue : string], Grade : string, Age :
integer, Université : string, Modulens : { string}].
[nom : string, population :integer, Aéroport : { string }]
 
Dans la première expression de type, Ville est un nom de
classe.

Bases de données avancées 2

11/26/21 10:00:39 AM 44
L’interprétation d’un type t est dépendante de l’allocation
des identificateurs. Elle est défini par :
 
- [[Ø]]π= Ø ;
- [[D]] π =D ;

- [[P]] π =π(P) ; ∀P ∊ P ;


- [[[A1 : t1, A2 : t2, …, Ak : tk]]]π = {[A1 : v1, A2 : v2, …, Ak :
vk]/ vi ∊ [[ti]]π, i=1..k};
- [[{t}]]π ={{v1, v2, …, vm}/ vi ∊ [[ti]]π, i=1..m}.
 

Bases de données avancées 2

11/26/21 10:00:39 AM 45
Un schéma S d’une base de données est un triplet S = (R,
P, T),
R un ensemble de relations,
P est un ensemble de classes,
T est une application de RUP dans Type.
 
 

Bases de données avancées 2

11/26/21 10:00:39 AM 46
Une instance I d’un schéma S est un triplet (σ, π, μ), σ est
une affectation des valeurs aux noms de relations, π est
une affectation d’identificateurs aux noms de classes
d’objets et μ une application partielle de l’ensemble
U{π(P)/ P∊P} dans Obj, le rôle de μ est d’affecter à
chaque objet O une valeur d’objet tel que :

- σ(R) ⊆ [[T(R)]]π , ∀R∊R ;


- ∀P∊P ; ∀o ∊π(P); μ(o) ∊ [[T(P)]]π

Bases de données avancées 2

11/26/21 10:00:39 AM 47
Exemple:
Schéma (Ø, {Enseignant, Ville}, T)
T(Enseignant)= [nom : string,  
Adresse : [ville : Ville , rue : string], Grade : string, Age :
integer, Université : string, Modulens : { string}].
T(Ville) = [nom : string, population :integer, Aéroport :
{ string }]
 

Bases de données avancées 2

11/26/21 10:00:39 AM 48
Une instance I=(Ø, π, μ) correspond à :
π(Enseignant)={Mohamed, Ahmed}
π(Ville)={Oran, Sidi-bel-Abbès}
μ(Mohamed)= [nom : ″Mohamed″,  
Adresse : [ville : ″Oran ″, rue : ″BenMhidi″],
Grade : ″Maitre Assistant″,
Age : 32, Université : ″Univ . Es-Sénia, Oran″,
Modulens : {″Compilation″,
″Langages″}].

Bases de données avancées 2

11/26/21 10:00:39 AM 49
μ (Ahmed) = [nom : ″Ahmed″,  
Adresse : [ville : ″Sidi-Bel-Abbès ″, rue : ″Emir AEK″],
Grade : ″Maitre de
conférences″, Age :42, Université : ″USTO″, Modulens :
{″Système
d’exploitation″, ″Algorithmique″}].
μ (Oran) = [nom : ″Oran ″, population :1200000, Aéroport :
{Es-Sénia}]
μ (Sidi-Bel-Abbès) = [nom : ″Sidi-Bel-Abbés″, population :
800000, Aéroport : {}]
  Bases de données avancées 2

11/26/21 10:00:40 AM 50
Conclusion

Ce modèle a servi de point de départ pour des études avancées dans


deux directions principales :

Celle des langages de manipulation des données. Au lieu d’avoir


des langages à base de règles, des algèbres et calculs ont été
développés nécessitant d’avoir des opérateurs pour traiter le
concept d’identité. C’est ainsi qu’on a deux opérateurs d’égalité
(de valeur et d’identité) ;

Extension du langage pour prendre en compte le concept d’héritage


en ajoutant deux opérateurs l’union et l’intersection de types.
Bases de données avancées 2

11/26/21 10:00:40 AM 51

Vous aimerez peut-être aussi