Académique Documents
Professionnel Documents
Culture Documents
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
3 / 143
Schema general
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
4 / 143
Informatique operationnelle 70
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
5 / 143
Informatique decisionnelle 90
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
6 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
7 / 143
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
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
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
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
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
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
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
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
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
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
28 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
29 / 143
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)
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
39 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
40 / 143
Informatique M1 MIASHS
septembre 2013
41 / 143
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
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 !
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
44 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
45 / 143
Revisiter la normalisation
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
50 / 143
BD relationnelle
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
52 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
53 / 143
Le LDD
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
54 / 143
La creation de tables
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
57 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
58 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
59 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
60 / 143
definir un domaine
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
61 / 143
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
63 / 143
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
65 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
66 / 143
supprimer un client ou
modifier un numero de client
Que faire pour les lignes qui faisaient reference `a cette valeur :
I
I
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
67 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
68 / 143
NO ACTION : interdire
CASCADE : autoriser et propager
SET NULL : autoriser et mettre `a NULL
SET DEFAULT : autoriser et mettre `a valeur par defaut
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
69 / 143
autres contraintes
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
70 / 143
assertions et triggers
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
71 / 143
exemple de trigger
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
72 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
73 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
74 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
75 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
76 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
77 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
78 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
79 / 143
Plan
1
Syst`emes dinformation
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
80 / 143
Informatique M1 MIASHS
septembre 2013
81 / 143
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
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
Informatique M1 MIASHS
septembre 2013
84 / 143
Informatique M1 MIASHS
septembre 2013
85 / 143
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
90 / 143
Un point detape
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
91 / 143
Plan
1
Syst`emes dinformation
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.
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
Informatique M1 MIASHS
septembre 2013
94 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
95 / 143
Informatique M1 MIASHS
septembre 2013
96 / 143
La lecture inconsistante
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
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
101 / 143
Plan
1
Syst`emes dinformation
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
102 / 143
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.
Informatique M1 MIASHS
septembre 2013
104 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
105 / 143
Plan
1
Syst`emes dinformation
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
106 / 143
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
109 / 143
Plan
1
Syst`emes dinformation
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
110 / 143
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
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
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
Informatique M1 MIASHS
septembre 2013
117 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
118 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
119 / 143
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
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
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.
Informatique M1 MIASHS
septembre 2013
125 / 143
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, ...), ...
Informatique M1 MIASHS
septembre 2013
126 / 143
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
128 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
129 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
130 / 143
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
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
132 / 143
Informatique M1 MIASHS
septembre 2013
133 / 143
"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
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
Informatique M1 MIASHS
septembre 2013
136 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
137 / 143
Informatique M1 MIASHS
septembre 2013
138 / 143
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
140 / 143
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
141 / 143
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
R
emi Gilleron (Mostrare)
Informatique M1 MIASHS
septembre 2013
143 / 143