base de donnees avancee uy I

Embed Size (px)

Citation preview

  • 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

    [email protected]

    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