Sunteți pe pagina 1din 7

II.

LES SYSTMES HIRARCHIQUES

Le modle hirarchique est assez bien adapt au monde rel, qui nous apparat souvent au travers de hirarchies. Beaucoup de systmes sont encore bass sur ce modle.
Cependant, il nexiste pas de standard.
IMS dIBM sur matriels IBM uniquement.
SYSTEM-2000 sur divers matriels : IBM, UNIVAC, CDC, CYBER.

1. Structure des bases de donnes hirarchiques

MILLESIMES

PRODUCTEURS

BUVEURS

CRUS

ABUS

COMMANDES

Exemple de base hirarchique

Bases de donnes Les systmes hirarchiques

17

a) Schma hirarchique
Ensemble de types d'enregistrements R1, R2, Rn. Ex., le type CRUS, le type
MILLESIME, etc.
Ensemble de liens Lij (1 i n, 1 j n). Ex. Un PRODUCTEUR produit des
CRUS.
4 rgles :
R1 : Il existe au plus un lien Lij entre deux types d'enregistrements Ri et Rj.
R2 : Aucun lien Lii n'est possible pour tout i.
R3 : Chaque lien Lij correspond une association 1-N (parent enfant).
R4 : Le graphe structurel est un arbre ordonn appel schma hirarchique (un
type racine et des types dpendants).
b) Diagramme hirarchique
SERVICE
NOMSER

RESPONSABLE

PIECE
NUMPIE

EMPLOYE
DESIGNATION

NUEMP NOM

SALAIRE

FOURNISSEUR
NOMFOUR

ADRESSE

Exemple de diagramme hirarchique complet (champs inclus)


Dfinitions :
Schma de base de donnes hirarchique : un ou plusieurs schmas hirarchiques
Schma hirarchique : un ensemble doccurrences hirarchiques
Occurrence hirarchique : un arbre
Fort des occurrences : juxtaposition des occurrences hirarchiques
Bases de donnes Les systmes hirarchiques

18

S1

P1

F1

F2

S2

P2

F3

E1

E2

F2

S3

P2

F2

F3

E3

E4

F4

Fort doccurrences hirarchiques pour le diagramme hirarchique prcdent


c) Proprits dun schma hirarchique
Le type racine ne doit pas participer comme enfant par ailleurs.
Chaque type, sauf la racine, figure comme enfant dans une et une seule liaison (chaque type, sauf la racine possde un et un seul type parent).
Un type peut jouer le rle de parent pour plusieurs autres types (les enfants ordonns
de gauche droite).
Un type qui ne figure pas comme parent est appel feuille du schma hirarchique.
d) Forme linaire dun schma hirarchique
Certains langages de manipulation reposent sur une exploration linaire.
Squence hirarchique : parcours en prordre du schma hirarchique.
PROCEDURE Prordre(X) / X est la racine de larbre /
Dbut
Output(X)
Pour chaque enfant Y de X dans lordre gauche-droite faire
Prordre(Y)
Fin

Ex. Squence hirarchique SERVICE, PIECE, EMPLOYE, FOURNISSEUR.


Chemin hirarchique : squence de nuds N1, N2, , Ni o N1 est la racine et o Nj
est un enfant de Nj-1 pour j = 2,3, ...,i.
Ex. Chemin hirarchique SERVICE, PIECE, FOURNISSEUR.
Bases de donnes Les systmes hirarchiques

19

e) Reprsentation des associations M-N laide dun schma hirarchique


Exemple : Association FOURNISSEURS-PIECES indiquant les pices approvisionnes par un fournisseur et les fournisseurs qui approvisionnent une pice.
Reprsentations non symtriques
FOURNISSEUR

PIECE

NOFOUR NOMFOUR ADRESSE

NOPIECE

DESIGNATION

FOURNISSEUR

PIECE
NOPIECE

DESIGNATION

NOFOUR

NOMFOUR ADRESSE

Deux reprsentations non symtriques dune association M-N


Les performances daccs ne sont pas les mmes pour les deux types.
Reprsentation symtrique
Base FOURNISSEURS
FOURNISSEUR
NOFOUR NOMFOUR ADRESSE

NOPIECE

Base PIECES
PIECE
NOPIECE

DESIGNATION

NOFOUR

Reprsentation symtrique dune association M-N


Redondance des identifiants
Manipulation conjointe par le programmeur
Liaison virtuelle parent-enfant
Utilisation dun pointeur au sein dun mme schma hirarchique ou entre des
schmas hirarchiques diffrents.

Bases de donnes Les systmes hirarchiques

20

FOURNISSEUR
NOFOUR

NOMFOUR ADRESSE
P

PIECE
NOPIECE

DESIGNATION

parent virtuel

enfant virtuel

Reprsentation dune association M-N par liaison virtuelle


Symtrisation possible en utilisant un segment dpendant du type PIECE et en installant un deuxime pointeur vers le type FOURNISSEUR.
P peut contenir des donnes dintersection.

2. Dfinition de bases hirarchiques


a) Contraintes du modle hirarchique
Une occurrence qui nest pas une occurrence de la racine, ne peut pas exister dans la
base sans tre relie une occurrence parent rel.
Toute occurrence autre que celle de la racine ne peut tre insre que si son parent
rel est dj prsent dans la base.
La suppression dun parent rel entrane automatiquement la suppression de tous ses
enfants rels et de ses descendants rels.
Une occurrence ne peut tre accde qu' travers un chemin hirarchique.
b) Dfinition dune base hirarchique
Cf. exemple ci-contre.
Ligne 1 : nomme la base de donnes et prcise l'organisation physique.
Lignes 2 4 : description du segment racine SERVICE. Option SEQ : tri des occurrences de ce segment selon l'ordre ascendant des valeurs de NOMSER. Valeurs
identiques interdites.
Lignes 5 7 : description du segment PIECE.
Bases de donnes Les systmes hirarchiques

21

1
2
3
4
5
6
7
8
9
10
12
13
14
15
16
17
18

DBD NAME=SERVICEDB, ACCESS=HDAM


SEGM NAME=SERVICE, BYTES=30
FIELD NAME=(NOMSER, SEQ), BYTES=15, START=1
FIELD NAME=RESPONSABLE, BYTES=15, START=16
SEGM NAME=PIECE, BYTES=40, PARENT=SERVICE
FIELD NAME=(NUMPIE, SEQ), BYTES=10, START=1
FIELD NAME=DESIGNATION, BYTES=30, START=11
SEGM NAME=FOURNISSEUR, BYTES=40, PARENT=PIECE
FIELD NAME=(NOMFOUR, SEQ, M), BYTES=15, START=1
FIELD NAME=ADRESSE, BYTES=25, START=16
SEGM NAME=EMPLOYE, BYTES=45, PARENT=SERVICE
FIELD NAME=(NUEMP, SEQ), BYTES=10, START=1
FIELD NAME=NOM, BYTES=25, START=11
FIELD NAME=SALAIRE, BYTES=10, START=36
DBDGEN
FINISH
END

Exemple de description avec IMS/DL1


Lignes 8 10 : description du segment FOURNISSEUR. Option M + SEQ : cl non
unique.
Lignes 12 15 : description du segment EMPLOYE.
Lignes 16 18 : indication de fin de description et fin de programme.

3. Manipulation de bases hirarchiques


Quelques exemples de transactions (syntaxe de IMS/DL1).
a) Accs direct
Caractristiques de la pice 118 :
GET UNIQUE SERVICE PIECE (NUMPIE=118)

Il faut indiquer le chemin hirarchique complet. S'il existe plusieurs pices portant
le mme numro, c'est la premire rencontre qui est slectionne.
Bases de donnes Les systmes hirarchiques

22

b) Accs squentiel
Caractristiques de tous les fournisseurs partir de la pice 118 :
GET UNIQUE SERVICE PIECE (NUMPIE=118) FOURNISSEUR
while DB-STATUS=0 do
begin
GET NEXT FOURNISSEUR
end

c) Accs squentiel sous un mme parent


Noms et adresses des fournisseurs de la pice 118 pour le service SECURITE :
GET UNIQUE SERVICE (NOMSER=SECURITE) PIECE (NUMPIE=118)
while DB-STATUS=0 do
begin
GET NEXT WITHIN PARENT FOURNISSEUR
end

d) Insertion
Insrer un nouveau fournisseur pour la pice 118 :
INSERT SERVICE PIECE (NUMPIE=118) FOURNISSEUR

e) Suppression
Supprimer la pice 118 et ses descendants :
GET HOLD UNIQUE SERVICE PIECE(NUMPIE=118)
DELETE

f) Remplacement
Modifier la dsignation de la pice 118 :
GET HOLD UNIQUE SERVICE PIECE (NUMPIE=118)
Effectuer la modification dans la zone E/S
REPLACE

Bases de donnes Les systmes hirarchiques

23

S-ar putea să vă placă și