You are on page 1of 44

Introduction BD et SGBD

Base de donnes Une base de donnes (B.D.) consiste en une collection de donnes persistantes utilises par des systmes dapplication de certaines entreprises [Dat95]. Persistantes Ephmres (E/S, transitoire). Entreprise :
individu (un mdecin) socit complte avec une base de donnes partage (banque, universit).

Avantages BD/fichiers lis l'application Compacit /fichiers manuels volumineux : fiches cartonnes par exemple, o le risque de perte d'information est important, Rapidit : recherche et mise jour rapide BD importante Intgres : regroupement de plusieurs fichiers de donnes o toute redondance a t totalement ou partiellement limine. Incohrence les fichiers sont conus pour satisfaire les besoins d1 appl. Il s'ensuit qu'une mme infos peut tre reprsente dans plusieurs fichiers. Si elle intervient dans 2 appl, elle peut mme se prsenter diffremment (format, codage,). Cela entrane un risque de conflit : lors d'une maj par ex, tous les duplicatas ne sont pas maj en mme temps par suite de leur non appartenance l'application qui ralise cette maj Partages les ut. peuvent faire usage de ces donnes pour des buts divers. Ils peuvent galement accder aux mmes donnes simultanment.

Niveaux de reprsentation des donnes

Trois niveaux sont proposs par le groupe ANSI/SPARC pour larchitecture dune base de donnes. Niveau externe (vue d'un utilisateur)

Niveau conceptuel

Niveau interne

Le niveau externe est le niveau relatif aux utilisateurs : il concerne la manire dont les utilisateurs voient la base de donnes, il correspond au schma externe. Le niveau conceptuel sintresse la vue commune tous les utilisateurs de la base de donnes, il correspond au schma conceptuel. Le niveau interne est le niveau relatif la mmoire physique, il concerne la manire selon laquelle les donnes sont rellement stockes, il correspond au schma interne. Il existera plusieurs vues externes distinctes, chacune delles correspond une reprsentation plus ou moins abstraite dune partie de la base de donnes et il nexistera quune seule vue conceptuelle qui donnera une reprsentation abstraite de la totalit de la base de donnes. De mme quil nexistera quune seule vue interne reprsentant la totalit de la base telle quelle est enregistre en mmoire.

Systme de gestion de base de donnes (SGBD)

Un SGBD est un logiciel qui prend en charge tous les accs la BD; gnralement il dispose des fonctionnalits suivantes Dfinition des donnes Cette fonction permet de dfinir les donnes (schmas externes, schma conceptuel, schma interne et tous les liens correspondants) sous une forme non compile et de les convertir dans la forme objet approprie. Le SGBD doit donc tre muni dun langage de dfinition de donnes (LDD). Manipulation de donnes Cette fonction permet de traiter les requtes de lutilisateur pour interroger, modifier, supprimer ou insrer de nouvelles donnes. Dans ce cas, le SGBD est muni dun langage de manipulation de donnes (LMD). Les requtes peuvent tre prvues ou non prvues

Les requtes prvues sont intgres dans un programme dapplication crit en langage hte. Dans ce cas, ladministrateur de la BD fait en sorte que la conception physique de la BD garantisse de bonnes performances pour de telles requtes. Les requtes non prvues sont mises en interactif, car le besoin ne sest pas fait sentir d'avance. Dans ce cas, la conception physique de la BD peut ne pas avoir t conue de manire rpondre efficacement de telles requtes. Ce problme reprsente un dfi pour les concepteurs actuels de SGBD.

Scurit et lintgrit des donnes Des rgles de scurit et dintgrit doivent tre dfinies par ladministration de la base de donnes. Le SGBD supervise les requtes des utilisateurs et rejette toute tentative de violation de ces rgles. Reprise et laccs simultan Le SGBD, par le biais dun gestionnaire de transactions assure certains contrles relatifs la reprise aprs pannes et l'accs concurrent.

Indpendance des donnes


Indpendance physique. Les applications implantes sur les anciens systmes ont tendance tre plutt donnes dpendantes : la manire de stocker les donnes en mmoire secondaire et les techniques daccs ces donnes sont compltement dictes par les besoins de lapplication considre. Par exemple, si un ensemble de donnes est organis sous une forme qui utilise une table dindex pour accder aux donnes, le programmeur qui souhaite traiter des donnes relatives cet ensemble construira son programme en fonction de la connaissance quil a de lorganisation physique. Dans ce cas, nous dirons que le SGBD na pas dindpendance physique parce quil nest pas possible de changer lorganisation sans entraner une modification des programmes dapplication. Lindpendance physique permet donc ladministrateur de la BD de modifier, pour des raisons defficacit, lorganisation physique des donnes sans modification des programmes. Par exemple, il doit pouvoir ajouter une table dindex, acclrant ainsi laccs aux donnes, sans toucher les programmes dapplication dj existants.

Indpendance logique. Elle permet de modifier le schma conceptuel, par exemple en ajoutant de nouvelles classes dobjets ou bien de nouvelles associations, sans modifier les programmes dapplications. Lindpendance des donnes est un des objectifs majeurs des SGBD. Elle peut tre dfinie comme limmunit des applications face tout changement survenant dans la structure de mmorisation ou dans la technique daccs.

Diffrents modles de donnes Il existe trois grandes catgories de modles de donnes : le modle hirarchique, le modle rseau et le modle relationnel. Les deux premires catgories de modle ont donn naissance la plupart des systmes commercialiss dans les annes 70. Le modle relationnel dont les premires ides sont apparues vers 1970 est le plus commercialis actuellement. Actuellement on parle aussi des modles orients objets : ils prennent en compte des donnes plus complexes (documents, images, etc).

Modle Hirarchique Ce modle est n aprs une tentative de gnralisation des notions dveloppes dans COBOL. Le systme le plus reprsentatif est le SGBD IMS dvelopp par IBM. Ce qui caractrise ce systme est la trs forte dpendance entre la description de la structure de donnes et la manire dont ces dernires sont enregistres sur le support accs direct. Ex : Une BD dcrivant l'association qui lie les fournisseurs aux pices qu'ils commercialisent et inversement. A chaque segment fournisseur est associ un ou plusieurs segments pice. L'unit d'accs est le segment, et l'on ne peut accder un segment sans accder son suprieur hirarchique : si l'on veut tablir la liste des pices, il faudra analyser pour chaque fournisseur la liste des pices fournies : on ne pourra donc pas faire abstraction de la prsence des fournisseurs. Cette contrainte impose par la hirarchie pour accder aux informations est trs forte et contraignante. Il s'ensuit qu'une mauvaise conception du schma de la BD peut tre l'origine de performances mdiocres.

Structure Hirarchique

F1

Haroun Vis Boulon

120

Alger Fer Acier 12 17 Alger Tunis 300 200

P1 P2 P3 P4 P5 P6

Ecrou

Zinc

17

Paris

400

Ecrou Came

Fer Zinc

14 12

Alger Tunis

200 100

Clou

Fer

19

Alger

100

F2

Bouzid
Vis Boulon

110

Tunis
Fer Acier 12 17 Alger Tunis 300 400

P1 P2 F3
Mamir

130 Vis 120 Vis Ecrou Came

Tunis Fer Alger Fer Fer Zinc 12 14 12 Alger Alger Tunis 200 300 400 12 Alger 200

P2

F4

Kaci

P2 P4 P5

En ce qui concerne les oprations classiques de mise jour (insertion, modification, suppression), la hirarchie impose souvent l'utilisation d'artifices : Insertion. Enregistrer les caractristiques d'une nouvelle pice alors que celle-ci n'est fournie par aucun fournisseur : introduire un fournisseur fictif. Suppression. Supprimer le seul fournisseur d'une pice particulire, l'information concernant cette pice disparat aussi. La notion de hirarchie implique que la suppression d'un segment entrane celle de tous les segments subordonns.

Modification. Pour modifier un champ dune pice, il est ncessaire d'examiner toutes les listes de pices fournies par les fournisseurs : un examen complet de la base.

DL/1 (nom du langage de manipulation de donnes IMS). Q1 Trouver les pices fournies par F2? Q2 Trouver les fournisseurs qui fournissent P2? GET UNIQUE fournisseur WITH NF = 'F2' NEXT: GET NEXT pice FOR THIS fournisseur pice FOUND ? IF NOT Exit. PRINT NP. GO TO NEXT. NEXT 1 : GET TO START OF DATA GET NEXT fournisseur Fournisseur FOUND? IF NOT, EXIT. GET UNIQUE pice FOR THIS fournisseur WITH NP = 'P2' Pice FOUND ? IF NOT GO TO NEXT1 PRINT NP. GET NEXT 2. Exit.

NEXT 2 :

Exit.

Modle rseau
Les caractristiques du modle rseau ont t dfinies par le DBTG (Data Base Task Group) de CODASYL (Conference On Data System Language). L'objectif du modle a t de dvelopper le modle hirarchique notamment pour dcrire les liaisons (m, n) et diminuer la contrainte de la hirarchie. De plus, le groupe a introduit le concept de sous-schma, fondamental pour traiter les problmes de scurit, d'intgrit, de confidentialit et de partage des donnes. Une structure rseau permet de mettre en uvre des liaisons (m, n). Les lments du modle sont appels ''records''.

Exemple : Pice fournisseur

Description des associations Fournisseur M-N Pice Nous distinguons trois types de liens dans le modle rseau : 1.: un objet de A correspond un et un seul objet de B et vice versa 1-N : un objet de A peut correspondre un plusieurs objets de B mais inversement, un objet de B ne peut correspondre quun seul objet de A (lien hirarchique). M-N : un objet de A peut correspondre un plusieurs objets de B et inversement. QTE

Le modle rseau CODASYL En 1969 a eu lieu la confrence appele CODASYL (Conference On Data System Language) dont un groupe, le DBTG (Data Base Task Group) a normalis et prsent des concepts communs pour la dfinition de schmas rseaux. Tous les types dobjets reprsents par des nuds sont identifis par des cls. Une cl est un atome ou un agrgat qui permet didentifier de manire unique chaque record. De plus, le groupe a introduit le concept de sous-schma, fondamental pour traiter les problmes de scurit, d'intgrit, de confidentialit et de partage des donnes. Les types de liens supports par la norme CODASYL sont les liens 1-1 et 1-N. Le lien CODASYL est appel SET. Un SET est un lien entre un enregistrement propritaire appel OWNER et un ou plusieurs enregistrements membres appel MEMBER. Un enregistrement ne peut tre la fois propritaire et membre dun mme SET (pas de boucle). Cependant un enregistrement peut tre propritaire de plusieurs SET diffrents et ou membre de plusieurs SET diffrents.

Transformation du lien M-N Le lien M-N ne peut tre reprsent directement dans la norme CODASYL, tant donn que celle-ci ne prend en charge que les liens de type hirarchique (owner-member). Un artifice est utilis qui consiste crer un enregistrement intermdiaire, avec deux liens 1-N Exemple : Transformation du rseau fournisseur-piece FOURNISSEUR

OWNER

OWNER

PIECE SET2

SET 1
FOURNISSEURFOURNITURE Record intermdiaire FOURNITURE PIECEFOURNITURE MEMBER

Pour prsenter d'une manire claire cette implmentation, nous allons restreindre la liaison fourniture qui nous sert d'exemple comme suit :

NF F1 F1 F1 F2 F2

NP P1 P2 P3 P1 P3

QTE 300 200 400 300 400

Schma des occurrences

F1

Haroun

120

ALGER

F2

Bouzid

110

Tunis

P1

Vis

Fer

12

Alger

P2 Boulon Acier

17

Tunis

P3 Ecrou

Zinc

17

Paris

Q1 Trouver les pices fournies Par F2

Q2 Trouver les fournisseurs qui fournissent P2

FIND Fournisseur WITH FIND pice WITH NP = 'P2' NF = 'F2 NEXT : FIND NEXT LINK FOR NEXT : FIND NEXT LINK FOR THIS Fournisseur. THIS pice. LINK FOUND?IF NOT, EXIT LINK FOUND? IF NOT, EXIT FIND Pice FOR THIS LINK FIND Fournisseur FOR THIS LINK GET pice. GET fournisseur. PRINT NP. PRINT NF. GO TO NEXT. GO TO NEXT. EXIT. EXIT.

Problmes de stratgie d'accs : si l'on veut trouver la quantit des pices P2 fournie par F2. Faut-il dans ce cas rechercher le fournisseur F2 et retrouver P2 ou inversement. On constatera gnralement que selon le cas, les temps de rponse seront diffrents. Insertion : Il est trivial d'ajouter une nouvelle pice. Initialement il n'y aura pas de liens. Suppression : Il est possible de supprimer F1 sans P6 et inversement. Modification : ne pose pas de problme particulier.

Le majeur inconvnient de la structure rseau rside dans la ncessit de parcourir des chanages et de grer des points courants. La gestion des points courants est trs dlicate cause des interactions des instructions du LMD sur ces points courants.

LE MODLE ENTIT/ASSOCIATION DE CHEN 1976


Il est communment admis que la description de laspect statique de la ralit organisationnelle passe par la description de ses entits, de leurs proprits, des liens entre les entits et des contraintes auxquelles elles sont soumises. Chen est parti de cet aspect descriptif pour proposer un modle proche de la ralit. Bas sur les concepts ENTITE TYPE/ ASSOCIATION TYPE et sur deux formes dabstraction : la classification et linstanciation. Une association est une combinaison dentits dans laquelle chacune delle joue un rle spcifique. La relation pre-fils est une association entre deux personnes qui sont des entits. Les entits et les associations sont caractrises par des proprits : le nom de la personne, le total de la facture, la raison sociale de la compagnie ou la dure de la relation pre-fils entre MOHAMED et ALI.

Les entits, associations et proprits sont classes et dfinies par des types : lentit type Employ , lassociation type prefils ou la proprit type Nom . Un type dfinit en intension ou extension une population dobjets de la mme nature. On parle aussi de classe dentit ou classe dassociation. Une entit ou une association sont caractrises par le doublet attribut valeur Exemples Employ :{e1} : (Nom, Ali), (Date naissance, 251268), (Salaire, 400000) e1 est une instance ou occurrence du type ou de la classe Employ O Nom appartient au domaine Char (30) Date naissance appartient au domaine Int(6)

Affectation(Employ, Projet) : (Datedeb, 010196), (Datefin, 010199)

Le schma de lentit type dfinit lentit type en intention

Exemple: Employ(Nom, Datenaissance, Salaire).

Un exemple dextension de la classe (instances de la classe) est :


{Attaf, 251268, 40000} {Benmohamed, 121065, 200000} {Benmiloud, 050763, 100000}

Le schma dassociation type dfinit lassociation type en intention.

Exemple
Affectation (Employ, Projet : Datedeb, Datefin)

Un exemple dextension de la classe association est :


E1 010297, 050199 P1

E2

P2

Ek

Pi

EMPLOYE
affectation

PROJET

Nom

Datenaiss

Dure Datefin
Datedeb Numro

Association binaire

MEDECIN PRESCRIT ANALYSE

PATIENT association N-aires

1 entit type peut jouer plusieurs rles dans une association type
Rle 1 : est supervis

EMPLOYE

SUPERVISION

Rle 2 : Superviseur Association rcursives

Une entit peut jouer plusieurs rles dans ses relations avec une autre entit type

CHEF

EMPLOYE

PARTICIPANT

PROJET

Une cl est un attribut ou groupe dattribut dont les valeurs permettent didentifier de manire unique les entits dun mme type.
La spcification de la cl dune entit type implique une contrainte dunicit sur lextension de lentit type. Exemple : FOURNISSEUR : NF PIECE : NP La cl dune association type est la combinaison des cls des entits types participantes

La cardinalit est le nombre dassociations auxquelles une entit peut participer. Il existe trois cardinalit prdfinies 1-1 : une instance de lobjet A est associe une et une seule instance de lobjet B. 1-n : une instance de lobjet A est associe une ou plusieurs instances de lobjet B. n-m : une instance de lobjet A est associe une ou plusieurs instances de lobjet B et inversement.

Modles relationnels
La plupart des recherches de ces 40 dernires annes se sont bases sur lapproche relationnelle. Elle reprsente aujourdhui la tendance principale du march. La raison est que le modle relationnel est fond sur des bases mathmatiques qui facilitent son enseignement. Un systme relationnel est un systme dans lequel : lutilisateur peroit les donnes comme des tables, les oprateurs gnrent de nouvelles tables rsultats partir des tables existantes. Par exemples, des oprateurs extraire certaines lignes ou certaines colonnes, qui sont elles mmes des tables. De tels systmes sont appels ''relationnels'' en raison du fait que le terme relation est le terme mathmatique le plus appropri pour une table.

Cl primaire

NF

NOM

CODE

VILLE

DOMAIN

NF

NOM

CODE

VILLE

F3 F4 F5

Mamir Kaci Kaddour

130 120 130 Attributs

Tunis Alger Oran

Degr

t-uples

F1 F2

Haroun Bouzid

120 110

Alger Tunis

Cardinalit

Relation

Fournisseur
NF NOM CODE VILLE

Fourniture 120 110 Alger Tunis Tunis Alger Oran NF F1 F1 F1 F1 F1 F1 F2 F2 F3 F4 F4 F4 NP P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QTE 300 200 400 200 100 100 300 400 200 200 300 400

F1 F2 F3 F4 F5

Haroun Bouzid

Pice NP NOM MATERIAU POIDS VILL E P 1 Vis Fer 12 Alger P 2 Boulon Acier 17 Tunis P 3 Ecrou Zinc 17 Paris P 4 Ecrou Fer 14 Alger P 5 Came Zinc 12 Tunis P 6 Vis Acier 13 Alger

Mamir 130 Kaci 120 Kaddour 130

Une relation R, sur un ens de dom D1, D2,, Dn qui ne sont pas ncessairement tous distincts - est constitue de deux parties, un en-tte (schma de la relation) et un corps (ensemble de lignes). Len-tte est un ensemble fix dattributs, des couples Nom Attribut; Nom Domaine A1 : D1, A2 : D2,, An : Dn , tel que chaque attribut Aj correspond exactement un des dom sous-jacents Dj (j=1,2,,n) Les noms des attributs A1, A2 , , An sont tous distincts. Le corps consiste en un sous-ensemble de n-uplets. Le nombre de n-uplets correspond la cardinalit de la relation, alors que le nombre dattributs correspond au degr de la relation. Chaque relation possde une interprtation ou une signification voulue. La relation fournisseur signifie : le fournisseur ayant un numro de fournisseur f possde un nom n, un code c, et se trouve dans une ville v. De plus, deux fournisseurs nont jamais le mme numro.

Formellement, la dclaration prcdente, est un exemple de ce quon appelle Prdicat, ou fct ayant une valeur de vrit. Ce prdicat (cette fct) comprend 4 arguments. Substituer les arguments par des valeurs quivaut invoquer la fct ou instancier le prdicat et de ce fait, produire une expression, appele proposition qui peut tre vraie ou fausse. Par exemple, la substitution :NF=f 1, NOM=Haroun, CODE=120, VILLE= Alger produit une proposition vraie. Par contre, la substitution NF=f1,NOM=Bouzid,CODE=120,VILLE=Alger, produit une proposition fausse. A tout instant, la relation contient exactement les n-uplets qui font que le prdicat va tre valu Vrai cet instant l. Une relation correspond ce que nous avons appel jusquici une table. Un n-uplet correspond une ligne dune table, un attribut une colonne.

Passage dun schma E/A vers un schma relationnel Le modle E/A possde deux structures (lentit et lassociation) alors que le modle relationnel une seule (la relation). Ainsi toutes les rgles de passage devront toutes aboutir des relations. Les liens existants entres les entits seront prservs en utilisant un mcanisme de rfrence bas sur les cls des relations. Deux grandes catgories de rgles vont permettre ce passage. Rgles de passage pour les classes dentits : Pour chaque entit du schma E/A : 1.On cre une relation de mme nom que lentit. 2.Chaque proprit de lentit, y compris lidentifiant, devient un attribut de la relation. 3.Les attributs de lidentifiant constituent la cl de la relation.

Exemple :

Client

Commande

ncli nomcladresse

Relation : Client ( ncli, nomcli, adresse)

Rgles de passage pour les associations : bases sur les cardinalits maximales Association de un plusieurs (1-N) : soit une association de un plusieurs entre deux entits A et B : 1. On cre les relations RA et RB correspondant respectivement aux entits A et B 2. Lidentifiant de A devient un attribut de RB (cl trangre)

Client ncli nomcli

0,n

0,1

Commande

adresse

Ncom

Date-com

Relation A: Client ( ncli, nomcli, adresse) Relation B : Commande (Ncom, date-com, ncli) Cl trangre

Association avec type entit faible : Une entit faible est une entit dont lexistence dpend toujours dune autre entit dite entit forte ou rgulire. Par exemple lentit ligne-commande ne peut exister que si lentit commande existe au pralable, ou encore une salle de cinma ne peut exister si le cinma a t identifi. Dans ce cas, le passage est identique celui dune association 1-N classique, auquel on rajoute la contrainte suivante : La cl trangre est une partie de lidentifiant de la relation reprsentant lentit faible. Exemple1 : Relation B : Commande (Ncom, date-com, ncli) Relation C : Ligne-commande (Ncom, Nligne, nproduit, qte) Exemple 2 : Relation Cinma (nomcinma, rue, ville) Relation Salle ( nomcinma, numro, capacit)

Associations binaires de plusieurs plusieurs (M-N) Soit une association binaire n-m entre deux entits A et B. 1.On cre une relation pour chaque entit soit RA et RB. 2.On cre une relation RAB pour lassociation m-n 3.La cl de cette relation est la concatnation des cls des relations RA et RB 4.Les proprits de lassociation si elles existent deviennent des attributs de RAB.

Fournisseur

1,n

Fourni tprix

1,m

Produit

Relation Fournisseur (Nfour, Nomfour, Adresse) Relation Produit (Nprod, Dsignation) Relation Fourni(Nprod, Nfour, prix)