42
Institut National de formation en Informatique Cours de bases de données Réalisé par: Groupe n° 1 Année Universitaire: 2007/2008

Base de données

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Base de données

Institut National de formation en Informatique

Cours de bases de données

Réalisé par: Groupe n° 1

Année Universitaire: 2007/2008

Page 2: Base de données

Introduction Les Bases de Données occupent aujourd'hui une place de plus en plus

importante dans les systèmes informatiques,et sont structurées d’après des modèles

Un modèle (informatique) est une abstraction dont les priorités assurent:

- l’intégrité : toute action sur le modèle se répercute sur les données.- La progammabilité de la structure proposée.- la cohérence : les données ne sont pas

contradictoires,manquantes,floues,incertaines…

Il existe plusieurs types de bases : hiérarchiques, réseaux, relationnelles, objet, semi structurées...

L’objet de notre exposé d’aujourd’hui est le 1er modèle créé « Le modèle hiérarchique » .

Page 3: Base de données

Définition

Le premier système de base de données a été conçu pour la gestion des données du programme Apollo (de IBM).

Une base de données hiérarchique est une base de données dont le système de gestion lie les enregistrements dans une structure arborescente où chaque enregistrement n'a qu'un seul possesseur.

Page 4: Base de données

Exemples IMS:c’est un SGBD très répandu dans les applications de

production, créé par IBM en 1966 pour le programme APOLLO.

(sert toujours à près de 200 millions d’utilisateurs par jour).

System 2000(1967) sur divers materiels:IBM,UNIVAC,CDC.

ADABAS,(AG software,fin des années 70),fonctionne toujours aujourd’hui et réalise des recherches à grande vitesse.

Page 5: Base de données

Concepts Les concepts de base du modèle

hiérarchique sont :

1/ le champ: Plus petite unité de données

possédant un nom.

Page 6: Base de données

2/ le segment (article) :

"C’est une collection de champs, portant un nom et constituant l'unité d'échange entre la base de données et les applications".

Les champs d'un segment sont tous au même niveau, si bien qu'une occurrence de segment est parfois qualifiée d'article plat.

un segment a un champ discriminant appelé CLE.

la valeur de la clé permet alors de déterminer une occurrence unique dans le segment.

Page 7: Base de données

les segments sont reliés par des liens de 1 vers N qui à un segment père font correspondre N segments fils.

ainsi, un segment possède en général plusieurs segments descendants mais un seul et unique segment père.

Page 8: Base de données

3/Les liens:

Ce sont des liens de 1 vers N,orientés du père vers les fils(de haut en bas),ces liens ne sont pas nommés.

Page 9: Base de données

4/La racine:

C’est le segment qui se trouve au sommet de la hiérarchie,

elle ne possède pas de père.

produit

fournisseur dépôt

Page 10: Base de données

5/La feuille:

Segment ne possédant pas de fils.

produit

fournisseur dépôt

Page 11: Base de données

6/L’arbre de segments(occurrence hiérarchique):

"Collection de segments reliés par des associations père-fils organisée sous forme d'une hiérarchie".

chaque arbre possède un segment racine unique, des segments internes et des segments feuille, le niveau d'un segment caractérise sa distance de la racine.

Page 12: Base de données

7/la base de donnees hiérarchique:

Une base de données hiérarchiques peut étre considérée comme un ensemble d’arbres,encore appelé foret,dont les nœuds sont des segments,les arbres sont en principe indépendants.

Page 13: Base de données

Règles

R1: Entre toute paire de type

enregistrement (Ri,Rj) il y a au plus un lien Li,j.

Page 14: Base de données

UNIVERSITE

FACPHARMACIE

FAC MEDECINE

Ex:

Page 15: Base de données

UNIVERSITE

FAC MEDECINE

UNIVERSITE

FACPHARMACIE

FAC MEDECINE

Page 16: Base de données

R2:

Aucun lien n’est possible entre deux enregistrements(Ri,Ri:de meme niveau).

Page 17: Base de données

FAC MEDECINE

FACPHARMACIE

Ex:

UNIVERSITE

Page 18: Base de données

FAC MEDECINE

FACPHARMACIE

UNIVERSITE

FACPHARMACIE

FAC MEDECINE

Page 19: Base de données

R3: Chaque lien Lij correspond à une

associaton 1-N (parent-enfant).

Page 20: Base de données

Ex:

Université

Chef.depart

Département

Etudiant Professeur

Cours Projet

Page 21: Base de données

R4: Une entité n’a au plus qu’un parent.

Page 22: Base de données

Ex:

departement

Chef.depart chercheur

projet local

laboratoire

Page 23: Base de données

departement

Chef.depart chercheur

projet local

laboratoire laboratoire

laboratoire

Page 24: Base de données

Modèle conceptuel associé

Racine

A B

C D

Pour un nœud donné ,un seul nœud père. Chaque nœud est une famille d’objets.

Page 25: Base de données

Les données sont représentées sous forme d’une structure arborescente d’enregistrements. Ceci entraîne le fait que leur manipulation se fait exactement de la même façon avec laquelle on manipule les fichiers structurés en arbres.

Le principe de la manipulation d'une base hiérarchique (nous prenons ici l'exemple de DL1 de IBM) consiste à parcourir en profondeur la structure arborescente : on part de la racine et on visite successivement tous les fils depuis le fils gauche jusqu'au droit.

Manipulation

Page 26: Base de données

Considérons la base hiérarchique suivante :

Page 27: Base de données

1. Accès direct :Principe : Trouver toutes les caractéristiques d’un segment donné par son

chemin d’accès complet.

Exemple :Caractéristiques d’une pièce dont on donne l’identifiant :GET UNIQUE SERVICE PIECE (NUMPIE= identifiant)

Résultat : On indique le chemin hiérarchique complet. S'il existe plusieurs

pièces portant le même numéro, c'est la première rencontrée qui est sélectionnée.

Page 28: Base de données

2. Accès séquentiel :

Principe : Parcourir tous les descendants d’un père donné par son identifiant et

son chemin d’accès.

Exemple:GET UNIQUE SERVICE PIECE (NUMPIE=identifiant) FOURNISSEUR while DB-STATUS=0 do begin GET NEXT FOURNISSEUR EndRésultat : Caractéristiques de tous les fournisseurs à partir de la pièce dont on

précise l’identifiant.

Page 29: Base de données

3. Accès séquentiel sous un même parent :Principe : parcourir les descendants d’un père donné par son identifiant et son chemin

d’accès, et donner toutes leurs propriétés.

Exemple : GET UNIQUE SERVICE (NOMSER=SECURITE)PIECE(NUMPIE=identifiant) while DB-STATUS=0 do begin GET NEXT WITHIN PARENT FOURNISSEUR End

Résultat : Noms et adresses des fournisseurs de la pièce dont on donne l’identifiant pour

le service SECURITE.

Page 30: Base de données

3. Insertion :

Objectif : insérer un nouvel élément c'est-à-dire un

nouveau fils pour un pére donné par sa clé.Exemple :INSERT SERVICE PIECE (NUMPIE=identifiant)

FOURNISSEUR

Résultat : Insérer un nouveau fournisseur pour la pièce

dont on donne l’identifiant

Page 31: Base de données

4. Suppression :

Objectif : Suppression d’un segment dont on spécifie le

chemin, par conséquent la suppression de tous ses descendants.

Exemple : GET HOLD UNIQUE SERVICE

PIECE(NUMPIE=identifiant)DELETERésultat : Supprimer la pièce dont on spécifie la clé ainsi

que ses descendants.

Page 32: Base de données

5. Remplacement :

Objectif : effectuer des modifications sur un segment

donné par son chemin complet.Exemple : GET HOLD UNIQUE SERVICE PIECE (NUMPIE=clé) Effectuer la modification dans la zone E/SREPLACERésultat : Modifier la désignation de la pièce donnée par

clé.

Page 33: Base de données

Forme linéaire d’un schéma hiérarchique :• Certains langages de manipulation

reposent sur une exploration linéaire.• Cette exploration est donnée par le

parcours préordre de l’arbre de segments.

Page 34: Base de données

Ex:

Le parcours correspondant est:

A,B,F,G,H,C,I,D,E.

A

B C D E

F G H I

Page 35: Base de données

Exemple de description avec IMS/DL1 :1 DBD NAME=SERVICEDB, ACCESS=HDAM 2 SEGM NAME=SERVICE, BYTES=30 3 FIELD NAME=(NOMSER, SEQ), BYTES=15,

START=1 4 FIELD NAME=RESPONSABLE, BYTES=15,

START=16 5 SEGM NAME=PIECE, BYTES=40,

PARENT=SERVICE 6 FIELD NAME=(NUMPIE, SEQ), BYTES=10,

START=1 7 FIELD NAME=DESIGNATION, BYTES=30,

START=11 8 SEGM NAME=FOURNISSEUR, BYTES=40,

PARENT=PIECE 9 FIELD NAME=(NOMFOUR, SEQ, M),

BYTES=15, START=1 10 FIELD NAME=ADRESSE, BYTES=25,

START=16 11 SEGM NAME=EMPLOYE, BYTES=45,

PARENT=SERVICE 12 FIELD NAME=(NUEMP, SEQ), BYTES=10,

START=1 13 FIELD NAME=NOM, BYTES=25, START=11 14 FIELD NAME=SALAIRE, BYTES=10,

START=36 15 DBDGEN 16 FINISH 17 END

Interprétation:

Lignes 1 à 7 : Déclaration des différents segments.

Lignes 8 à 10 :description du segment FOURNISSEUR.

Lignes 11 à 14 : description du segment EMPLOYE.

Lignes 15 à 17 : indication de fin de description et fin de programme.

Page 36: Base de données

Avantages1/Simple.2/Implémentation facile(juste des relations 1-N).3/Rapidité d’accès et de lecture.4/L’accès aux données se fait de manière

prédictible dans le modèle hiérarchique

optimisation par le SGBD.

5/Efficace pour des données très structurées.

Page 37: Base de données

Inconvénients

1/Redondance: Le modèle est incapable de

représenter les liens N:M(possible de les représenter par

la duplication de données).

Page 38: Base de données

2/Anomalie de destruction : la destruction d’un nœud cause

l’élimination de ses successeurs:

tree traversal : efface les données ainsi que la structure:si on ne permet pas la valeur « NULL »(IMS).

general selection : efface les données mais garde la structure(SYSTEM 2000).

Page 39: Base de données

3/Anomalie d’insertion:

impossible d’insérer des données sans successeur . Il faut trouver un nœud parent pour

ajouter ou insérer des enregistrements (sauf si c’est à la racine).

Page 40: Base de données

4/Les requêtes sont limitées aux relations explicitement définies dans la hiérarchie:

Les critères de recherche sont très restreints.

Page 41: Base de données

5/S’applique mal aux questions géographique:

où les relations sont multiple sens et où les requêtes ne sont pas connues à l’avance .

Page 42: Base de données

Conclusion Le modèle hiérarchique a été longtemps considéré comme

le seul modèle permettant aux SGBD d’atteindre des performances exigées en production, et possédant la performance de traiter rapidement des informations organisées sous formes d’une hiérarchie stricte.

Certains d’entre eux autorisaient les liens entre arbres pour permettre de modéliser des associations de 1 vers N sans avoir a dupliquer des segments. tout segment d’un arbre peut alors pointer vers un segment d’un autre arbre. cela peut être limité à un seul pointeur par segment:on parle ici de lien frère, pour distinguer ce lien du lien vers le fils. on aboutit alors à des modèles hiérarchiques étendus dont les possibilités se rapprochent de celles du modèle réseau, dont la nécessité fut ressentie après constatation des restrictions et des inconvénients du modèle hiérarchique.