Vous êtes sur la page 1sur 143

Bases de donnees avancees

Remi Gilleron
Inria Lille - Nord Europe & LIFL & Univ Lille 3

septembre 2013

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

1 / 143

Objectifs et organisation

Objectifs du cours
comprendre lenvironnement informatique des entreprises ;
connatre les concepts avances sur les bases de donnees relationnelles :
optimisation, contraintes dintegrite et acc`es concurrents ;
connatre les autres mod`eles de donnees associes au decisionnel, au
Web et auBig Data : mod`ele en etoile, mod`ele cle-valeur, mod`ele
colonne, mod`ele document, mod`ele graphe

Organisation du cours
12 seances de 2 heures

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

2 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

3 / 143

Schema general

Le Syst`eme dinformation (SI)


est la memoire de lactivite de lentreprise,
est linterface entre le syst`eme de pilotage et le syst`eme operant.

Le Syst`eme dinformation (SI)


est constitue dun syst`eme operationnel
et dun syst`eme decisionnel,
il est desormais integre dans un syst`eme dinformation et de
communication (SIC).

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

4 / 143

Informatique operationnelle 70

est axee sur la production, la memorisation et le traitement des donnees de


lactivite de lentreprise. On peut distinguer :
laspect statique : enregistrement des donnees, faits, r`egles et
contraintes ;
laspect dynamique : mise `a jour (ajout, modification et suppression)
des donnees, faits, r`egles et contraintes.
Elle est centrale pour lactivite de lentreprise et est organisee autour de
bases de donnees relationnelles avec les suites logicielles associees (SGBDR
tels que Oracle) et le langage SQL.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

5 / 143

Informatique decisionnelle 90

est axee sur laide `a la decision.


Les donnees sur lactivite issues du syst`eme operationnel et de sources
externes sont extraites, filtrees, historisees et traitees `a laide doutils
dETL (Extraction Treatment Loading) pour etre deposees dans des
infocentres et/ou des entrep
ots de donnees (datawarehouse).
Ces donnees sont alors utilisees pour la production de synth`eses et de
rapports afin de faciliter la prise de decision. Ceci `a laide de suites
logicielles telles que Business Object.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

6 / 143

Syst`eme dinformation et de communication 00

ne se contente plus de stocker, traiter et synthetiser les donnees pour


lactivite de lentreprise mais prend en compte les aspects de
communication : communication interne et externe de lentreprise,
echange de donnees informatisees (EDI) avec tous les partenaires, ...
On parle dIntranet, dExtranet, de portail dentreprise. Il concerne toutes
les bases et entrepots de donnees lentreprise mais aussi les bases de
documents (gerees par des CMS Content Management Systems). Ils
utilisent les technologies Web.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

7 / 143

Exemple dune banque


le syst`eme operationnel va memoriser toutes les informations sur les
clients, leurs differents comptes et les operations sur ces comptes :
debit, credit, virement, change, ... ; declencher des actions (envoi de
releves, ...) ; ...
le syst`eme decisionnel conserve sur une periode, par exemple
mensuelle, le nombre doperations, leur montant moyen, la moyenne
des soldes sur les differents comptes, ... sur une duree historique de
une ou plusieurs annees. Il dispose egalement dinformations (tr`es,
trop) personnelles sur le client.
le syst`eme de communication met `a disposition des clients un portail
dentreprise pour leurs activites : solde, virement, prets, ... ; il permet
egalement des echanges avec les partenaires (mouvements financiers,
virements internationaux, ...) ; ...

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

8 / 143

Conclusion
Existant
des syst`emes dinformation et de communication contenant des bases de
donnees, des bases de documents et des entrep
ots de donnees. Les
technologies sont eprouvees : technologies Internet, bases de donnees
relationnelles, syst`emes de gestion de contenus, entrepots de donnees et
outils de production de rapports.

Evolutions
en cours
developpement des petits objets portables communicants et leur
integration dans le SIC avec images et videos,
developpement des capteurs et generation de flux de donnees
(positionnement GPS, consommation electrique, ...)
des masses de donnees et le phenom`ene Big Data : cloud, gestion
et traitement de donnees reparties, analyse de masses de donnees, ...
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

9 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

10 / 143

Bases de Donnees
Un syst`eme dinformation est construit autour de volumes de donnees de
plus en plus important. Ces donnees doivent etre stockees sur des supports
physiques. Les donnees sont stockees et organisees dans des bases de
donnees BD (databases DB).
Un utilisateur doit pouvoir les retrouver. Il faut pouvoir les interroger par
des requetes.
Les donnees evoluent, il faut donc pouvoir les manipuler : ajouter,
modifier, supprimer des donnees.
Le logiciel de base qui permet de manipuler ces donnees est appele un
syst`eme de gestion de bases de donnees SGBD (database management
system DBMS).
Tout syst`eme dinformation est construit autour de bases de
donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

11 / 143

Exemple - BD gestion de commandes

Contenu : les clients, les produits, les prix, les fournisseurs, la


facturation, la livraison, ...
Applications : toutes les applications de gestion de lentreprise,
Manipulation : par les services de lentreprise mais aussi de lexterieur
(commandes par le site web, ...)
Variabilite : forte, des ajouts et modifications frequentes ;
Consultation : par les services de lentreprise mais aussi de lexterieur
(suivi de commande, ...)

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

12 / 143

Exemple - BD et Web
Un site dynamique est construit sur une base de donnees.
lutilisateur sollicite une page, la demande est envoyee au site, le
serveur execute un programme,
les informations utiles sont extraites de la base de donnees et
rapatriees au serveur,
une feuille de style est appliquee, un document html est construit et
envoye sur le reseau,
le document est affiche dans le navigateur de lutilisateur.
linteret est de distinguer les donnees des traitements et de laffichage :
pour modifier le contenu du site, il suffit de mettre `a jour les informations
dans la base de donnees ; pour modifier la presentation, il suffit de modifier
le style du document Web.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

13 / 143

Fonctionnalites principales
BD
memoriser de grandes quantites de donnees essentielles `a la vie de
lentreprise,
les organiser, faciliter les requetes et permettre levolution,
donner lacc`es `a des applications diverses, `a des utilisateurs differents
avec des modes dacc`es varies.

SGBD
gerer le stockage sur des supports physiques eventuellement repartis
et distants,
assurer la rapidite des acc`es, lindependance des donnees et des
applications,
assurer le controle de la concurrence car les donnees sont partagees et
reparties,
assurer la protection des donnees : reprise sur panne, verifier les droits
dusage et dacc`es,
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

14 / 143

Le mod`ele relationnel

Dans un contexte operationnel o`


u les donnees sont en volume important,
o`
u les donnees evoluent, o`
u les utilisateurs sont nombreux avec des acc`es
concurrents, le mod`ele de reference est
le mod`ele relationnel base sur des tables verifiant des proprietes de
forme normales implante dans
des syst`emes de gestion de bases de donnees relationnelles (SGBR tels
que Oracle, PosGres, SQLite, ...) et utilisant
un langage dinterrogation standardise SQL et
des transactions verifiant les proprietes ACID : Atomicite, Coherence,
Isolation et Durabilite.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

15 / 143

Les relations
Un domaine est lensemble des valeurs que peut prendre une donnee.
Une relation (ou table) est un sous ensemble du produit des domaines
qui porte un nom.
Un attribut est une colonne de relation caracterisee par un nom.
Une relation peut etre definie en extension par lensemble des
enregistrements (lignes, tuples) constituant la relation `a un instant
donne ou en intention par le schema de la relation qui contient le
nom de la relation, la liste des attributs, le domaine de chaque
attribut et des contraintes dintegrite associees `a la relation.
Toute relation poss`ede une cle primaire qui est un attribut dont la
valeur est toujours definie et dont la valeur determine un et un seul
enregistrement.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

16 / 143

Les formes normales


Dependance fonctionnelle
Un mod`ele relationnel est donc constitue de relations. Pour sassurer que
le mod`ele est bien construit pour preserver la coherence des donnees, on a
defini des formes normales.

Dependance fonctionnelle
Soit X et Y deux ensembles dattributs, on dit que Y est en dependance
fonctionnelle de X , note X Y , si `a toute valeur de X correspond au
plus une valeur de Y
Exemple : soit la relation PERSONNEL(Nom, Sexe, Age, Ville), on a :
Nom Sexe ; Nom Age ; Nom Ville ; Nom, Sexe Ville ; Sexe
6 Age ; Sexe, Age 6 Ville

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

17 / 143

Premi`ere et deuxi`eme formes normale


Definitions
Une relation est en premi`ere forme normale (1FN) si tous les attributs
sont en dependance fonctionnelle de la cle. Soit encore : tout attribut
a au plus une valeur et la valeur de la cle determine la valeur des
autres attributs.
Une relation est en deuxi`eme forme normale (2FN) si elle est en 1FN
et les dependances fonctionnelles liant la cle aux attributs sont
elementaires : un attribut ne depend pas fonctionnellement dune
partie de la cle.

Exemple
LIGNEARTICLE(numcommande, numproduit, quantit
e,
prixproduit) dont la cle est numcommande + numproduit nest pas en
2FN car prixproduit depend fonctionnellement de numproduit
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

18 / 143

Troisi`eme forme normale


Definition
Une relation est en troisi`eme forme normale (3FN) si elle est en 2FN et les
dependances fonctionnelles liant la cle aux attributs sont directes,
cest-`a-dire ne peuvent etre obtenues par transitivite.

Exemples
PRODUIT(numproduit, ..., numfournisseur, nomfournisseur,
adressefournisseur, ...) de cle numproduit nest pas en 3FN car
nomfournisseur et adressefournisseur dependent fonctionnellement
de numfournisseur.
Une solution est declater la relation en deux relations :
la relation PRODUIT(numproduit, ..., numfournisseur) et la relation
FOURNISSEUR(numfournisseur, nomfournisseur, adresse
fournisseur).
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

19 / 143

Conception de bases de donnees


Formes normales
un mod`ele relationnel en forme normale 3FN assure la non-redondance des
informations pour conserver lintegrite de la BD au cours de son cycle de
vie. Il existe des formes normales plus strictes : Boyce-Codd, quatri`eme
forme normale, ...

Analyse
designe tout le travail de conception dune base de donnees.
les methodes de conception (UML, Merise) ont pour objectif de
modeliser des probl`emes reels pour construire des applications.
elles traitent de la modelisation des donnees et des traitements
le mod`ele entite association (EA) permet de concevoir des bases
relationnelles en forme normale
elles sont decoupees en differentes phases : etude prealable dont
analyse de lexistant, etude detaillee, realisation et tests, implantation
et formation.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

20 / 143

BD relationnelle

Une base de donnees relationnelle est une base de donnees qui a ete
definie relativement au mod`ele relationnel en satisfaisant les
proprietes de forme normale. La phase de conception est une tache
complexe et de haut niveau.
une BD relationnelle est definie par un schema relationnel :
I

I
I

les relations (ou tables). Une relation est definie par la liste des
attributs, le domaine de chaque attribut, la precision de la cle primaire ;
les associations (ou jointures) naturelles entre les tables ;
les contraintes dintegrite : de domaine qui expriment des conditions
remplies par les valeurs dun attribut, de structure sur les cles et de
reference qui expriment des proprietes pour les associations et des
contraintes liees `a la denormalisation.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

21 / 143

une BD simplifiee
CLIENTS(numclient, nom, pr
enom, ...)
COMMANDES(numcommande, datecommande, refclient, refvendeur)
LIGNECOMMANDES(refcommande, refproduit, quantit
e)
PRODUITS(numproduit, nom, couleur, ...)
VENDEURS(numvendeur, nom, pr
enom, ...)
contrainte de domaine : LIGNECOMMANDES.quantit
e est un entier >0
et <=100.
contrainte de structure : LIGNECOMMANDES.refcommande +
LIGNECOMMANDES.refproduit est la cle primaire de LIGNECOMMANDES
contrainte de reference : COMMANDES.refclient toujours defini et ref`ere `a
un client existant. COMMANDES.refvendeur peut etre non defini et sil est
defini il ref`ere `a un vendeur existant.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

22 / 143

BD en contexte reel
Considerations de volume
peut contenir plusieurs dizaines de tables, voire plusieurs centaines.
Les noms des tables et des champs peuvent etre cryptiques ;
une table a en general plusieurs dizaines dattributs, une table peut
avoir de plusieurs milliers `a plusieurs millions de lignes.

La vision utilisateur
un utilisateur ne voit, en general, quune partie de la base grace `a des
vues que lon peut voir comme une requete qui vous montre une
partie comprehensible de la base de donnees
un utilisateur dispose alors de droits pour les actions de lecture
(interrogation), decriture (ajout, modification, suppression) sur les
elements de la vue.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

23 / 143

SGBDR
Le logiciel de base pour les BD relationnelles sont les syst`emes de
gestion de bases de donnees relationnelles SGBDR .
Une BD relationnelle est geree par un administrateur (DBA database
administrator).
Les principaux SGBDR sont : Access sur micro-ordinateurs ; Oracle,
Informix, SQLserver en informatique de gestion dentreprise ;
SQLite, Posgres dans le monde du Web.
Le SGBDR gere le stockage physique, assure la rapidite des acc`es,
lindependance des donnees et des applications, le controle de la
concurrence avec la gestion des transactions, assure la reprise sur
panne et la verification des droits dusage et dacc`es.
Le SGBDR contient un moteur SQL

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

24 / 143

SQL : LE langage des bases de donnees relationnelles


Le besoin
de separer les donnees et les traitements pour manipuler
des bases de donnees complexes (un grand nombre de tables) et
volumineuses ;
dans des environnements heterog`enes : materiels et logiciels.

SQL
il est normalise (normes SQL 2 et SQL 3) mais ... ;
cest un langage algebrique base sur le calcul relationnel ;
cest un langage declaratif : on decrit le resultat (pas lalgorithme) ;
il est compose de trois parties : le LDD : langage de definition des
donnees ; le LMD : langage de manipulation des donnees ; le LCD :
langage de controle des donnees.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

25 / 143

SQL - le langage de manipulation des donnees


Interroger une base de donnees relationnelle
avec SQL et linstruction SELECT . Cest une instruction tr`es riche
permettant la realisation de requetes complexes.
avec une interface graphique de conception des requetes. Mais, une
interface repose sur un moteur SQL donc une requete SELECT SQL est
generee.

Linstruction SELECT
SELECT
attributs
expressions extraites
FROM expressions de tables
WHERE conditions de filtrage
GROUP BY conditions de groupe
HAVING conditions de filtrage sur les groupes
ORDER BY crit`eres de tri
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

26 / 143

ecrire une requete SQL avec un SELECT


Pre-requis
bien connatre le mod`ele relationnel : tables, attributs, domaines des
attributs, cles primaires et cles etrang`eres ;
bien connatre sa semantique : dictionnaire des donnees, mod`eles
entite-association et/ou UML.

Strategie decriture
determiner les relations et les jointures `a realiser dans la clause FROM
determiner les champs `a afficher avec repetition ou pas ;
determiner les conditions limitant la recherche dans la clause WHERE ;
determiner les groupes et les conditions sur les resultats ;
pensez `a comprendre les operations qui vont etre faites, pensez `a
valider la requete avec un expert du domaine en lappliquant sur des
exemples, sur une base simplifiee.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

27 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

28 / 143

Comment un moteur SQL calcule une requete SQL ?


Moteur SQL
designe les processus qui transforment une requete SQL ecrite dans un
langage declaratif en un programme de calcul qui va prendre en entree
letat courant de la base de donnees et va produire en resultat la relation
resultat de la requete.

Exemple de requete et de calcul


SELECT c.numcommande, c.datecommande
FROM (COMMANDES c JOIN LIGNECOMMANDES l ON
c.numcommande=l.refcommande) JOIN
PRODUITS p ON l.refproduit = p.numproduit
WHERE p.couleur =rouge
Prendre des tables tr`es simples en exemple et reflechir `a differentes facons
possibles de calculer la relation resultat.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

29 / 143

Les operations du mod`ele relationnel


Le calcul des requetes repose sur le calcul relationnel. Ce calcul est base
sur 5 operations de base :
1

la projection ou selection verticale,

la selection ou selection horizontale,

le produit,

lunion,

la difference.

Ces operations peuvent etre combinees car elles portent sur des relations
et produisent des relations permettant de definir le langage SQL qui est le
langage dinterrogation de BD relationnelle.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

30 / 143

La projection
Definition
La projection ou selection verticale prend en entree une relation A et une
liste dattributs de A et sort la relation restreinte `a cette liste dattributs.

Exemple
Dupont
1 35 Lille

Etant
donne la table PERSONNEL : Gilleron 1 38 Lomme
Lemoine
30 Leers
et la projection : AGES=PROJECT(PERSONNEL) OVER Nom, Age, on
Dupont
35
obtient en resultat la relation : Gilleron 38
Lemoine
30

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

31 / 143

La selection
Definition
La selection ou selection horizontale prend en entree une relation et une
expression logique portant sur des valeurs dattributs et sort la relation
restreinte aux lignes qui satisfont lexpression logique (i.e. lexpression
logique est vraie).

Exemple
Dupont
1 35 Lille

Etant
donne la table PERSONNEL : Gilleron 1 38 Lomme
Lemoine
30 Leers
la selection : SELECT PERSONNEL WHERE Ville = Lille, produit
en resultat la relation : Dupont 1 35 Lille
la selection : SELECT PERSONNEL WHERE Ville = Lomme or
Gilleron 1 38 Lomme
Age=30, produit en resultat la relation :
Lemoine
30 Leers
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

32 / 143

Le produit (1)

Pourquoi des operations binaires


Les operations de selection horizontale et verticale sont des operations
essentielles ;
elles peuvent etre combinees ;
ce sont des operations unaires (sur une table) ;
cependant, nous avons vu que, pour obtenir un mod`ele robuste, il etait
recommande declater en plusieurs relations. Par exemple :
PRODUIT(numproduit, nomproduit, ..., numfournisseur)
FOURNISSEUR(numfournisseur, nomfournisseur, ...)
Il faut donc avoir egalement des operations binaires sur les relations.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

33 / 143

Le produit (2)
Definition
Le produit est une operation binaire qui prend deux relations A et B en
entree et produit en sortie la relation PRODUIT (A, B) ou A B qui
correspond au produit cartesien.

Exemple

X
Y

1
5

1
2
5

M
N
N

xx
yy
zz

Attention : la taille de A B est le


10 000 100 000 = 1 000 000 000.
R
emi Gilleron (Mostrare)

X
X
X
=
Y
Y
Y
produit des tailles de

Informatique M1 MIASHS

1 1
1 2
1 5
5 1
5 2
5 5
A et B

M
N
N
M
N
N
et

septembre 2013

xx
yy
zz
xx
yy
zz

34 / 143

Lunion
Definition
Lunion prend en entree deux relations de meme structure et sort une
relation de meme structure en effectuant lunion ensembliste des lignes des
deux relations. On ne rep`ete pas deux fois des lignes identiques.

Exemple
1
2
5

M
N
N

xx
yy
zz

R
emi Gilleron (Mostrare)

3
2
7

P
N
Q

zz
yy
xx

Informatique M1 MIASHS

1
2
5
3
7

M
N
N
P
Q

septembre 2013

xx
yy
zz
zz
xx

35 / 143

La difference
Definition
La difference prend en entree deux relations de meme structure et sort une
relation de meme structure en prenant toutes les lignes de la premi`ere
relation qui ne sont pas dans la seconde.

Exemple
1
2
5
3
7

M
N
N
P
Q

xx
yy
zz
zz
xx

R
emi Gilleron (Mostrare)

1
7

M
Q

xx
xx

Informatique M1 MIASHS

2
5
3

N
N
P

septembre 2013

yy
zz
zz

36 / 143

La jointure (1)
Definition
La jointure est une operation fondamentale qui prend deux tables A et B,
un attribut de A, un attribut de B et une condition logique liant un
attribut de A et un attribut de B.
Le resultat est une relation obtenue en juxtaposant les lignes de A et de B
pour lesquelles la condition est vraie.

Exemple
A JOIN B ON A.2=B.1
A:

X
Y

1
5

R
emi Gilleron (Mostrare)

1
B: 2
5

M
N
N

xx
yy
zz

Informatique M1 MIASHS

X
Y

1
5

M
N

septembre 2013

xx
zz

37 / 143

La jointure (2)

Fait
Loperation de jointure peut effectivement etre definie `a partir de la
selection (horizontale), de la projection (selection verticale) et du produit.
A titre de verification par lexemple, Considerons la jointure suivante :
R(1,2,3,4) A(1,2) JOIN B(1,2,3) ON A.2=B.1
Elle peut etre definie par la sequence suivante : le produit
C(1,2,3,4,5) PRODUIT(A,B)
suivi de la selection hrizontale
D(1,2,3,4,5) SELECT C WHERE C.2 = C.3
suivi de la projection
R(1,2,3,4) PROJECT D OVER D.1, D.2, D.4, D.5

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

38 / 143

Alg`ebre relationnelle

Les cinq operations de projection, selection, produit, union et


difference permettent de definir un calcul sur les relations suffisant
pour linterrogation de mod`eles relationnels ;
Les relations et les operations forment lalg`ebre relationnelle
TOUT EST RELATION : on effectue des operations sur des relations
(ou tables), on produit des relations (ou tables) qui peuvent, `a leur
tour, etre utilisees dans de nouvelles operations.
quelques operations supplementaires (par exemple, les operations sur
les groupes) sont ajoutees pour obtenir un langage dinterrogation
plus riche.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

39 / 143

Gestion des performances

La norme SQL se limite `a la definition, la manipulation et au controle


des donnees.
Pour une requete, on specifie le resultat attendu dans un langage
logique declaratif. On ne specifie rien quant `a la facon dont sera
effectue le calcul de le requete de mani`ere `a assurer des performances
satisfaisantes. Le moteur SQL tranforme la description en un calcul.
La gestion des performances est du ressort de ladministrateur de la
base de donnees et pas de lutilisateur.
Cependant, un utilisateur averti doit connatre les optimisations
principales : definition de la requete et du plan de calcul, utilisation
dindex, ajout dinformations calculees dans la base.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

40 / 143

Modifier la requete et/ou son plan de calcul


Faits
Un meme resultat peut etre obtenu avec des requetes differentes
Une meme requete peut etre calculee de differentes facons
Les moteurs SQL sont en general efficaces pour les requetes simples

Si une requete est trop lente


Reflechir `a dautres ecritures de la requete : remplacer des clauses par
des requetes imbriquees, remplacer une requete imbriquee par une
jointure, ... et voir si les performances sameliorent
Vous pouvez regarder les plans de calcul generes par les requetes pour
vous aider. Mais, modifier les plans de calcul est plutot du ressort de
ladministrateur.
ce cours : definir un nouvel index
ce cours : denormaliser le schema relationnel
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

41 / 143

Quest-ce quun index ?


Definition
Un index est une table `a deux champs. Le premier est le champ sur lequel
porte lindex. Le second est le numero denregistrement correspondant
dans la table. La table dindex est triee sur les valeurs du premier champ.

Exemple
Soit une table CLIENTS(numclient, nom, pr
enom, ...). Un index sur
le cham CLIENTS.nom est une table :
...
...
Dupond 135 487
Dupond 23 788
Dupont 357 302
...
...

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

42 / 143

Interets et limites des index

Un index sur un champ permet un acc`es rapide sur les valeurs de ce


champ. En effet, le temps moyen dacc`es `a un element est de N/2
sans index `a comparer avec log2 N avec un index
Les index permettent daccelerer les selections horizontales et donc
aussi les jointures. Donc ils permettent daccelerer les calculs de
requetes.
MAIS
1

ils doivent etre mis `a jour (par le SGBDR) lors de toute mise `a jour de
la table,
ils prennent de la place car cest une nouvelle table. On parle de
compromis temps-espace.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

43 / 143

Definir un index ?
sur quels champs ?
r`egle 1 La table doit avoir un grand nombre de lignes
r`egle 2 lattribut doit avoir beaucoup de valeurs differentes
r`egle 3 indexer les attributs servant aux jointures et donc les cles
primaires et cles etrang`eres (souvent fait par le SGBDR)
r`egle 4 indexer les attributs qui interviennent dans les clauses WHERE
et ORDER BY de requetes tr`es souvent executees
et pas tous les champs `a cause du compromis temps-espace !

Optimiser une requete


Si une requete a un temps de calcul trop long, on peut voir si il ne serait
pas utile dajouter un index sur un des champs de la requete.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

44 / 143

Comment definir un index ?

par linstruction CREATE [ UNIQUE ] INDEX name index ON


table ( column | ( expression ) [, ...] )
on peut creer un index sur un ou plusieurs attributs et meme un
champ calcule, le declarer unique ou pas
souvent en SQL des index sont crees par le SGBDR lors de la creation
de la base de donnees pour les cles primaires, cles etrang`eres,
attributs precises UNIQUE

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

45 / 143

Revisiter la normalisation

Un mod`ele relationnel en forme normale permet, avec les proprietes


ACID des transactions, dassurer la coherence et lintegrite dune base
de donnees dans son cycle de vie ;
Ceci implique que les donnees soient non redondantes dans le mod`ele.
En particulier, une r`egle de conception affirme que : une donnee
calculee ne doit pas apparatre dans le mod`ele
Pour des questions defficacite, on peut deroger `a cette r`egle et
denormaliser le mod`ele. Mais, cette denormalisation devra etre
controlee et assuree `a laide de contraintes dintegrite
supplementaires.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

46 / 143

Exemple classique
Soit (un extrait de) la BD relationnelle :
PRODUIT(numproduit, ...,prixproduitht, ...)
COMMANDE(numcommande, datecommande, ..., numclient)
LIGNECOMMANDE(numcommande, numproduit, ..., quantite)
Le montant de la commande peut etre calcule et napparait pas pour des
raisons de normalisation. Mais de nombreuses requetes (montant dune
commande, montant total des commandes par periode, par type de
produit, ...) necessite son calcul. On peut alors denormaliser le mod`ele et
lajouter.
COMMANDE(numcommande, datecommande, montantcommande, ...)
La coherence devra alors etre controlee par des contraintes dintegrite.
Note : situation reelle plus complexe avec dates, reductions, promotions,
...

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

47 / 143

Exemple emprunts
Soit (un extrait de) la BD relationnelle :
OEUVRE(numoeuvre, titre, isbn, ..., numediteur)
LIVRE(cotelivre, numoeuvre, dateachat, ...)
EMPRUNT(cotelivre, numadherent, datedebut, dateretour)
Le fait quun livre soit present dans la biblioth`eque ou emprunte peut etre
calcule. On peut alors denormaliser le mod`ele et ajouter un champ dans la
table des livres :
LIVRE(cotelivre, numoeuvre, dateachat, sorti, ...)
La coherence devra alors etre controlee par des contraintes dintegrite : il
faudra verifier lors de toute rentree de livre que lon met a jour
dateretour dans EMPRUNT mais aussi le champ sorti dans LIVRE. De
meme pour tout emprunt.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

48 / 143

Conclusion sur loptimisation


de requetes SQL
Essayer decrire differemment votre requete (vous) ;
Regarder le plan de calcul (vous et DBA) ;
Voir si un index peut etre ajoute (DBA) ;
Voir si on peut denormaliser le schema mais modification tr`es
importante car modifie le schema de la base (DBA).

de calculs de rapport
On peut agir sur la requete necessaire au calcul du rapport.
On peut precalculer la requete et importer les resultats.
On peut agir sur le rapport.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

49 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

50 / 143

BD relationnelle

Une base de donnees relationnelle est une base de donnees definie


relativement au mod`ele relationnel.
une BD relationnelle est definie par un schema relationnel :
I

I
I

les relations (ou tables). Une relation est definie par la liste des
attributs, le domaine de chaque attribut, la precision de la cle primaire ;
les associations (ou jointures) naturelles entre les tables ;
les contraintes dintegrite (plus tard dans ce cours, maintenant ! ).

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

51 / 143

La necessite de contraintes

une base de donnees relationnelle en forme normale permet dassurer


la consistance des donnees
`a condition que les proprietes assurant la forme normale soient
verifiees lors des evolutions de la base de donnees.
ces proprietes qui doivent etre verifiees par la base de donnees sont les
les contraintes dintegrite
Souvent sajoutent des contraintes specifiques `a la base de donnees
consideree.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

52 / 143

Les contraintes dintegrite

les contraintes dintegrite de domaine : verifier que les valeurs dun


attribut appartiennent `a un domaine de valeurs
les contraintes dintegrite de structure ou dentite : verifier que la cle
primaire et les cles candidates sont toujours definies par une valeur
unique
les contraintes dintegrite referentielles : elles sont relatives aux
jointures naturelles entre les tables du mod`ele.
les autres contraintes : sont relatives `a des proprietes particuli`eres de
la base ou `a la verification de r`egles de gestion sur plusieurs tables.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

53 / 143

Le LDD

Le langage de definition des donnees est lensemble des instructions


SQL permettant la creation dune base de donnees relationnelles :
I
I
I
I
I
I

la creation des tables,


et donc des attributs,
les contraintes de domaine,
les contraintes de structure,
les contraintes de reference,
les contraintes specifiques.

les instructions principales sont : CREATE TABLE, ALTER TABLE,


DROP TABLE

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

54 / 143

La creation de tables

CREATE TABLE table name


(
column name data type [DEFAULT default exp]
[column constraint],
column name data type [DEFAULT default exp]
[column constraint],
[...]
[table constraint] [...]
)
construit une table vide dans la base de donnees courante avec pour
proprietaire celui qui execute linstruction.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

55 / 143

La creation de tables

lexecution de linstruction
CREATE TABLE CLIENTS (
numclient INTEGER,
nom VARCHAR(20), prenom VARCHAR(20),
datenaissance DATE
numrue INTEGER, nomrue VARCHAR(40),
codepostal CHAR(5), ville VARCHAR(20),
typeclient VARCHAR(16) )
cree une table CLIENTS dans la base courante. La table est definie avec ses
attributs et leur type mais il faut aussi preciser les contraintes dintegrite.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

56 / 143

Donner une valeur par defaut

on peut specifier une valeur par defaut par lintermediaire de DEFAULT.


la valeur par defaut est du meme type que lattribut
si on ajoute une ligne sans preciser la valeur de cet attribut, cest la
valeur par defaut qui est donnee, sinon, cest la valeur NULL.
on utilise DEFAULT pour eviter des saisies inutiles (la date du jour
pour une commande, particulier pour lattribut type de client)
on utilise DEFAULT pour incrementer une sequence de type entier pour
une cle primaire

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

57 / 143

La contrainte de domaine NOT NULL

lattribut considere ne peut pas prendre la valeur NULL , on lui impose


davoir une valeur.
pour les champs qui doivent avoir une valeur (un nom de client)
pour les cles etrang`eres dont la valeur doit etre obligatoirement
renseignee (la reference du client faisant une commande)
la verification est effectuee lors de toute action sur la valeur de cet
attribut dans une ligne de la table. Lajout ou la mise `a jour est
refusee si une valeur NULL est affectee.
en son absence, la valeur NULL est autorisee

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

58 / 143

La contrainte de domaine UNIQUE

elle permet de preciser quun attribut a une valeur unique


cette contrainte est utilisee pour les cles candidates
il est conseille de lassocier `a la contrainte de domaine NOT NULL
la verification est effectuee lors de toute action sur la valeur de cet
attribut dans une ligne de la table. Lajout ou la mise `a jour est
refusee si la contrainte est violee
il est conseille de donner un nom `a toute contrainte pour que le
message derreur soit comprehensible
on peut avoir une clause UNIQUE portant sur plusieurs champs

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

59 / 143

autres contraintes de domaine

On peut specifier des contraintes de domaine plus complexes portant sur


un ou plusieurs attributs dune meme table `a laide de la clause CHECK
precisee apr`es le type du champ si elle porte sur un attribut
(contrainte dattribut), apr`es la definition des attributs si elle porte
sur plusieurs attributs (contrainte de table).
le type de client est limite aux valeurs particulier, administration,
grand compte et pme
le prix de vente est superieur au prix dachat
la date de commande est infereure `a la date de livraison

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

60 / 143

definir un domaine

Il est frequent que plusieurs attributs de tables dune meme base de


donnees soient construits sur les memes domaines. On peut definir
des domaines `a laide de linstruction CREATE DOMAIN
definir un domaine pour des quantites darticles :
CREATE DOMAIN quantite INTEGER
DEFAULT 0
CHECK (VALUE >=0)
Il suffit alors dutiliser le nom du domaine pour definir un attribut
comme on utilise un type existant.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

61 / 143

contraintes dintegrite de structure

Egalement
appelees contraintes dintegrite dentite, elles permettent
de preciser la cle primaire de la table.
Grace `a la contrainte PRIMARY KEY
Elle verifie que la cle primaire est toujours definie et a une valeur
unique et est donc equivalente `a la conjonction des contraintes NOT
NULL et UNIQUE
precisee apr`es le type du champ si elle porte sur un attribut
(contrainte dattribut), apr`es la definition des attributs si elle porte
sur plusieurs attributs (contrainte de table)

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

62 / 143

contraintes dintegrite de reference


Elles permettent de verifier que les liaisons ou jointures naturelles entre les
tables sont correctement definies. Elles sont donc essentielles `a la
correction dune base de donnees relationnelle. Quelques rappels :
cle etrang`ere : attribut ou groupe dattributs dune table T1 dont les
valeurs doivent exister comme valeurs de la cle primaire (ou
candidate) dune table T2 (non necessairement distincte de T1)
table qui reference : la table T1 qui contient la cle etrang`ere, parfois
appelee table secondaire
table referencee : la table T2 qui contient la cle primaire (ou
candidate) `a laquelle la cle etrang`ere fait reference, parfois appelee
table primaire

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

63 / 143

du cote de la table qui reference

Il faut controler lajout dune nouvelle ligne et donc dune nouvelle


valeur de cette cle etrang`ere
Il faut controler la modification de cette cle etrang`ere
Il faut verifier que la valeur donnee `a la cle etrang`ere existe dans la
table referencee. Pour cela :
I
I
I
I

contr
oler les saisies
ecrire une fonction par le programmeur
assurer le contr
ole par le SGBDR
executer un trigger

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

64 / 143

la clause REFERENCES

Elle permet de deleguer au SGBDR le contr


ole dintegrite de reference
sa syntaxe : REFERENCES nom table r
ef
erenc
ee
[(cle candidate)]
si le nom de la table est seul, il est suppose que cest la cle primaire
qui est referencee.
Effet : lors de tout ajout ou modification, la nouvelle valeur est
recherchee dans la table referencee. Si cette valeur nexiste pas, le
SGBDR refusera lajout ou modification
Note : les clauses REFERENCES et NOT NULL sont complementaires
mais differentes.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

65 / 143

la clause FOREIGN KEY

Elle permet de deleguer au SGBDR le contr


ole dintegrite de reference
sa syntaxe : FOREIGN KEY cle etrangere REFERENCES
ef
erenc
ee [(cle candidate)]
nom table r
cette clause est utilisee comme contrainte de table, cest-`a-dire, apr`es
la definition des attributs. Son utilisation est obligatoire si la cle
etrang`ere est constituee de plusieurs attributs.
Effet : identique

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

66 / 143

du cote de la table referencee (1)

On peut etre amene `a modifier ou `a supprimer la valeur de la cle


primaire de la table referencee :
I
I

supprimer un client ou
modifier un numero de client

Que faire pour les lignes qui faisaient reference `a cette valeur :
I
I

les commandes faisant reference au client supprime ou


les commandes faisant reference au client dont on change le numero

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

67 / 143

du cote de la table referencee (2)

Differentes attitudes sont possibles :


I
I
I

interdire toute suppression ou modification ;


interdire toute suppression ;
autoriser suppression et modification.

Si on autorise, il faut dire les actions `a mener en cas de suppression et


en cas de modification.
Un SGBDR et SQL permettent de preciser ces autorisations et ces
actions

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

68 / 143

du cote de la table referencee (3)

La clause REFERENCES peut etre completee par les clauses ON DELETE


et ON UPDATE
En cas de modification ou de suppression dune valeur de cle
etrang`ere de la table referencee, quatre possibilites :
I
I
I
I

NO ACTION : interdire
CASCADE : autoriser et propager
SET NULL : autoriser et mettre `a NULL
SET DEFAULT : autoriser et mettre `a valeur par defaut

par defaut les suppressions et modifications sont interdites si la clause


REFERENCES est presente

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

69 / 143

autres contraintes

contraintes de domaine : sur un attribut dune table ou plusieurs


attributs dune meme table
contraintes dentite : sur la cle primaire dune table
contraintes de reference : sur la cle etrang`ere dune table en lien avec
les valeurs de la cle primaire referencee
les autres contraintes servent :
I
I

`a verifier au niveau de la BD des r`egles de gestion


`a verifier la consistance lorsque la base contient des redondances.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

70 / 143

assertions et triggers

assertions : permettent dexprimer des contraintes ne portant pas sur


une table en particulier : le prix de vente dun article dans une
commande ne peut pas avoir obtenu une reduction superieure `a 20%
du prix catalogue
les assertions ne sont pas supportees par PostgreSQL.
triggers : suite dinstructions SQL ou procedure compilee qui
sexecute automatiquement chaque fois que levenement declenchant
associe se produit : `a chaque ajout dune ligne de livraison mettre `a
jour la quantite livree dans la ligne de commande correspondante
les triggers ont un grand pouvoir dexpression : les contraintes
classiques sont implantees avec des triggers.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

71 / 143

exemple de trigger

`a chaque ajout dune ligne de livraison mettre `a jour la quantite livree


dans la ligne de commande correspondante
CREATE TRIGGER calcultotalqtelivreesiajoutlivraison
AFTER INSERT ON ligneslivraisons
UPDATE lignescommandes SET quantiteliv =
(SELECT SUM(ligneslivraisons.quantiteliv) FROM
ligneslivraisons
WHERE ligneslivraisons.refcommande=
lignescommandes.refcommande
AND ligneslivraisons.refarticle =
lignescommandes.refarticle)

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

72 / 143

base des ventes et livraisons (1)

CREATE TABLE magasins


(nummagasin INTEGER CONSTRAINT PRIM MAGASINS PRIMARY KEY,
ville VARCHAR(25) NOT NULL,
gerant VARCHAR(20) ) ;
CREATE TABLE fournisseurs
(numfournisseur INTEGER CONSTRAINT PRIM FOURNISSEURS
PRIMARY KEY,
nom VARCHAR(25) CONSTRAINT NOM UNIQUE FOURNISSEURS NOT NULL
UNIQUE,
ville VARCHAR(20), pays VARCHAR(20) ) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

73 / 143

base des ventes et livraisons (2)


CREATE TABLE clients
(numclient INTEGER CONSTRAINT PRIM CLIENTS PRIMARY KEY ,
nom VARCHAR(20) NOT NULL,
prenom VARCHAR(20),
codepostal CHAR(5),
ville VARCHAR(25) NOT NULL,
pays VARCHAR(20),
ca INTEGER DEFAULT 0,
type VARCHAR(16) DEFAULT particulier
CONSTRAINT TYPE CLIENT CHECK (type IN (particulier,
administration, grand compte, pme)) CONSTRAINT
TYPE CLIENT ) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

74 / 143

base des ventes et livraisons (3)


CREATE TABLE articles
(numarticle INTEGER PRIMARY KEY CONSTRAINT PRIM ARTICLES,
nom VARCHAR(20) NOT NULL,
poids NUMERIC(10,1), couleur VARCHAR(20),
stock INTEGER NOT NULL DEFAULT 0 CONSTRAINT STOCK ARTICLES
CHECK (stock >=0),
prixachat INTEGER NOT NULL,
prixvente INTEGER NOT NULL,
reffournisseur INTEGER CONSTRAINT ARTICLES REF FOURNISSEURS
REFERENCES fournisseurs ON UPDATE CASCADE ON DELETE SET
NULL
CHECK (prixvente >= prixachat /0.9) CONSTRAINT
PVPA ARTICLES) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

75 / 143

base des ventes et livraisons (4)

CREATE TABLE commandes


(numcommande INTEGER PRIMARY KEY CONSTRAINT PRIM COMMANDES,
date DATE NOT NULL,
refclient INTEGER NOT NULL CONSTRAINT COMMANDES REF CLIENTS
REFERENCES clients ON UPDATE CASCADE ON DELETE NO ACTION
refmagasin INTEGER NOT NULL CONSTRAINT
COMMANDES REF MAGASINS REFERENCES magasins ON UPDATE CASCADE
ON DELETE NO ACTION ) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

76 / 143

base des ventes et livraisons (5)

CREATE TABLE lignescommandes


(refcommande INTEGER NOT NULL, refarticle INTEGER NOT NULL,
quantitecom INTEGER NOT NULL, quantiteliv INTEGER NOT NULL,
prixventecom INTEGER NOT NULL, dateprevueliv DATE,
CONSTRAINT PKLC PRIMARY KEY (refcommande, refarticle),
CONSTRAINT FKLCRC FOREIGN KEY refcommande REFERENCES
commandes ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT FKLCRA FOREIGN KEY refarticle REFERENCES
articles ON UPDATE CASCADE ON DELETE NO ACTION,
CONSTRAINT QLC CHECK (quantiteliv <= quantitecom) ) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

77 / 143

base des ventes et livraisons (6)

CREATE TABLE livraisons


(numlivraison INTEGER PRIMARY KEY CONSTRAINT
PRIM LIVRAISONS,
date DATE DEFAULT CURRENT DATE,
refclient INTEGER REFERENCES clients ON UPDATE CASCADE ON
DELETE NO ACTION CONSTRAINT LIVRAISONS REF CLIENTS
refmagasin INTEGER REFERENCES magasins ON UPDATE CASCADE ON
DELETE NO ACTION CONSTRAINT LIVRAISONS REF MAGASINS) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

78 / 143

base des ventes et livraisons (7)


CREATE TABLE ligneslivraisons
(reflivraison INTEGER NOT NULL,
refarticle INTEGER NOT NULL,
quantiteliv INTEGER NOT NULL CONSTRAINT QLV CHECK
(quantiteliv >=0) ,
refcommande INTEGER NOT NULL,
CONSTRAINT PKLV PRIMARY KEY (reflivraison, refarticle),
CONSTRAINT FKLVL FOREIGN KEY reflivraison REFERENCES
livraisons ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT FKLVA FOREIGN KEY refarticle REFERENCES articles
ON UPDATE CASCADE ON DELETE NO ACTION ,
CONSTRAINT FKLVLC FOREIGN KEY (refcommande, refarticle)
REFERENCES lignescommandes ON UPDATE CASCADE ON DELETE
CASCADE) ;

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

79 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

80 / 143

Architecture dune BD dans un SGBDR


le serveur de bases de donnees
Sur ce serveur est implante un SGBDR .
il faut se connecter au serveur en precisant un nom dutilisateur et
une base de donnees avec une connexion securisee, la connexion peut
etre transparente `a lutilisateur,
apr`es connexion, on entre dans une session o`
u il est possible de se
connecter `a une autre base de donnees.

hierarchie des objets


1

un serveur contient des bases de donnees et les informations sur les


utilisateurs

une base de donnees ou catalogue est constituee dun ensemble de


schemas

un schema contient des elements : tables, contraintes, vues,


R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

81 / 143

Les utilisateurs dans un serveur de BDR


ils sont crees et definis au niveau du serveur, leur nom peut etre
different de leur nom syst`eme,
le mot de passe est, en general, different du mot de passe syst`eme et
doit etre suffisamment complexe
`a ce niveau un utilisateur peut se voir attribuer les droits (voir
ci-apr`es)

Instructions SQL
les instructions de gestion des utilisateurs sont : CREATE USER et
ALTER USER
les instructions de gestion des bases de donnees sont CREATE
DATABASE et ALTER DATABASE. Il faut alors creer tous les objets et
les renseigner. Le createur dune base poss`ede tous les droits de
creation puis dusage de tous les objets de la base.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

82 / 143

les schemas dans une BDR


Interet des schemas et leur usage
pour organiser la base en sous-ensembles logiques pour une gestion
plus facile et pour eviter des interactions entre utilisateurs dune
meme base de donnees
les schemas sont contenus dans les bases de donnees (ou catalogues)
et contiennent les tables, vues, ...
par defaut, le schema public existe et contient tous les objets crees,
le schema pg catalog lui contient les tables syst`emes.

Instructions SQL
On cree les schemas par linstruction CREATE SCHEMA, puis les objets
dans chacun des schemas,
on attribue des droits au niveau des schemas, par exemple, de
creation de tables dans le schema.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

83 / 143

Les vues dans une BDR


Pourquoi les vues
les bases de donnees relationnelles contiennent des schemas, un grand
nombre de tables, des cles primaires et etrang`eres pour les jointures,
des informations techniques, des contraintes dintegrite, ...
cette complexite nest pas `a la portee dun utilisateur de base, et
meme dun utilisateur averti que vous etes.

Objectifs des vues


elles permettent de donner `a lutilisateur une vue simplifiee de la base :
on restreint sa vision aux seules informations pertinentes au vu de sa
fonction
avec une une image globale dans son langage plus concr`ete et plus
claire,
on montre `a lutilisateur des relations sans quil ait conscience du
calcul effectue
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

84 / 143

Implantation des vues dans une BDR


Principes des vues
une vue est dynamique,
une vue a une definition logique,
elle est recalculee lors de toute utilisation,
par consequent toute modification sur les tables de base sera
repercutee sur la vue

Les vues en SQL


CREATE VIEW [(liste de colonnes)] AS
expression de table, o`
u expression de table est une clause
SELECT. Par defaut, les noms de colonnes sont herites des noms des
attributs des tables mais on peut renommer dans le langage metier,
on peut supprimer une vue, on peut definir des requetes basees sur
des vues, on peut definir des vues basees sur des vues
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

85 / 143

Vues modifiables et conclusion


Peut-on modifier avec une vue ?
Les vues definies `a partir de SELECT permettent dextraire facilement
de linformation par leur simple execution,
La norme precise les r`egles pour quune vue soit modifiable sans
risque pour la coherence de la BDR,
pour une vue modifiable, il faut preciser le comportement vis `a vis des
ajout, mise `a jour et suppression,
Les dialectes SQL acceptent ou pas les vues modifiables

Conclusion sur les vues


Le concept de vue permet de definir des schemas externes pour
lutilisateur constitues dun ensemble de vues au travers desquels il voit la
base de donnees. Les avantages principaux des vues sont : personnalisation
de la base de donnees, simplification, confidentialite des donnees,
independance entre applications et definition de la base.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

86 / 143

Les droits
Les differents droits et non droits
Dans un environnement multi-utilisateurs, vous avez des droits
au niveau syst`eme : poste de travail, le reseau, les applications, ...
au niveau du serveur de bases de donnees : authentification, droits de
connexion, de creation, ...
au niveau des objets dun schema ou dune base de donnees : tables,
vues, requetes, mises `a jour, ...

Principes generaux
le super-utilisateur (superuser) a tous les privil`eges sur tous les
objets,
le createur dun objet poss`ede tous les privil`eges sur cet objet,
Un utilisateur ne peut effectuer une operation que sil poss`ede les
droits ou privil`eges appropries pour cette operation
le possesseur de la base (et le superutilisateur) doit attribuer des
privil`eges aux autres utilisateurs,
qui eux-memes ... septembre 2013
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS

87 / 143

La gestion des privil`eges


au niveau utilisateur ou groupe dutilisateurs
les utilisateurs peuvent etre organises en groupes, ces groupes
correspondent `a des fonctions logiques dans lentreprise,
avec les instructions CREATE GROUP et ALTER GROUP,
on peut alors attribuer des privil`eges au groupe, le groupe PUBLIC
correspond `a lensemble des utilisateurs.

Instructions dattribution de privil`eges en SQL


attribuer : GRANT privilege ON objet nom objet TO
liste utilisateurs [WITH GRANT OPTION],
enlever : REVOKE [GRANT OPTION FOR] privilege ON objet
nom objet TO liste utilisateurs,
les privil`eges `a attribuer dependent de lobjet, la liste dutilisateurs
peut contenir des groupes,
on peut combiner lutilisation de ces deux instructions
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

88 / 143

Quels privil`eges ?
bases et schemas
dans une BD, le privil`ege CREATE permet de creer des schemas dans
la base de donnees,
dans un schema, le privil`ege USAGE permet lacc`es aux objets du
schema, le privil`ege CREATE permet de creer des objets dans le schema

tables et vues
le privil`ege SELECT donne acc`es `a toutes les colonnes
le privil`ege INSERT pour inserer des lignes
le privil`ege DELETE pour supprimer des lignes
le privil`ege REFERENCES pour creer une contrainte de reference. Il faut
posseder ce privil`ege sur les deux tables
le privil`ege TRIGGER pour creer des triggers
La clause WITH GRANT OPTION permet de transferer les privil`eges
attribues
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

89 / 143

Lacc`es aux donnees dans un SGBDR

les schemas permettent de decouper une base en sous-ensembles


logiques
les vues permettent de donner `a chaque utilisateur un acc`es simplifie
sur les donnees utiles `a ses fonctions
les privil`eges permettent de gerer finement les droits dacc`es aux
donnees
une utilisation conjointe des schemas, vues et privil`eges permet
datteindre une grande souplesse pour lacc`es facilite et securise aux
donnees
les groupes sont egalement tr`es utiles

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

90 / 143

Un point detape

Nous venons de parcourir divers elements proches de ladministration dun


SGBDR `a connatre pour un utilisateur avise :
la notion de serveur de bases de donnees
les notions de schemas, vues, privil`eges et groupes
les questions de performances
le dictionnaire des donnees contient toutes les informations sur les
utilisateurs et leurs privil`eges, les schemas, les tables, cles, index,
contraintes, triggers, ...
Il nous reste `a etudier les probl`emes lies `a la concurrence

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

91 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

92 / 143

SGBDR et concurrence
Composants dun SGBDR
un moteur relationnel responsable de toutes les operations sur les
donnees,
un dictionnaire des donnees contenant la description de toutes les
donnees,
un syst`eme de gestion des transactions permettant dassurer que les
donnees restent int`egres (coherentes) quels que soient les evenements.

Sys`eme de gestion des transactions


En effet, le mod`ele relationnel a ete defini pour assurer lintegrite des
donnees dune base de donnees. Mais, il faut prendre en compte :
les pannes : defaillance technique, erreur de programmation, ... Un
SGBDR doit etre tolerant aux pannes
la concurrence : la base est utilisee simultanement par plusieurs
utilisateurs. Un SGBDR doit gerer la concurrence
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

93 / 143

Les transactions
Definition dune transaction
Une application est constituee de groupes doperations.
Certains groupes doperations forment des unites logiques indivisibles
pour conserver lintegrite des donnees relativement au respect de
r`egles de gestion du domaine et au respect de contraintes sur la base
de donnees,
une transaction est un groupe doperations tel que :
I
I

soit toutes les operations sont effectuees


soit aucune ne lest

Les transactions en SQL


Une transaction debute par linstruction BEGIN, elle se termine
I
I

soit par COMMIT : toutes les operations sont effectuees et enregistrees


soit par ROLLBACK : toutes les operations sont annullees (defaites) et
on retrouve letat initial.

Par defaut, toute instruction SQL est une transaction


R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

94 / 143

Les transactions pour recuperer les pannes

la base de donnees est sauvegardee reguli`erement


le gestionnaire des transactions doit memoriser letat de toutes les
transactions
En cas de panne :
I
I
I

on recup`ere la derni`ere sauvegarde


on reconstruit toutes les transactions terminees
on annulle toutes les transactions qui etaient en cours

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

95 / 143

Les transactions pour gerer la concurrence


Les transactions sont un element important pour la gestion de la
concurrence
On pourrait penser `a effectuer une transaction `a la fois mais les
performances seraient catastrophiques !
Plusieurs (un grand nombre de) transactions doivent pouvoir
sexecuter simultanement, il faut donc etudier le comportement de
transactions sexecutant en parall`ele

Les trois cas dincoherence


la lecture inconsistante (dirty read) : lire des donnees non validees
la lecture non repetitive (nonrepeatable read) : deux lectures
successives donnent des resultats differents
la lecture fantome (phantom read) : des donnees apparaissent et
disparaissent lors de lectures successives
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

96 / 143

La lecture inconsistante

peut se produire lorsque deux transactions sexecutent en parall`ele selon le


schema suivant :
transaction 1
select ligne 1
actions

transaction 2
Update ligne 1
ROLLBACK

on lit une valeur temporaire non validee. la lecture inconsistante est une
anomalie grave : faire croire quune propriete est verifiee et engendrer des
actions menant `a des incoherences

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

97 / 143

La lecture non repetitive

peut se produire lorsque deux transactions sexecutent en parall`ele selon le


schema suivant :
transaction 1
select ligne 1
actions
select ligne 1

transaction 2
update ligne 1 ; COMMIT

On lit deux fois une meme ligne avec des resultats differents dans la meme
transaction.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

98 / 143

La lecture fantome

peut se produire lorsque deux transactions sexecutent en parall`ele selon le


schema suivant :
transaction 1
select propri
et
e

transaction 2
update ligne extraite
delete ligne extraite

select propri
et
e
une transaction qui calcule deux fois un ensemble de lignes verifiant une
condition ne trouvera pas les memes lignes

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

99 / 143

Les solutions
Les niveaux disolation
On associe `a toute transaction un niveau disolation :
READ UNCOMMITTED : pas disolation
READ COMMITTED : pas de lecture inconsistante
REPEATABLE READ : pas de lecture non repetitive
SERIALIZABLE : pas de lecture fant
ome
Le choix est souvent entre READ COMMITTED et SERIALIZABLE. Si le
second est le plus sur, il peut y avoir degradation des performances.

Les methodes
une solution est lutilisation de verrous. On verrouille un (bloc d)
enregistrement, une table pendant le temps de la transaction,
attention au verrou mortel.
une autre solution est lutilisation de versions. Chaque transaction
travaille sur une copie virtuelle de la base, copies `a synchroniser.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

100 / 143

La concurrence

Une transaction est une suite dinstructions indissociables


Il existe differents niveaux disolation
Il faut un compromis entre isolation maximale et performances
Il existe des mecanismes pour eviter les verrous mortels
Le syst`eme de gestion des transactions est un element essentiel dun
SGBDR,
tout particuli`erement les syst`emes transactionnels comme la
reservation de billets de train, par exemple.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

101 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

102 / 143

Critiques du mod`ele relationnel

Evolutivit
e
Quelle que soit la qualite de lanalyse, les besoins et donc les donnees
evoluent et les schemas doivent integrer ces changements. Mais le
mod`ele relationnel est peu evolutif.
La question de lintegration de donnees est un secteur dactivites `a
part enti`ere des entreprises.

Efficacite
La masse des donnees `a analyser et `a gerer est de plus en plus importante
et on voit apparatre : reseaux sociaux, Web, capteurs, ... do`
u
informatique decisionnelle pour lanalyse de grands jeux de donnees et
le phenom`ene Big data pour la gestion et lanalyse de masses de
donnees.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

103 / 143


Evolutivit
e : cas agence de voyages
Des exemples devolution
On souhaite garder memoire du mode dinscription avec la forte
evolution du Web.
On souhaite offrir la possibilite aux clients de poser des options sur
des voyages.
On souhaite memoriser les transports associes `a un voyage.
On souhaite integrer un nouveau voyagiste qui g`ere des voyages `a la
carte, cest-`a-dire o`
u le client choisit des prestations : avion,
transferts, hotels.

Implications de levolution dun schema


Une migration des donnees en accord avec le nouveau schema
(integration de donnees)
Une reecriture de toutes les applications (requetes, programmes)
affectees par cette evolution.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

104 / 143

Efficacite et analyse : cas agence de voyages


Des exemples de requete decisionnelle
Donner le nombre voyages par destination sur tous les mois de 2013
Donner le CA par voyagiste sur les 5 derni`eres annees
Comparer le nombre de voyages par region de client et mode
dinscription au voyage.

Constatation liees `a ces besoins


On peut repondre `a ces requetes mais
Ces requetes peuvent etre complexes `a ecrire et sont peu lisibles pour
un utilisateur
elles demandent du temps de calcul et peuvent nuire au bon
fonctionnement du syst`eme operationnel

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

105 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

106 / 143

mod`ele relationnel et mod`ele en etoile


Mod`ele relationnel
Assurer lintegrite des donnees dans un contexte multi-utilisateurs et
dinformatique operationnelle : gerer les clients, les inscriptions, les
voyages et les circuits.
mod`ele base sur tables (pour les entites) et jointures (pour les
associations) avec la notion de forme normale

Mod`ele en etoile
Permettre deffectuer de facon efficace des analyses pour produire des
rapports en vue de la prise de decision
mod`ele base sur la notion de faits et dimensions o`
u un fait est toute
quantite quon souhaite analyser et une dimension est un axe
danalyse

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

107 / 143

Mod`ele en etoile : le cas voyage


Faits et dimensions
fait : une inscription `a un voyage avec son prix
dimension : temporelle (toujours), geographique, client, vendeur, type
de voyage.

Exemple de mod`ele
FAITVOYAGE(refjour, reflieu, refclient, refvendeur, refvoyage,
prixvoyage)
JOURS(numjour, nomjour, debutWE ?, debutvacances ?, ...)
LIEUX(numlieu, nomlieu, typeclimat, pays, continent,
nomregiontouristique, ...)
CLIENTS(numclient, nom, prenom, adresse, codepostal, ...)
VENDEURS(numvendeur, nomvendeur, prenomvendeur, agence)
VOYAGES(numvoyage, intitule, duree, numcatalogue, nomvoyagiste,
typevoyage, niveauconfort, gammeprix, ...)
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

108 / 143

Mod`ele en etoile et informatique decisionnelle

Necessite lintegration des donnees du mod`ele relationnel (et


dautres) avec des outils dETL (Extraction Treatment Loading)
vers des magasins de donnees (datamart) inclus dans des entrepots de
donnees (datawarehouse)
avec des suites logicielles adaptees et
des outils pour la production de rapports : documents contenant des
analyses croisees souvent avec interactions possibles (drill-down et
drill-up) bases sur des requetes en general ecrites en SQL et
des outils de fouille de donnees (classification ou clustering,
classification supervisee).

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

109 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

110 / 143

Nouveaux besoins en gestion de donnees

Evolution
des donnees
Apparition de tr`es grandes plate-formes autour du Web : recherche
dinformation, reseaux sociaux, bases de documents, twitter, ...
Volume considerable de donnees liees au Web, `a la memorisation de
documents (textes, rapports, images, videos, ...) et aux capteurs
(compteurs intelligents, telesurveillance, ...)
Donnees evolutives sans structure connue `a lavance

Evolution
des besoins en gestion de donnees
Necessite de repartir les donnees pour maintenir les performances
malgre la masse des donnees et
necessite de gerer des donnees heterog`enes et evolutives.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

111 / 143

Nouvelles solutions
Le constat et les solutions
Les SGBDR ne sont pas adaptes en terme de performance,
devolutivite et de flexibilite pour le traitement de donnees evolutives
`a grande echelle dans un contexte distribue.
Do`
u lappartition de nouveaux paradigmes de gestion de donnees, en
particulier NoSQL Not only SQL, mais aussi NewSQL entre autres.

Plan du cours
1

parenth`ese sur les collections (cle,valeur)

gestion de donnees distribuees (theor`eme CAP)

calculs sur des donnees distribuees (Map Reduce)

les mod`eles de donnees NoSQL

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

112 / 143

Collection (cle,valeur)
Definition
est une collection constituee de paires (cle,valeur) telles que chaque
cle apparat au plus une fois dans la collection,
aussi nommee associative array, dictionary, collection, (key, value)
pairs, tableaux associatifs, dictionnaires, ...

exemples
cle = numero du client, valeur = informations sur le client dans la
table des clients
cle = nom+prenom+email, valeur = informations sur un membre
dun reseau social
cle = titre dun morceau de musique, valeur = nombre decoutes et
descriptions des derni`eres ecoutes

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

113 / 143

Operations et implantation
Operations
lookup : trouver la valeur associee `a une cle
add : ajouter une paire
remove : retirer une paire
reassign : modifier la valeur dune paire

Implantation
Les operations, en particulier le lookup, doivent etre efficaces
une liste pour une petite collection, un tableau pour une collection
avec des cles enti`eres en nombre raisonnable,
le plus souvent un tableau et une fonction de hachage,
mais aussi une repartition des valeurs sur des machines pour de tr`es
grandes collections.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

114 / 143

Introduction aux tables de hachage


Hash table et hash function - definition ideale
Une table de hachage est constituee dun tableau indexe par des entiers
contenant les valeurs et dune fonction de hachage qui `a chaque cle associe
lindice entier o`
u se trouve la valeur correspondante dans le tableau.

Exercice
Que peut etre une fonction de hachage sur les noms et prenoms de
client ? Que peut-il se produire si on ajoute de nouveaux elements ?
Pensez-vous pouvoir eviter les conflits ?
Quel est le temps dacc`es (lookup) `a une valeur ? Comparer `a une
recherche lineaire et dichotomique.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

115 / 143

Tables de hachage
Hash table et hash function
Une table de hachage est constituee dun tableau indexe par des
entiers contenant les valeurs et dune fonction de hachage qui `a
chaque cle associe lentier o`
u peut etre trouvee rapidement la valeur
correspondante `a la cle.
syst`emes eprouves et efficaces avec gestion des ajouts, suppressions et
conflits assurant un lookup en temps constant car les valeurs
correspondant `a une meme valeur dindex sont en nombre borne par
une constante.
Les techniques ont ete etendues pour gerer la repartition des donnees
sur plusieurs machines dans des reseaux.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

116 / 143

Gestion de donnees distribuees


Syst`eme distribue
syst`eme logiciel qui permet de coordonner de nombreuses machines
souvent dans un meme reseau local (LAN)
communiquant par lechange de messages
avec des machines peu specialisees pouvant etre retirees (pannes) ou
ajoutees (besoins supplementaires en capacite)

pour les donnees distribuees


syst`eme de gestion de donnees distribuees est un cas particulier de
syst`eme distribue
pour assurer des acc`es efficaces avec des volumes de donnees tr`es
importants
tout en assurant lacc`es meme en cas dindisponibilite de machines
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

117 / 143

Exemple des data centers


Data center
est decoupe en racks (machines avec liaison reseau rapide 1Go/sec),
eux-memes interconnectes par des routeurs (switches) avec liaison `a
100 Mo/sec.
Les data centers peuvent etre connectes (2-3 Mo/sec)
Exemple : 1 data center de Google : environ 125 racks, 1 rack = environ
40 machines, soit environ 5000 serveurs. On estime `a environ 200 data
centers soit un million de serveurs pour Google.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

118 / 143

Deux strategies de gestion de donnees distribuees


Distribution des traitements
Les programmes de traitement sont repartis sur les machines,
on envoie les donnees sur les machines qui realisent les traitements
Cest un scenario de type workflow (chanes de traitement), par exemple
avec des Web services.

Distribution des donnees


Les donnees sont reparties sur les machines,
on envoie les programmes vers les machines pour traiter les donnees
Cest le scenario pour les masses de donnees reparties. En effet, il est plus
efficace dechanger des programmes (plus courts) quand les donnees sont
tr`es volumineuses. Pour NoSQL, ceci est realise avec le paradigme Map
Reduce presente ci-apr`es.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

119 / 143

Proprietes des syst`emes de gestion de donnees distribuees


Consistency (coherence) : tous les noeuds du syst`eme voient
exactement les memes donnees au meme moment.
Availability (disponibilite) : la perte dun noeud du syst`eme
nempeche pas le syst`eme de fonctionner.
Partition Tolerance : le syst`eme continue de fonctionner en cas de
rupture de communication entre deux noeuds.

Exercice sur distribution simpliste


Discuter les 3 proprietes pour une base de users repartie comme suit
toute la base sur un seul noeud : A-Z,
la base repartie sur 2 noeuds : A-L ; M-Z,
la base dupliquee sur 2 noeuds : A-Z, A-Z.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

120 / 143

Theor`eme CAP
Dans un syst`eme de gestion de donnees distribuees, il est impossible
dassurer les trois proprietes C(onsistency), A(vailability) et P(artition
Tolerance) en meme temps

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

121 / 143

Distribution pour les SGBDR et les bases NoSQL


Un SGBD distribue doit toujours assurer la Partition Tolerance donc on
a deux types principaux de SGBD distribue :

SGBDR
choisit dassurer les proprietes C(onsistency) + (P)artition Tolerance
en verifiant les proprietes ACID (Atomicite, Coherence, Isolation et
Durabilite) en raison des besoins des BDs transactionnelles,
ceci au detriment de lefficacite et avec des schemas peu evolutifs

Bases NoSQL
choisit dassurer les proprietes A(vailability) + (P)artition Tolerance,
pour assurer des performances dacc`es `a des masses de donnees,
ceci au detriment de la coherence des donnees (pas de gestion des
transactions) et avec des schemas absents ou evolutifs.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

122 / 143

Principes des bases NoSQL


Bases NoSQL
pas de schema fige,
on privilegie lecture `a ecriture et pas de gestion des transactions,
pas de langage dinterrogation standard mais ecrire des programmes
adaptes aux donnees.

Bases NoSQL et partitionnement


Assurer les proprietes A(vailability) + (P)artition Tolerance,
forte distribution des donnees avec des techniques de partitionnement
sophistiquees (sharding, consistent hashing, ...)
et un paradigme de calcul parall`ele adapte aux masses de donnees
distribuees : Map reduce

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

123 / 143

Map Reduce
est un
paradigme de calcul distribue pour traiter des masses de donnees,
par distribution des traitements sur les serveurs de donnees.
Il a ete concu par Google mais est base sur des mod`eles bien etudies
de programmation parall`ele.

Caracteristiques
permet de repartir la charge sur de nombreux serveurs, augmenter le
nombre de serveurs augmente la rapidite de traitement,
abstrait linfrastructure materielle pour le programmeur en traitant le
cluster, la repartition de la charge, la distribution des donnees, la
tolerance aux pannes, ...,
est disponible dans de nombreux environnements de programmation.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

124 / 143

Map Reduce
Programmation
Le travail du programmeur pour un calcul (un programme complexe peut
necessiter plusieurs calculs) se limite `a lecriture de deux fonctions
Map : fait des calculs elementaires sur des paires (cle,valeur) et
retourne une liste de resultats intermediaires,
Reduce : combine les listes de resultats intermediaires en une liste de
resultats finaux.

exemple en recherche dinformation


Le score du cel`ebre moteur de recherche dinformation Google
contient une composante basee sur la frequence dapparition des mots
dans les documents
Il faut donc etre capable, en particulier, de calculer le nombre
dapparitions des mots dans lensemble des documents du Web ! ! !
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

125 / 143

Map Reduce par lexemple


Fonction Map de calcul du nombre doccurences
entr
ee : identifiant dun document, contenu dun document
sortie : liste des mots avec leur nombre doccurence

Que se passe-t-il sur un noeud Map ?


On produit une liste de la forme ((base : 2), ..., (reparti : 3), ..., (xml : 1))
pour chacun des documents du noeud.

et apr`es ?
Ces listes recues des differents noeuds sont regroupees et triees par mot
pour produire des listes : (base, 1, 2, 1, 2, ...), ..., (reparti, 1, 1, 3, ...), ...

et enfin la fonction Reduce


entr
ee : mot, liste des nombres doccurences du mot dans les documents
sortie : liste des mots avec leur nombre doccurence total
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

126 / 143

Principes generaux de Map Reduce


Fonctionnement
la distribution des programmes Map et des donnees est gere par
lenvironnement, les noeuds executent les Map,
lenvironnement g`ere le groupement, le tri, la distribution des listes
resultats et des programmes Reduce, les noeuds executent les
programmes Reduce
lenvironnement g`ere la collecte des resultats des Reduce.
Tout est gere avec des syst`emes (cle,valeur) repartis

Applications du paradigme
les calculs de score en recherche dinformation,
les calculs de r`egles dassociation (panier de la menag`ere) pour les
grands jeux de transactions
la detection de spam, les reseaux sociaux, la fouille du web, ...
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

127 / 143

Plan
1

Syst`emes dinformation

Bases de donnees relationnelles


Notions fondamentales
Calcul relationnel et optimisation de requetes

Complements sur les BDs relationnelles


SQL- Le langage de definition des donnees
archhitecture BDR les utilisateurs, les droits, les vues
SQL- gerer la concurrence

Autres mod`eles de donnees


Decisionnel et mod`ele en etoile
Big Data et bases NoSQL
Mod`eles NoSQL de donnees

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

128 / 143

Mod`eles NoSQL de donnees

Quatre mod`eles principaux


Dans lordre de la presentation dans ce cours :
bases cle-valeur
bases document
bases graphe
bases colonne

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

129 / 143

Principes des bases cle-valeur


Definition
chaque objet de la base est identifie par une cle unique. Cest le seul
moyen dacc`es `a lobjet
la structure de lobjet est libre. Les traitements sur lobjet sont laisses
`a la charge du programmeur

Les 4 operations CRUD des bases NoSQL cle-valeur


Create : creer une paire, create(cle,valeur)
Read : lire une valeur `a partir de la cle, read(cle)
Update : met `a jour une valeur `a partir de la cle, update(cle,valeur)
Delete : supprime une paire `a partir de la cle, delete(cle)

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

130 / 143

Les bases cle-valeur


Utilisations et implantations
masses de donnees avec des besoins de requetage simple comme les
sessions Web et les fichiers de log, les profils utilisateurs, les donnees
de capteurs, ...
bases : Amazon Dynamo, Riak, Redis, Voldemort

Critiques
mod`ele simple, bonne mise `a lechelle, disponibilite, evolutivite des
valeurs (sous reserve dadapter les programmes de traitement),
mod`ele trop simple, interrogation seulement sur la cle, la complexite
eventuelle des valeurs doit etre geree par des programmes et donc une
couche applicative complexe si les valeurs sont trop complexes.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

131 / 143

Principes des bases document

Definition
Elles sont basees sur les bases cle-valeur,
la valeur est un document semi-structure hierarchique de type JSON
ou XML, i.e. un document a une structure arborescente sans schema
fige

Les operations des bases documents


Les operations CRUD du mod`ele cle-valeur,
augmentees de capacites de requetage sur le contenu des documents
et de vues.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

132 / 143

Exemple de document semi-structure XML

<?xml version="1.0" encoding="ISO-8859-1"?>


<BIBLIO SUBJECT="XML">
<BOOK ISBN="9782212090819" LANG="fr" SUBJECT="applications
<AUTHOR>
<FIRSTNAME>Jean-Christophe</FIRSTNAME>
<LASTNAME>Bernadac</LASTNAME> </AUTHOR>
<AUTHOR>
<FIRSTNAME>Fran
cois</FIRSTNAME>
<LASTNAME>Knab</LASTNAME> </AUTHOR>
<TITLE>Construire une application XML</TITLE>
<PUBLISHER>
<NAME>Eyrolles</NAME>
<PLACE>Paris</PLACE> </PUBLISHER>
<DATEPUB>1999</DATEPUB> </BOOK>
<BOOK ISBN="9782212090529" LANG="fr" SUBJECT="g
en
eral">
<AUTHOR>
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

133 / 143

Exemple de document semi-structure JSON


{

"data": [
{ "id": "X999_Y999",
"from": {"name": "Tom Brady", "id": "X12"},
"message": "Looking forward to 2010!",
"actions": [
{ "name": "Comment",
"link": "http://www.facebook.com/X999/posts/Y99
},
{ "name": "Like",
"link": "http://www.facebook.com/X999/posts/Y99
}
],
"type": "status",
"created_time": "2010-08-02T21:27:44+0000",
"updated_time": "2010-08-02T21:27:44+0000"
},
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

134 / 143

Les bases document


Utilisations et implantations
les outils de gestion de contenu (CMS), catalogues de produits,
analyse du Web, ...
bases : CouchDB, RavenDB, MongoDB, Terrastore

Critiques
mod`ele simple augmente de la richesse des documents
semi-structures, bonne mise `a lechelle, expressivite des requetes,
efficace pour les interrogations par cle mais peut etre limite pour les
interrogations par le contenu des documents, limite aux donnees
hierarchiques.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

135 / 143

Principes des bases graphe


Definition
Elles permettent de manipuler des donnees de triplets de la forme
(sujet, predicat objet) representables sous forme de graphes orientes,
on utilise du (cle,valeur) pour acceder rapidement dun objet aux
couples (predicat, sujet) qui le concerne (aux arcs sortant du noeud),
dun predicat aux couples (objet, sujet), dun sujet aux couples (objet,
predicat).

Les operations des bases graphes


Le langage SPARQL est un langage avec une syntaxe inspiree de SQL
qui permet linterrogation en utilisant des variables dans des
expressions de triplets ou de chemins
Exemple : SELECT ?vil ?pop WHERE ?vil rdf :type d :Settlement
. ?vil d :mayor ?o. ?vil d :country :France . ?vil d :populationTotal ?pop
. FILTER( ?pop > 100 000)
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

136 / 143

Exemple de graphe de relations sociales

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

137 / 143

vu comme des triplets (s,p,o)

<http://semprog.com/people/colin> foaf:name "Colin Evans".


<http://semprog.com/people/colin> rdf:type foaf:Person.
<http://semprog.com/people/colin> foaf:mbox <mailto:colin@semp
<http://kiwitobes.com/toby.rdf#ts> foaf:homepage <http://kiwit
<http://kiwitobes.com/toby.rdf#ts> foaf:nick "kiwitobes".
<http://kiwitobes.com/toby.rdf#ts> rdf:type foaf:Person.
<http://kiwitobes.com/toby.rdf#ts> foaf:knows <http://semprog.
<http://kiwitobes.com/toby.rdf#ts> foaf:knows _:x3.
<http://kiwitobes.com/toby.rdf#ts> foaf:interest <http://sempr
<http://kiwitobes.com/toby.rdf#ts> foaf:mbox <mailto:toby@sega
<http://kiwitobes.com/toby.rdf#ts> foaf:name "Toby Segaran".
<http://semprog.com> rdf:label "Semantic Programming".
<http://semprog.com> rdf:type foaf:Document.
_:x3 foaf:name "Jamie Taylor".
_:x3 rdf:type foaf:Person.
_:x3 foaf:mbox <mailto:jamie@semprog.com>.
R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

138 / 143

Les bases graphe


Utilisations et implantations
les reseaux sociaux, le Web semantique (knowledge graph de Google),
les open data, les donnees cartographiques, ...
bases : Neo4J, OrientDB, ...

Critiques
mod`ele riche et evolutif (ajout de sujets, dobjets et de predicats) bien
adapte aux situations o`
uil faut modeliser beaucoup de relations, un
langage dinterrogation generaliste (SPARQL) et des langages
specialises
repartition des donnees peut etre problematique pour des masses de
triplets.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

139 / 143

Principes des bases colonne


Definition
Les donnees sont stockees en colonne,
une colonne est une entite de base representant un champ de donnee,
chaque colonne est definie par un couple (cle,valeur),
les colonnes peuvent etre groupees en supercolonnes et en famille de
colonnes, les colonnes sont regroupees par ligne
chaque ligne est identifiee par un identifiant unique et un nom unique

Les operations des bases graphes


les requetes doivent etre predefinies en fonction de lorganisation en
colonnes (et supercolonnes et familles de colonnes) choisie.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

140 / 143

Exemple de base colonnes

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

141 / 143

Les bases colonne


Utilisations et implantations
la journalisation devenements, les analyses de client`ele et la
recommandation, ...
bases : HBase, Cassandra, SimpleDB, ...

Critiques
mod`ele efficace avec indexation sur les colonnes en particulier pour les
requetes de calcul de type OLAP, supporte des donnees tabulaires `a
schema variable,
ne supporte pas les donnees structurees complexes, efficaces pour des
requetes temps reel connues `a lavance, la modification de structures
en colonnes necessite de la maintenance

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

142 / 143

Conclusion sur les bases NoSQL


Leur interet
linterrogation de masses de donnees `a structure heterog`ene et
evolutive,
trois mod`eles (cle,valeur), colonne et document avec des structures
de donnees simples, tabulaires et hierarchiques,
un mod`ele graphe pour les donnees fortement interdependantes.

Les principes sous-jacents


la repartition des donnees,
lutilisation de collections (cle,valeur) reparties,
lutilisation du paradigme Map reduce pour les calculs de requetes.

R
emi Gilleron (Mostrare)

Informatique M1 MIASHS

septembre 2013

143 / 143

Vous aimerez peut-être aussi