7/25/2019 base de donnees avancee uy I
1/64
SIGL460Bases de donnes avances
Chapitre 3Modles de donnes
1
Serge Mani, ing. PhD, CISA, CISM
Universit de Yaound 1
Facult des SciencesDpartement dinformatique
7/25/2019 base de donnees avancee uy I
2/64
Plan du cours Types de donnes Modle rseau Langage de manipulation Modle hirarchique
Rfrence
2
7/25/2019 base de donnees avancee uy I
3/64
Types de modles
Modles conceptuels Entits-Relations
UML
Modles de bases de donnes Rseau
Hirarchique
Relationnel objets
3
7/25/2019 base de donnees avancee uy I
4/64
Modle rseau, dfinitions
Atome (Data Item)
Plus petite unit de donnes possdant un nom
Exemples : MATRICULE , NOM ,
Possde un type Exemple : entier pour MATRICULE
4
7/25/2019 base de donnees avancee uy I
5/64
Modle rseau, dfinitions
Objets Groupe (Data aggregate)
Collection d atomes rangs conscutivement dans labase et possdant un nom
Simple : suite datomes Exemple ADRESSE
Form de NUM, RUE, VILLE et CP (code postal)
5
7/25/2019 base de donnees avancee uy I
6/64
Modle rseau, dfinitions
Objets Groupe (Data aggregate)
Rptitif : collection de donnes apparaissantplusieurs fois conscutivement form d atomeset/ou de groupe rptitifs Exemple
PRENOM appel vecteur, ENFANT form de PRENOM , SEXE, AGE
6
7/25/2019 base de donnees avancee uy I
7/64
Modle rseau, dfinitions
ObjetsArticle (Records)
Collection d atomes et de groupe rangs cte cte dans la base de donnes
Unit d change entre la base et lesapplications
Les occurrences d articles sont ranges dansdes fichiers (AREA)
7
7/25/2019 base de donnees avancee uy I
8/64
Modle rseau, dfinitions
Objets Article
RECORD NAME IS ;
RECORD NAME IS EMPLOYES;
Atome [] TYPE IS ;
02 NOM TYPE IS CHARACTER 12;
Groupe []
02 ADRESSE 03 RUE TYPE IS CHARACTER 30;
03 CODE TYPE IS CHARACTER 7;
03 VILLE TYPE IS CHARACTER 20;
8
7/25/2019 base de donnees avancee uy I
9/64
Modle rseau, dfinitions
Objets Type de donnes
Dcimal sign condens ou non
SIGNED [ {PACKED | UNPACKED} ] DECIMAL , [] Entier binaire long (s+31bits) ou court (s+15bits)
SIGNED BINARY {15 | 31}
Chane de caractre de longueur fixe (en caractres)
CHARACTER
Rptition des groupes OCCURS TIMES
9
7/25/2019 base de donnees avancee uy I
10/64
Modle rseau, syntaxe
ExempleRECORD NAME ISVINS;
02NV TYPE IS SIGNED PACKED DECIMAL 5;
02CRU TYPE IS CHARACTER 10;
02MILLESIMES OCCURS 5 TIMES03ANNEE TYPE IS SIGNED UNPACKED DECIMAL 4;
03DEGRE TYPE IS BINARY 15 ;
RECORD NAME IS PRODUCTEURS;
02NP TYPE IS SIGNED PACKED DECIMAL 5;
02NOM TYPE IS CHARACTER 10;02PRENOM TYPE IS CHARACTER 10;
02ADRESSE
03RUE TYPE IS CHARACTER 30;
03 CODE TYPE IS CHARACTER 7;
03VILLE TYPE IS CHARACTER 20; 10
7/25/2019 base de donnees avancee uy I
11/64
Modle rseau, dfinitions
Liens
Lien (set)
Type d association oriente entre articles de type
T1 vers articles de type T2 dans laquelle uneoccurrence relie un article propritaire de type T1 n articles membres de type T2
11
7/25/2019 base de donnees avancee uy I
12/64
Modle rseau, dfinitions
Liens
Diagramme de Bachman
12
PRODUCTEURS
VINS
RCOLTE
membre
propritaire
7/25/2019 base de donnees avancee uy I
13/64
Modle rseau, dfinitions
13
VINS
PRODUCTEURS
VENTE
COMMANDES
BUVEURS
ABUS
ACHAT
DGUSTATIONCONSOMMATION
RCOLTE
7/25/2019 base de donnees avancee uy I
14/64
Modle rseau, limites
14
7/25/2019 base de donnees avancee uy I
15/64
Modle rseau, limites
Pas de lien rflexif
15
7/25/2019 base de donnees avancee uy I
16/64
Modle rseau, graphe desoccurrences
16
7/25/2019 base de donnees avancee uy I
17/64
Modle rseau, synthaxe
LiensSET NAME IS ;
OWNER IS ;
[MEMBER IS ;]*
ExempleSET NAME IS RECOLTE;
OWNER IS PRODUCTEURS;
MEMBER IS VINS;
Cas des liens singulier Spcifier : OWNER IS SYSTEM
17
7/25/2019 base de donnees avancee uy I
18/64
Modle rseau, ordonnancement
Les articles dans les occurrences de lienssont ordonns pour l insertion
Positions dbut ( FIRST ) ou fin ( LAST )
avant ( PRIOR ) ou aprs ( NEXT )
par tri ( SORTED ) croissant ou dcroissant dun
atome ( KEY )
18
7/25/2019 base de donnees avancee uy I
19/64
Modle rseau, ordonnancement
Exemple
19
7/25/2019 base de donnees avancee uy I
20/64
Modle rseau, syntaxe
OrdonnancementORDER IS [PERMANENT] INSERTION IS
{FIRST | LAST | PRIOR | NEXT | SORTED ;
Spcification de tri[ RECORD-TYPE SEQUENCE IS + ]
BY DEFINED KEYS [DUPLICATES ARE {FISRT | LAST | NOT
ALLOWED}]
Dfinition de cl dans article membreKEY IS {ASCENDING | DESCENDING}
20
7/25/2019 base de donnees avancee uy I
21/64
Modle rseau, syntaxe
Exemple
SET NAME ISRECOLTE;
OWNER IS PRODUCTEURS;ORDER IS PERMANENT INSERTION IS SORTED
BY DEFINED KEYS DUPLICATES ARE FISRT ;
MEMBER IS VINS;
KEY IS ASCENDING CRU ;
21
7/25/2019 base de donnees avancee uy I
22/64
Modle rseau, slection
Il y a autant d occurrences de type de lienque d articles propritaires
Slection de l occurrence de type de lien Manuelle dans le programme
Automatique par la clause SET SELECTION
22
7/25/2019 base de donnees avancee uy I
23/64
Modle rseau, syntaxe
slection
SET SELECTION [FOR ] IS
THRU OWNER IDENTIFIED BY{ APPLICATION
| DATA-BASE-KEY [EQUAL TO ]
| CALC KEY [EQUAL TO ]}
[ THEN THRU WHERE OWNER IDENTIFIED BY
{ [EQUAL TO]} + ] ...;
23
7/25/2019 base de donnees avancee uy I
24/64
Modle rseau, options dinsertion
Lors de la cration d un nouvel article dans la base,il pourra tre insr dans un lien de manire
automatique
manuelle Contrainte
obligatoire
facultative
Syntaxe INSERTION IS {AUTOMATIC | MANUAL}
RETENTION IS {MANDATORY | OPTIONAL}
24
7/25/2019 base de donnees avancee uy I
25/64
Modle rseau, placement desarticles
BD rseau est stocke dans un ensemble defichiers appels AREAou REALM
fichiers relatifs
adresse = numro de page et numro d octet dans la page fichiers alatoiresadresse = f(c), fonction de hachage
Cl de base de donnes (database key)
Adresse invariante affecte un article lors de sacration et permettant de l identifi sans ambigutexemple : num_fichier num_page deplacement
25
7/25/2019 base de donnees avancee uy I
26/64
Modle rseau, placement desarticles
Placement CODASYLMthode de calcul de l adresse d un article et
d attribution de la cl de base de donnes lors
de la premire insertion placement direct (DIRECT) placement calcul (CALC USING)
placement par lien (VIA)
par proximit (mme fichier que propritaire)
par homothtie (autre fichier)
26
7/25/2019 base de donnees avancee uy I
27/64
Modle rseau, placement desarticles
Placement CODASYLMthode de calcul de l adresse d un article et
d attribution de la cl de base de donnes lors
de la premire insertion placement direct (DIRECT) placement calcul (CALC USING)
placement par lien (VIA)
par proximit (mme fichier que propritaire)
par homothtie (autre fichier)
27
7/25/2019 base de donnees avancee uy I
28/64
Modle rseau, syntaxe
Placement des articles
LOCATION MODE IS
{ SYSTEM
| DIRECT| CALC USING
[DUPLICATES ARE [NOT] ALLOWED]
| VIA SET}
WITHIN{ | AREA OF OWNER}
28
7/25/2019 base de donnees avancee uy I
29/64
Modle rseau, exemple
SCHEMA NAME IS VINICOLEAREA NAME IS F-BUVEURS ;
AREA NAME IS F-PRODUCTEURS ;
AREA NAME IS F-COMMADES ;
RECORD NAME IS BUVEURS ;
LOCATION MODE IS CALC USING NB DUPLICATESNOT ALLOWED WITHINF-BUVEURS ;
02 NB TYPE IS SIGNED PACKED DECIMAL 5;
02NOM TYPE IS CHARACTER 10;
02PRENOM TYPE IS CHARACTER 10;
RECORD NAME ISABUS;LOCATION MODE IS VIA DEGUSTATION
WITHIN AREA OF OWNER ;
02QUANTITE TYPE IS SIGNED BINARY 15;
29
7/25/2019 base de donnees avancee uy I
30/64
Modle rseau, exemple
RECORD NAME IS PRODUCTEURS ;LOCATION MODE IS CALC USING NOM DUPLICATES
ALLOWED WITHIN F-PRODUCTEURS;
02 NOMTYPE IS CHARACTER 10 ;
02 REGIONTYPE IS CHARACTER 8 ;
RECORD NAME IS VINS;LOCATION MODE IS VIA RECOLTE
WITHIN AREA OF OWNER ;
02 NVTYPE IS SIGNED PACKED DECIMAL 5 ;
02 CRUTYPE IS CHARACTER 10;
02 MILLESIMESOCCURS 5 TIMES ;03ANNEETYPE IS SIGNED UNPACKED DECIMAL 4;
03 DEGRETYPE IS BINARY 15 ;
30
7/25/2019 base de donnees avancee uy I
31/64
Modle rseau, exemple
RECORD NAME IS COMMANDES;LOCATION MODE IS VIAACHATWITHIN F-COMMANDES;
02 DATETYPE IS CHARACTER 8 ;
02 QUANTITETYPE IS SIGNED BINARY 15 ;
SET NAME IS DEGUSTATION;OWNER IS BUVEURS;
ORDER IS PERMANENT INSERTION IS LAST ;
MEMBER ISABUS;
INSERTION IS AUTOMATIC RETENTION IS MANDATORY ;
SET SELECTION FOR DEGUSTATIONIS
THRU DEGUSTATIONOWNER IDENTIFIED BY CALC KEY ;
31
7/25/2019 base de donnees avancee uy I
32/64
Modle rseau, exempleSET NAME IS CONSOMMATION;
OWNER IS VINS;
ORDER IS PERMANENT INSERTION IS NEXT ;
MEMBER ISABUS;
INSERTION IS AUTOMATIC RETENTION IS MANDATORY ;
SET SELECTION FOR CONSOMMATIONISTHRU CONSOMMATIONOWNER IDENTIFIED BY
APPLICATIONS ;
SET NAME IS RECOLTE;OWNER IS PRODUCTEURS;
ORDER IS PERMANENT INSERTION IS SORTEDBY DEFINED KEYS DUPLICATES ARE FISRT ;
MEMBER IS VINS;
INSERTION IS AUTOMATIC RETENTION IS OPTIONAL ;
KEY IS ASCENDING CRU;
SET SELECTION IS THRU RECOLTEOWNER IDENTIFIED BY
CALC KEY ; 32
7/25/2019 base de donnees avancee uy I
33/64
Modle rseau, exemple
SET NAME IS VENTE;OWNER IS VINS;
ORDER IS PERMANENT INSERTION IS SORTED
BY DEFINED KEYS DUPLICATES ARE NOT ALLOWED ;
MEMBER IS COMMANDES;
INSERTION IS AUTOMATIC RETENTION IS MANDATORY ;KEY IS DESCENDING DATEDUPLICATES NOT ALLOWED ;
SET SELECTION IS THRU RECOLTEOWNER IDENTIFIED BY
CALC KEY
THEN THRU VENTEWHERE OWNER IDENTIFIED BY NV;
33
7/25/2019 base de donnees avancee uy I
34/64
Modle rseau, exemple
SET NAME ISACHAT;OWNER IS BUVEURS;
ORDER IS PERMANENT INSERTION IS LAST ;
MEMBER IS COMMANDES;
INSERTION IS AUTOMATIC RETENTION IS MANDATORY ;
SET SELECTION IS THRUACHATOWNER IDENTIFIED BYAPPLICATION ;
END-SCHEMA.
34
7/25/2019 base de donnees avancee uy I
35/64
Langage de manipulationCOBOL-CODASYL
Sous-schma COBOLSous-ensemble du schma vu par unprogramme d application, spcifiant la vision
externe de la base par un programmeOn peut omettre des types d articles, des fichiers, des liens et des
donnes
On peut redfinir l ordre des atomes
le type d un atome
les clause SET SELECTION
les noms des t es d articles des atomes et des liens35
7/25/2019 base de donnees avancee uy I
36/64
Langage de manipulationCOBOL-CODASYL
Sous-schma COBOL Se compose de
Division de titre
Nom
Schma
Division de correspondance
synonymes
Division de structure Fichiers
Articles
Liens
36
7/25/2019 base de donnees avancee uy I
37/64
Langage de manipulationCOBOL-CODASYL
Sous-schma COBOL ExempleTITLE DIVISION
SS CLIENTWITHIN SCHEMA VINICOLE
MAPPING DIVISIONALIAS SECTION
AD SET BOITIS DEGUSTATION
AD SETACHETEISACHAT
STRUCTURE DIVISION
REALM SECTIONRD F-BUVEURS
RD F-COMMADES
37
RECORD SECTION
01 BUVEURS02 NV PICTURE IS 99902 NOM PICTURE IS X(10)02 PRENOM PICTURE IS X(10)
01 ABUS02 QUANTITE PICTURE IS 999
01 COMMANDES02 QUANTITE PICTURE IS 999
02 DATE PICTURE IS X(8)SET SECTIONSDBOITSDACHETE
7/25/2019 base de donnees avancee uy I
38/64
Langage de manipulationCOBOL-CODASYL
Navigation CODASYLVerbes de manipulation
recherche d articles ( FIND )
changes d articles ( GET, STORE )
mise jour ( ERASE, CONNECT, DISCONNECT, MODIFY ) contrle de fichiers ( READY, FINISH )
changes via , USER WORKING AREA GET et STORE
Chaque atome ou article a une place fixe dans ce tampon
38
7/25/2019 base de donnees avancee uy I
39/64
Langage de manipulationCOBOL-CODASYL
Navigation CODASYLCurseur
Pointeur courant contenant la cl base de donnes du
dernier article manipul d une collection d articles, et
permettant au programme de se dplacer dans la base Plusieurs curseurs dans un programme
dernier article lu, crit ou recherch
article courant de chaque type d article
article courant de chaque type de lienarticle courant de chaque fichier
Seul un article point par un curseur d un pgm peut
tre lu par ce pgm
Nombre des curseurs = ?? 39
7/25/2019 base de donnees avancee uy I
40/64
Modle rseau, exemple
40
L d i l ti
7/25/2019 base de donnees avancee uy I
41/64
Langage de manipulationCOBOL-CODASYL
41
Contrle de fichiersOuverture
READY { [ USAGE-MODE IS{EXCLUSIVE | PROTECTED} {RETRIEVAL | UPDATE}]} +
FermetureFINISH{} +
changer des articles base vers la zone de travail
GET{[] | {} * } vers la base
STORE RETAINING CURRENCY FOR
{ MULTIPLE | REALM | RECORD | SETS | +}
L d i l ti
7/25/2019 base de donnees avancee uy I
42/64
Langage de manipulationCOBOL-CODASYL
42
Recherche d articles l excution du FIND permet de dplacer le
curseur du programme mais pas forcment les
autresSyntaxeFIND RETAINING CURRENCY FOR
{ MULTIPLE
| REALM
| RECORD
| SETS
| +}
L d i l ti
7/25/2019 base de donnees avancee uy I
43/64
Langage de manipulationCOBOL-CODASYL
43
Recherche sur cl de base de donnes connaissant la cl BDFIND DBKEY IS
Connaissant la cl de hachage (unique)FIND ANY cl doit tre charg par le pgm dans la zone de travail
Connaissant la cl de hachage (multiple)
FIND DUPLICATE
plusieurs FIND DUPLICATE permettront de retrouver lesdoubles successivement
L d i l ti
7/25/2019 base de donnees avancee uy I
44/64
Langage de manipulationCOBOL-CODASYL
44
Recherche sur cl de base de donnes Exemple
Accs sur cl de hachage (unique) au buveur dont
le NB est 100
7/25/2019 base de donnees avancee uy I
45/64
L d i l ti
7/25/2019 base de donnees avancee uy I
46/64
Langage de manipulationCOBOL-CODASYL
Recherche dans un fichier Exemple : imprimer tous les buveurs
46
L d i l ti
7/25/2019 base de donnees avancee uy I
47/64
Langage de manipulationCOBOL-CODASYL
Recherche dans une occurrence de lien Idem
FIND {FIRST | LAST | NEXT | PRIOR | | }
WITHIN partir d une valeur de donne
FIND WITHIN
USING +
FIND DUPLICATE WITHIN
USING +
partir d un article membreFIND OWNER WITHIN 47
Suivante
L d i l ti
7/25/2019 base de donnees avancee uy I
48/64
Langage de manipulationCOBOL-CODASYL
Recherche dans une occurrence de lien Exemple 1 : imprimer tous les buveurs et
leurs commandes
48
L d i l ti
7/25/2019 base de donnees avancee uy I
49/64
Langage de manipulationCOBOL-CODASYL
Recherche dans une occurrence de lien Exemple 2 : Imprimer les cmds du buveur 100 du
10/02/81
49
L d i l ti
7/25/2019 base de donnees avancee uy I
50/64
Langage de manipulationCOBOL-CODASYL
Conditionnelles tester si article courant appartient un lienIF [NOT] {OWNER | MEMBER | TENANT}
EXECUTE tester si une occurrence de lien n est pas
vide
IF IS [NOT] EMPTY EXECUTE
50
L d i l ti
7/25/2019 base de donnees avancee uy I
51/64
Langage de manipulationCOBOL-CODASYL
Conditionnelles Exemples
51
Langage de manip lation
7/25/2019 base de donnees avancee uy I
52/64
Langage de manipulationCOBOL-CODASYL
Positionner le curseur de programme celui d un type d articles, de lien ou de
fichier
FIND CURRENT [][WITHIN { | }]
52
Langage de manipulation
7/25/2019 base de donnees avancee uy I
53/64
Langage de manipulationCOBOL-CODASYL
Mises jour Suppression d articles
ERASE [ALL] []All : suppression rcursive des membres
Exemple : supprimer le buveur numro 100
53
Langage de manipulation
7/25/2019 base de donnees avancee uy I
54/64
Langage de manipulationCOBOL-CODASYL
Mises jour Modification d articles
MODIFY {[] | {} * }
[INCLUDING {ALL | ONLY + } MEMBERSHIP ]
Exemple : ajouter 10 la 7 e quantit bue par le buveur 200
54
Langage de manipulation
7/25/2019 base de donnees avancee uy I
55/64
Langage de manipulationCOBOL-CODASYL
Mises jour insertion/suppression dans une occurrence
de lien
Par le programme en mode MANUAL ouOPTIONAL
insertion article courant du programme
CONNECT[] TO
suppression article courant du programmeDISCONNECT [] FROM }
permet de vrifier le type de larticle courant 55
Modle hirarchique
7/25/2019 base de donnees avancee uy I
56/64
Modle hirarchique,gnralits
Vient de l ide que le monde rel apparat
souvent travers des hirarchies
Cas particulier du modle rseau
Les liens forment des grapheshirarchiques
Absence de donnes rptitives
56
7/25/2019 base de donnees avancee uy I
57/64
Modle hirarchique, concepts
Champ (Field) Plus petite unit de donnes possdant un
nom (quivalent un atome)
Segment (Segment) Collection de champs rangs
conscutivement dans la base, portant un
nom et dont une occurrence constitue l unitd change entre la base et les applications
(quivalent un article sans groupe rptitif)
57
7/25/2019 base de donnees avancee uy I
58/64
Modle hirarchique, concepts
Segment (suite) De taille fixe
Tous les champs sont au mme niveau
Peut possder une cl (champ discriminant)
Arbre de segments (Segment tree) Collection de segment relis par des
associations pre-fils, organise sous laforme d une hirarchie
58
7/25/2019 base de donnees avancee uy I
59/64
Modle hirarchique, concepts
Arbre de segments (suite) Liens de 1 vers N qui un
segment pre font
correspondre N segmentsfils
Tant au niveau des typesquau niveau des
occurrences
59
7/25/2019 base de donnees avancee uy I
60/64
Modle hirarchique, concepts
Base de donnes hirarchique(Hierarchical database) Base de donne constitue par une fort de
segments Un ensemble d arbres
Chaque arbre possde
un segment racine des segments internes
des segments feuilles
60
7/25/2019 base de donnees avancee uy I
61/64
Modle hirarchique, concepts
Les liens ne sont pas nomms Exemple
61
7/25/2019 base de donnees avancee uy I
62/64
Modle hirarchique, navigation
Langages de manipulation des BDhirarchiques
Exemple DL1 pour IMS (IBM)
Imbriqus dans langages de haut niveau(PL1, COBOL et FORTRAN)
Ordre de navigation en profondeur dabord
et de gauche droite
62
7/25/2019 base de donnees avancee uy I
63/64
Modle hirarchique, navigation
63 Curseurs (PCB) permettent de mmoriser un
position dans la base
7/25/2019 base de donnees avancee uy I
64/64
Rfrence
Georges Gardarin, Bases de donnesobjet & relationnel , eds Eyrolles,Chapitre 4, 1999
Top Related