Sie sind auf Seite 1von 62

Manipulations multibases et distribues

Partie 3

Witold Litwin
Witold.Litwin@dauphine.fr

Transactions
Contrle de concurrence et de consistence: En prsence d'autonomie En absence de contrle centralis (global)

Transactions ACID
Oprations

atomiques inexprimables avec une requte relationnelle.


Excutes entirement ou pas du tout

Prservant

la consistance de la BD comme si l'usager tait isol sur la BD A effet durable sur la BD, une fois termines comme prvu

Primitives de gestion de transactions


BEGIN,

COMMIT, ROLLBACK

BEGIN TRANSACTION
UPDATE Compte1 Val = Val -100 IF SQLCODE <> 0 ROLLBACK ; EXIT ; UPDATE Compte2 Val = Val + 100 IF SQLCODE <> 0 ROLLBACK ; EXIT;

COMMIT

Concurrence
Les

BDs tant partages, les transactions pourraient tre excutes:


l'une aprs l'autre simultanment
meilleures performances possibilits d'inconsistances dans la base

Thorie

de concurrence analyse les problmes d'accs simultan

Verrou mortel
Les

transactions s'attendent mutuellement (deadlock) Solution typique:


avorter une de transactions (la victime) le choix est fait par le gestionnaire des verrous (lock manager)

Les excutions correctes


Srialisabilit

Les excutions concurrentes sont correctes ssi leur rsultat est quivalent celui d'une excution srielle
Le

critre naturel et le plus populaire

Cas MBD
Architecture de rfrence
App MDB Apps locales TM TM Apps locales TM TM

Cas MBD
Architecture de rfrence
App MDB Apps locales
SousTM transact.

Transaction TM

Apps locales
SousTM transact.
SousTM transact.

Cas MBD
Architecture de rfrence
App MDB Apps locales
Participant TM

Coordinateur TM

Apps locales
Participant TM

TM Participant

10

Quelles transactions ??
Critres de rference : Srialisabilit ? ACID ? Temps global ? Problme nouveau. Si l'excution d'une transaction T - certaines sous-transactions commettent - une ou plus avortent alors l'excution de T est-elle correcte ou pas ?

11

Quelles transactions ??
Rponse industrielle actuelle Pas correcte Il faut le modle ACID Solutions techniques Vrouillage deux phases (2-phase locking) Committement deux phases (2-phase commit) Base de temps global (DCE)

12

Verrouillage deux phases (2PL)


1-re phase : tous les verrouillages 2-me phase : tous les dverrouillages

2-me phase est le +souvent aprs le commit (strict 2-PL). Pourquoi ? Problme:
Verrou mortel (2-PL) Mal adapt aux transactions longues

13

2-PC
Le coordinateur envoie les N soustransactions et attend N messages EOTs (end-of-transaction) Alors, il envoie N messages Vote Chaque participant journalise sa soustransaction et si tout est OK, alors envoie le message RTC (ready-tocommit) Si N messages RTC sont reus, alors le coordinateur envoie le message Commit
14

Avantages
Atomicit garantie Simplicit

Problmes
Blocage (2-PC) A quel moment ?? Nombre de messages changes Protocoles de terminaison
15

Solutions
Nouveaux modles de transaction (non-ACID) et notamment: Compensation & transactions flexibles Dates de valeur

Toute transaction T est munie d'une date de valeur V (par l'application ou le systme)
quand la date V arrive, la transaction doit tre termine sinon elle est avorte par le systme toute T estampille toute donne D utilise avec V. dans le cas d'un conflit d'accs D, la priorit va T avec V minimal.

Rgle de priorit

16

si une transaction T2 avec V2 > V avait dj estampill D, alors T2 est localement avorte et attend la fin de T. Proprits intressantes: Jamais de verrou mortel Possibilit de commitement implicite, sans blocage, et sans messages, la date de valeur Approche bien adapt galement au BDs temps-rel Problme pratique principal Comment dterminer les dates de valeur Evitement de "livelock" (une transaction toujours avorte et relance)
17

Site 1

Site 2

20
W31(C)

T31

T28

W28 (A)

W31 (B)

28

31

t
18

Site 1

Site 2

20
W31(C) W31(A)

T31

T28

W28 (A)

W31 (B)

28

31

t
19

Site 1

Site 2

20
W31(C) W31(A)

T31

T28

W28 (A)

W31 (B)

28

C28 C31

31

t
20

Site 1

Site 2

20
W31(C) W31(A)

T31

T28

W28 (A)

W31 (B) W28 (B)

28

C28 C31

31

t
21

Site 1

Site 2

20
W31(C) W31(A)

T31

T28

W28 (A)

W31 (B) A31 W28 (B)

28

C28 C31 C31

C28

31

t
22

Protocoles & standards d'introperabilit MBD


La

seule voie pour la coopration des SGBD ODBC (Open Database Connectivity) standard interface, & protocole
bits et octets encodent :
ordres SQL & tables rsultats de ceux-ci ordre de gestion de connections et d'excution rpartie Locking & 1PC API 2 niveaux, jusque-l

"Middleware" support par pratiquement tous les producteurs de SGBD ou de "front-ends"


23

Protocoles & standards MBD


Industriels autres que ODBC
Data

Access Language (DAL)

Disponible sur Apples depuis 1989


un dialecte de SQL Distributed

Relational Database Access

(DRDA)
IBM, une partie de System Application Arch. (SAA)
EDA-SQL

Inf. Builders ; un dialecte de SQL et une API


24

ODBC
Origines

ISO - RDA Intl. Standard Org. Remote Database Access Protocol commenc vers 1988 Draft Intl. Standard depuis 1991

25

ODBC
Origines
SQL - Access Group Consortium Priv de 40 Comp. Cre sous l'impulsion de J. Gray en 1989 SQL-Access

ISO - RDA

26

ODBC
Origines
Microsoft coup de poing sur la table

ODBC
SQL-Access

ISO - RDA

27

ODBC Architecture
Programme d'application Interface ODBC Gestionnaire de Drivers Driver Driver
Single Tier Driver

Driver Driver
Multiple Tier Driver

Passerelle

Btrieve

Excell

Sybase
Passerelle MicroDcision Systems

DB2

28

ODBC : quelques drivers


HP : ALLBASE/SQL CA : IDMS, DATACOM, VSAM, DL/1, TOTAL... CrossAccess ; IMS, VSAM, IDMS, RMS... IBM : DB2 DBA ODBC driver (Siemens-Nixdorf)

INFORMIX, ORACLE, INGRES, SESAM/SQL, UDS/SQL... DDA/ODBC

driver (Bull)

ORACLE, INFORMIX, INGRES, DB2, RDB... Contacte Microsoft pour la liste jour

29

ODBC
L'interface

offre l'API unique aux applications


connections gestion de mmoires ordres SQL
Le

gestionnaire de drivers charge le driver appropri passe les ordres de connection et de SQL rcupre les rsultats en format ODBC

30

ODBC
Le

driver

traduit les ordres SQL & API vers ceux de la source de donnes
dcompose SQL

Single-tier

passe SQL la source

multiple-tier SQL ODBC traduit SQL non-ODBC non-traduit ("pass through")

traduit le format de donnes


l'envoi au retour

traduit les codes d'erreur vers ceux standard 31

ODBC
Niveaux de conformit
Fonctions

offertes par un driver

API
Core

Tout le driver

Level1 Level2

SQL
Minimum

Tout le driver

32

Core Extended

ODBC
Fonctions de Core API

Alloue et libre environnement, connections et "handles"


SQLAllocEnv, SQLAllocConnect, SQLAllocStmt SQLFreeStmt, SQLFreeConnect, SQLFreeEnv

fonctions executer avant toute connection Connecte au sources de donnes et dconnecte


SQLConnect, SQLDisconnect

Prpare et excute ordres SQL


SQLPrepare, SQLExecute, SQLExecDirect, SQLCancel, SQLGetCursorName, SQLSetCursorName

Alloue mmoire pour les paramtres et rsultats de SQL


SQLBindCol

33

ODBC
Fonctions de Core API

Trouve des donnes dans le rsultat


SQLFetch

Trouve les metadonnes du rsultat


SQLRowCount, SQLNumResultsCols, SQLDescribeCol, SQLColAttributes

Commit et rollback
SQLTransact

Gre les codes SQLError

erreur

34

ODBC
Fonctions Level1 API

Fonctions de Core API avec un ordre suppl.


SQLBindParameter (prp. des ordres SQL)

Connections avec les boites de dialogue


spcifiques aux drivers SQLDriverConnect

Requtes aux metadonnes de la connection et de l'ordre en cours


SQLSetConnectOption, SQLGetConnectOption SQLSetStatementOption, SQLGetStatementOption

Envoie d'une partie de paramtres de l'ordre ou du rsultat


utile pour des donnes longues SQLPutData, SQLParamData, SQLGetData

35

ODBC
Fonctions Level1 API

Requtes au catalogues des attributs, tables et stats


SQLColumns, SQLSpecialColumns, SQLStatistics,SQLTables,

Requtes aux metadonnes du driver et de la source de donnes


types de donnes supports, fonctions aggr., niveau de conformit ODBC... SQLGetInfo, SQLGetFunctions,SQLGetTypeInfo

36

ODBC
Fonctions Level2 API

Level1 "Browsing" de l'info sur la connection et les sources disponibles


SQLBrowseConnect, SQLDataSources, SQLDrivers

Envoi des tables ("arrays") de valeurs de paramtres


SQLParamOptions

"Browsing" de l'info sur les paramtres et rsultats


le nombre et les param. individuels SQLDescribeParam, SQLNumParams, SQLMoreResults

Gre les curseurs "scrolable"


, SQLSetScrollOptions, SQLSetPos, SQLExtendFetch

37

ODBC
Fonctions Level2 API

Laisse-passer un dialecte de SQL


ordres spcifiques de la source de donnes

SQLNativeSql Requtes aux catalogues SQL


privilges, cls, procdures... SQLForeignKeys, SQLPrimaryKeys, SQLProcedureColumns,SQLProcedures, SQLTablePriviledges

Appel du traducteur DLL


SQLDriverToDataSource, SQLDataSourceToDriver

38

ODBC SQL : Niveau Grammaire Minimale


CREATE

TABLE, DROP TABLE Simple SELECT, INSERT, UPDATE SEARCHED, DELETE SEARCHED Expressions simples
(A > B+C)
Types

de donnes

CHAR, VARCHAR, LONG VARCHAR

39

ODBC SQL : Niveau Grammaire Core


Grammaire DDL

Minimale

ALTER TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW, GRANT & REVOKE DML SELECT entier
sous-requtes et fonctions agrgats de SQL Access
Types

de donnes

40

DECIMAL, NUMERIC, SMALLINT, INTEGER, REAL, FLOAT, DOUBLE PRECISION

ODBC SQL : Niveau Grammaire Etendue


Grammaire

Minimale

DML

outer joins, UPDATE, DELETE positionnes SELECT FOR UPDATE Unions

Types

de donnes

BIT, TINYINT, BIGINT, BINARY, VARBINARY, LONG VARBINARY, DATE, TIME, TIMESTAMP 41

ODBC
Conception d'un driver
Les

fonctions de ODBC (API & SQL) sont prises en charge


par le Gestionnaire par le driver
surtout la conversion de SQL et de reprsentation de donnes

Les

drivers ne sont pas en principe fournis par Microsoft Plusieurs vendeurs peuvent proposer un driver vers une mme source, p.e. Sybase
42

ODBC
Conception d'un driver
Les

drivers vers une mme source peuvent diffrer en niveau de conformit performances les diffrences en performances peuvent rsulter de stratgie de rception de tuples
sur demande ou "read-ahead" existence et taille du cache

pour "read-ahead" ou une copie d'une table

optimisation locale de requtes


jointures internes et externes 43

ODBC
Limitations de V2
Une

connection per SGBD

mais une application peut ouvrir plusieurs connections simultanment


Ordres

SQL-ODBC sont monobase

sauf les "passe-through" vers un SGMB


Requtes

MBD doivent tre dcomposes par le systme local


l'ide peu performante connections multiples jointures MBD

44

Absence

de 2PC

ODBC
Pour en savoir +
ODBC

2.0 Programmer's Reference and SDK Guide. Microsoft Press, 900. $25 Geiger, K. Inside ODBC.Microsoft Press, 482 & CDROM. $39.95
45

Autres protocoles notables


OLE

& DDE

de Microsoft Permettent d'changer les donnes entre un SGBD et les applications externes
tableur, traitement de texte, gestionnaire d'images
CORBA

tentative de standard multicompagnie orient l'change distribu des objets


46

DCE
Distributed

Computing Environment Un ensemble de services supportes par les principaux constructeurs Tout particulirement
SGF distribu Les serveurs de temps unique
DCE

sera probablement largement appliqu

47

DCE
Reference Architecture

File service Time Directory Security service service service RPC & authentication DCE Threads Host Operating system and networking Hardware

48

DCE
Reference Architecture
Les

DCE services s'utilisent en interne

Directory Service (DS) utilise RPC pour la communication entre les serveurs RPC utilise DS pour connatre la destination d'un appel Time Service (TS) utilise les Security Service (SS) pour dterminer qui peut rgler une horloge SS utilise TS pour donner les permissions courte terme ("short life-time tickets")
49

DCE
Reference Architecture

Les machines, usagers, fichiers et autres ressources sont groups en "Cells" selon But fonctionnel Scurit Performance
Gographie

Ordinateur

Chaussure

Administration
choix de Cell Administrator

Cell peut correspondre une multibase

Cellules organises par produit

50

DCE
Distributed Time Service
Maintient

la synchronisation des horloges Bas sur les Time Servers qui veuillent sur
la synchronisation mutuelle des horloges la synchronisation avec le temps rel

Offre 33 fonctions (library calls) aux applications

Le

modle de temps
quelle heure est-il ?

temps intervalle
entre 9:30 et 9:31

reprsent sur 64 bits pas d'ordre total 51


problme pour les dates de valeur

DCE
Distributed Time Format
Mois Jour Heure Min. Sec, (prc. de 1 msec. Indic. d'imprcision Erreur max (en sec.)

1995 -11 -02-14:23:43.123 - 01:00 I 003.600

International Standard 8601 pour Universal Coordinated Time (UTC) 52

Diff. / GMT

Anne

DCE
Time Adjustement Algorithm
Time Time

Clerks (TC)
Servers (TS)

dmons sur les machines-client

dmons en charge de grer la base de UTC


locaux (dans les Cells) globaux

avec peut-tre une interface vers les sources exterieures de UTC ondes hertziennes diffuses dans les pays industriels

53

DCE
Time Clerk Synchronization
Contacte

tous les TS sur le LAN ou dans la Cell Delete toute rponse sans intersection avec une autre Calcule l'intersection max du reste Prend la valeur du milieu comme nouveau UTC Fait une correction graduelle
p.e. < 5 msec. par tick d'horloge

UTC1

UTC2

UTC3

UTC4

UTC

54

UTC client

DCE
Directory Service

Deux types de rpertoires & services


Cell Directory Service (CDS) Global Directory Service (GDS)
schma de nommage X500

Cell

CDS
GDA DNS

Services

auxiliaires

Cell GDA CDS GDS

Domain Name System (DNS)


utilis par GDS schma de nommage Internet

Global Directory Agent


utilis par CDS pour localiser les noms

55

DCE
File Service
Deux

partie conceptuelles

FMS local sur chaque noeud


dit Episode une modernisation de FMS de Unix

FMS global
extension de AFS indpendance de localisation dans une Cell duplication possible d'un fichier entre les Cells nommage DCE notion de client et de serveur 56

DCE
Security Service
Composantes Authentication Server (AS) donne des tickets Privilege Server (PS) issue des privilges d'accs et d'execution

AS 1 DCE Client 3 LS 2 PS

Privilege Attribute Certificates

exigs pour execs. RPC Login Server (LS) gre les connections et vrifie les tickets et les privilges 57

DCE
Pour en savoir +
Tanenbaum,

A.

Distributed Operating Systems. Prentice Hall, 1994, 614. $57

58

Conclusion
Manipulations

multibases - parmi les plus importantes directions R & D dans les SGBDs Autres mots-cls:
Interoprabilit Intgration Bases Rparties Htrognes
Encore 59

beaucoup apprendre et faire

Exercices

Voir tous ceux dj dans le texte Est-ce que cette requte est une transaction ACID ?

Use Banks vital cic Update cl* set street = 'Charles de Gaulle" where street = 'Etoile Proposez un exemple de requte multibase o le modle ACID convient et un il il ne convient pas En quoi consiste le blocage dun participant au 2PC ? A quoi sert un protocole de terminaison si on ajoute un au 2PC standard ? Proposez un protocole de terminaison Prouvez quil ny a pas de protocole de terminaison qui viterait coup sr le blocage dun participant. Prouvez que le protocole de dates de valeur est libre de verrou mortel. A quoi sert ODBC ? Lutilit de fonctions API par rapport aux celles dites SQL de ODBC Comment pourrait-on appeler autrement les drivers CrossAccess ? Comment la DCE gre la base de temps globale ?

60

FIN