Vous êtes sur la page 1sur 18

Module Bases de donnes Avances

Prsents la bibliothque UVSQ


Elments de bibliographie (1re partie)

Rappels des concepts de base (et perspectives)


Gardarin G., "Bases de donnes", Ed. Eyrolles, 5me dition, 2003.

Modles de stockage et dindexation

Evaluation et optimisation de requtes

Modles et protocoles transactionnels

Support dobjets complexes

Ozsu, T., Valduriez P., Principles of Distributed Database Systems, Prentice-Hall, 2nd edition, 1999. Nouvelle dition 2011 (Springer) J. Besancenot, M. Cart, J. Ferri, R. Guerraoui, P. Pucheral, B. Traverson, "Les systmes transactionnels : concepts, normes et produits", Ed. Herms, 1997.

XML Schema

XQuery et optimisation

Disponible sur le Web


Fundamentals of Database Systems, 6th Ed, Elmasri and Navathe, Addison Wesley, 2011

Indexation XML

Mdiation XML

Systmes Pair--Pair
2 3

Rappels des concepts fondamentaux

Un systme dinformation sans SGBD (1)


Dupont Dupond
Turlututusqjsk Symptom: yyyy Analyses xxxx Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Turlututudhjsd Analyses :xx

Plusieurs applications
ComptaSoft ChiruSoft

plusieurs formats et langages difficult de maintenance manque dinteroprabilit

Objectifs des SGBD

Principales fonctions dun SGBD

Comptabilit

Chirurgie

Architecture fonctionnelle de rfrence

Redondance des donnes


incohrence

Le modle relationnel
Duhpon
Symptomes : yy Analyses : xxxx Symptomes : yy

Le langage SQL

Duipont
Turlututu : sq Symptomyyyy Analysesxxxx Turlututudhjsd

Pas de facilit dinterrogation


PsychiaSoft ConsultSoft

Architectures physiques de SGBD

1. 2. 3. 4. 5. 6. 7.

Orientations de recherche

toute question doit tre prvue et programme

Consultations

Psychiatrie

cot de dveloppement lev redondance de code difficult dvolution


5

Un systme dinformation sans SGBD (2) Lapproche Bases de donnes

Dupont

Dupond

Turlututusqjsk Symptom: yyyy Analyses xxxx

Comptabilit
9 - Tolrance aux pannes 8 - Concurrence daccs

PsychiaSoft

Consultations
6

O1: Description canonique des donnes


Rel

Description cohrente, unique et centralise des donnes manipules par lensemble des applications constituant le systme dinformation.

Perception globale du systme d'information

=> augmentation du niveau dinformatisation

=> nouveaux traitements (aide la dcision, analyse de donnes, )

Factorisation de la description des donnes et de leur comportement (contraintes dintgrit )

Elimination de la redondance

=> redondance coteuse en place et source dincohrence

=> redondance systme reste ncessaire pour : fiabilit, performance de consultation, disponibilit en environnement rparti ou mobile
8

ComptaSoft

ChiruSoft

Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx

Turlututudhjsd Analyses :xx

Gestion simpliste des droits


violation de la confidentialit
10 - Standards 2- Indpendance Physique 3- Indpendance Logique 4 Langage de manipulation 1- Description canonique

Chirurgie

Gestion simpliste du paralllisme

blocage du systme ou bien incohrence en cas d accs simultans

BD

Duhpon

Duipont

Turlututu : sq

Symptomes : yy Analyses : xxxx

Symptomyyyy Analysesxxxx

Pas de tolrance aux fautes


7 - Confidentialit des donnes

5 - Optimisation de requtes 6 - Intgrit des donnes

ConsultSoft

Symptomes : yy

Turlututudhjsd

incohrence en cas de panne

Psychiatrie
7

Modle conceptuel

Indpendant du
modle de donnes

Indpendant du
SGBD

Modle conceptuel Modle logique

Mdecin

effectue

Visite

Dpendant du
modle de donnes

Indpendant du
SGBD

Codasyl

Relationnel

Objet

XML

Dpendant du
modle de donnes

Modle Physique

Dpendant du SGBD

Organisation physique des donnes Structures de stockage des donnes Structures acclratrices (index)
9

O2: indpendance physique Modle physique


Rel
Indpendant du
modle de donnes

Indpendance des programmes d'applications vis vis des structures de stockage des fichiers.

Indpendant du
SGBD
Mdecin

Description logique des donnes, en termes d'entits et dassociation, donnant une vision conceptuelle des donnes (sparation claire du monde rel et du monde informatique)

Modle conceptuel
Dpendant du
modle de donnes

effectue

Visite

Possibilit de modifier les structures de stockage (fichiers, index, chemins d'accs, ) sans modifier les programmes;
Indpendant du
SGBD

Ecriture des applications par des non-spcialistes des fichiers et des structures de stockage;
Dpendant du
modle de donnes

Modle logique
Codasyl

Relationnel

Objet

XML

Meilleure portabilit des applications et indpendance vis vis du matriel.


10

Modle Physique
Dpendant du SGBD

Organisation physique des donnes Structures de stockage des donnes Structures acclratrices (index)
11

O3: indpendance logique

O3 Exemples dindpendance Logique


Les applications peuvent dfinir des vues logiques de la BD
Gestion des mdicaments
Nombre_Mdicaments
Id-M 1 2 3 . Nom Aspegic 1000 Fluisdal Mucomyst .. Description .. .. .. .. Nombre 30 20 230 ..
1 2

Possibilit de modifier la structure conceptuelle globale de la base sans modifier les vues particulires de chaque groupe d'utilisateurs.

Cabinet du Dr. Masse


Prescription Visites
Id - D Id -P 2 3 Id - V 1 4 Date 15 juin 1 mars Prix 250 250 Id -V 1 1 . Ligne 1 2 . Id -M 12 5 . Posologie 1 par jour 10 gouttes

Patients
Id - P 1 2 . Nom Lebeau Troger . Prnom Jacques Zoe . Id -M 1 2 3 . Nom

Mdicament
Description Aspegic 1000 Fluisdal Mucomyst .. .. .. .. ..

Chaque application ou groupe d'applications dsire utiliser ses propres structures logiques de donnes en fonction de ses propres besoins;

Chaque application tablit une description des donnes qu'elle utilise:

Les donnes dcrites restent virtuelles (vues);

Le SGBD se charge de leur faire correspondre des donnes relles.


D o cteur
Id-D 1 2 3 . N om D upont D urand M asse .. P rn om P ierre P aul Jean Id-V

P rescrip tion
L ign e Id -M P osologie

V isites
I d-D 1 1 2 2 Id -P 2 1 2 3 Id -V 1 2 3 4 D ate 15 juin 12 aot 13 juillet 1 m ars P rix 250 180 350 250

1 1 2 2 2 .

1 2 1 2 3 .

12 5 8 12 3 .

1 par jour 10 gouttes 2 par jour 1 par jour 2 gouttes

P a tien ts
I d-P 1 2 3 4 . N om L ebeau T roger D oe P erry . Prn om Jacques Z oe John P aule . Id -M 1 2 3 . N om

M dica m ent
D escrip tion A s pegic 1000 F luisdal M ucom yst .. .. .. .. ..

12

13

O4: Langage de manipulation


Traduction automatique des requtes dclaratives en
programmes procduraux (composition doprateurs lmentaires)

O5: Optimisation de requtes

Les non-informaticiens doivent pouvoir manipuler les donnes partir de la seule connaissance du monde rel et de la modlisation qui en est faite

Mais les non-informaticiens font-ils des requtes SQL ?

La manipulation se fait via un langage dclaratif


Optimisation automatique de ces programmes


Exploitation des proprits des oprateurs lmentaires Gestion centralise des chemins d'accs (index, hachages, )

La question dclare lobjectif sans dcrire la mthode Le langage suit une norme commune tous les SGBD SQL : Structured Query Langage

Economie de l'astuce des programmeurs

Exemple de requte SQL Retrouver le nom et le n de tlphone de tous les pdiatres

milliers d'heures d'criture et de maintenance de logiciels.

Select Nom, Tel From Docteur Where Specialite = Pdiatre


14

Course aux performances mesures en transactions par


seconde (TPS) sur des "benchmark" standardiss (TPC).

15

O6: Intgrit smantique des donnes

O7: Confidentialit des donnes


Objectif : garantir la confidentialit de certaines informations et les protger contre la dgradation

Objectif : Dtection automatique des mises jour

errones

Contrle sur les donnes lmentaires

Dossier mdical, procd de fabrication, salaire des employs ...

Contrle de types: Nom alphabtique

Contrle de valeurs: Salaire mensuel entre 1 et 10k

Plusieurs niveaux :

Contrle sur les relations entre les donnes

Authentification des usagers Privilges d'accs aux objets de la base Chiffrement et hachage crytographique des donnes

Relations entre donnes lmentaires : Prix de vente > Prix d'achat

Relations entre objets : Un lecteur est inscrit sur une seule liste lectorale

Avantages

Usagers : utilisateurs, rles Objets : objet rel ou virtuel, procdure ...


16 17

simplification du code des applications scurit renforce par l'automatisation mise en commun des contraintes

Confidentialit des donnes O8: Accs concurrents aux donnes


Objectif : assurer lIsolation des transaction, c..d que diffrentes applications partageant les mmes donnes doivent pouvoir s'ignorer et travailler de manire asynchrone.

Service des ressources humaines

Employs (intranet)

Public (internet)

Id-E

Nom

Prnom

Poste

Ricks

Jim

5485

Trock

Jack

1254

Le SGBD garantit la srialisabilit des accs: l'effet d'une excution simultane de transactions doit tre le mme que celui d'une excution squentielle. < T1 || T2 || Tn > < T1; T2; Tn > Les transactions excutes en parallle ne doivent pas entrer en conflit lecture-criture ou criture-criture, afin dviter : des pertes de mises jour des introductions dincohrence
18

Lerich

Zoe

5489

Doe

Joe

4049

Nombre demploys 4

Masse Salariale 890

Id-E 230 120 380 160

Nom

Prnom

Poste

Adresse

Ville

Salaire

Ricks

Jim

5485

Paris

Trock

Jack

1254

Versailles

Lerich

Zoe

5489

Chartres

Doe

Joe

4049

Paris

des lectures non reproductibles

19

O9: Tolrance aux pannes

10 Respect des standards


Lapproche bases de donnes est base sur plusieurs
standards

Le SGBD doit assurer la prennit et la cohrence des donnes en prsence de pannes multiples:

Transaction Failure : Contraintes d'intgrit, Annulation

Langage de manipulation (SQL1, SQL2, SQL3) Communication SQL CLI (ODBC / JDBC) Transactions (X/Open DTP, OSI-TP)

System Failure : Panne de courant, Crash serveur

Media Failure : Perte du disque

Communication Failure : Dfaillance du rseau

Force des standards


Portabilit des applications Interoprabilit des systmes

Ceci implique lAtomicit des transactions de mises jour qui doivent tre totalement excutes ou pas du tout.

Ceci implique galement des mcanismes de reprise assurant la Durabilit des effets des transactions valides.
20 21

3. Architecture de rfrence
Schma Externe 1 Schma Externe i Schma Externe n

Niveaux de schma
vision spcifique une application

De nombreuses architectures fonctionnelles ont t proposes

Ces architectures dpendent souvent du modle de donnes


SCHEMA CONCEPTUEL

utilis

ANSI/X3/SPARC est une architecture de rfrence mais sa

vision canonique globale exprime en terme d'entits et d'associations

normalisation a choue.
SCHEMA INTERNE

L'architecture ANSI/X3/SPARC repose sur un concept

fondamental: la distinction de 3 niveaux de schmas

description physique des fichiers, des modes de stockage (squentiel, tri, hach) et des index

22

23

ANSI/X3/SPARC : principes

Architecture fonctionnelle d'un SGBD


ANALYSEUR Analyse syntaxique Analyse smantique Gestion des schmas

Admin. Entreprise Admin. Application

Admin. BD

Processeur de schma Conceptuel

Construction de la BD
META-BASE

TRADUCTEUR

Modification de requtes Contrle d'intgrit Contrle d'autorisation

Processeur de schma Interne

DICTIONNAIRE

Processeur de schma Externe OPTIMISEUR Transformateur Externe Conceptuel Programme dapplication

Ordonnancement Optimisation Elaboration d'un plan

Transformateur Conceptuel Interne

Systme

Exploitation de la BD

EXECUTEUR

Excution du plan Mthodes d'accs Gestion de transactions

dE/S Programmeur. dapplication

BD

Dictionnaire et Mta-base sont synonymes

24

25

4. Le modle relationnel
Docteurs
Id-D Id-V Ligne 1 2 1 2 2 . 3 . 1 Dupont Pierre Nom Prnom Id-M 12 5 8 12 3 .

Base de donnes relationnelle


Prescriptions
Posologie 1 par jour 10 gouttes 2 par jour 1 par jour 2 gouttes

Visites
1 Id-V 1 2 3 4 1 mars 250 13 juillet 350 12 aot 180 2 15 juin 250 2 Date Prix 1 Id-D 1 1 2 2 3 2 1 2 Id-P

2 3 . .. Masse Jean

Concepts descriptifs Domaine : caractrise un ensemble de valeurs Relation : sous-ensemble du produit cartsien d'une liste de domaines Tuple : ligne d'une relation Attribut : colonne d'une relation
Durand Paul

Exemple de relation (ou Table)


Attribut variant sur le domaine Ville

Patients
Id-P Nom Lebeau Jacques Zoe John Paule . . Valenton Paris Evry Troger Doe Perry . Paris Prnom Ville Id-M 1 2 3 . Nom 1 2 3 4

Patients
Ville Paris Evry Paris Valenton .

Mdicaments
Description Aspegic 1000 Fluisdal Mucomyst .. .. .. .. ..

Id-P

Nom

Prnom

Lebeau

Jacques

Tuple
26
.

Troger

Zoe

Doe

John

Perry

Paule

27

Cl, cl trangre et schma

Concepts manipulatoires
UN ENSEMBLE D'OPERATIONS DE BASE EST
FORMALISE : L'ALGEBRE RELATIONNELLE

Cl : groupe d'attributs minimum qui dtermine un tuple unique dans

une relation

PATIENTS (IdP, NOM, PRENOM, VILLE)

Cl trangre : groupe d'attributs apparaissant comme cl dans un autre

CES OPERATIONS PERMETTENT D'EXPRIMER


TOUTES LES REQUETES SOUS FORME D'EXPRESSIONS ALGEBRIQUES

relation

VISITES (IdV, IdD, IdP, DATE, PRIX)

VISITES.IdD rfrence DOCTEURS.IdD VISITES.IdP rfrence PATIENTS.IdP

ELLES SONT LA BASE DU LANGAGE SQL

28

29

Restriction
Patients
Id-P 1 2 3 John Paule Valenton 4 Paule Perry Valenton 4 4 Perry Doe Paris 3 John 3 Doe Paris Troger Zoe Evry 2 Zoe 2 Troger Evry Lebeau Jacques Paris 1 Jacques Lebeau Paris 1 Lebeau Troger Doe Perry Nom Prnom Ville Id-P Nom Prnom Ville Id-P Nom

Projection
Patients Patients
Prnom Jacques Zoe John Paule Ville Paris Evry Paris Valenton

Patients

Id-P

Nom

Prnom

Ville

Lebeau

Jacques

Paris

Troger

Zoe

Evry

Doe

John

Paris

Nom, Prnom (Patients)


30

Perry

Paule

Valenton

Patients de la ville de Paris, not en algbre:

Nom et prnom des patients, not en algbre:

Ville=Paris (Patients)

31

Jointure
Visites
Id-D 1 1 2 2 3 4 1 mars 250 2 3 13 juillet 350 1 2 12 aot 180 2 1 15 juin 250 Id-P Id-V Date Prix

Union, Intersection, Diffrence

Patients

Id-P

Nom

Prnom

Ville

Lebeau

Jacques

Paris

Troger

Zoe

Evry

Doe

John

Paris

Relation X Relation --> Relation (notes: , , -) OPERATIONS ENSEMBLISTES S'APPLIQUANT A DES


RELATIONS DE MEME SCHEMA

Perry

Paule

Valenton

Id-P 2 1 3 4 1 mars 250 13 juillet 350 15 juin 250 12 aot 180

Nom

Prnom

Ville

Id-D

Id-P

Id-V

Date

Prix

Lebeau

Jacques

Paris

Troger

Zoe

Evry

Troger

Zoe

Evry

EXTENSION: Union externe (OUTER UNION)


Doe

John

Paris

s'applique des relations de schmas diffrents on ramne les deux relations au mme schma en ajoutant des valeurs nulles
32 33

Notation algbrique:

Patients

Id-P=Id-P

Visites

Au fait, quappelle-t-on Jointure externe gauche (Left-Outer-Join) ?

Exemple de plan dexcution 5. Le langage SQL



Patients Visites

Select

Patients.Nom, Patients.Prnom

Le langage SQL (Structured Query Language) comprend trois parties :

From

Patients, Visites

Where

Patients.Id-P = Visites.Id-P

and

Patients.Ville = Paris

and

Visites.Date = 15 juin

1. Le langage de dfinition de donnes (Tables, Vues, Droits, Intgrit) 2. Le langage de manipulation de donnes (Slections, Modifications, Insertions, Suppressions) 3. L'intgration aux langages de programmation

Optimisation

Patients Visites
34

35

Le standard SQL

EXEMPLE DE BASE DE DONNEES

SQL est driv de l'algbre relationnelle et de SEQUEL (SystemR 74).

Le standard SQL volue en permanence : - SQL1 86 version minimale - SQL1 89 addendum (intgrit) - SQL2 92 version tendue trois niveaux de conformit (entry, intermediate, full) - SQL2 95 addendum (CLI : Call Level Interface) - SQL2 96 addendum (PSM : Persistent Stored Modules) - SQL3 extension aux objets complexes - SQL 99 contient les bases de SQL3 - SQL 2006 intgration de XML
36 37

Cration de table : syntaxe


CREATE TABLE RDV( NumRdv Integer PRIMARY KEY, DateRDV Date, NumDoc Integer, NumPat Integer, Motif Varchar(200), CONSTRAINT Rfrence_DOC FOREIGN KEY (NumDoc) REFERENCES DOC (NumDoc), CONSTRAINT Rfrence_PAT FOREIGN KEY (NumPat) REFERENCES PAT (NumPat); L'association d'un nom une contrainte est optionnelle. Ce nom peut tre utilis pour rfrencer la contrainte (ex: messages d'erreurs).

Cration de table : exemple

CREATE TABLE <nom_table> (<def_colonne> * [<def_contrainte_table>*]) ;

< def_colonne > ::= <nom_colonne> < type > [CONSTRAINT nom_contrainte < NOT NULL | UNIQUE | PRIMARY KEY | CHECK (condition) | REFERENCES nom_table (colonne) > ]

< def_contrainte_table > ::= CONSTRAINT nom_contrainte < UNIQUE (liste_colonnes) | PRIMARY KEY (liste_colonnes) | CHECK (condition) | FOREIGN KEY (liste_colonnes) REFERENCES nom_table (liste_colonnes)>

38

39

Insertion de donnes

Suppression de donnes
SYNTAXE : DELETE FROM <relation_name> [WHERE <search_condition>] EXEMPLES : Supprimer tous les docteurs DELETE FROM DOC Supprimer le docteur numro 20 DELETE FROM DOC WHERE NumDoc = 20 Et celle-ci ? DELETE FROM DOC WHERE NumDoc NOT IN (SELECT NumDoc FROM ORD)

Syntaxe :

INSERT INTO < nom_table >

[( attribute [,attribute] )]

{VALUES (<value spec.> [, <value spec.>] ) |

<query specification>} ;

Exemples :

INSERT INTO DOC VALUES (1, Dupont, Paris);

INSERT INTO DOC (NumDoc, NomDoc) VALUES (2, Toto);

INSERT INTO PAT (NumPat, NomPat, VillePat) SELECT NumDoc, NomDoc, VilleDoc FROM DOC;

40

41

Modification de donnes
SYNTAXE ELEMENTAIRE SELECT <liste des attributs projets Ai> FROM <liste des relations impliques Rj> WHERE <critres de recherche Ci> SEMANTIQUE PROJECTION Ai ( RESTRICTION Ci ( PRODUIT ( Rj ) )
42 43

Manipulation de donnes

SYNTAXE :

UPDATE SET

[WHERE

<relation_name> <attribute> = value_expression [, <attribute> = value_expression ] <search condition> ];

EXEMPLES :

Modifier ladresse du docteur nro 20

UPDATE DOC SET VilleDoc = Valenton WHERE NumDoc = 20

Augmenter de 10% le prix de tous les mdicaments dont le nom contient Antibio

UPDATE MED SET PRIX = PRIX*1.1 WHERE NomMed = %Antibio%

SELECT: forme gnrale

Forme de la condition de recherche

SELECT [DISTINCT| ALL] { * | <value exp.> [, <value exp.>]...}

FROM relation [variable], relation [ variable]

[WHERE <search condition>]

[GROUP BY <attribute> [,<attribute>]...]

[HAVING <search condition>]

[ORDER BY <attribute.>[.{ASC | DESC}] [,<attribute.>[.{ASC | DESC}] ]...]

<search condition> ::= [NOT] <nom_colonne> constante <nom_colonne> <nom_colonne> LIKE <modle_de_chane> <nom_colonne> IN <liste_de_valeurs> <nom_colonne> (ALL ANY SOME) <liste_de_valeurs> 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 ::= < = > <>
44

Remarque: <liste_de_valeurs> peut tre dynamiquement dtermine par une requte

45

Projections et restrictions simples Restrictions complexes et jointures


Liste des patients ayant un RDV avec le docteur Dupont SELECT FROM WHERE PAT.NomPat PAT, RDV, DOC PAT.NumPat = RDV.NumPat and RDV.NumDoc = DOC.NumDoc and DOC.NomDoc like Dupont; NomMed NomPat

Liste des mdicaments de plus de 50 NomMed SELECT NomMed FROM MED WHERE Prix> 50 ;

Liste des mdicaments de plus de 50 NomMed (prix stock en FF) SELECT NomMed FROM MED WHERE Prix/6,55957 > 50 ;
Mdicaments commenant par ASPI et prescrits en aot 2008 SELECT FROM WHERE DISTINCT M.NomMed MED M, DET D, ORD O M.NumMed = D.NumMed and D.NumOrd = O.NumOrd and NomMed like ASPI% and O.Date BETWEEN 01/08/2008 and 31/08/2008; NomDoc

Nom des docteurs habitant Florac NomDoc SELECT NomDoc FROM DOC WHERE VilleDoc = Florac

Liste des motifs des consultations du 25/12/2006 Motif sans doublons SELECT DISTINCT Motif FROM RDV WHERE DateRDV = 25/12/2006
Docteurs ayant le mme nom quun patient SELECT

D.NomDoc FROM PAT P, DOC D WHERE P.NomPat = D.NomDoc;

46

47

Requtes imbriques : IN et EXIST


NomPat

Calculs d'agrgats
Les fonctions dagrgation (Count, Sum, Avg, Min, Max) permettent de raliser des calculs sur des ensembles de donnes

Liste des patients ayant un RDV avec le docteur Dupont

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;

Calcul de statistiques globaux


Et celle-ci ?

Nombre de patients : SELECT count(*) FROM PAT Prix moyen des mdicaments : SELECT avg(Prix) FROM MED

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));

Calcul de statistiques par groupe


Nombre de patients par ville : SELECT VillePat, count(*) NbPatient FROM PAT GROUP BY VillePat

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));

Et celle-ci ? SELECT VillePat FROM PAT, RDV WHERE PAT.NumPat = RDV.NumPat and Motif = mal de tte GROUP BY VillePat HAVING count(DISTINCT(NumPat)) > 10

Limbrication est un moyen de dcomposer une requte complexe en sous-requtes plus simples
48 49

Union/Inter/Diff. : exemples
valuation smantique dune requte SQL
1. FROM
Ralise le produit cartsien des relations

Ensemble des personnes de la base mdicale

SELECT NomMed NomPers FROM MED UNION SELECT NomPat NomPers FROM PAT

2. WHERE
Ralise restriction et jointures

Patients qui sont aussi mdecins

3. GROUP BY
XXX XXX YYY ZZZ

SELECT NomPat PatMed FROM PAT INTERSECT SELECT NomMed PatMed FROM MED

Constitue les partitions (e.g., tri sur lintitul du groupe)

Patients qui ne sont pas mdecins


Restreint aux partitions dsires

4. HAVING 5. SELECT
Raliser les projections/calculs finaux
AGG1

XXX XXX YYY ZZZ

AGG1

AGG2

SELECT NomPat Patient FROM PAT EXCEPT SELECT NomMed Patient FROM MED

AGG3

XXX
AGG3

6. ORDER BY
Trier les tuples rsultat
50

ZZZ

AGG1 AGG3

ZZZ XXX

51

Vues relationnelles

Les vues : des relations virtuelles !


Le SGBD transforme la question sur les vues en question sur les relations de base
Question Q sur des vues

Les vues permettent dimplmenter lindpendance logique

en crant des objets virtuels

Vue = Question SQL stocke Le SGBD stocke la dfinition et non le rsultat Exemple : la vue des patients parisiens

Create View Patients_Parisiens as (

Select

Nom, Prnom
Dfinition des vues

Gestionnaire de Vues
Question Q sur les relations de base

From

Patients

Where

Patients.Ville = Paris )
52

53

Dclencheurs : Dfinition
Dclencheurs : Syntaxe (dans Oracle)

Dfinition : Dclencheurs ou Triggers

Rgle E C A : vnement Condition Action

Lorsque lvnement se produit

Insert / Update / Delete pour une relation donne

si la condition est remplie

Prdicat SQL optionnel

alors excuter laction

Code excuter (ex. PL/SQL sous Oracle)

Create trigger <nom de trigger> before | after permet dindiquer quand le trigger va tre excut insert | delete | update [of <attributs>] Quel est lvnement dclencheur on <relation> indique le nom de la table qui doit tre surveille [referencing old as <var>, new as <var>] en SQL3, Oracle utilise :new et :old for each row Prcise si laction est excute 1 fois par tuple concern ou pour toute la table [when <condition>] permet dindiquer une condition pour lexcution du trigger DECLARE Dclaration de variables pour le bloc PL/SQL BEGIN Bloc PL/SQL contenant le code de laction excuter <PL/SQL bloc> Dans SLQ3, on peut indiquer une suite de commande SQL END

Pour chaque tuple concern ou une fois par vnement

La syntaxe diffre lgrement suivant le SGBD


54 55

PROGRAMMATION SQL

Exemple Embedded SQL


EXEC SQL DECLARE C1 CURSOR FOR SELECT NumDoc, NomDoc FROM DOC WHERE VilleDoc = Versailles; main() { EXEC SQL BEGIN DECLARE SECTION

SQL nest pas un langage complet

Problmatique de la connexion langage hte/SQL

dclaratif/ensembliste vs. procdural

conversion de type

char sqlstate[6], NomDoc[21], VilleDoc[31]; int NumDoc;


EXEC SQL END DECLARE SECTION EXEC SQL OPEN C1 ; while (notEndofResult(sqlstate) { EXEC SQL FETCH C1 INTO :NumDoc, :NomDoc; ... } EXEC SQL CLOSE C1 ;

3 approches

Embedded SQL (PRO*C, SQLJ )

API de bas niveau (SQL-CLI, ODBC, JDBC )

Langage ddi (PL/SQL, SQL/PSM )


56

57

Exemple JDBC
Procdure Anonyme
Client BD PL/SQL Moteur Serveur PL/SQL SQL

Exemple : Oracle PL/SQL

import java.sql.*; ... class JdbcTest { static String BD_URL = "jdbc:oracle:@nomBDRoute";

Procdure stocke (invocation directe)


Client
RPC

Moteur Serveur PL/SQL SQL

BD
PL/SQL

Procdure stocke (invocation indirecte)


Mise jour SQL
trigger

Client

Moteur Serveur PL/SQL SQL

BD
PL/SQL

public static void main (String args []) throws SQLException, ClassNotFoundException, IOException { Class.forName ("oracle.jdbc.OracleDriver"); Connection BDRoute; BDRoute =DriverManager.getConnection(BD_URL, "MonNom", "MonPass"); Statement Trajet = BDRoute.createStatement (); ResultSet ResTrajet = Trajet.executeQuery ("SELECT * FROM Route WHERE Depart = Paris"); while ( ResTrajet.next() ) { System.out.println (ResTrajet.getString ("Arrivee")); } ResTrajet.close(); Trajet.close(); BDRoute.close(); } }
58

59

Curseurs PL/SQL : exemple

Architecture physique des SGBD


Une floraison de vocabulaire et darchitectures

DECLARE

CURSOR Compta IS

SELECT nom, salaire FROM Employe WHERE service = comptabilit;

Emp Compta%ROWTYPE;

BD centralise BD client/serveur BD 3-tiers BD rpartie BD htrogne BD sur le Cloud

BEGIN

OPEN Compta;

FETCH Compta INTO Emp;

WHILE Compta%FOUND LOOP

IF Emp.salaire IS NOT NULL AND Emp.Salaire < 30.000 THEN

UPDATE Employe SET salaire = salaire * 1,05 WHERE nom = Emp.nom

END IF;

FETCH Compta INTO Emp;

END LOOP;
60 61

CLOSE C;

END;

Architecture centralise
Des clients intelligents

Architecture client-serveur
Font tourner les applications

Terminaux passifs Appli 2

Des terminaux clients passifs Un rseau Un serveur central


Appli 1 Maintient la base Clients intelligents rseau serveur Appli n

Un rseau Un serveur de donnes

grande puissance (mainframe)

rseau

Maintient la base et les applications

Appli 1

Appli 2

Appli n

SGBD Mainframe code donnes

SGBD

donnes

Exemple dinstance de cette architecture?

le minitel, mais aussi Google 62

Exemple dinstance de cette architecture?

Client messagerie

63

Architecture 3-tiers

Architecture rpartie
Des clients intelligents

Des clients

Concentrs sur la prsentation

Font tourner lapplication Interagissent avec 1 SGBD


(lapplication ne voit pas que sa requte est rachemine)

Un rseau Un serveur dapplication


Appli 1 Appli 2 Appli n

Excute le code applicatif

rseau

Un serveur de donnes

Maintient la base

Un rseau Des serveurs


Sur la mme machine ou des machines diffrentes

Une mme base Grent chacun une partition

Serveur dapplication Appli 1

Appli 2

Appli n

Serveur de donnes

SGBD SGBD 1.1 code donnes

SGBD 1.2 code donnes

code

donnes

Exemple dinstance de cette architecture?

Appli Web

64

Exemple dinstance de cette architecture?

Agences dune socit

65

Architecture htrogne
Virtualisation de lapproche
Terminaux rseau

Architecture en Cloud

Des clients intelligents

Interagissent avec 1 mdiateur

Un mdiateur

Interroge les sources

Appli 1

Appli 2

Appli n

Nettoyage, intgration, etc.

centralise avec mutualisation des ressources matrielles et logicielles

Des sources de donnes


Type, schma, etc.

Donnes htrognes

Objectif = lasticit Pay as you go DaaS: Database as a Service


Appli n

Mdiateur Appli 1 Appli 2

Gestion des donnes diffrente

Source 1 : SGBD donnes

Source 2 : serveur Web SGBD

Mainframe

code

donnes

code

donnes

Exemple dinstance de cette architecture?


66

Kelkoo

Exemple dinstance de cette architecture?

Amazon EC2

67

Applications traditionnelles des SGBD


Applications nouvelles
DB in the (very) large: slections/mj simples sur tables gantes
ex: Google (BigTable), Facebook (Cassandra), Amazon (Dynamo) NoSQL databases (key-value stores) Performance/scalabilit au dtriment de la cohrence

OLTP (On Line Transaction Processing)

Cible des SGBD depuis leur existence

Banques, rservation en ligne ...

DB in the (very) small: requtes sur


Trs grand nombre de transactions en parallle

Transactions simples

OLAP (On Line Analytical Processing)

Entrepts de donnes, DataCube, Data Mining

Nouvelles formes dacquisition de donnes


Rseaux de capteurs : calcul dagrgats Vhicules : recherche places libres, prdiction de traffic, alertes BD personnelles : tudes pidmiologiques, enqutes

Faible nombre de transactions

Transactions trs complexes

Intelligence ambiante : acquisition automatique de flux de donnes, prservation de la vie prive BD participatives : (ex: Wikipedia), administration distribue, data provenance, versions DB Crowdsourcing : multitude dacteurs humains capturant des donnes cognitives (critres subjectifs) ou difficiles accumuler de faon automatique
68

69

Orientations de recherche (1)


Mobilit

Orientations de recherche (2)

Gestion de donnes complexes

Masses de donnes distribues


Semi-structures : stockage, indexation, interrogation de docs XML Non structures : recherche par le contenu, index multidimensionnels, relations spatio-temporelles Intgrer lensemble de ces donnes dans un dataspace cohrent et en extraire de la connaissance

Architecture et performance (encore et toujours)

Requtes spatio-temporelles, BD embarques, cohrence des traitements dconnects, rseaux de capteurs, rseaux de vhicules

Entrepts de donnes et fouille


70

Mdiation de donnes : intgration de schmas, requtes de mdiation Mdiation de programmes : construction de workflows, optimisation des flux, composition de services Web interrogation de masses de donnes : requtes continues, personnalisation, critres approximatifs, publish/subscribe, etc BD en P2P, Content Delivery Networks : localisation des ressources/acheminement

volutions matrielles : grandes mmoires, nouvelles mmoires persistantes, nouveaux processeurs Paralllisme massif, Cloud computing SGBD auto-administrables conomie dnergie Donc : indexation, optimisation de requtes, rplication, transactions, benchmarks, etc

Recherche de rgles associatives, de dpendances fonctionnelles, fouille de donnes spatio-temporelles

Et bien sr Scurit des bases de donnes


Cf. transparent suivant
71

(liste non exhaustive)

Orientations de recherche (3) : scurit des BD

9- Lgislation 8- Anonymisation de donnes

2- Protection des communications

3- Autorisations

MS er DB rv e S
Extraction Requtes

User 6- Contrle dusage 5- Audit 4- Chiffrement des donnes

1- Authentification

7- Rtention limite des donnes


72

Vous aimerez peut-être aussi