Professional Documents
Culture Documents
Didier Donsez
8QLYHUVLWp-RVHSK)RXULHU*UHQREOH
,0$,0$*/65$'(/(
'LGLHU'RQVH]#LPDJIU
Didier Donsez, 1998-2002, Panorama des BDs
Le Modle Relationnel
Un modle de donnes
Simple
Relation
(Table)
Tuple (Ligne)
Attribut
(Colonne)
Buveurs
NB
Nom
Abus
NB
NV
Date
Vins
NV
Cru
'LGLHU'RQVH]3DQRUDPDGHV%'V
Prnom
Type
Qte
Millsime
Degr
'LGLHU'RQVH]3DQRUDPDGHV%'V
ORACLE
SYBASE
INFORMIX
IBM DB/2
OPEN INGRES (CA)
MICROSOFT SQL SERVER
MySQL
PostGres
HyperSonic
Buveurs
NB
Nom
Prnom
Abus
NB
NV
Date
Vins
NV
Cru
Type
Qte
Millsime
Degr
Le modle daccs
aux SGBDs (Relationnels)
Centralis
SGBD
Terminaux passifs
mulation VT
mulation 3270
Client Serveur
PC avec capacit de traitement
ODBC, SQL*Net,
SGBDn
SGBD1
'LGLHU'RQVH]3DQRUDPDGHV%'V
JDBC, ...
Web Multi-Tiers
Navigateur Web
Terminal nomade
HTML/XML/WML
HTTP/WAP
Web
Server
+
Application
Server
ODBC,
JDBC, ...
SGBDn
SGBD1
Solutions
Middleware
ODBC, JDBC
Embedded SQL
C, Java
P/SQL
pas de prcompilation
indpendance aux SGBDs (et autres sources de donnes)
'LGLHU'RQVH]3DQRUDPDGHV%'V
U
T
I
L
I
S
A
T
E
U
R
ODBC
JDBC
IDAPI
...
A
P
P
L
I
C
A
T
I
O
N
S
API
Outils
Interactif
I
D
A
P
I
Adapteur IDAPI
pour DBase
Adapteur IDAPI
pour SQL*Net
Adapteur Driver ODBC
pour Oracle
IDAPI
pour
Driver ODBC
ODBC pour MSAccess
fichiers
locaux
TCP/IP
Serveur
ORACLE
fichiers
locaux
Exemple JDBC
'LGLHU'RQVH]3DQRUDPDGHV%'V
-DYD'DWD%DVH&RQQHFWLYLW\
FODVV (PSOR\H ^
SXEOLFVWDWLFYRLG PDLQ6WULQJ DUJV >@
WKURZV 64/([FHSWLRQ &ODVV1RW)RXQG([FHSWLRQ ^
&ODVVIRU1DPH RUDFOHMGEFGULYHU2UDFOH'ULYHU
6WULQJ GEXUO MGEFRUDFOHRFL#
&RQQHFWLRQFRQQ 'ULYHU0DQDJHUJHW&RQQHFWLRQGEXUOWRWRSDVVHPRW
6WDWHPHQWVWPW FRQFUHDWH6WDWHPHQW
5HVXOW6HWUV VWPWH[HFXWH4XHU\
6(/(&7 QXPHPS QDPH VDODU\ )520(03/2<(
ZKLOH UVQH[W^
6WULQJV UVJHW6WULQJIORDW I UVJHW)ORDWVDODU\
6\VWHPRXWSULQWOQ VQ
DSDVGHVDODLUH
LIUVZDV1XOO
HOVH
6\VWHPRXWSULQWOQ VJDJQHI
`UVFORVH
`FDWFK([FHSWLRQH^
HSULQW6WDFN7UDFH``
Embedded SQL
Syntaxe plus concise que SQL/CLI
Analyse statique
Contrle de la Syntaxe et du Typage
Typage curseur dpendant de la Mtabase
'LGLHU'RQVH]3DQRUDPDGHV%'V
PrCompilateur
E-SQL dans PL
Source
PL
+
ordres SQL/CLI
imbriqus
ou ordres natifs
Compilateur
PL
Excutable
Base
MetaBase
'LGLHU'RQVH]3DQRUDPDGHV%'V
10
'LGLHU'RQVH]3DQRUDPDGHV%'V
Exemple SQLJ
VTO SXEOLF LWHUDWRU,WHU(PS 6WULQJ LQWGpFODUDWLRQG XQHFODVVHG LWpUDWHXU
^
,WHU(PSLWHUGpFODUDWLRQG XQREMHW LWpUDWHXU
6WULQJQRPLQW VDOLQWF
VTOLWHU ^6(/(&7QDPHVDODU\ )520(PSOR\H `
ZKLOH WUXH^
VTO ^)(7&+LWHU ,172QRPVDO`
LILWHUHQG)HWFKEUHDN
LIF6\VWHPRXWSULQWOQQRPHVWSD\pVDO
`
LWHUVHW5RZVHUHSRVLWLRQQHDXSUHPLHUUpVXOWDW
ZKLOHLWHUQH[W^VHSRVLWLRQQHVXUOHVUpVXOWDWVHQSRVLWLRQLPSDLUH
6\VWHPRXWSULQWOQ LWHUQDPHHVWSD\pLWHUVDODU\
`
`
11
Motivations PL/SQL
Begin
For i=1 to 4
Select ...
End
Client
SQL
SQL
SQL
SQL
Serveur
SQL
BDR
'LGLHU'RQVH]3DQRUDPDGHV%'V
Client
SQL/Proc
Moteur
SQL/Proc
Serveur
SQL
BDR
Client
RPC
Moteur
SQL/Proc
Procdure
Stocke
SQL/Proc
Serveur
SQL
BDR
12
'LGLHU'RQVH]3DQRUDPDGHV%'V
13
'LGLHU'RQVH]3DQRUDPDGHV%'V
Dclencheur = Evnement-Condition-Action
Evnement dans la base
Condition
Dclenchement d une action
Trigger SQL
Evnement
= INSERT, DELETE, UPDATE dans une relation
Action = un ou plusieurs ordres SQL, SQL procdural
14
'LGLHU'RQVH]3DQRUDPDGHV%'V
Pourquoi faire ?
Gains
dveloppement plus rapide
les triggers sont stockes dans la base
15
'LGLHU'RQVH]3DQRUDPDGHV%'V
VolumeAffaire(total,date)
16
'LGLHU'RQVH]3DQRUDPDGHV%'V
Stock(gencod, qte)
17
De nouvelles applications
avec des donnes complexes
'LGLHU'RQVH]3DQRUDPDGHV%'V
18
'LGLHU'RQVH]3DQRUDPDGHV%'V
Produits
ObjectStore, O2, GemStone, POET,
19
Exemple
Personne-Employ-Manager
Person
,6$
'LGLHU'RQVH]3DQRUDPDGHV%'V
Employee
ZRUNVLQ
HPSOR\HHV
Dept
,6$
Manager
PDQDJHV
PDQDJHU
20
Exemple d ODL
interface Person {
attribute string name;
attribute date_t birthday
attribute Addr addr;
'LGLHU'RQVH]3DQRUDPDGHV%'V
int age();
21
Exemple d ODL
'LGLHU'RQVH]3DQRUDPDGHV%'V
interface Dept {
attribute string name;
attribute Addr postaddr;
relationship Set<Employee> employees
inverse Employee::worksin
relationship Manager manager
inverse Manager::manages
}
int allsalaries();
22
SELECT HQDPHGDGGUSRVW
FROM(PSOR\HHV HHZRUNVLQ G
WHERE GQDPH 5 '
'LGLHU'RQVH]3DQRUDPDGHV%'V
Requte imbrique
SELECT m.name, m.salary()
FROM 6(/(&7GPDQDJHU)520 'HSWV GP
WHERE m.salary > 1000000
Groupage
SELECT departement : d.name, massesal : SUM(e.salary)
FROM Depts d, d.employees e
GROUP BY d.name
23
'LGLHU'RQVH]3DQRUDPDGHV%'V
Evolutivit douce
Structurations plus complexes (i.e. riches)
Dfinition d Object View sur Base Relationnelle
([HPSOHGHW\SHDYHFGHVUpIpUHQFHV
Dclaration d un UDT
'LGLHU'RQVH]3DQRUDPDGHV%'V
24
25
DPL
DPL
3HUVRQ
QRP SUHQRP
Dupont
Dupont
Martin
Dupuis
Jean
Marie
Patrick
Pascal
QDLV
10/01/69
12/09/73
27/02/68
1/04/69
FRQMRLQW
NULL
NULL
'LGLHU'RQVH]3DQRUDPDGHV%'V
26
Supporter c est
'LGLHU'RQVH]3DQRUDPDGHV%'V
Stocker
Manipuler
Chercher, Comparer, Retrouver
Exemples des empreintes digitales similaires
select S.Nom, I.AffaireId
from Suspects S, Indices I
where S.Empreinte Similar I.Empreinte
Extension par
UDT Objet Relationnel
Data Cartridges vendus par des tiers
27
'LGLHU'RQVH]3DQRUDPDGHV%'V
28
'LGLHU'RQVH]3DQRUDPDGHV%'V
Le Besoin :
des serveurs bases de donnes qui fournissent haut dbit et
avec de bons temps de rponse des charges de travail varies
sur des trs grosses bases de donnes.
29
Capacit accrue
Temps de Rponse plus court
VSHHGXS
'LGLHU'RQVH]3DQRUDPDGHV%'V
VFDOHXS
30
Speed-up et Scale-up
Speed-up
'LGLHU'RQVH]3DQRUDPDGHV%'V
Diminution du temps de
rponse en augmentant
le nombre de nuds
Scale-up
Accroissement linaire
de la Charge de Travail
'LGLHU'RQVH]3DQRUDPDGHV%'V
31
32
5DSSHOH]YRXVGHO LQFHQGLHGX&UpGLW/\RQQDLV
,PDJLQH]OHWDX[GH79$VXUXQVHXOVLWH
'LGLHU'RQVH]3DQRUDPDGHV%'V
Modes de Rplication
Asymtrique / Symtrique
u(i)
u(i)
Primaire
u(i)
Secondaire1
u1(i)
Secondaire2
u2(i) Primaire2
u1(i)
u3(i) u2(i)
Primaire1
u1(i)
u3(i) Primaire3
u2(i)
u3(i)
33
Exemple de rplication
Hot Stanby d Oracle
u1(i)
u2(i)
Primaire
u1(i)
Secondaire
File
u2(i) u1(i) persistante
Primaire
'LGLHU'RQVH]3DQRUDPDGHV%'V
u2(i)
u2(i)
Primaire
u2(i) u1(i)
Primaire
u2(i) u1(i)
u1(i) u3(i)
u2(i)
u3(i)
Rsolution
conflit (u2,u3)
Secondaire
u1(i) u3(i)
u3(i)
34
'LGLHU'RQVH]3DQRUDPDGHV%'V
7UDQIHUWFSW$FSW%9^
$ 5($'FSW$
$ $9
:5,7(FSW%%
% 5($'FSW%
% %9
:5,7(FSW%%
`
F'XSRQW 6*%'3DULV
7UDQIHUWF'XSRQWF6PLWK
6*%'1<
F6PLWK
35
IMS
ORACLE
'LGLHU'RQVH]3DQRUDPDGHV%'V
Buveurs NB
Abus
Nom
Prnom
NB
NV
Date
Vins
NV
Cru
Type
Qte
Millsime Degr
SYBASE
Buveurs NB
Abus
Nom
Prnom
NB
NV
Date
Vins
NV
Cru
Type
Qte
Millsime Degr
O2
36
Service
Commercial
%' 3URG
Service
Financier
%' 3URG
Service
Livraison
%' 3URG
'DWD :DUHKRXVH
Clientle
Historique
'LGLHU'RQVH]3DQRUDPDGHV%'V
Clientle
37
'LGLHU'RQVH]3DQRUDPDGHV%'V
Intrt:
Comparer avec dacheter
Dimensionner son systme en fonction de ses besoins
MAIS ATTENTION l cart entre
Application Relle et Application Modle
38
'LGLHU'RQVH]3DQRUDPDGHV%'V
Exemple : le TPC-D
Machine Sequent NUMA Q2000 + Base de 300 Go
+ ORACLE 8
Puissance : 3232,3 TPC (soit 19700 F / tps)
+ INFORMIX XPS
Puissance : 2667,7 TPC (soit 20800 F / tps)
TPC (http://www.tpc.org )
'LGLHU'RQVH]3DQRUDPDGHV%'V
5 benchmarks BD
TPC/A et TPC/B
Transactionnel (OLTP)
TPC/C et Draft TPC/E New Order
TPC/D
Dcisionnel (OLAP)
d autres benchmarks
TPC-W
39
40
le Systme dInformation
dune entreprise
,QWHUIDFHV 26
3&
1&
$SSOLFDWLRQV
'LGLHU'RQVH]3DQRUDPDGHV%'V
%DVHVGH'RQQpHV
1HW
3&
#
/DG
&RQVROHGH
-HX[
6HW7RS
%R[
3'$
WRS
7pOpSKRQH
0RELOH
41
Le Futur (i)
6L]H
US Population
Genomic Size
Yota 10^24
Zeta 10^21
Exa 10^18
'LGLHU'RQVH]3DQRUDPDGHV%'V
Peta 10^15
Persistency
Reliability
Querying
)XQFWLRQV
Structured
Semi structured
No structured
0RGHOV
'DSUqV&&ROOHW
42
Le Futur (ii)
$UFKLWHFWXUHV
Peer To Peer
Web Multi Tiers
Client-Server
'LGLHU'RQVH]3DQRUDPDGHV%'V
Centralized
Embedded Memories
Disks
RAID, Cluster, SMP
0HGLD
Multi
TR
Component
$SSOLFDWLRQ
'DSUqV&&ROOHW