GPA775 Chapitre 6 - Modèle hiérarchique 2
Contenu du chapitre
Les points abordés seront les suivants:
ØConcepts de base du modèle hiérarchique
ØOrganisation en arbre
ØTransformations E-R vers BDH
ØManipulation des données des BDH
GPA775 Chapitre 6 - Modèle hiérarchique 3
Concepts de base du modèle hiérarchique
ØModèle logique orienté enregistrement;
ØLes données sont représentées par des
enregistrements;
• qui sont une collection de champs (attributs).
ØLes enregistrements sont associés par des relations qui
sont des liens.
• Les liens associent que 2 enregistrements à la fois.
Øsemblable au modèle réseau, mais diffère par son
organisation en arborescences;
ØLe plus courant SGBD: IMS de IBM (banques,
compagnies d’assurances, agences gouvernementales)
GPA775 Chapitre 6 - Modèle hiérarchique 4
Concepts de base du modèle hiérarchique
Exemple de BD hiérarchique…
nom
NAS rue
ville
Client
numéro
solde
Compte
CliCom
Square
Lowman Dallas
305 500
Downridge
Camp Garland Bayside
Kahn Plano
226 336 177 205 155 62
GPA775 Chapitre 6 - Modèle hiérarchique 5
Organisation en arbre
Une base de données hiérarchique (BDH) est composée
d'une collection d'arbres. Ces arbres ont les caractéristiques
suivantes:
Øils ont une racine virtuelle,
w qui sert de structure initiale,
w qui conserve les pointeurs vers les sous arbres.
A
B1 B2 Bn
C1 Cm Cl
. . .
. . .
. . .
La racine virtuelle
“A” est un nœud
bidon.
GPA775 Chapitre 6 - Modèle hiérarchique 6
Organisation en arbre
Øils ne comportent pas de structure cyclique,
• Modèle réseau: les données structurées sont
réparties de façon quelconque sur leur graphe.
• Modèle hiérarchique : les données sont réparties
suivant un arbre issu d'une racine définie.
w il n'existe pas de pointeur de
Ci → A, donc pas de structure cyclique.
A
B1 B2
Bn
C1
Cm
Cl
. . .
. . .
. . .
GPA775 Chapitre 6 - Modèle hiérarchique 7
Organisation en arbre
Øils contiennent que des relations 1 vers 1 ou 1
vers N
parent
↑
enfant
A
B1 B2 Bn
C1 Cm Cl
. . .
. . .
. . .
GPA775 Chapitre 6 - Modèle hiérarchique 8
Organisation en arbre
Øle contenu d'un enregistrement peut être répété:
• dans le même arbre,
• dans plusieurs arbres;
Les inconvénients majeurs provenant de cette répétition sont :
• le risque d'inconsistances lors de la mise à jour,
• le gaspillage de la mémoire.
A
B1 B2 Bn
C1 Cm Cl
. . .
. . .
. . .
GPA775 Chapitre 6 - Modèle hiérarchique 9
Transformations E-R vers BDH
Relations binaires sans attributs
Relation 1 vers 1 :
rue
nom ville
numéro position
client
compte
nom
rue
ville
Client
numéro
position
Compte
CliCom
1 N
1
Représentation de la
cardinalité 1:1
GPA775 Chapitre 6 - Modèle hiérarchique 10
Relations binaires sans attributs
Relation 1 vers n :
nom
rue
ville
Client
numéro
position
Compte
CliCom
1 N
rue
nom ville
numéro position
client
compte
C’est la flèche
qui différencit
une relation
1:1 et 1:N.
GPA775 Chapitre 6 - Modèle hiérarchique 11
Exemple de base de données avec relation 1:N
Square
Lowman Dallas
305 500
Downridge
Camp Garland Bayside
Kahn Plano
226 336 177 205 155 62
Dans votre livre, ce n’est pas
une présentation 1 vers N
GPA775 Chapitre 6 - Modèle hiérarchique 12
Relations binaires sans attributs
Relation n vers n :
Ø Il y a plusieurs solutions possibles qui dépendent
• du type de consultation à effectuer;
• du degré de ressemblance de la structure d'arbre avec le
diagramme E-R original.
Procédure pour les relations n vers n
Ø Il faut créer deux arbres puisque seules les relations 1 vers 1 et 1
vers n sont autorisées dans le modèle hiérarchique.
1.Création de deux arbres T1 et T2 constitués chacun des deux
enregistrements:
• Arbre T1 dont la racine est le premier enregistrement
• Arbre T2 dont la racine est le second enregistrement
2.Création des liens n vers 1 ( où 1 représente la racine)
GPA775 Chapitre 6 - Modèle hiérarchique 13
Exemple de transformation N:N
nom
rue
ville
Client
numéro
position
Compte
CliCom
N N
rue
nom ville
numéro position
client
compte rue
nom ville
numéro position
client
compte
arbre T1
arbre T2
GPA775 Chapitre 6 - Modèle hiérarchique 14
Instanciation des arbres T1 (a) et T2 (b)
GPA775 Chapitre 6 - Modèle hiérarchique 15
Relations binaires avec attribut
Relations 1 vers n
• plus compliquées car le lien ne peut avoir d'attribut;
Procédure :
1. créer un nouveau type d'enregistrement
intermédiaire avec un champ approprié;
2. créer les 2 liens n vers 1 entre le nouvel
enregistrement et les 2 enregistrements originaux.
GPA775 Chapitre 6 - Modèle hiérarchique 16
Relations binaires avec attribut
Exemple de transformation 1 vers N
nom
rue
ville
Client
numéro
position
Compte
CliCom
1 N
date
rue
nom ville
numéro position
client
compte
date date
GPA775 Chapitre 6 - Modèle hiérarchique 17
Instanciation de la relation 1 vers N avec attribut
rue
nom ville
numéro position
client
compte
date date
GPA775 Chapitre 6 - Modèle hiérarchique 18
Relations binaires avec attribut
Relations 1 vers 1
Ømême chose que pour 1 vers n;
Øsauf que les liens créés sont de type 1 vers 1.
rue
nom ville
numéro position
client
compte
date date
GPA775 Chapitre 6 - Modèle hiérarchique 19
Relations binaires avec attribut
Relations n vers n :
Ø nombreuses solutions;
Procédure générale:
1. Créer deux structures d'arbre avec l'attribut de la
relation comme attribut intermédiaire en utilisant la
même procédure que pour 1 vers n :
T1: premier enregistrement comme racine,
T2: second enregistrement comme racine.
2. Créer deux liens n vers 1
(voir figure page suivante)
GPA775 Chapitre 6 - Modèle hiérarchique 20
Exemple de transformation d’une relation N:N avec attribut
rue
nom ville
numéro position
client
compte
date date
arbre T1
arbre T2
rue
nom ville
numéro position
client
compte
date date
nom
rue
ville
Client
numéro
position
Compte
CliCom
1 N
date
N
GPA775 Chapitre 6 - Modèle hiérarchique 21
Instanciation d’une structure arborescente à relation n vers n avec attribut.
GPA775 Chapitre 6 - Modèle hiérarchique 22
Transformation d’une relation ternaire
Ø La transformation des relations d’ordre générale est
une tâche complexe.
Procédure :
Ø Créer autant de répliques d'enregistrements que
nécessaire et autant d'arbres qu'il convient.
Note : toutes les permutations sont permises mais sont
dictées par le type de recherche que l'utilisateur entend
effectuer.
Plus l'information utile se rapproche de la racine, plus
rapide sera la recherche.
Ainsi, si nous avons 3 relations n vers n, nous pouvons
créer de 3 à 9 arbres!
GPA775 Chapitre 6 - Modèle hiérarchique 23
Exemple de transformation d’une relation ternaire
Ici, les requêtes importantes sur ce modèle sont de retrouver les clients
appartenant à une agence et les comptes appartenant à une agence.
Il n’est pas utile de maintenir un arbre client-agence-compte, puisque peu
de requêtes de ce genre peut être utile.
Alors, nous allons créer deux arbres : T1 et T2
nom
NAS rue
ville
Client
numéro
solde
Compte
CCA
nom avoir
ville
agence
GPA775 Chapitre 6 - Modèle hiérarchique 24
Exemple de transformation d’une relation ternaire
Voici l’arborescence (T1 et T2) correspondant à la relation
ternaire de la page précédente :
rue
nom ville
numéro position
client
compte
arbre T1
arbre T2
rue
nom ville
numéro position
client
compte
avoirs
nom ville agence avoirs
nom ville agence
retrouver les
comptes
appartenant à
une agence
retrouver les
clients
appartenant à
une agence
GPA775 Chapitre 6 - Modèle hiérarchique 25
Exemple de transformation d’une relation ternaire
GPA775 Chapitre 6 - Modèle hiérarchique 26
Transformations des relations multiples
Tous les exemples précédents présentaient des relations
uniques entre 2 ou plusieurs entités:
Østructure d'arbre à racine unique
Si le diagramme E-R comporte plusieurs relations:
Øon ne peut créer d'arbres à racine unique, car ces
arbres ne respecteront pas la définition BDH.
• i.e. on aura des relations 1 vers n dirigées vers la racine !
nom
avoir
ville
Agence
numéro
position
Compte
AgeCom
nom
rue
ville
Client
CliCom
GPA775 Chapitre 6 - Modèle hiérarchique 27
Transformations des relations multiples
Pour les relations multiples la procédure générale est :
1. répliquer les enregistrements " racine ",
2. créer autant d'arbres à racine unique qu'il sera
nécessaire
Arborescence correspondant à l’exemple précédant:
numéro position compte
arbre T1
arbre T2
rue
nom ville
numéro position
client
compte
avoirs
nom ville agence
GPA775 Chapitre 6 - Modèle hiérarchique 28
Transformations des relations multiples
Si le modèle E-R renferme un
cycle (A ↔ B ↔ C ↔ A),
le modèle hiérarchique ne peut
représenter cette topologie à
l'aide d'un seul arbre.
Il faudra créer deux arborescences
pour implanter ce type de modèle.
A B
C
A
B
C
A
C
B
GPA775 Chapitre 6 - Modèle hiérarchique 29
Enregistrements virtuels
REMARQUE:
La structure hiérarchique comporte un problème important de
redondance inhérent à sa structure.
Ø Sur la figure 127 des notes de cours (p.136), nous
remarquons le dédoublement de l'information dans les
deux arbres:
• Dans l’arbre T1, le compte 347 est répété
• Dans l'arbre T2, se sont les clients Katz et Doner qui y sont
répétés.
• De plus, dans les 2 arbres, nous retrouvons la même
information.
Cette redondance apporte les inconvénients suivants:
Ø inconsistance des données à long terme
Ø perte d'espace
GPA775 Chapitre 6 - Modèle hiérarchique 30
Enregistrements virtuels
Pour solutionner le problème de redondance de l'information,
on peut utiliser des enregistrements virtuels.
Avantages:
• ne stocke pas de valeurs redondantes, mais plutôt
un pointeur indiquant l'adresse d'un enregistrement
physique.
Procédure générale :
Ø Lorsqu'un enregistrement doit être répliqué au sein de
plusieurs arbres :
• On conserve un seul exemplaire dans l'un des
arbres,
• Pour toutes les répliques nécessaires, on crée un
enregistrement virtuel pointant vers l'exemplaire
unique.
GPA775 Chapitre 6 - Modèle hiérarchique 31
Enregistrements virtuels
Exemple :
rue
nom ville client
compte virtuel
numéro position
client virtuel
compte
Notez que la
structure
obtenue par
l’utilisation des
enregistrements
virtuels est très
proche du
modèle réseau.
GPA775 Chapitre 6 - Modèle hiérarchique 32
Manipulation des données des BDH
ØLe modèle hiérarchique utilise le langage commercial
DL/1 de IMS ("Information Management System") de
IBM;
ØIl est probablement le système le plus répandu sur les
gros ordinateurs (Mainframe) qui sont "encore" sur le
marché;
ØLa notation est simplifiée (très peu convivial);
ØLes commandes sont spécifiques;
ØElles peuvent être intégrées dans un langage hôte (ex:
Pascal)
GPA775 Chapitre 6 - Modèle hiérarchique 33
Manipulation des données des BDH
Fonctions principales permettant l’accès au sein d’un
arbre
Ø GET: extraction des données de la base.
• GET FIRST : localise le premier enregistrement.
• GET NEXT : localise le suivant.
GET FIRST/NEXT “ type d'enregistrement ”
WHERE “ condition ”
où WHERE permet de poser en option un prédicat =, $, #, etc.
Ø INSERT : insertion d'un nouvel enregistrement.
INSERT “ type d'enregistrement ”
WHERE “ condition ”
GPA775 Chapitre 6 - Modèle hiérarchique 34
Manipulation des données des BDH
ØREPLACE : modification de l'enregistrement courant.
• On l’utilise avec GET HOLD FIRST/NEXT
w signifie au système que l'extraction sera pour une
modification.
ØDELETE : élimination d'un enregistrement.
• On l’utilise également avec GET HOLD FIRST/NEXT.
GPA775 Chapitre 6 - Modèle hiérarchique 35
Zone programme utilisateur
Comme pour le modèle réseau, on retrouve dans la zone
programme :
Øgabarits d'enregistrement : un gabarit pour chacun des
enregistrements,
Øpointeurs courants : un pointeur par arbre de la BDH qui
conserve l'adresse du dernier enregistrement traité par
le programme,
Øun indicateur d'état : indique le succès (DB_status =0)
ou l'insuccès (DB_status =1) de l'opération.
Voir figure 107, p.122, seuls les pointeurs courants changent.
GPA775 Chapitre 6 - Modèle hiérarchique 36
Exemple de recherche
Soit l’arborescence suivante et
l’instanciation correspondante,
trouvez la liste des comptes dont le
solde est supérieur à 500$.
La recherche d’un enregistrement
s’effectue en pré-ordre, e.i. que la
recherche débute à la racine et en
épuise les branche de gauche à
droite.
Résultat : 522, 561, 533
rue
nom ville
numéro position
client
compte
avoirs
nom ville agence
Bay Ridge
Fleming Brooklyn
522 750
Flatbush
Freeman Brooklyn Airport
Boyd Queens
533 600 409 27 622 107
100 000 000
Parkview Brooklyn 150 000 000
Seashore Queens
561 9953
GPA775 Chapitre 6 - Modèle hiérarchique 37
Exemple de recherche
Traduction de la requête en langage de manipulation de BDH:
Trouver la liste des comptes dont le solde est supérieur à
500 $.
get first compte
where compte.solde > 500
while DB-status = 0 do
begin
print compte.numéro
get next compte
where compte.solde > 500
end
GPA775 Chapitre 6 - Modèle hiérarchique 38
Exercice complémentaire (pas dans les notes)
À partir du modèle E-R suivant, établir le diagramme
hiérarchique équivalent.
CAMION LIVRAISON
PRODUIT
CONDUCTEUR
EFFECTUE
CONTIENT
APPARTIENT
NO_SÉRIE
NO_PERMIS
NO_SÉRIE
NOM
NO
PRÉNOM NOM
ADRESSE
MODÈLE
CAPACITÉ
N
N
N
1
1
1
DATE
QUANTITÉ