SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Chapitre 6
Modèle Hiérarchique
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É

Contenu connexe

Tendances

Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017Isabelle Van Campenhoudt
 
INTRODUCTION TO MICROSOFT POWER BI.pdf
INTRODUCTION TO MICROSOFT POWER BI.pdfINTRODUCTION TO MICROSOFT POWER BI.pdf
INTRODUCTION TO MICROSOFT POWER BI.pdfssusera4419c
 
What is Power BI
What is Power BIWhat is Power BI
What is Power BIDries Vyvey
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Luis Ferreira
 
Criação de páginas web
Criação de páginas webCriação de páginas web
Criação de páginas webarturramisio
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de DadosLeinylson Fontinele
 
Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...
Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...
Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...Edureka!
 
Creative Kigen Graphic Design Portfolio
Creative Kigen Graphic Design PortfolioCreative Kigen Graphic Design Portfolio
Creative Kigen Graphic Design PortfolioCreative Kigen
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados info_cimol
 
D365 Finance & Operations - Data & Analytics (see newer release of this docum...
D365 Finance & Operations - Data & Analytics (see newer release of this docum...D365 Finance & Operations - Data & Analytics (see newer release of this docum...
D365 Finance & Operations - Data & Analytics (see newer release of this docum...Gina Pabalan
 
3D列印發展與趨勢
3D列印發展與趨勢3D列印發展與趨勢
3D列印發展與趨勢Gina Chang
 
الحوسبة في المكتبات
الحوسبة في المكتباتالحوسبة في المكتبات
الحوسبة في المكتباتيوسف لمحنط
 
A hatásos PowerPoint prezentáció
A hatásos PowerPoint prezentációA hatásos PowerPoint prezentáció
A hatásos PowerPoint prezentációkkitte
 

Tendances (20)

Servidor WEB
Servidor WEBServidor WEB
Servidor WEB
 
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
Ms Cloud Summit 2017 - Power Bi, le tour complet 2017
 
KnolX - Power Bi
KnolX - Power Bi KnolX - Power Bi
KnolX - Power Bi
 
INTRODUCTION TO MICROSOFT POWER BI.pdf
INTRODUCTION TO MICROSOFT POWER BI.pdfINTRODUCTION TO MICROSOFT POWER BI.pdf
INTRODUCTION TO MICROSOFT POWER BI.pdf
 
What is Power BI
What is Power BIWhat is Power BI
What is Power BI
 
【閲覧用】システムコーチング提案書
【閲覧用】システムコーチング提案書【閲覧用】システムコーチング提案書
【閲覧用】システムコーチング提案書
 
Redes de comunicação - TGPSI
Redes de comunicação - TGPSIRedes de comunicação - TGPSI
Redes de comunicação - TGPSI
 
Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1Comunicação de dados - Módulo 1
Comunicação de dados - Módulo 1
 
Microsoft Power BI
Microsoft Power BIMicrosoft Power BI
Microsoft Power BI
 
Criação de páginas web
Criação de páginas webCriação de páginas web
Criação de páginas web
 
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I  Aula 02 - Introdução aos Bancos de DadosBanco de Dados I  Aula 02 - Introdução aos Bancos de Dados
Banco de Dados I Aula 02 - Introdução aos Bancos de Dados
 
Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...
Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...
Power BI Training | Getting Started with Power BI | Power BI Tutorial | Power...
 
Creative Kigen Graphic Design Portfolio
Creative Kigen Graphic Design PortfolioCreative Kigen Graphic Design Portfolio
Creative Kigen Graphic Design Portfolio
 
Apostila de Banco de Dados
Apostila de Banco de Dados Apostila de Banco de Dados
Apostila de Banco de Dados
 
Introdução ao ITIL
Introdução ao ITILIntrodução ao ITIL
Introdução ao ITIL
 
D365 Finance & Operations - Data & Analytics (see newer release of this docum...
D365 Finance & Operations - Data & Analytics (see newer release of this docum...D365 Finance & Operations - Data & Analytics (see newer release of this docum...
D365 Finance & Operations - Data & Analytics (see newer release of this docum...
 
Power BI
Power BIPower BI
Power BI
 
3D列印發展與趨勢
3D列印發展與趨勢3D列印發展與趨勢
3D列印發展與趨勢
 
الحوسبة في المكتبات
الحوسبة في المكتباتالحوسبة في المكتبات
الحوسبة في المكتبات
 
A hatásos PowerPoint prezentáció
A hatásos PowerPoint prezentációA hatásos PowerPoint prezentáció
A hatásos PowerPoint prezentáció
 

Chapitre 06 - Modèle Hiérarchique.pdf

  • 2. 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
  • 3. 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)
  • 4. 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
  • 5. 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.
  • 6. 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 . . . . . . . . .
  • 7. 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 . . . . . . . . .
  • 8. 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 . . . . . . . . .
  • 9. 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
  • 10. 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.
  • 11. 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
  • 12. 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)
  • 13. 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
  • 14. GPA775 Chapitre 6 - Modèle hiérarchique 14 Instanciation des arbres T1 (a) et T2 (b)
  • 15. 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.
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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)
  • 20. 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
  • 21. GPA775 Chapitre 6 - Modèle hiérarchique 21 Instanciation d’une structure arborescente à relation n vers n avec attribut.
  • 22. 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!
  • 23. 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
  • 24. 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
  • 25. GPA775 Chapitre 6 - Modèle hiérarchique 25 Exemple de transformation d’une relation ternaire
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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.
  • 31. 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.
  • 32. 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)
  • 33. 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 ”
  • 34. 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.
  • 35. 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.
  • 36. 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
  • 37. 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
  • 38. 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É