Vous êtes sur la page 1sur 73

Introduction aux Systmes de

Gestion de Bases de donnes


U NIVERSITE

DE GENEV

TECFA
Dess STAF
Miriano Romualdi

Programme:
09:00 10:00 Introduction sur systme de gestion de BD
10:00 10: 15 Organisation Ex: 1 et explications
10:1510:40Pause
10:40 11:15 Ex:1
11:15 12:00 Discussion
12: 00 12:15 Introduction aprs-midi
12: 15 12:30 Feed-back cours Dorel/Stephane
Midi
14:00 14:50 Les classes SQL/Mysql
14:50 15: 30 Ex:2
15:30 16:00 Discussion
16: 00 16:15 Ex:home

PLAN
Basededonnes(BD)
introduction
dfinition
les donnes et leur structuration

Systmes de gestion de base de donnes (SGBD)


Modles de donnes

Introduction
Exemple : gestion dune entreprise de transport
public
Lentreprise GPT qui s occupe des transports publics de
la ville dEvneg, dsire se doter dun systme informatique
pour la gestion de son rseau. Celui-ci comprend des lignes,
des vhicules ainsi que des chauffeurs.
Le chauffeur Boubou est en cong le lundi 30 octobre.
Le 31 octobre, il assure la ligne 2 avec le vhicule 56.

Introduction
Questions :
Un vhicule doit-il toujours assurer la mme ligne?
Qui a assur la ligne C le 3 octobre entre 16h et
18h?

Comment enregistrer et utiliser les


informations concernant lentreprise?

Pourquoi des Bases de


donnes (BD)?
Besoins :
stockerde grosvolumes dinformations
partager des informations par une
communaut de personnes
grerlaccs ces informations
grer des informationscohrenteset
non-redondantes

Notion de Base de Donnes


Une BD doit traduire la connaissance :
de faits lmentaires :
Le chauffeur Boubou est affect la ligne 2
le 24 juin 1991.
de proprits :
un chauffeur a un seul permis de conduire, mais
est comptent pour plusieurs types de vhicule.
dvnements :
le vhicule 124 est supprim de la circulation.

Dfinition
Dfinition (Adiba, Delobel 1982):
ensemble structurdedonnes
enregistres sur des supports
informatiques pour satisfaire
simultanment plusieursutilisateurs de
faonslectiveetentempsopportun.

Les donnes
Exemple :
le chauffeur Boubou assure la ligne 2 avec le vhicule
56.
le chauffeur Boubou assure la ligne A avec le vhicule 4.
le chauffeur Lulu assure la ligne 2 avec le vhicule 86.

Les donnes :
Chauffeur = {Boubou, Lulu}
Vhicule = {25,4,56,86}
Ligne = {A,2}

Structuration des donnes


Les donnes structures :
Chauffeur Ligne Vhicule
Boubou
2
56
Boubou
Lulu

A
2

4
86

Description ou schma de la BD
Chauffeur Mot
Ligne Mot
Vhicule Mot

Les donnes
Une donne prend
un lieu et y reste.
Une donne ne peut
tre atteinte quau
travers de son nom,
autant par les
dveloppeurs que
par les utilisateurs.

NOM

LIEU

VALEUR

PLAN
Base de donnes (BD)
Systmesdegestiondebasededonnes
(SGBD)
principe
fonctionnalits

Modles de donnes

Systmes de Gestion de
Bases de Donnes
Programme

Terminal

SGBD

BD

PC

Fonctionnalits dun SGBD


description et utilisation des informations
(dfinition, interrogation, mise--jour)
gestion et contrle dintgrit
mise en uvre de la confidentialit
gestion des accs concurrents
assurance dune certaine scurit de
fonctionnement

Interrogation dune BD
Interroger les donnes de la BD
programmer la recherche
langage plus ou moins complexe
interrogation visuelle, tactile, vocale ..

Exploiter les liens entre donnes


Driver de nouvelles informations

Gestion de lintgrit
Les modifications de la base (insertion,
suppression, modification) doivent respecter
les coutumes du monde rel.
structuration de la BD
dfinition de rgles dintgrit
RI = proprit devant toujours tre vrifie par les
donnes
exemple : un chauffeur ne doit pas conduire plus de
40h par semaine.

Gestion de la confidentialit
BD partage par plusieurs utilisateurs
ne rendre accessibles certaines donnes
quaux personnes autorises
Dfinition de droits daccs =
dfinir quelles informations doivent tre
protges de quelles personnes
exemple : les usagers nont pas connatre
les horaires des chauffeurs.

Concurrence daccs
Accs simultan aux donnes par
plusieurs utilisateurs
dtecter les ventuels conflits
les traiter
exemple : vouloir affecter des chauffeurs
plusieurs lignes simultanment
traiter les demandes squentiellement

Scurit de fonctionnement
Assurer le redmarrage du systme en
cas dincident logiciel ou matriel
remettre la BD dans un tat satisfaisant

PLAN
Base de donnes (BD)
Systmes de gestion de bases de donnes
(SGBD)
Modlesdedonnes
dfinitions
historique

Description dune BD

Schma externe

Schma externe

Domaine
dapplication
Modlisation
Schma conceptuel

Schma interne

Schma externe
BD

Niveau externe
ANSI-SPARC

Niveau conceptuel

Niveau interne

Modle de donnes
Dfinition : ensemble de concepts et des
notations pour dcrire une vision dun
domaine dapplication
Trs nombreux modles :
modles conceptuels :
Entit-Association, relationnel, Merise, objet, UML, Z ...

modles systmes (offerts par les SGBD) :


hirarchique, relationnel, objet ...

Historique

1960 : les modles hirarchiques


1970 : les modles rseaux
1980 : les modles relationnelles
1990 : les modles objets

Modles hirarchique et
rseau
Exemple :
Chauffeur (C), Vhicule (V), Permis (P)

Modle hirarchique

C
V

P
C

Modle Rseau

Modle relationnel
Relation = reprsentation dune association
particulire entre certains constituants
exemple :
Chauffeur(NoCh//Nom,Prnom,Adresse,)
{le chauffeur ayant pour numro NoCh, pour
nom Nom, pour prnom Prnom et pour
adresse Adresse }

Modle objet

CHAUFFEUR
NoChauffeur
Nom
Prnom
Adresse
ChangerAdresse
AjouterHeures

Modle objet
De nombreux concepts : classe,
opration, association, hritage, agrgation

concepts principaux :
classe = ensemble dobjets ayant la mme
structure de donnes et le mme comportement
association = liens entre les objets des classes
Opration/mthode = sapplique aux objets dune
classe.

Modle de donnes
Concepts gnraux :
des entits/classes appeles aussi
relations :
des chauffeurs, des vhicules, des lignes

des relations/associations entre des


entits/classes
un chauffeur assure une ligne, conduit un
vhicule ...

Introduction et Dfinitions
INFORMATION
Ecrituredesrsultatsdanalyse,
Architectureinformationnelle

DOMAINE

INFORMATIQUE
ArchitectureinformatiqueduSI
Savoircequilfautraliser

Introduction et Dfinitions
Ensemble

lment

E
{e1,e2,e3en}

Lignes
{1,2,3,4,5,6,7,8,
A,B,C,D,E,F}

Introduction et Dfinitions
Modles
Conceptuelou
Information

Entitassociation
Relationnel
Objet
Informatique
Relationnel
Objet

Proprits dune classe


Les objets dune classe partagent en commun
un schma informationnel comprenant:
des attributs associs des domaines de valeurs
pour lesquels les objets vont prendre une ou plusieurs
valeurs de leur domaine.

des mthodes
qui, appliques aux objets de la classe, transforment les
valeurs quils prennent pour les attributs.

des tats
que des mthodes ou des traitements font prendre aux
objets.

Conceptuel

Domaine : type
Texte
Mot
Ordonn(Unit)
Numrique(Unit)
BoolenMot
BoolensMots
Date
Dure
Dureseconde
Duremn(/s)
Dureh(/mn/s)
Durem(/h/mn/s)

Informatique
Boolens
Entiers
Flottants
Chainedecaractres
Date

Domaine(s) : oprations
Domaine

Texte : aucune
Mot : =
Ordonn : = > <
Numrique : = > < + Boolen : et ou non
Boolens : et ou non
Date : = pr post
Dure : = > < + -

Domaines

<date>-<date> => <dure>


<date>+<date> =>
<date><dure> => <date>
<poids> est-un <numrique>
<monnaie> est-un <numrique>
<poids>*<monnaie> =>
<monnaie>
...

Classe - Attribut - Domaine


CL (A1,A2,A3)
Un objet o de CL prend une ou plusieurs valeurs du domaine
de lattribut A1 : o[A1] dom(A1).
VEHICULE (NoVhicule, Catgorie, Marque,
NoMoteur, DateCirculation)
Dom(Catgorie) = {tramway, bus, trolleybus}

NoChssis,

veh Vhicule veh[Catgorie] = tramway bus trolleybus


Attribut monovalu : un objet prend auplus une valeur pour lui.
Attribut multivalu : un objet peut prendre plusieurs valeurs pour
lui.

Attribut multivalu, groupe dattributs


Attribut multivalu (modle objet)
VEHICULE (NoVhicule, Catgorie, Marque, NoChssis,
NoMoteur, DateCirculation*)
Un objet de Vhicule peut alors prendre plusieurs valeurs pour
DateCirculation

Groupe dattributs (modle objet)


VEHICULE (NoVhicule, Catgorie, Marque, NoChssis,
(NoMoteur, DateCirculation)*)

Attribut : valeurs obscures


Pour chaque attribut A de CL, il faut indiquer si un objet de CL
peut prendre une valeur obscurepour A.
Valeur obscure : valeur inconnue, valeur impossible
Une valeur qui nest pas obcure est claire.
VEHICULE (NoVhicule-, Catgorie, Marque, NoChssis,
NoMoteur, DateCirculation-)
Les attributs NoVhicule et DateCirculation admettent des
valeurs obscures.

Attribut permanent
Un attribut A dune classe est permanent, si la valeur claire prise
pour A par tout objet de la classe ne peut tre modifie.
VEHICULE (NoVhicule-=, Catgorie=, Marque=, NoChssis=,
NoMoteur, DateCirculation-)
Un objet de Vhicule conserve les valeurs prises pour NoVhicule,
Catgorie, Marque et NoChassis, alors que son NoMoteur, sa
DateCirculation peuvent tre modifis

Mthode
Mthode dune classe CL : une action
qui concerne un objet de cette classe.
VEHICULE (NoVhicule-=, Catgorie=, Marque=, NoChssis=,
NoMoteur, DateCirculation-)
mthode crer (vhicule : Vhicule)
mthode activer (vhicule : Vhicule)
mthode supprimer (vhicule : Vhicule)
mthode dsactiver (vhicule : Vhicule)
mthode contrler (vhicule : Vhicule)
mthode rparer (vhicule : Vhicule)

Etat
Etat : attribut mis--jour seulement par des transactions (ou
traitements)
Un tat donne une trace du travail dune mthode sur un objet
VEHICULE (NoVhicule-=, Catgorie=, Marque=, NoChssis=,
NoMoteur, DateCirculation-)
Si DateCirculation est un tat contrl par activer et dsactiver :
- activer (vhicule) fait passer sa datecirculation dune valeur
obscure une valeur claire, la date du jour.
- dsactiver (vhicule) la fait passer de claire obscure.
Alors DateCirculation est un attribut-tat de la classe VEHICULE.

Identifiant / Cl
Comment retrouver un objet parmi tous les
objets de sa classe?
Rp. technologique: en lui donnant un identificateur dobjet
(oid)
Rp. conceptuelle : un ensemble dattributs K de CL forme
un identifiant(cl)obligatoirede CL si
Tous les attributs de K sont monovalus, sans valeur
obscure, permanents;
Deux objets o et o de CL ne peuvent prendre les mmes
valeurs pour K : o[K] o[K]
K est minimal : il nexiste aucun sous-ensemble de K
vrifiant la proprit prcdente.

Identifiants primaires
Au niveau conceptuel, il peut exister plusieurs identifiants
primaires.
Au niveau technologique, il y en a un qui est privilgi.
VEHICULE (NoChssis / NoVhicule // Catgorie, Marque,
NoMoteur, DateCirculation)

Identifiant/Cl
K est un identifiantdune classe CL si
Tous les attributs de K sont monovalus;
Deux objets o et o de CL ne peuvent prendre les mmes
valeurs pour K : o[K] o[K]
K est minimal : il nexiste aucun sous-ensemble de K
vrifiant la proprit prcdente.
Remarque : un simple identifiant ne permet pas didentifier tous
les objets de la classe, cause des valeurs obcures.
Il nest oblig dtre permanent.
VEHICULE (NoChssis / NoVhicule / NoMoteur // Catgorie,
Marque, DateCirculation)

Reprsentation

Reprsentation
Entit-Relation
ENTITE
Identifiant
Attribut1
Attribut2
...

VEHICULE
NoVhicule
Catgorie
Marque
NoChassis
NoMoteur
DateCirculation

Reprsentation
Objet
CLASSE
Attribut1[valuation]
Attribut2

Methode1(signature)
Methode2()
...

VEHICULE
NoVhicule
Catgorie
Marque
NoChassis
NoMoteur
DateCirculation[1..n]
Crer()
Activer()
Supprimer()
Desactiver()
Controler()
Rparer()

Reprsentation
VEHICULE (NoChssis / NoVhicule / NoMoteur //
Catgorie, Marque, DateCirculation)

Vhicule
Vhicule

NoChssis / NoVhicule / NoMoteur //

NoChssis / NoVhicule / NoMoteur //


Catgorie, Marque, DateCirculation

Vhicule

Forme normale

Forme normale de classe


Une classe est en formenormale si tous
ses attributs sont monovalus. Ses objets
prennent une seule valeur par attribut
(modle relationnel).
Objectif
viter les tableaux
permettre laccs aux donnes par leur nom.

Forme non normale de classe


Une classe nest pas en forme normale si elle admet un (ou
plusieurs) attribut (ou groupe dattributs) multivalu (modle
objet).
ClPers(OidPerson, Adresse*, Salaire*))
attributs multivalus avec deux situations :
- aucune diffrence entre les adresses dune mme personne:
ok.
- comment trouver le salaire du mois de fvrier dune
personne?
Il faut toujours pouvoir atteindre une information par son nom, sans
avoir besoin de connatre son mode dimplmentation
(indpendance donne-stockage).

Prise en compte informatique

Prise en compte informatique


Stockage des objets
Patitionnement
Mcanisme de cls (identifiant) et
dindex
Choix dune cl primaire

Stockage des objets


Stockage vertical
colonnes : attributs
lignes : objets
AFF-CHAUFFEUR (NoAVS, Date,
StatutChauffeur, NoSrie)
Trouver tous les objets qui sont
de
rserve
pour
StatutChauffeur
avec
leur
NoAVS?
1 objet = 4 mots; 1 page= 1000
mots;
10000 objets; 1 page = 250 objets
En squentiel : 40pagesdE/S

Stockage horizontal
lignes : attributs
colonnes : objets
correspondanceentreoidetno
decolonne
Trouver tous les objets qui sont
de rserve pour
StatutChauffeur avec NoAVS?
NoAVS et StatutChauffeur : 1mot
1 page = 1000 valeurs
10pagespour Statut-Chauffeur
10pagespour NoAVS
20pagesdE/S

Dcomposition
CHAUFFEUR
(NoAVS//Nom,
Prnom,
Adresse,
DateNaissance,
Sexe, TotalH)
Un objet de Chauffeur : 100
mots
Une page = 1000 mots
=> 1 E/S : 10 objets

CHAUFFEUR-ADM
(NoAVS//Nom, Prnom, Adresse,
DateNaissance, Sexe)
CHAUFFEUR-TRV
(NoAVS // TotalH)
E/S plus efficaces pour les
traitements ne concernant que
les heures de travail dun
chauffeur
Un objet de Chauffeur-Trv: 2 mots
Une page = 1000 mots
=> 1 E/S : 500 objets

Mcanisme de cls et dindex


Cl primaire :
recherche avec oid : correspondance entre une cl primaire
et un oid, puis entre un oid et un lieu physique
recherche sans oid : correspondance entre une cl primaire
et un lieu physique par le mcanisme de hash code ou des
arbres balancs
rajout dun objet : sassurer quil nexiste aucun autre objet
de mme cl.

Cl ou index :
Tables spciales contenant pour chaque valeur dindex la
possibilit de retrouver tous les objets concerns (1 seul
objet si lindex est cl).

Oprations et langage

Oprations et langage

Langage de spcification
Langage dinterrogation
Langage de manipulation
Confidentialit
Evolution

Langage de spcification
Classe
CHAUFFEUR (Nom, Prnom, NoAVS, Adresse,
DateNaissance, Sexe, TotalHeures)
Prdicat
Pour chaque chauffeur, identifi soit par son numro
AVS soit par son nom et prnom, on conserve son
adresse, sa date de naissance ainsi que son sexe.
L'entreprise GPT dsire galement conserver le
nombre total d'heures de conduite de chaque
chauffeur.

Rgle dintgrit
statique mono-classe

Rgle dintgrit statique monoclasse


Une rgle dintgrit se dfinit laide dun prdicat.
Si la ri est monoclasse, elle ne concerne quune
classe et son prdicat a comme variables les attributs
de la classe.
Une ri est statique si elle ne concerne pas la
transformation dobjets, mais seulement les objets
eux-mmes.

Rgle dintgrit statique monoclasse


LIGNE (CodeLigne, Catgorie, TypeLigne, ArrtDpart,
ArrtArrive)
Pour toute lgn de LIGNE
si lgn[TypeLigne] = circulaire alors
lgn[ArrtDpart] = lgn[ArrtArrive]

sinon
lgn[ArrtDpart] lgn[ArrtArrive]

finsi

DECALAGES ENTRE LE MONDE


VIVANT ET LE MONDE ARTIFICIEL

Dcalages
Pour prendre en
compte
les objets des classes

Proprits
Contrle

En prise directe - en
drivation
En temps rel - en
diffr
Dfinitif - Modifiable
Prsent - Historique

Atteignabilit, accs
Compositiondcomposition

Intgrit
Confidentialit

Dcalages entre le monde vivant


et le monde artificiel
Nature du lien entre mondes vivant et artificiel
concrtiser : rendre concret ce qui tait abstrait.
concret : qui exprime quelque chose de rel sans que l'on en isole une notion de
qualit, de relation; qui dsigne ou qualifie un tre rel (sujet); qui peut tre
peru par les sens ou imagin.(Petit Robert).
modlisation : reprsentation non ambige et fidle des composants d'un
phnomne naturel, ncessaires la comprhension de la partie tudie du
phnomne.
modle : ensemble de concepts mathmatiques qui permet de recueillir une
modlisation de n'importe quel phnomne d'une mme classe.

En fait cration dun systme, support des activits


Non seulement analyser,observer, mais crer,concevoir, puis
contrler

Dcalages entre le monde vivant


et le monde artificiel
Questionou
Action

Rponse
Mondevivant

QuestionouAction
informatique

Rponse
informatique

Mondeartificiel

Dcalages entre le monde vivant


et le monde artificiel
Effortdetraduction
Question
ouAction

QuestionouAction
informatique

Effortdinterprtation
Rponse
Mondevivant

Rponse
informatique

Mondeartificiel

Dcalages entre le monde vivant


et le monde artificiel
Question
ouAction

QuestionouAction
informatique

ISOMORPHISME?

Rponse
Mondevivant

Rponse
informatique

Mondeartificiel

Modlisation-SpcificationImplmentation-ExploitationEvolution

Modlisation-SpcificationImplmentation-ExploitationEvolution
modlisation

DOMAINE

INFORMATION
Ecrituredesrsultats
danalyse,
Architectureinformationnelle

spcification

INFORMATIQUE
ArchitectureinformatiqueduSI
Savoircequilfautraliser

Modlisation-Spcification-ConceptualisationImplmentation-Exploitation-Evolution
conceptualisation
modlisation
analyse
DOMAINE

INFORMATION
Ecrituredesrsultats
danalyse,
Architectureinformationnelle

volution
dploiement
exploitation

spcification
implmentation
INFORMATIQUE
ArchitectureinformatiqueduSI
Savoircequilfautraliser

Modlisation-Spcification-ConceptualisationImplmentation-Exploitation-Evolution

Aveclepointdevuelinaire...
volution
conceptualisation
analyse

modlisation

implmentation exploitation

spcification

dploiement

volution

De la relativit des tapes :


ex la redondance
Dans le cadre de lanalyse et de la modlisation :
utile pour recouper les rsultats, faciliter la prise dinformations
danalyse
ou impossible viter car seule la consolidation de rsultats va
permettre de la dgager : ex de classes avec plusieurs
identifiants.

Dans le cadre du niveau conceptuel


lliminer et ne la rintroduire qu cause de valeurs obscures

Dans le cadre de la spcification :


Ne lintroduire que pour faciliter des accs

Dans le cadre de limplmentation :


Ne pas en introduire de supplmentaire

Ex de la redondance

Analyse, modlisation
AFF-CHAUFFEUR(NoAVS,
TotalHeures, Catgorie*, Date,
StatutChauffeur,
NoSrie,
(CodeLigne//Catgorie)*)
La personne responsable de laffectation
dun chauffeur une srie veut
sassurer que le chauffeur a bien le bon
permis pour conduire les vhicules de la
ligne.

Modle conceptuel

AFF-CHAUFFEUR (NoAVS, Date //


StatutChauffeur, NoSrie)
PERMIS (NOAVS, Catgorie//DatePermis)
CHAUFFEUR (NoAVS // TotalHeures...)
TRANCHE-SERIE
(NoSrie, CodeLigne // )
LIGNE (CodeLigne // Catgorie)

Modle de spcification avec


redondance

TRANCHE-SERIE (NoSrie, CodeLigne //


Catgorie...)