Vous êtes sur la page 1sur 38

Chapitre 6

Modèle Hiérarchique
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 2


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 3


Concepts de base du modèle hiérarchique

Exemple de BD hiérarchique…
NAS rue
numéro

nom ville solde

Client CliCom Compte

Lowman Square Dallas Camp Downridge Garland Kahn Bayside Plano

305 500 226 336 177 205 155 62

GPA775 Chapitre 6 - Modèle hiérarchique 4


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 La racine virtuelle
“A” est un nœud
bidon.
B1 B2 ... Bn

C1 ... Cm ... Cl

GPA775 Chapitre 6 - Modèle hiérarchique 5


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.

B1 B2 ... Bn

C1 ... Cm ... Cl

GPA775 Chapitre 6 - Modèle hiérarchique 6


Organisation en arbre

Øils contiennent que des relations 1 vers 1 ou 1


vers N

parent A


enfant B1 B2 ... Bn

C1 ... Cm ... Cl

GPA775 Chapitre 6 - Modèle hiérarchique 7


Organisation en arbre
Øle contenu d'un enregistrement peut être répété:
• dans le même arbre, A
• dans plusieurs arbres;

B1 B2 ... Bn

C1 ... Cm ... Cl

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.

GPA775 Chapitre 6 - Modèle hiérarchique 8


Transformations E-R vers BDH

Relations binaires sans attributs


Relation 1 vers 1 :
rue numéro
nom ville position

1 1N
Client CliCom Compte

nom rue ville client


Représentation de la
cardinalité 1:1
numéro position compte

GPA775 Chapitre 6 - Modèle hiérarchique 9


Relations binaires sans attributs
Relation 1 vers n :
rue numéro
nom ville position

1 N
Client CliCom Compte

C’est la flèche
nom rue ville client qui différencit
une relation
numéro position compte 1:1 et 1:N.

GPA775 Chapitre 6 - Modèle hiérarchique 10


Exemple de base de données avec relation 1:N

Lowman Square Dallas Camp Downridge Garland Kahn Bayside Plano

305 500 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 11


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 12
Exemple de transformation N:N

rue numéro
nom ville position

N N
Client CliCom Compte

nom rue ville client numéro position compte

numéro position compte nom rue ville client

arbre T1 arbre T2

GPA775 Chapitre 6 - Modèle hiérarchique 13


Instanciation des arbres T1 (a) et T2 (b)

GPA775 Chapitre 6 - Modèle hiérarchique 14


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 15


Relations binaires avec attribut
Exemple de transformation 1 vers N

rue date numéro


nom ville position

1 N
Client CliCom Compte

nom rue ville client

date date

numéro position compte

GPA775 Chapitre 6 - Modèle hiérarchique 16


Instanciation de la relation 1 vers N avec attribut

nom rue ville client

date date

numéro position compte

GPA775 Chapitre 6 - Modèle hiérarchique 17


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.

nom rue ville client

date date

numéro position compte

GPA775 Chapitre 6 - Modèle hiérarchique 18


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 19


Exemple de transformation d’une relation N:N avec attribut

rue date numéro


nom ville position

1N N
Client CliCom Compte

numéro position compte nom rue ville client

date date date date

nom rue ville client numéro position compte

arbre T 1 arbre T 2
GPA775 Chapitre 6 - Modèle hiérarchique 20
Instanciation d’une structure arborescente à relation n vers n avec attribut.

GPA775 Chapitre 6 - Modèle hiérarchique 21


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 22


Exemple de transformation d’une relation ternaire

ville

nom avoir

agence

NAS rue
numéro

nom ville solde

Client CCA Compte

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

GPA775 Chapitre 6 - Modèle hiérarchique 23


Exemple de transformation d’une relation ternaire

Voici l’arborescence (T1 et T2) correspondant à la relation


ternaire de la page précédente :

nom avoirs ville agence nom avoirs ville agence

nom rue ville client numéro position compte

numéro position compte nom rue ville client

arbre T1 arbre T2

retrouver les
retrouver les
comptes
clients
appartenant à
appartenant à une agence
une agence
GPA775 Chapitre 6 - Modèle hiérarchique 24
Exemple de transformation d’une relation ternaire

GPA775 Chapitre 6 - Modèle hiérarchique 25


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 !

avoir numéro rue

nom ville position nom ville

Agence AgeCom Compte CliCom Client

GPA775 Chapitre 6 - Modèle hiérarchique 26


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:

nom avoirs ville agence nom rue ville client

numéro position compte numéro position compte

arbre T 1 arbre T 2

GPA775 Chapitre 6 - Modèle hiérarchique 27


Transformations des relations multiples
Si le modèle E-R renferme un
cycle (A ↔ B ↔ C ↔ A), A B

le modèle hiérarchique ne peut


représenter cette topologie à C
l'aide d'un seul arbre.

A A

Il faudra créer deux arborescences B C


pour implanter ce type de modèle.
C B

GPA775 Chapitre 6 - Modèle hiérarchique 28


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 29
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 30


Enregistrements virtuels
Exemple :
nom rue ville client numéro position compte

compte virtuel client virtuel

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 31


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 32


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 33


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 34


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 35


Exemple de recherche
Soit l’arborescence suivante et nom avoirs ville agence
l’instanciation correspondante,
trouvez la liste des comptes dont le
nom rue ville client
solde est supérieur à 500$.
La recherche d’un enregistrement numéro position compte
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
Parkview 100 000 000 Brooklyn Seashore 150 000 000 Queens

Fleming Bay Ridge Brooklyn Freeman Flatbush Brooklyn Boyd Airport Queens

522 750 561 9953 533 600 409 27 622 107

GPA775 Chapitre 6 - Modèle hiérarchique 36


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 37


Exercice complémentaire (pas dans les notes)
À partir du modèle E-R suivant, établir le diagramme
hiérarchique équivalent.
CAPACITÉ
DATE
NO_SÉRIE MODÈLE NO ADRESSE

1 N
CAMION EFFECTUE LIVRAISON
1 N

APPARTIENT QUANTITÉ CONTIENT

1 N
CONDUCTEUR PRODUIT

PRÉNOM NOM NO_SÉRIE NOM

NO_PERMIS

GPA775 Chapitre 6 - Modèle hiérarchique 38

Vous aimerez peut-être aussi