Vous êtes sur la page 1sur 76

Les bases de donnes relationnelles

B.FRIKH

Gnralits

B.FRIKH

Historique
Comment les donnes peuvent tre stockes et extraites
des organes priphriques? bandes magntiques:
Donnes stockes sous forme denregistrements squentiels pour constituer des fichiers

Disque magntique:
accs plus rapide aux donnes

dveloppement des principes dorganisation et daccs

B.FRIKH

Historique
Or, les fichiers classiques posent un certain nombre de dfauts et de contraintes Les besoins de lentreprise et la multitude des donnes manipules, ncessitent une connaissance de plus en

plus fine de leurs activits


concept des Bases de donnes

B.FRIKH

Historique
Les annes 60:
premire gnration des SGBDs Sparation des donnes et des programmes dapplication

SGBDs hirarchiques et rseaux

Les annes 70:


Deuxime gnration: les SGBDs relationnels

Actuellement:
Les SGBD objet, les SGBD relationnel-objet

B.FRIKH

tude de cas
Considrons une compagnie dassurance vendant trois produits: Vie, Automobile, Local La compagnie est organise en 3 dpartements, chacun ayant ses propres fichiers Les fichiers et les programmes dapplication classiques sont utiliss pour effectuer les travaux de la compagnie

B.FRIKH

Gestion des contrats


Un fichier F1 des assurs contient les donnes suivantes:
N de lassur, Nom, Prnom, Age, Adresse, Profession,

Condition dassurance

Les programmes de gestion des assurs:


P1: Appel de prime
P2: Production des attestations P3: Mises jours

B.FRIKH

Gestion des sinistres


Un fichier F2 des sinistres contient les donnes suivantes:
N de lassur, date du sinistre, dtails du sinistres, dtails du

sinistre

Les programmes dapplication


P4: Saisie dun sinistre
P5: Mise jour dun sinistre P6: Rglement des sinistres (impliquant F1 et F2)

B.FRIKH

Le systme informatique de chaque dpartement


LES ASSURES P1 F1 P2 P3
Appel de prime attestations MAJ assur

P6

Rglement sinistre

P4
F2 P5

saisie sinistre MAJ sinistre

LES SINISTRES
B.FRIKH

Les dfauts des fichiers classiques


Monsieur X a souscrit une assurance vie et une assurance automobile Son identification (Nom, Prnom, profession, adresse,) figure dans deux fichiers

Pb 1:
Redondance dinformations

Espace perdu
B.FRIKH

Les dfauts des fichiers classiques


Monsieur X dmnage et envoi un avis de changement dadresse Lavis aboutit au dpartement Automobile Le dpartement met jour son fichier sans aviser les autres

Pb2:
Incohrence (inconsistance) dinformations
On ne sait plus quelle est linformation correcte
B.FRIKH

Les dfauts des fichiers classiques


Un changement de catgorie de prime exige une nouvelle donne dans le fichier F1: tat patrimonial Les programmes P2 et P3 sont modifier mme sils ne

sont pas concerns par cette donne


Le fichier F1 est reconstituer compltement

PB 3:
Les programmes dpendent des donnes

B.FRIKH

Les dfauts des fichiers classiques


Question: combien de femmes de 25 40 ans ont souscrit une assurance vie Il faut crire un programme pour le savoir

PB 4:
Les programmes sont accessibles seulement travers des programmes dapplication

B.FRIKH

Les dfauts des fichiers classiques


On veut savoir combien de personnes ont souscrit une assurance vie, une assurance local et pas dassurance automobile Il faut interroger les trois fichiers
Ce qui peut tre complexe en raison des codages diffrents

PB 5:
Les donnes disperses posent des difficults pour leur

traitement densemble

B.FRIKH

Objectifs des bases de donnes


Dfauts des fichiers classiques Redondance dinformation Dpendance des programmes lgard des donnes Les donnes sont accessibles uniquement par les programmes Objectifs viss avec les bases de donnes Unicit et cohrence de linformation Indpendance totale entre les programmes et les donnes Les langages de requte
manipulation des donnes par des non informaticiens efficacit des accs)

Donnes disperses

Intgration des donnes


administration centralise scurit des donnes

Chacun a ses propres fichiers

Partageabilit des donnes

+ confidentialit
B.FRIKH

Base de donnes..?
Une base de donnes est un ensemble de donnes
structures, interdpendantes,

stockes sans redondance inutile sur des supports


accessibles par lordinateur, organises de manire indpendante des programmes pour satisfaire simultanment plusieurs utilisateurs de faon slective et en un temps opportun,

sous le contrle dune autorit unique qui est


ladministrateur de base de donnes
B.FRIKH

SGBD..?
Un systme de gestion de bases de donnes est un logiciel qui permet un utilisateur dinteragir avec la BD pour
stocker, chercher,

mettre jour les donnes

en garantissant leur cohrence et leur scurit

B.FRIKH

Les fonctions dun SGBD


Fonction principale
organiser les donnes sur les supports, et fournir les procdures de recherche et de slection de ces mmes donnes

Description des donnes Utilisation des donnes Synchronisation daccs Confidentialit Intgrit scurit
B.FRIKH

Les fonctions dun SGBD


Description des donnes
Le SGBD doit offrir lutilisateur un outil pour dcrire lensemble des donnes qui seront mmorises dans la BD LDD: langage de description des donnes

Utilisation des donnes:


Interrogation de la BD pour rechercher, selectionner et modifier des donnes Deux types dutilisateurs: informaticiens ou non deux manires dinterroger la BD:
avec les programmes dapplication ou avec les langages de requte
B.FRIKH

Les fonctions dun SGBD


Synchronisation daccs
X et Y utilisent la mme partie de la BD X transfert la donne A dans sa zone de travail Y en fait de mme X modifie la donne A et la retourne. Y en fait de mme
A A A 10 6 = 4 Utilisateur X 3 4 10 10 7 = 3 Utilisateur Y

Le SGBD introduit une exclusion mutuelle entre les utilisateurs dans le cas de conflits B.FRIKH

Les fonctions dun SGBD


Confidentialit:
Une BD est partage Certains sous ensembles de donnes ne doivent tre accessibles que par des personnes rellement autorises Le SGBD offre des mcanismes de droit daccs des

utilisateurs (mot de passe, permission daccs)


Exemple:
Une personne du service de scolarit ne devra pas tre autorise accder aux informations du service du personnel

B.FRIKH

Les fonctions dun SGBD


Lintgrit:
BD = intgration de toutes les donnes de lentreprise en un rservoir commun de donnes

Grande quantit de donnes enregistres risque que les


donnes soient errones Le SGBD donne lutilisateur la possibilit de dfinir des rgles qui permettent de maintenir lintgrit de la BD contraintes dintgrit

Exemple:
Le n du mois doit tre compris entre 1 et 12
B.FRIKH

Les fonctions dun SGBD


La scurit:
En cas dincidents dorigine matriel ou logiciel, la BD nest plus oprationnelle

Le SGBD doit prvoir des procdures de reprise


pour remettre la BD dans ltat o elle tait avant lincident. De reconstituer la BD en cas de destruction totale

B.FRIKH

Modles de donnes
Modle de donnes:
Lensemble des concepts qui permettent la description des donnes dune BD et les rgles dutilisation de ces concepts

Le modle Entit/Association, le modle relationnel, le

modle hirarchique

B.FRIKH

Modles de SGBD
Modle hirarchique
Les donnes sont organises selon une arborescence Chaque nud correspond une classe du monde rel Les chemins reprsentent les liens entre les objets

Modle rseau:
Les donnes sont organises selon un graphe

Modle relationnel:
Fond sur la notion mathmatique de relation

Les donnes sont reprsentes sous forme de table


B.FRIKH

Modles de SGBD
Modle objet:
organisation des donnes sous forme dinstances de classes hirarchises qui possdent leur propres mthodes

dexploitation

Modle relationnel objet (modle NF2):


Combine les avantages du modle relationnel et objet
Les donnes sont reprsentes laide de types abstraits de donnes et de tables objet-relationnelles Modle bas sur les tables imbriques, les pointeurs et les collections
B.FRIKH

Cycle de vie dune base de donnes


Conception:
La phase danalyse qui aboutit dterminer le futur contenu de la base

Implantation:
La phase qui permet de transmettre le contenu de la base de donnes au logiciel du SGBD choisi
Description des donnes via le LDD
Constitution de la premire version de la BD

Utilisation:
Interrogation de la BD, ajout / suppression de nouvelles informations, modification au moyen du LMD
B.FRIKH

Schmas dune base de donnes


Monde rel

Schma externe1 Schma externe2 Schma externe3 Schma externe4 Schma externe Schma conceptuel Schma interne
Schma conceptuel

Schma physique

BD

La BD vue par les


utilisateurs

Description de La BD

La BD vue par
Linformaticien
B.FRIKH

Les niveaux de reprsentation dune base de donnes


Schma:
Lexpression de la description de la BD obtenue en employant un modle de donnes

Schma conceptuel:
description des objets du monde rel Schma indpendant des matriels et des logiciels utiliss

Schma externe:
Dcrit les visions des utilisateurs de la BD des parties du schma conceptuel

Schma physique:
Spcifie la manire de stocker les donnes sur les organes priphriques
B.FRIKH Fichiers physiques, enregistrements, index,

Architecture dun SGBD


Couche externe Couche logique
Schma logique

Couche interne
Schma interne

UTILISATEURS

Schmas externes

BD

dialogue

contrle

stockage
B.FRIKH

Architecture dun SGBD


Niveau externe: prend en charge le problme du dialogue avec les utilisateurs (analyse des demandes de lutilisateur, les droits daccs, prsentation des rsultats) Niveau logique:
Optimisation des requtes Gestion de la concurrence Contrle de la cohrence Coordination et suivi des processus en cours

Niveau interne: soccupe du stockage des donnes sur les supports physiques (gestion des fichiers, des indexes, des cls) B.FRIKH

Les fonctionnalits dun SGBD


Schmas source et liens Processeur de DDL Requtes planifies Requtes non planifies Processeur de langage de requtes

Processeurs de DML

Requtes compiles
Contraintes de scurit et dintgrit

Shmas source et objet, liens

optimiseur
Requtes optimises

Gestionnaire dexcution
Base de donnes

mta donnes

donnes Mta donnes (dictionnaire de donnes) B.FRIKH

Le modle entit / association

B.FRIKH

Les lments de base du modle entit/association


Entit type dentit (TE) Attribut

identifiant
Association

Type dassociation (TA)


Cardinalit Contraintes dintgrit

B.FRIKH

Les entits
Dfinition:
On dsigne par entit tout objet identifiable et pertinent pour lapplication

Deux types dentits:


Entit rgulire : son existence ne dpend pas de lexistence dune autre entit.
Entit faible : son existence dpend de lexistence dune autre entit (le contrat nexiste que si le client correspondant est prsent)

B.FRIKH

Les attributs
Dfinition:
Un attribut est une caractristique ou proprit dune entit

Un attribut a un domaine de valeurs et peut tre

obligatoire ou facultatif

B.FRIKH

Lidentifiant dune entit


Dfinition:
Soit E une entit et A lensemble des attributs de E Un identifiant de E est un sous ensemble minimal de A

permettant didentifier de manire unique une occurrence,de E

Plusieurs cls peuvent exister pour un mme ensemble dentits


On choisit une comme cl primaire, les autres comme cls secondaires

B.FRIKH

Les associations
Dfinition
Une association binaire entre les entits E1 et E2 est un ensemble de couples (e1,e2) avec e1 E1 et e2 E2

Reprsente un lien entre plusieurs entits, o chaque entit joue un rle dtermin

Si une association lie deux entits du mme type, elle est dite
rflexive
tudiants Ali * Fatima * Le lien inscrit dans * BD modules * Calcul numrique

Hanane *
Khalid *

* rseaux
* programmation
B.FRIKH

Cardinalits
Cardinalits: couple de valeurs (min,max) caractrisant la nature de lassociation en fonction des occurrences des entits concernes Cardinalit minimale:

nb minimum de fois o une entit est concerne par lassociation 0 les entits ne sont pas obligatoirement concernes par

lassociation
Cardinalit maximale:

Nb maximum de fois o une entit est concerne par lassociation N signifie plusieurs fois sans prciser de nombre
B.FRIKH

Reprsentation dune association


Nom_entit
identifiant proprits Poste de travail N_serie Adr_IP Type_poste tudiant Num_etud Nom 0.1 Connect 1.N
Card_min1,
Card_max1 Nom_association proprits Card_min2, Card_max2

Nom_entit
identifiant proprits segment Ind_IP Nom longueur stage

1.N

veut

Num_sta 0.N thme responsable B.FRIKH

Associations 1-1
Cest une association binaire avec la cardinalit maximale 1 sur chaque lien

Cardinalits possibles:
0.1 - 0.1 0.1 - 1.1

1.1 - 1.1 tudiant


Num_etud Nom 1.1 effectue 0.1

stage
Num_stag thme responsable
B.FRIKH

Association 1- N
Une association 1-N ou pre fils est une association binaire avec une cardinalit max=N et une cardinalit max=1 Cardinalits possibles:
0.1 - 0.N 0.1 - 1.N 1.1 - 0.N

1.1 - 1.N
professeur Num_prof Nom grade module

0.N

responsable

Num_mod 1.1
B.FRIKH

Titre

Association N-N
Cest une association binaire avec la cardinalit maximale N sur chaque lien Cardinalits possibles:
0.N - 0.N 0.N - 1.N 1.N - 0.N 1.N - 1.N

dpartement Code_dep Nomdep budget achat

logiciel Nom_log 1.N


B.FRIKH

1.N

Date_achat prix

diteur

Degr dune association

Degr ou arit dune association


nombre dentits connectes cette association Association unaire, binaire, ternaire, n-aire

B.FRIKH

Associations N-aires
Cest une association qui connecte n entits. Elle peut possder des proprits

logiciel
Num_log diteur 1.N installation
Date_install

serveur Nom_serveur 1.N Type_serveur

0.N dpartement Code_dep Nomdep budget


B.FRIKH

Association rflexive
Cest une association binaire ou N-aire qui fait intervenir au moins 2 fois la mme entit
Poste de travail N_serie Adr_IP Type_poste 0.N

Un client est reli 1 et 1 seul serveur


1.1

serveur

Un serveur relie plusieurs clients


B.FRIKH

Les identifiants
Dfinition
Un identifiant dun TE (ou TA) est un sous ensemble minimal dattributs permettant didentifier de manire unique une occurrence du TE (ou TA) Les attributs de lidentifiant sont tels quil nexiste pas deux occurrences du TE (ou TA) qui ont la mme valeur pour ces

attributs

Plusieurs identifiants peuvent exister pour un mme ensemble dentits


On choisit une comme cl primaire, les autres comme cls secondaires
B.FRIKH

Identifiant dune association


Dfinition
Lidentifiant dune association (binaire) entre deux entits E1 et E2 est le couple constitu de lidentifiant e1 de E1 et e2 de E2

Gnralisation pour les associations N-aires

B.FRIKH

Les entits faibles


Une entit faible est une entit qui ne peut exister quen troite association avec une autre Elle est donc identifie relativement cette entit Exemple: reprsentation des salles et des cinmas dun pays

salle numro capacit Date_constr 1.1 Appartient 1.N

cinma
nom Rue, ville

B.FRIKH

Les contraintes dintgrit


Si une personne participe lassociation mariage alors son tat civil doit tre mari Si mois {4,6,9,11} alors jour [1:30], Sinon, si mois = 2 alors jour [1:29], Sinon jour [1:31], Le nombre denfants dans une association est parent de doit tre gal au nombre doccurrences du TA est

parent de
B.FRIKH

Conception dun schma entit / association

B.FRIKH

Conception dune base de donnes relationnelle

B.FRIKH

Conception dun schma E/A


Dterminer la liste des entits

Pour chaque entit :


tablir la liste de ses attributs parmi ceux-ci, dterminer un identifiant

Dterminer les associations entre les entits Pour chaque association :


dresser la liste des attributs propres lassociation vrifier la dimension (binaire, ternaire, etc.) dfinir les cardinalits

Vrifier le schma obtenu, notamment :


supprimer les transitivits

sassurer que le schma est connexe


sassurer quil rpond aux demandes

Valider avec les utilisateurs


B.FRIKH

Rgles de conception dun modle E/A


Rgle n1:
Un attribut ne doit apparatre quune seule fois dans un

modle E/A

Rgle n2:
Chaque entit doit avoir un identifiant

Rgle n3:
Les proprits rsultant dun calcul ne doivent pas figurer dans un modle E/A
B.FRIKH

Vrification du diagramme E/A


Vrification syntaxique
Vrifier que les rgles du modle E/A sont respectes

Par jeu dessai


laide dune BD dessai, le concepteur vrifie que le diagramme permet de stocker les informations ncessaires lentreprise

Compltude par rapport aux traitements


Le concepteur vrifie que le diagramme contient toutes les informations ncessaires lexcution des traitements prvus

Vrification par les utilisateurs


Le concepteur prsente le diagramme accompagn des dfinitions aux futurs utilisateurs de la BD pour validation

Chaque problme dtect lors des vrifications


Mise jour du diagramme E/A
B.FRIKH Relancement des diffrentes phases de vrification

Le modle relationnel

B.FRIKH

B.FRIKH

Modle de donnes
Un modle de donnes dfinit un mode de reprsentation de linformation selon trois composantes:
Des structures de donnes
Des contraintes qui permettent de spcifier les rgles que doit respecter une base de donnes

Des oprations pour manipuler les donnes, en interrogation et en mise jour

Modle relationnel
Invent par CODD IBM en 1970, bas sur le principe de relation
Association du modle E/A = relation entre entits Relation du modle relationnel = relation entre attributs
B.FRIKH

Concepts de base
Domaine Produit cartsien Relation Attribut Schma de relation Degr et cardinalit dune relation

B.FRIKH

Concepts de base
Domaine = ensemble de valeurs Exemples:
Les entiers,

les chaines de caractres,


Couleur = {rouge, vert, bleu} Semaine = {lu,mar,mer,jeu,ven,sam,dim}

Produit cartsien dun ensemble de domaines D1,D2,,Dn not D1xD2xxDn :


lensemble des n-uples ou tuples <v1,v2,,vn> tels que viDi
B.FRIKH

Relation
Relation = sous ensemble du produit cartsien dune liste de domaines Une relation est caractrise par un nom Une relation peut tre vue comme un tableau deux dimensions
Les colonnes correspondent aux domaines
Les lignes correspondent aux tuples

voyage
Num_vol AT125 AF257 AF203 AT130 Ville_dep Casa Paris Casa Lyon Ville_arriv Paris Casa Lyon Casa
B.FRIKH

Attribut
attribut = colonne dune relation caractrise par un nom et prenant ses valeurs dans un domaine Plusieurs attributs dune relation peuvent tre dfinis sur

un seul domaine
Exemple: ville_dep et ville_arr sont dfinis sur le mme

domaine ville

B.FRIKH

Schma de relation
Schma de relation =
Le nom de la relation suivi de la liste des attributs avec leur domaine entre parenthses R (A1 : D1, A2 : D2,, An : Dn)

Exemple:
Voiture(num_veh:entier, marque:caractre(10), type:caractre(4), puissance:entier, couleur:couleur) Pour simplifier, on ne prcise pas les types

Base de donnes relationnelle


Base de donnes dont le schma conceptuel est un ensemble de schma de relation dont les occurrences sont des tuples de ces relations B.FRIKH

Concepts de base
Degr dune relation =
Le nombre dattributs qui participent la relation

Cardinalit dune relation =


Le nombre de ses tuples
voyage
Num_vol AT125 AF257 AF203 AT130 Ville_dep Casa Paris Casa Lyon Ville_arriv Paris Casa Lyon Casa

Cardinalit = 4, degr = 3 Deux domaines: num_voyage = (AT125, AF257, AF203, AT130) ville = (casa, paris, lyon)
B.FRIKH

Cl dune relation
La cl dune relation est un ensemble minimal dattributs de la relation, tel quil nexiste pas deux tuples ayant mme valeur pour cet identifiant Cest un ensemble minimum dattributs tel que tous les autres attributs en dpendent fonctionnellement Une cl peut tre compose dun ou plusieurs attributs Une relation peut avoir une ou plusieurs cls

Une relation a toujours un identifiant qui, dans le cas le plus dfavorable, est compos de tous les attributs de la relation
Par convention, lattribut (s) constituant la cl est soulign
Exemple: etudiant (netud, nom, prnom, ge) il ny a pas deux tudiants qui ont le mme netud
B.FRIKH

Les rgles de passage du modle E/A au modle relationnel

B.FRIKH

Transformation des entits


Pour chaque entit du modle E/A:
Crer une relation de mme nom que lentit Chaque attribut de lentit, y compris lidentifiant, devient un attribut de la relation Les attributs de lidentifiant constituent la cl de la relation

B.FRIKH

Transformation des associations 1/n


A Id_A association 0,1 Id_B 0,n B

RA (id-A, , id_B) RB (id-B, )

crer les relations RA et RB correspondant respectivement aux entits A et B


Lidentifiant de B devient un attribut de RA Une occurrence de A rfrence loccurrence de B qui B.FRIKH lui est associe laide dune cl trangre

Transformation des associations 1/n


pays Id_pays Nom langue Artiste id_artiste nom_artiste Anne_naiss ralise 0,n

Film Id_film 1,1 Titre Anne_sortie Genre rsum

1,n 1,1

origine

Film(id_film, titre, anne_sortie, genre, rsum, id_artiste, id_pays) Remarque:


Renommer lattribut en donnant un nom plus explicite Film(id_film, titre, anne_sortie, genre, rsum, id_MES, id_pays)
B.FRIKH

Transformation dassociation avec entit faible


salle Capacit climatise 1,1 Appartient numsal

cinma 1,n Nom_cinma adresse

cinma(id_cinma,numro, rue, ville) salle(id_cinma, numsal, capacit, climatise)

Mme rgle de passage quune association 1/n Cl trangre pour rfrencer lentit forte dans lentit faible La cl trangre fait partie de la cl de la relation correspondant lentit faible
B.FRIKH

Transformation dassociation binaire n/n


A Id_A association 0,n
Attributs_ass

B Id_B 0,n

RA (id-A, )

RB (id-B, )
RA-B (id-A, id-B, attributs-ass)

Crer les relations RA et RB correspondant aux entits A et B Crer une relation RA-B pour lassociation La cl de RA et la cl de RB deviennent des attributs de RA-B La cl de RA-B est la concatnation des cls des relations RA et RB Les attributs de lassociation deviennent des attributs de RA-B
B.FRIKH

Transformation dassociation binaire n/n


Artiste id_artiste nom_artiste Anne_naiss 0,n Joue rle Film Id_film 0,n Titre Anne_sortie Genre rsum

Film(id_film, titre, anne_sortie, genre, rsum, id_MES,


id_pays) Artiste(id_artiste, nom_art, prnom_art, anne_naiss) Rle(id_film, id_acteur, rle)
B.FRIKH

Transformation dassociations ternaires


1,n Film Id_film Titre Anne_sortie Genre rsum salle Capacit climatise 0,n 0,n sance tarif horaire Id_horaire 0,n Heure_dbut Heure_fin

cinma(id_cinma,numro, rue, ville)


salle(id_cinma, numsal, capacit, climatise) Horaire(id_horaire, heure_deb, heure_fin) Sance(id_film, id_cinma, numsal, id_horaire, tarif)
B.FRIKH

Normalisation dune relation


On mesure la qualit dune relation (sa capacit reprsenter le monde rel sans gnrer des problmes) par son degr de normalisation Une relation peut tre
en 1re forme normale,

2me forme normale,


3me forme normale,

en forme normale de Boyce Codd,


en 4me forme normale
B.FRIKH

1re forme normale


Une relation est en 1re forme normale si chaque valeur de chaque tuple est une valeur simple

Tous les attributs sont simples et monovalus

B.FRIKH

2me forme normale


Une relation est en 2me forme normale si
Si elle est en premire forme normale Et si chaque attribut qui ne fait partie daucun identifiant dpend de tout identifiant entier, et non pas dune partie de lidentifiant

Exemple
Fournisseur(numfour, nomprod, adr, tel, prix) Nomprod prix Numfour adr && numfour tel

Deux relations

Fournisseur(numfour, adr, tel)


Catalogue(numfour, nomprod, prix)
B.FRIKH

3me forme normale


Une relation est en 3me forme normale
Si elle est en 1re forme normale Et si chaque attribut qui ne fait partie daucun identifiant dpend uniquement et directement des identifiants entiers,
et non par lintermdiaire dun autre attribut

la dpendance transitive nest pas accepte dans un modle relationnel Exemple:


fournisseur(numfour, pays, ville)

Numfour ville et ville pays


Deux relations: fournisseur(numfour, ville) go(ville, pays)
B.FRIKH