1 rappels [mode de compatibilité] - inriapucheral/enseignements_fichiers/cosy...module bases de...
TRANSCRIPT
Module
Bases de Données Avancées
MASTER COSY
1
Année 2014/2015
P. Pucheral et L. Yeh
Module Bases de données Avancées
Rappels des concepts de base et perspectives
1. Architectures internes des gestionnaires de données(concepts, mise en œuvre dans les peta-bases et pico-bases)
− Modèles de stockage et d’indexation
− Evaluation et optimisation de requêtes
2
− Evaluation et optimisation de requêtes
− Modèles et protocoles transactionnels
− Cohérence et réplication
2. Données semi-structurées et XML− XML Schema, XQuery et optimisation
− Indexation XML
− Médiation XML
− Systèmes Pair-à-Pair
Eléments de bibliographie (1 ère partie)
• Présents à la bibliothèque UVSQ
− Gardarin G., "Bases de données", Ed. Eyrolles, 5ème édition, 2003.
− Ozsu, T., Valduriez P., “Principles of Distributed Database Systems”, Prentice-Hall,
2nd edition, 1999. Nouvelle édition 2011 (Springer)
3
− J. Besancenot, M. Cart, J. Ferrié, R. Guerraoui, P. Pucheral, B. Traverson, "Les
systèmes transactionnels : concepts, normes et produits", Ed. Hermès, 1997.
• Disponible sur le Web
− Fundamentals of Database Systems, 6th Ed, Elmasri and Navathe, Addison Wesley,
2011
Rappels des concepts de base en 1 heure chrono
(ou tout ce que vous n’auriez pas dû oublier pendant les vacances ...)
1. Objectifs des SGBD
2. Principales fonctions d’un SGBD2. Principales fonctions d’un SGBD
3. Architecture fonctionnelle de référence
4. Le modèle relationnel et SQL
5. Architectures physiques de SGBD
6. Orientations de recherche
Un système d’information sans SGBD (1)Un système d’information sans SGBD (1)
DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx
DupondTurlututusqjskSymptom: yyyyAnalyses xxxx
TurlututudhjsdAnalyses :xx C
hiru
Sof
tCom
ptaSoft
ChirurgieComptabilité
Plusieurs applications�plusieurs formats et langages�difficulté de maintenance
�manque d’interopérabilité
5
DuipontTurlututu : sq
SymptomyyyyAnalysesxxxx
Turlututudhjsd
Duhpon
Symptomes : yyAnalyses : xxxx
Symptomes : yy
ConsultS
oft Psy
chia
Sof
t
PsychiatrieConsultations
Redondance des données �incohérence
Pas de facilité d’interrogation �toute question doit être prévue et
programmée
�coût de développement élevé
�redondance de code
�difficulté d’évolution
Un système d’information sans SGBD (2)Un système d’information sans SGBD (2)
DupontSymptomes : yTurlututu : sqjSymptomes : yTurlututu : sddAnalyses : xxx
DupondTurlututusqjskSymptom: yyyyAnalyses xxxx
TurlututudhjsdAnalyses :xx C
hiru
Sof
tCom
ptaSoft
ChirurgieComptabilité
Gestion simpliste des droits�violation de la confidentialité
Gestion simpliste du
6
DuipontTurlututu : sq
SymptomyyyyAnalysesxxxx
Turlututudhjsd
Duhpon
Symptomes : yyAnalyses : xxxx
Symptomes : yy
ConsultS
oft Psy
chia
Sof
t
PsychiatrieConsultations
parallélisme�blocage du système ou bien incohérence en cas d ’accès simultanés
Pas de tolérance aux fautes�incohérence en cas de panne
L’approche Bases de données
2- Indépendance Physique
10 - Standards
1- Description canonique
7
BD8 - Concurrence
d’accès
9 - Tolérance aux pannes
7 - Confidentialité des données
3- Indépendance Logique
6 - Intégrité des données
5 - Optimisation de requêtes
4 – Langage de manipulation
O1: Description canonique des données
� Description cohérente, unique et centralisée des donnéesmanipulées par l’ensemble des applications constituant lesystème d’information.
— Perception globale du système d'information=> augmentation du niveau d’informatisation
8
=> augmentation du niveau d’informatisation
=> nouveaux traitements (aide à la décision, analyse de données, …)
— Factorisation de la description des données et de leurcomportement (contraintes d’intégrité …)
— Elimination de la redondance=> redondance coûteuse en place et source d’incohérence
=> redondance système reste nécessaire pour : fiabilité, performance de consultation, disponibilité en environnement réparti ou mobile
Réel
Modèle conceptuel
•Indépendant du modèle de données
•Indépendant du
Modèle conceptuel
9
conceptuel •Indépendant du SGBD
Modèle logique
•Dépendant du modèle de données
•Indépendant du SGBD
Codasyl Relationnel Objet XML
Modèle Physique
•Dépendant du modèle de données
•Dépendant du SGBD
• Organisation physique des données
• Structures de stockage des données
• Structures accélératrices (index)
Médecin effectue Visite
Modélisation Relationnelle
DocteursId-D Nom Prénom
1 Dupont Pierre
2 Durand Paul
3 Masse Jean
…. …….. ……
VisitesId-D Id-P Id-V Date Prix
1 2 1 15 juin 250
1 1 2 12 août 180
PrescriptionsId-V Ligne Id-M Posologie
1 1 12 1 par jour
1 2 5 10 gouttes
2 1 8 2 par jour
2 2 12 1 par jour
2 3 3 2 gouttes
1010
2 2 3 13 juillet 350
2 3 4 1 mars 250
PatientsId-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
4 Perry Paule Valenton
…. ……. ……. …….
2 3 3 2 gouttes
…. …. …. …………
MédicamentsId-M Nom Description
1 Aspegic 1000 ……………………………..
2 Fluisédal ……………………………..
3 Mucomyst ……………………………..
…. …….. ……………………………..
O2: indépendance physique
� Indépendance des programmes d'applications vis à vis desstructures de stockage des fichiers.
— Description logique des données, en termes d'entités etd’association, donnant une vision conceptuelle desdonnées (séparation claire du monde réel et du monde
11
données (séparation claire du monde réel et du mondeinformatique)
— Possibilité de modifier les structures de stockage (fichiers,index, chemins d'accès, …) sans modifier les programmes;
— Ecriture des applications par des non-spécialistes des fichiers et des structures de stockage;
— Meilleure portabilité des applications et indépendance vis à vis du matériel.
Réel
Modèle conceptuel
•Indépendant du modèle de données
•Indépendant du
Modèle physique
12
conceptuel •Indépendant du SGBD
Modèle logique
•Dépendant du modèle de données
•Indépendant du SGBD
Codasyl Relationnel Objet XML
Modèle Physique
•Dépendant du modèle de données
•Dépendant du SGBD
• Organisation physique des données
• Structures de stockage des données
• Structures accélératrices (index)
Médecin effectue Visite
O3: indépendance logique
� Possibilité de modifier la structure conceptuelle globale dela base sans modifier les vues particulières de chaquegroupe d'utilisateurs.
— Chaque application ou groupe d'applications désire utiliserses propres structures logiques de données en fonction de
13
ses propres structures logiques de données en fonction deses propres besoins;
— Chaque application établit une description des donnéesqu'elle utilise:
• Les données décrites restent virtuelles (vues);
• Le SGBD se charge de leur faire correspondre desdonnées réelles.
O3 – Exemples d’indépendance Logique
Les applications peuvent définir des vues logiques de la BD
Gestion des médicaments Cabinet du Dr. Masse
Visites
2
1
Id -D
1 mars
15 juin
Date
250
250
Prix
4
1
Id -V
3
2
Id -P
Visites
2
1
Id -D
1 mars
15 juin
Date
250
250
Prix
4
1
Id -V
3
2
Id -P
PatientsPatients
…………….….….
5
12
Id -M
10 gouttes
1 par jour
Posologie
2
1
Ligne
1
1
Id -V
Prescription
…………….….….
5
12
Id -M
10 gouttes
1 par jour
Posologie
2
1
Ligne
1
1
Id -V
PrescriptionNombre_Médicaments
Id-M Nom Description Nombre
1 Aspegic 1000 …………………………….. 30
2 Fluisédal …………………………….. 20
14
… …… … ..… .
PrénomNomId-D
JeanM asse3
PaulDurand2
PierreDupont1
Docteu r
… …… … ..… .
PrénomNomId-D
JeanM asse3
PaulDurand2
PierreDupont1
Docteu r
V isites
2
2
1
1
Id-D
1 m ars
13 ju illet
12 août
15 ju in
Date
250
350
180
250
Pr ix
4
3
2
1
Id -V
3
2
1
2
Id -P
V isites
2
2
1
1
Id-D
1 m ars
13 ju illet
12 août
15 ju in
Date
250
350
180
250
Pr ix
4
3
2
1
Id -V
3
2
1
2
Id -P
… … .… … .… .
PaulePerry4
PrénomNomId-P
JohnDoe3
ZoeTroger2
JacquesLebeau1
Patients
… … .… … .… .
PaulePerry4
PrénomNomId-P
JohnDoe3
ZoeTroger2
JacquesLebeau1
Patients
… … … …… .… .… .
2 gouttes332
12
8
5
12
Id -M
1 par jour
2 par jour
10 gouttes
1 par jour
Posologie
2
1
2
1
L igne
2
2
1
1
Id-V
Prescription
… … … …… .… .… .
2 gouttes332
12
8
5
12
Id -M
1 par jour
2 par jour
10 gouttes
1 par jour
Posologie
2
1
2
1
L igne
2
2
1
1
Id-V
Prescription
… … … … … … … … … … … ..… … ..… .
Descript ionNomId-M
… … … … … … … … … … … ..M ucom yst3
… … … … … … … … … … … ..F lu isédal2
… … … … … … … … … … … ..Aspegic 10001
M édicament
… … … … … … … … … … … ..… … ..… .
Descript ionNomId-M
… … … … … … … … … … … ..M ucom yst3
… … … … … … … … … … … ..F lu isédal2
… … … … … … … … … … … ..Aspegic 10001
M édicament
…….…….….
PrénomNomId -P
ZoeTroger2
JacquesLebeau1
Patients
…….…….….
PrénomNomId -P
ZoeTroger2
JacquesLebeau1
Patients
……………………………..……..….
DescriptionNomId -M
……………………………..Mucomyst3
……………………………..Fluisédal2
……………………………..Aspegic 10001
Médicament
……………………………..……..….
DescriptionNomId -M
……………………………..Mucomyst3
……………………………..Fluisédal2
……………………………..Aspegic 10001
Médicament3 Mucomyst …………………………….. 230
…. …….. …………………………….. …..
O4: Langage de manipulation
• Les non-informaticiens doivent pouvoir manipuler lesdonnées à partir de la seule connaissance du monde réelet de la modélisation qui en est faite
• Mais les non-informaticiens font-ils des requêtes SQL ?
• La manipulation se fait via un langage déclaratif• La question déclare l’objectif sans décrire la méthode
15
• La question déclare l’objectif sans décrire la méthode
• Le langage suit une norme commune à tous les SGBD
• SQL : Structured Query Langage
• Exemple de requête SQLRetrouver le nom et le n° de téléphone de tous les pédiatres
Select Nom, TelFrom DocteurWhere Specialite = ‘Pédiatre’
O5: Optimisation de requêtes
• Traduction automatique des requêtes déclaratives en programmes procéduraux (composition d’opérateurs élémentaires)
• Optimisation automatique de ces programmes− Exploitation des propriétés des opérateurs élémentaires
16
− Exploitation des propriétés des opérateurs élémentaires − Gestion centralisée des chemins d'accès (index, hachages, …)
• Economie de l'astuce des programmeurs− milliers d'heures d'écriture et de maintenance de logiciels.
• Course aux performances mesurées en transactions parseconde (TPS) sur des "benchmark" standardisés (TPC).
O6: Intégrité sémantique des données
• Objectif : Détection automatique des mises à jour erronées
• Contrôle sur les données élémentaires − Contrôle de types: Nom alphabétique
− Contrôle de valeurs: Salaire mensuel entre 1 et 10k€
17
Contrôle de valeurs: Salaire mensuel entre 1 et 10k€
• Contrôle sur les relations entre les données− Relations entre données élémentaires : Prix de vente > Prix d'achat
− Relations entre objets : Un électeur est inscrit sur une seule liste électorale
• Avantages− simplification du code des applications− sécurité renforcée par l'automatisation− mise en commun des contraintes
O7: Confidentialité des données
— Objectif : garantir la confidentialité de certaines informations et les protéger contre la dégradation
− Dossier médical, procédé de fabrication, salaire des employés ...
— Plusieurs niveaux :
18
— Plusieurs niveaux :− Authentification des usagers
− Privilèges d'accès aux objets de la base
− Chiffrement et hachage crytographique des données
— Usagers : utilisateurs, rôles
— Objets : objet réel ou virtuel, procédure ...
Confidentialité des données
Service des ressources humaines
Employés(intranet)
Public(internet)
5485
Poste
Jim
Prénom
Ricks
NomId-E
1
19
890
Masse
Salariale
Nombre
d’employés
4
160
380
120
230
Salaire
Paris
Chartres
Versailles
Paris
Ville
4049
5489
1254
5485
Poste
Joe
Zoe
Jack
Jim
Prénom
Doe
Lerich
Trock
Ricks
Nom
……….4
AdresseId-E
……….3
……….2
……….1
4049
5489
1254
Joe
Zoe
Jack
Doe
Lerich
Trock
4
3
2
O8: Accès concurrents aux données— Objectif : assurer l’Isolation des transaction, c.à.d que
différentes applications partageant les mêmes donnéesdoivent pouvoir s'ignorer et travailler de manièreasynchrone.
— Le SGBD garantit la sérialisabilité des accès: l'effet d'uneexécution simultanée de transactions doit être le mêmeque celui d'une exécution séquentielle.
20
que celui d'une exécution séquentielle.
< T1 || T2 …|| Tn > ≡≡≡≡ < T1; T2; … Tn >
— Les transactions exécutées en parallèle ne doivent pasentrer en conflit lecture-écriture ou écriture-écriture, afind’éviter :
• des pertes de mises à jour
• des introductions d’incohérence
• des lectures non reproductibles
O9: Tolérance aux pannes
— Le SGBD doit assurer la pérennité et la cohérence desdonnées en présence de pannes multiples:
− Transaction Failure : Contraintes d'intégrité, Annulation
− System Failure : Panne de courant, Crash serveur …
− Media Failure : Perte du disque
21
− Media Failure : Perte du disque
− Communication Failure : Défaillance du réseau
— Ceci implique l’Atomicité des transactions de mises à jourqui doivent être totalement exécutées ou pas du tout.
— Ceci implique également des mécanismes de repriseassurant la Durabilité des effets des transactions validées.
10 – Respect des standards
• L’approche bases de données est basée sur plusieurs standards
− Langage de manipulation (SQL1, SQL2, SQL3)
− Communication SQL CLI (ODBC / JDBC)
− Transactions (X/Open DTP, OSI-TP)
22
− Transactions (X/Open DTP, OSI-TP)
• Force des standards− Portabilité des applications
− Interopérabilité des systèmes
3. Architecture de référence
• De nombreuses architectures fonctionnelles ont été proposées
• Ces architectures dépendent souvent du modèle de données utilisé
23
• ANSI/X3/SPARC est une architecture de référence mais sa normalisation a échouée.
• L'architecture ANSI/X3/SPARC repose sur un concept fondamental: la distinction de 3 niveaux de schémas
ANSI/X3/SPARC : principes
Admin.Entreprise
Admin.BD
Admin.Application
Processeurde schémaConceptuel
Processeurde schéma
Interne
Processeurde schéma
ExterneDICTIONNAIRE
Constructionde la BD
24
Interne
TransformateurConceptuel
Interne
TransformateurExterne
Conceptuel
Programme
d’applicationSystème
d’E/S
Programmeur.d’application
Exploitationde la BD
Dictionnaire et Méta-base sont synonymes
Architecture fonctionnelle d'un SGBD
Analyse syntaxique Analyse sémantique Gestion des schémas
Modification de requêtes Contrôle d'intégrité Contrôle d'autorisation
Ordonnancement
META-BASE
ANALYSEUR
TRADUCTEUR
25
Ordonnancement Optimisation Elaboration d'un plan
Exécution du plan Méthodes d'accès Gestion de transactions
BD
OPTIMISEUR
EXECUTEUR
4. Le modèle relationnel
• Concepts descriptifs– Domaine : caractérise un ensemble de valeurs– Relation : sous-ensemble du produit cartésien d'une
liste de domaines– Tuple : ligne d'une relation–
26
–– Attribut : colonne d'une relation
• Exemple de relation (ou Table)
Tuple
Attribut variant sur le domaine Ville
Patients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
4 Perry Paule Valenton
…. ……. ……. …….
Base de données relationnelle
Docteurs
Id-D Nom Prénom
1 Dupont Pierre
2 Durand Paul
3 Masse Jean
…. …….. ……
Visites
Id-D Id-P Id-V Date Prix
1 2 1 15 juin 250
1 1 2 12 août 180
Prescriptions
Id-V Ligne Id-M Posologie
1 1 12 1 par jour
1 2 5 10 gouttes
2 1 8 2 par jour
2 2 12 1 par jour
27
2 2 3 13 juillet 350
2 3 4 1 mars 250
Patients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
4 Perry Paule Valenton
…. ……. ……. …….
2 3 3 2 gouttes
…. …. …. …………
Médicaments
Id-M Nom Description
1 Aspegic 1000 ……………………………..
2 Fluisédal ……………………………..
3 Mucomyst ……………………………..
…. …….. ……………………………..
Clé, clé étrangère et schéma
• Clé : groupe d'attributs minimum qui détermine un tuple unique dans une relation
PATIENTS (IdP, NOM, PRENOM, VILLE)
• Clé étrangère : groupe d'attributs apparaissant comme clé dans un autre
28
• Clé étrangère : groupe d'attributs apparaissant comme clé dans un autre relation
VISITES (IdV, IdD, IdP, DATE, PRIX)
VISITES.IdD référence DOCTEURS.IdDVISITES.IdP référence PATIENTS.IdP
Algèbre relationnelle
• UN ENSEMBLE D'OPERATIONS DE BASE EST FORMALISE− Restriction, Projection, Produit Cartésien, Union, Intersection,
Différence
29
• CES OPERATIONS PERMETTENT D'EXPRIMER TOUTES LES REQUETES SOUS FORME D'EXPRESSIONS ALGEBRIQUES
• ELLES SONT LA BASE DU LANGAGE SQL
Restriction
Patients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
Patients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
σσσσ
30
Patients de la ville de Paris, noté en algèbre:
σ Ville=‘Paris’ (Patients)
3 Doe John Paris
4 Perry Paule Valenton
3 Doe John Paris
4 Perry Paule Valenton
Projection
Patients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
ππππPatients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
31
3 Doe John Paris
4 Perry Paule Valenton
Nom et prénom des patients, noté en algèbre:
Π Nom, Prénom (Patients)
3 Doe John Paris
4 Perry Paule Valenton
JointurePatients
Id-P Nom Prénom Ville
1 Lebeau Jacques Paris
2 Troger Zoe Evry
3 Doe John Paris
4 Perry Paule Valenton
Visites
Id-D Id-P Id-V Date Prix
1 2 1 15 juin 250
1 1 2 12 août 180
2 2 3 13 juillet 350
2 3 4 1 mars 250
32
Id-P Nom Prénom Ville Id-D Id-P Id-V Date Prix
1 Lebeau Jacques Paris 1 1 2 12 août 180
2 Troger Zoe Evry 1 2 1 15 juin 250
2 Troger Zoe Evry 2 2 3 13 juillet 350
3 Doe John Paris 2 3 4 1 mars 250
Notation algébrique:
Patients Id-P=Id-P
Visites
Au fait, qu’appelle-t-on Jointure externe gauche (Left-Outer-Join) ?
Union, Intersection, Différence
• Relation X Relation --> Relation (notées: ∪, ∩∪, ∩∪, ∩∪, ∩ , -)
• OPERATIONS ENSEMBLISTES S'APPLIQUANT A DES RELATIONS DE MEME SCHEMA
33
• EXTENSION: Union externe (OUTER UNION)− s'applique à des relations de schémas différents
− on ramène les deux relations au même schéma en ajoutant des valeurs nulles
Exemple de plan d’exécution
Select Nom, Prénom
From Patients, Visites
Where Patients.Id-P = Visites.Id-P
and Patients.Ville = ’Paris’
ππππ
σσσσ
ππππ
ππππ
σσσσππππ
σσσσ
34
and Patients.Ville = ’Paris’
and Visites.Date = ’15 juin’ σσσσ
Patients Visites
σσσσ
Visites
σσσσ
Patients
Optimisation
5. Le langage SQL
Le langage SQL (Structured Query Language) comprend trois parties :
1. Le langage de définition de données (Tables, Vues, Droits, Intégrité)
35
Intégrité)
2. Le langage de manipulation de données (Sélections, Modifications, Insertions, Suppressions)
3. L'intégration aux langages de programmation
EXEMPLE DE BASE DE DONNEES
36
SELECT: forme générale
SELECT [DISTINCT | ALL ] { * | <value exp.> [, <value exp.>]...}
FROM relation [variable], relation [ variable]…
[WHERE <search condition>]
37
[GROUP BY <attribute> [,<attribute>]...]
[HAVING <search condition>]
[ORDER BY <attribute.>[.{ASC | DESC}] [,<attribute.>[.{ASC | DESC}] ]...]
Forme de la condition de recherche
<search condition> ::= [NOT]
<nom_colonne> θ constante <nom_colonne><nom_colonne> LIKE <modèle_de_chaîne>
<nom_colonne> IN <liste_de_valeurs>
<nom_colonne> θ (ALL ANY SOME) <liste_de_valeurs>EXISTS <liste_de_valeurs>
38
EXISTS <liste_de_valeurs>UNIQUE < liste_de_valeurs>
<nom_colonne> MATCH [UNIQUE ] <liste_de_valeurs><nom_colonne> BETWEEN constante AND constante
<search condition> AND OR <search condition>
avec
θ ::= < = > ≥ ≥ ≥ ≥ ≤ ≤ ≤ ≤ <><><><>
Remarque: <: <: <: <liste_de_valeurs> peut être dynamiquement déterminée par une requête
Exemples de requêtes
Liste des patients ayant un RDV avec le docteur ‘Du pont’ ���� NomPat
SELECT DISTINCT P.NomPat FROM PAT P, RDV R, DOC D WHERE P.NumPat = R.NumPat and R.NumDoc = D.NumDoc and D.NomDoc = ‘Dupont’;
Et celle-ci ?
SELECT P.NomPat FROM PAT P WHERE P.NumPat in
39
SELECT P.NomPat FROM PAT P WHERE P.NumPat in(SELECT R.NumPat FROM RDV R WHERE R.NumDoc in
(SELECT D.NumDoc FROM DOC WHERE D.NomDoc = ‘Dupont’));
Et celle-là ?
SELECT P.NomPat FROM PAT P WHERE EXISTS(SELECT * FROM RDV R WHERE P.NumPat = R.NumPat and EXISTS
(SELECT * FROM DOC D WHERE R.NumDoc=D.NumDoc and D.NomDoc = ‘Dupont’));
L’imbrication est un moyen de décomposer une requête complexe en sous-requêtes plus simples
Calculs d'agrégats
Les fonctions d’agrégation (Count, Sum, Avg, Min, Max) permettent de réaliser des calculs sur des ensembles de données
• Calcul de statistiques globaux− Nombre de patients : SELECT count(*) FROM PAT− Prix moyen des médicaments : SELECT avg(Prix) FROM MED
• Calcul de statistiques par groupe
40
• Calcul de statistiques par groupe− Nombre de patients par ville :SELECT VillePat, count(*) NbPatient FROM PAT GROUP BY VillePat
− Et celle-ci ?SELECT VillePat FROM PAT, RDV WHERE PAT.NumPat = RDV.NumPat and Motif = ‘mal de tête’ GROUP BY VillePat HAVING count( DISTINCT(NumPat)) > 10
Évaluation « sémantique » d’une requête SQL
1. FROM Réalise le produit cartésien des relations
2. WHERE Réalise restriction et jointures
3. GROUP BY
41
3. GROUP BY Constitue les partitions (e.g., tri sur l’intitulé du groupe)
4. HAVING Restreint aux partitions désirées
5. SELECT Réaliser les projections/calculs finaux
6. ORDER BY Trier les tuples résultat
XXX
XXX
YYY
ZZZ
XXX
XXX
YYY
ZZZ
AGG1
AGG2
AGG3
XXX
ZZZ
AGG1
AGG3
AGG1 ZZZ
AGG3 XXX
Beaucoup d’autres choses dans SQL
• Création de tables
• Contraintes d’intégrité
• Triggers
• Vues
•
42
• Contrôle d’accès
• Programmation SQL
• …
Architecture physique des SGBD
• Une floraison de vocabulaire et d’architectures− BD centralisée
− BD client/serveur
− BD 3-tiers
− BD répartie
43
− BD répartie
− BD hétérogène
− BD sur le Cloud
− …
Architecture centralisée
• Des terminaux clients passifs
• Un réseau
• Un serveur central− grande puissance (‘mainframe’)
− Maintient la base et les applications
Terminaux passifs
réseau
44
MainframeSGBD
Appli 1 Appli 2 Appli n
données
le minitel, mais aussi Google ☺Exemple d’instance de cette architecture?
Architecture client-serveur
Clients intelligents
Appli 1Appli 2
Appli n
• Des clients intelligents− Font tourner les applications
• Un réseau
• Un serveur de données− Maintient la base
45
serveur
SGBD
réseau
donnéescode
Client messagerieExemple d’instance de cette architecture?
Architecture 3-tiers
réseau
• Des clients− Concentrés sur la présentation
• Un réseau
• Un serveur d’application− Exécute le code applicatif
• Un serveur de données− Maintient la base
− Sur la même machine ou des machines différentes
Serveur
46
Serveurde données SGBD
donnéescode
Appli WebExemple d’instance de cette architecture?
Appli 1 Appli 2 Appli nServeur
d’application
Architecture répartie
Appli 1Appli 2
Appli n
• Des clients intelligents− Font tourner l’application
− Interagissent avec ‘1 SGBD’
(l’application ne voit pas que sa requête est réacheminée)
• Un réseau
• Des serveurs− Une même base
− Gèrent chacun une partition
47
SGBD 1.1
donnéescode
SGBD 1.2
donnéescode
− Gèrent chacun une partition
Agences d’une société Exemple d’instance de cette architecture?
Architecture hétérogène
Appli 1 Appli 2 Appli n
• Des clients intelligents− Interagissent avec ‘1 médiateur’
• Un médiateur− Interroge les sources
− Nettoyage, intégration, etc.
• Des sources de données− Données hétérogènes
• Type, schéma, etc.
48
Source 1 : SGBD
donnéescode
Source 2 : serveur Web
donnéescode
Médiateur
Kelkoo
• Type, schéma, etc.
− Gestion des données différente…
Exemple d’instance de cette architecture?
Architecture en Cloud
• Virtualisation de l’approche centralisée avec mutualisation des ressources matérielles et logicielles
• Objectif = élasticité « Pay as you go »
• DaaS: Database as a Service
Terminaux
réseau
49
MainframeSGBD
Appli 1 Appli 2 Appli n
données
Amazon EC2Exemple d’instance de cette architecture?
Architecture ‘Diffuse’
• Smart body, smart home, smart city, sensor networks …
• Les données sont partout
• Une gestion de données totalement décentralisée
50Internet des objetsExemple d’instance de cette architecture?
Applications traditionnelles des SGBD
• OLTP (On Line Transaction Processing)− Cible des SGBD depuis leur existence
− Banques, réservation en ligne ...
− Très grand nombre de transactions en parallèle
51
− Très grand nombre de transactions en parallèle
− Transactions simples
• OLAP (On Line Analytical Processing)− Entrepôts de données, DataCube, Data Mining …
− Faible nombre de transactions
− Transactions très complexes
Applications nouvelles …
• DB in the (very) large (Peta-base)− NoSQL: sélections/màj simples sur tables géantes
• ex: BigTable (Google), Cassandra (Facebook), Dynamo (Amazon) …• Performance/scalabilité au détriment de la cohérence
− Big Data: analyse de gigantesques volumes de données faiblement structurées• Parallélisation/distribution massive des traitements : map/reduce
• DB in the (very) small (Pico-base)
52
• DB in the (very) small (Pico-base)− Réseaux de capteurs, smart city, internet des objets : calcul d’agrégats,
optimisation de ressources …− Véhicules : recherche places libres, prédiction de traffic, alertes …− BD personnelles : études épidémiologiques, enquêtes …
• Nouvelles formes d’acquisition de données− Intelligence ambiante : acquisition automatique de flux de données, préservation
de la vie privée− BD participatives : (ex: Wikipedia), administration distribuée, data provenance,
versions− DB Crowdsourcing : multitude d’acteurs humains capturant des données
cognitives (critères subjectifs) ou difficiles à accumuler de façon automatique
• Stockage et indexation− Données semi-structurées : stockage, indexation, interrogation de docs XML− Données non structurées : recherche par le contenu, index multidimensionnels,
relations spatio-temporelles − Données en flux : Big Data, données issues de capteurs
• Gestion/optimisation de requêtes− Requêtes continues, personnalisation, critères approximatifs, publish/subscribe, etc
Encore de la recherche sur les noyaux de SGBD / gestionnaires de données ?
53
− Requêtes continues, personnalisation, critères approximatifs, publish/subscribe, etc
• Nouvelles architectures matérielles− SGBD grandes mémoires (RAM)− Bases de données en Flash− Bases de données embarquées− Parallélisme massif, cloud computing, réplication, cohérence− Économie d’énergie
• Protection des données− Chiffrement, HSM, audit, rétention limite des données …