Beruflich Dokumente
Kultur Dokumente
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
Indexation XML
Mdiation XML
Systmes Pair--Pair
2 3
Plusieurs applications
ComptaSoft ChiruSoft
Comptabilit
Chirurgie
Le modle relationnel
Duhpon
Symptomes : yy Analyses : xxxx Symptomes : yy
Le langage SQL
Duipont
Turlututu : sq Symptomyyyy Analysesxxxx Turlututudhjsd
1. 2. 3. 4. 5. 6. 7.
Orientations de recherche
Consultations
Psychiatrie
Dupont
Dupond
Comptabilit
9 - Tolrance aux pannes 8 - Concurrence daccs
PsychiaSoft
Consultations
6
Description cohrente, unique et centralise des donnes manipules par lensemble des applications constituant le systme dinformation.
Elimination de la redondance
=> redondance systme reste ncessaire pour : fiabilit, performance de consultation, disponibilit en environnement rparti ou mobile
8
ComptaSoft
ChiruSoft
Chirurgie
BD
Duhpon
Duipont
Turlututu : sq
Symptomyyyy Analysesxxxx
ConsultSoft
Symptomes : yy
Turlututudhjsd
Psychiatrie
7
Modle conceptuel
Indpendant du
modle de donnes
Indpendant du
SGBD
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
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
Modle Physique
Dpendant du SGBD
Organisation physique des donnes Structures de stockage des donnes Structures acclratrices (index)
11
Possibilit de modifier la structure conceptuelle globale de la base sans modifier les vues particulires de chaque groupe d'utilisateurs.
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;
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 .
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
Les non-informaticiens doivent pouvoir manipuler les donnes partir de la seule connaissance du monde rel et de la modlisation qui en est faite
La question dclare lobjectif sans dcrire la mthode Le langage suit une norme commune tous les SGBD SQL : Structured Query Langage
15
errones
Plusieurs niveaux :
Authentification des usagers Privilges d'accs aux objets de la base Chiffrement et hachage crytographique des donnes
Relations entre objets : Un lecteur est inscrit sur une seule liste lectorale
Avantages
simplification du code des applications scurit renforce par l'automatisation mise en commun des contraintes
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
Nom
Prnom
Poste
Adresse
Ville
Salaire
Ricks
Jim
5485
Paris
Trock
Jack
1254
Versailles
Lerich
Zoe
5489
Chartres
Doe
Joe
4049
Paris
19
Le SGBD doit assurer la prennit et la cohrence des donnes en prsence de pannes multiples:
Langage de manipulation (SQL1, SQL2, SQL3) Communication SQL CLI (ODBC / JDBC) Transactions (X/Open DTP, OSI-TP)
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
utilis
normalisation a choue.
SCHEMA INTERNE
description physique des fichiers, des modes de stockage (squentiel, tri, hach) et des index
22
23
ANSI/X3/SPARC : principes
Admin. BD
Construction de la BD
META-BASE
TRADUCTEUR
DICTIONNAIRE
Systme
Exploitation de la BD
EXECUTEUR
BD
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 .
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
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
Concepts manipulatoires
UN ENSEMBLE D'OPERATIONS DE BASE EST
FORMALISE : L'ALGEBRE RELATIONNELLE
une relation
relation
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
Perry
Paule
Valenton
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
Patients
Id-P
Nom
Prnom
Ville
Lebeau
Jacques
Paris
Troger
Zoe
Evry
Doe
John
Paris
Perry
Paule
Valenton
Nom
Prnom
Ville
Id-D
Id-P
Id-V
Date
Prix
Lebeau
Jacques
Paris
Troger
Zoe
Evry
Troger
Zoe
Evry
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
Select
Patients.Nom, Patients.Prnom
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
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
< 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 :
[( attribute [,attribute] )]
<query specification>} ;
Exemples :
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
EXEMPLES :
Augmenter de 10% le prix de tous les mdicaments dont le nom contient Antibio
<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
45
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
46
47
Calculs d'agrgats
Les fonctions dagrgation (Count, Sum, Avg, Min, Max) permettent de raliser des calculs sur des ensembles de donnes
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 ?
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));
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
SELECT NomMed NomPers FROM MED UNION SELECT NomPat NomPers FROM PAT
2. WHERE
Ralise restriction et jointures
3. GROUP BY
XXX XXX YYY ZZZ
SELECT NomPat PatMed FROM PAT INTERSECT SELECT NomMed PatMed FROM MED
4. HAVING 5. SELECT
Raliser les projections/calculs finaux
AGG1
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
Vue = Question SQL stocke Le SGBD stocke la dfinition et non le rsultat Exemple : la vue des patients parisiens
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)
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
PROGRAMMATION SQL
conversion de type
3 approches
57
Exemple JDBC
Procdure Anonyme
Client BD PL/SQL Moteur Serveur PL/SQL SQL
BD
PL/SQL
Client
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
DECLARE
CURSOR Compta IS
Emp Compta%ROWTYPE;
BEGIN
OPEN Compta;
END IF;
END LOOP;
60 61
CLOSE C;
END;
Architecture centralise
Des clients intelligents
Architecture client-serveur
Font tourner les applications
rseau
Appli 1
Appli 2
Appli n
SGBD
donnes
Client messagerie
63
Architecture 3-tiers
Architecture rpartie
Des clients intelligents
Des clients
rseau
Un serveur de donnes
Maintient la base
Appli 2
Appli n
Serveur de donnes
code
donnes
Appli Web
64
65
Architecture htrogne
Virtualisation de lapproche
Terminaux rseau
Architecture en Cloud
Un mdiateur
Appli 1
Appli 2
Appli n
Donnes htrognes
Mainframe
code
donnes
code
donnes
Kelkoo
Amazon EC2
67
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
Transactions simples
Rseaux de capteurs : calcul dagrgats Vhicules : recherche places libres, prdiction de traffic, alertes BD personnelles : tudes pidmiologiques, enqutes
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
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
Requtes spatio-temporelles, BD embarques, cohrence des traitements dconnects, rseaux de capteurs, rseaux de vhicules
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
3- Autorisations
MS er DB rv e S
Extraction Requtes
1- Authentification