manipulations multibases et distribuées partie 3

Post on 24-Feb-2016

33 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Manipulations Multibases et Distribuées Partie 3. Witold Litwin Witold.Litwin@dauphine.fr. SQL Serve r 2008. Architecture MBD générale similaire à celle de MsAccess , en plus puissante passerelles vers Oracle, DB2 ODBC et donc MsAccess - PowerPoint PPT Presentation

TRANSCRIPT

1

Manipulations Multibases et Distribuées

Partie 3

Witold LitwinWitold.Litwin@dauphine.fr

2

SQL Server 2008

Architecture MBD générale similaire à celle de MsAccess, en plus puissante–passerelles vers Oracle, DB2–ODBC et donc MsAccess

Le langage Transac-SQL supporte plusieurs fonctions de MSQL

Est le dialecte MBD le moins procédural de l'industrie

3

SQL Server 2008

Requêtes élémentaires–Aux BDs d'un même site USE B ;

select * from T where B1.S.T1.a = T.a ;–S signifie schéma – En général, S est un nom d’usager–Une seule base par USE –Quelques restrictions au niveau de requêtes

interbases

4

SQL Server 2008Autres Possibilités Multibases

Commandes CREATE TABLE ou VIEW Déclencheurs (triggers)

– CREATE TRIGGER ... Ces derniers réalisent les dépendances

MDB Notamment, la clause CONSTRAINT

n’est pas multibase– Les déclarations usuelles de contraintes

d’intégrité réf. par cette clause ne peuvent être que monobases

5

SQL Server 2008Autres Possibilités Multibases

Les procédures stockées Les bases peuvent être sur des nœuds

(SGBDs) différents– Sur différentes machines réelles ou

virtuelles Les noms des bases externes / USE

doivent être précédées alors par les chemins d’accès et les noms de nœuds. – Sous forme N.B.S.T

6

SQL Server 2008 Autres Possibilités Multibases

Les nœuds doivent alors être liés– « Linked nodes »

Un lien permet de déclarer l’URL, le nom d’usager, mot de passe de connexion…

On peut créer les liens par– Une procédure stockée

Interface de commande– SQL Server Management Studio

»Interface Interactive

7

Exécution de Requêtes Multibases Bases sur le même nœud

Mêmes règles que pour une requête monobase

Bases distribuées On minimise le temps/volume réseau

Sélections, projections jointures monobases sur les bases sources dès que possible

Jointures multibases sur la base cible Agrégations finales aussi

8

Exécution de Requêtes Multibases Exemple génériqueUse B0Select R.A, X.B From R, B1.R1 X WhereR.C = V1 and X.D = V2 and R.E = X.E

9

Exécution de Requêtes MultibasesPlan d’exécution typiqueQ1: Use B1Select X.B, X.E Into B0.T From B1.R1 X Where X.D = V2Q2: Use B0Select R.A, T.B From R, T Where T.D = R.D and A = V1

10

Exécution de Requêtes Multibases La clause INTO T peut être réalisée sous

forme: Open Cursor…Fetch… En utilisant les commandes ODBC Le plan typique peut être amendé

Par semi-jointures (Ph. Berstein, MSR) Ou pour TOP k…. Voir aussi l’article de Sonia & al dans le

matériel de support

11

Exécution de Requêtes Multibases Semi-jointure

La base B1 doit recevoir une table T2 de la base B2 sur un autre nœud, pour l’équijointure interne avec une table T1 sur l’attribut X

B1 envoie à B2 d’abord la projection de T1 sur X seul

B2 fait la jointure et renvoie à B1 les tuples pertinents

A fini la jointure avec les autres attributs sélectionnés de T1

Le tout peut diminuer le coût de la jointure MBD par rapport à la stratégie typique

12

Exécution de Requêtes Multiples Les requêtes résultantes sont en général

parallèles On peut afficher la progression

Le Choose (Top k) est poussé vers les bases sources

La construction de la multitable est sur le nœud cible

Y compris l’exécution de MDistinct Sur URL notamment

13

Exécution de Requêtes Multibases

D’une manière générale, les règles d’optimisation pratique de requêtes MBD restent primaire

On peut faire bien mieux On en parlera dans le cours de

directions de recherche

14

Multibases & BDPs SQL Server Sous SQL Server une base peut être parallèle

(BDP) et être dans une multibase Supporter donc les manipulations

multibases La base parallèle utilise des vues

partitionnées distribuées Ces vues peuvent même être rendu scalables

On parlera + dans le cours de directions de recherche

15

Transactions

Contrôle de concurrence et de consistence:En présence d'autonomieEn absence de contrôle centralisé (global)

16

Transactions

Contrôle de concurrence et de consistence:En présence d'autonomieEn absence de contrôle centralisé (global)

17

Transactions ACID Opérations atomiques inexprimables avec

une requête relationnelle.– Exécutées entièrement ou pas du tout

Préservant la consistance de la BD comme si l'usager était isolé sur la BD A effet durable sur la BD, une fois

terminées comme prévu

18

Primitives de gestion de transactions

BEGIN, COMMIT, ROLLBACKBEGIN TRANSACTION

UPDATE Compte1Val = Val -100

IF SQLCODE <> 0 ROLLBACK ; EXIT ;UPDATE Compte2

Val = Val + 100IF SQLCODE <> 0 ROLLBACK ; EXIT;

COMMIT

19

Concurrence Les BDs étant partagées, les transactions

pourraient être exécutées:– l'une après l'autre– simultanément

»meilleures performances»possibilités d'inconsistances dans la base

Théorie de concurrence analyse les problèmes d'accès simultané– En premier: en utilisant les verrous

20

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)

21

Les exécutions correctes

SérialisabilitéLes exécutions concurrentes sont

correctes ssi leur résultat est équivalent à celui d'une exécution sérielle

Le critère naturel et le plus populaire

22

Cas MBDArchitecture de référence

TM

TM TM TM

Appslocales

Appslocales

AppMDB

23

Cas MBDArchitecture de référence

TM

TM TM TM

Appslocales

Appslocales

AppMDB

Transaction

Sous-transact.

Sous-transact.

Sous-transact.

24

Cas MBDArchitecture de référence

TM

TM TM TM

Appslocales

Appslocales

AppMDB

Coordinateur

Participant Participant Participant

25

Quelles transactions ??Critères de réference :

Sérialisabilité ?ACID ?Temps global ?

• Problème nouveauSi à l'exécution d'une transaction T

- certaines sous-transactions commettent- une ou plus avortent

alors l'exécution de T est-elle correcte ou pas ?

26

Quelles transactions ??

Réponse industrie de BDs relationnelles Pas correcte Il faut le modèle ACID

Solutions techniques Vérouillage à deux phases (2-phase

locking) Committement à deux phases (2-phase

commit) Base de temps global (DCE)

27

Verrouillage à deux phases (2PL)

1-ère phase : tous les verrouillages Partagés ou exclusifs

2-ème phase : tous les déverrouillages 2-ème phase est le +souvent après le

commit (strict 2-PL). Pourquoi ?

Problème: Verrou mortel (2-PL) Mal adapté aux transactions longues

28

2-PCLe coordinateur envoie les N sous-

transactions et attend N messages EOTs(end-of-transaction)

Alors, il envoie N messages VoteChaque participant journalise sa sous-

transaction et si tout est OK, alorsenvoie le message RTC (ready-to-commit)

Si N messages RTC sont reçus, alors lecoordinateur envoie le message Commit

29

Avantages

Atomicité garantie Simplicité

Problèmes

Blocage (tout participant attend indéfiniment un message) A quel moment ?

Nombre de messages échangés Protocole de terminaison

30

Solutions

Nouveaux modèles de transactions Non-ACID et longues en général Pas de verrous, au moins de verrous longs

Les verrous & les loquets Ang. Locks & latches)

Transactions imbriquéesResende, Abbadi

Transactions imbriquées ouvertes Weikum & Scheck. 

31

Solutions

•Compensations•A; Silbershatz (U. Yale) & Korth (?)

• Sagas•Hector Garcia Molina (U. Stanford)

•Transactions Flexibles•Litwin & Rusinkiewicz (Telcordia)

32

Solutions

Dates de valeur Litwin & Tirri (Nokia Res. Cntr, Palo Alto)

Toute transaction T est munie d'une date de valeur V unique (par l'application ou le système)

quand la date V arrive, la transaction doit être terminée sinon elle est avortée par le système

Règle de priorité basique toute T estampille toute donnée D utilisée avec V. dans le cas d'un conflit d'accès à D, la priorité va à T

avec V minimal.

33

si une transaction T2 avec V2 > V avait déjà estampillé D, alors T2 est localement avortée et attend la fin de T.

Sinon, T attend la fin de T2 Ou fait une action »App. Dependent »

Propriétés intéressantes: Jamais de verrou mortel Possibilité de commitement implicite, sans

blocage, et sans messages, à la date de valeur Approche bien adapté également au BDs

temps-réel (G. Molina)

34

Problèmes Pratiques

Comment déterminer les dates de valeur Evitement de "livelock" Une transaction toujours avortée et relancée

Variantes Stats sur le temps réel de transactions

Garcia – Molina & al (VLDB 91 ?)

35

Variantes

Gestion de priorités Chaque répétition d’une transaction augmente sa priorité contre les interruptions concurrentes

Certification sans attentes On exécute chaque transaction T jusqu’au bout sans attentes

On certifie l’exécution correcte de T

36

Variantes

L’opération teste si il n’a pas de conflit qui aurait avorté T

Si oui, on ré-exécute T Etc La certification est un bon choix notamment quand la plupart de transactions ne s’exécutent pas jusqu’au bout Systèmes de réservation

37

Autres Règles de Priorité La manipulation de donnée D est selon la

sa date de valeur et celle de la transaction venante– L’intérêt de dépôt de 100€ auquel on a ajouté

100€ à 16h30 avec V1 = 18h sera calculé à 17h comme» Celui de 100€ par T (V2 = 17h30)» Celui de 200€ par T (V2 = 18h30)

38

T31T2820

W31(C)

W28 (A)

28

31

W31 (B)

Site 1 Site 2

t

39

T31T2820

W31(C)

W31(A)W28 (A)

28

31

W31 (B)

Site 1 Site 2

t

40

T31T2820

W31(C)

W31(A)W28 (A)

28 C28

31 C31

W31 (B)

Site 1 Site 2

t

41

T31T2820

W31(C)

W31(A)W28 (A)

28 C28

31 C31

W28 (B)

W31 (B)

Site 1 Site 2

t

42

T31T2820

W31(C)

W31(A)W28 (A)

28 C28

31 C31

W28 (B)

W31 (B)

A31

C28

C31

Site 1 Site 2

t

43

La pratique sur le Web (2010) Les transactions courantes en général utilisent des

dates de valeurs, les sagas et les compensations Banques, Réservations, Achats, Ventes aux

Enchères… Protocoles de gestion de conflits sont divers

44

Protocoles & standards d'intéroperabilité MBD

La seule voie pour la coopération des SGBD ODBC (Open Database Connectivity) standard

interface, & protocole – bits et octets encodent :

» ordres SQL & tables résultats de ceux-ci» ordre de gestion de connections et d'exécution répartie» Locking & 1PC » API à 2 niveaux, jusque-là

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

45

Autres Règles de Priorité Le retrait de 150€ à 17h20

–Donnera lieu au calcul d’intérêt sur -50€ si V3 =17h21

– Pas de pénalité si V3 > 18h Mais la réservation d’une place

d’avions parmi les 11 dispo, laisserait seulement 10 places dispo avant V, d’habitude

46

Protocoles & standards MBDIndustriels 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 (du passé)

– Inf. Builders ; un dialecte de SQL et une API

47

ODBCOrigines

ISO - RDA

Intl. Standard Org. Remote Database Access Protocol

commencé vers 1988 Draft Intl. Standard depuis

1991

48

ODBCOrigines

SQL-Access

ISO - RDA

SQL - Access GroupConsortium Privé de

40 Comp.Crée sous l'impulsion

de J. Gray en 1989

49

ODBCOrigines

ODBC

SQL-Access

ISO - RDA

Microsoftcoup de poing

sur la table

50

ODBC Architecture

Programme d'application

Gestionnaire de DriversDriver Driver Driver

Btrieve

Excell Sybase

Interface ODBC

Single TierDriver Multiple Tier

Driver

Driver Passerelle

DB2

PasserelleMicroDécision

Systems

51

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...

Microsoft maintient la liste à jour

52

ODBC L'interface

– offre l'API unique aux applications»connections»gestion de mémoires»ordres SQL

Le gestionnaire de drivers– charge le driver approprié– passe les ordres de connexion et de SQL– récupère les résultats en format ODBC

53

ODBC Le driver

– traduit les ordres SQL & API vers ceux de la source de données»décompose SQL

Single-tier»passe SQL à la source

multiple-tier–SQL ODBC traduit–SQL non-ODBC non-traduit ("pass

through")

54

ODBC Le driver (suite)

–traduit le format de données»à l'envoi»au retour

–traduit les codes d'erreur vers ceux standard

55

ODBCNiveaux de conformité

Fonctions offertes par un driver–API

»Core Tout le driver

»Level1»Level2

56

ODBCNiveaux de conformité

Fonctions offertes par un driver–SQL

»Minimum Tout le driver

»Core»Extended

– On est à V 3.1

57

ODBC Fonctions de Core API

Alloue et libère– environnement, connections et "handles"

»SQLAllocEnv, SQLAllocConnect, SQLAllocStmt

»SQLFreeStmt, SQLFreeConnect, SQLFreeEnv

– fonctions à executer avant toute connection Connecte au sources de données et déconnecte

»SQLConnect, SQLDisconnect

58

ODBC Fonctions de Core API

Prépare et exécute ordres SQL»SQLPrepare, SQLExecute, SQLExecDirect,

SQLCancel, SQLGetCursorName, SQLSetCursorName

Alloue mémoire pour les paramètres et résultats de SQL

»SQLBindCol

59

ODBC Fonctions de Core API

Trouve des données dans le résultat» SQLFetch

Trouve les metadonnées du résultat» SQLRowCount, SQLNumResultsCols,

SQLDescribeCol, SQLColAttributes Commit et rollback

» SQLTransact Gère les codes erreur

» SQLError

60

ODBC Fonctions Level1 API

Fonctions de Core API avec un ordre suppl.

»SQLBindParameter (prép. des ordres SQL) Connections avec les boites de dialogue

– spécifiques aux drivers»SQLDriverConnect

61

ODBC Fonctions Level1 API

Requêtes aux metadonnées de la connexion et de l'ordre en cours

»SQLSetConnectOption, SQLGetConnectOption»SQLSetStatementOption,

SQLGetStatementOption Envoie d'une partie de paramètres de l'ordre

ou du résultat– utile pour des données longues

»SQLPutData, SQLParamData, SQLGetData

62

ODBC Fonctions Level1 API

Requêtes au catalogues des attributs, tables et stats

»SQLColumns, SQLSpecialColumns, SQLStatistics,SQLTables,

Requêtes aux metadonnées du driver et de la source de données– types de données supportés, fonctions aggr.,

niveau de conformité ODBC...»SQLGetInfo,

SQLGetFunctions,SQLGetTypeInfo

63

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

paramètres SQLParamOptions

64

ODBC Fonctions Level2 API

Level1– "Browsing" de l'info sur les paramètres et

résultats» le nombre et les param. individuels

SQLDescribeParam, SQLNumParams, SQLMoreResults

–Gère les curseurs "scrolable" , SQLSetScrollOptions, SQLSetPos,

SQLExtendFetch

65

ODBC Fonctions Level2 API

Laisse passer un dialecte de SQL– ordres spécifiques de la source de données

»SQLNativeSql Requêtes aux catalogues SQL

– privilèges, clés, procédures...» SQLForeignKeys, SQLPrimaryKeys,

SQLProcedureColumns,SQLProcedures, SQLTablePriviledges

Appel du traducteur DLL» SQLDriverToDataSource,

SQLDataSourceToDriver

66

ODBC SQL : Niveau Grammaire Minimale

CREATE TABLE, DROP TABLE Simple SELECT, INSERT, UPDATE

SEARCHED, DELETE SEARCHED Expressions simples

– (A > B+C) Types de données

– CHAR, VARCHAR, LONG VARCHAR

67

ODBC SQL : Niveau Grammaire Core

Grammaire Minimale DDL

– ALTER TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW, GRANT & REVOKE

DML– SELECT entier

» sous-requêtes et fonctions agrégats de SQL Access Types de données

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

68

ODBC SQL : Niveau Grammaire Etendue

Grammaire Minimale DML

– outer joins, – UPDATE, DELETE positionnées– SELECT FOR UPDATE– Unions

Types de donnéesBIT, TINYINT, BIGINT, BINARY, VARBINARY,

LONG VARBINARY, DATE, TIME, TIMESTAMP

69

ODBCConception 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 représentation de données

70

ODBCConception d'un driver

Les drivers ne sont pas en principe fournis par Microsoft

Plusieurs vendeurs peuvent proposer un driver vers une même source, p.e. Sybase

71

ODBCConception d'un driver Les drivers vers une même source peuvent différer en

– niveau de conformité– performances

les différences en performances peuvent résulter de– stratégie de réception de tuples

»sur demande ou "read-ahead"»existence et taille du cache

pour "read-ahead" ou une copie d'une table– optimisation locale de requêtes

» jointures internes et externes

72

ODBCLimitations de V3.1

Une connexion per SGBD–mais une application peut ouvrir

plusieurs connections simultanément Ordres SQL-ODBC sont monobase

– sauf les "passe-through" vers un SGMB

73

ODBCLimitations de V3.1

Requêtes MBD doivent être décomposées par le système local– l'idée peu performante

»connections multiples»jointures MBD

Absence de 2PC

74

ODBCPour en savoir +

Site MSDN de Microsoft

http://msdn.microsoft.com/ Pas mal d’autres sites Plusieurs livres

75

Autres protocoles notables OLE & DDE

– de Microsoft– Permettent d'échanger les données 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

76

DCE Distributed Computing Environment Un ensemble de services supportes par les

principaux constructeurs Tout particulièrement

– SGF distribué– Les serveurs de temps unique

DCE sera probablement largement appliqué

77

DCE Reference Architecture

File serviceTime

serviceDirectory

serviceSecurityservice

RPC &authentication

DCE Threads

Host Operating system and networking

Hardware

78

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 connaître la destination d'un appel

– Time Service (TS) utilise les Security Service (SS) pour déterminer qui peut régler une horloge

– SS utilise TS pour donner les permissions à courte terme ("short life-time tickets")

79

DCE Reference Architecture

Les machines, usagers, fichiers et autres ressources sont groupés en "Cells" selon– But fonctionnel– Sécurité– Performance

» Géographie– Administration

» choix de Cell Administrator Cell peut correspondre à une

multibase

Ordinateur

Chaussure

Cellules organisées par produit

80

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 réel

Offre 33 fonctions (library calls) aux applications Le modèle de temps

– temps à intervalle» quelle heure est-il ?

entre 9:30 et 9:31– représenté sur 64 bits– pas d'ordre total

» problème pour les dates de valeur

81

DCE Distributed Time Format

Ann

ée

Moi

sJo

urH

eure

Min

.Se

c, (p

réc.

de

1 m

sec.

Diff

. / G

MT

Indi

c. d

'impr

écis

ion

Err

eur

max

(en

sec.

)

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

International Standard 8601 pour Universal Coordinated Time (UTC)

82

DCE Time Adjustement Algorithm

Time Clerks (TC)– démons sur les machines-client

Time Servers (TS)– démons en charge de gérer la base de UTC

» locaux (dans les Cells)» globaux

avec peut-être une interface vers les sources exterieures de UTC

– ondes hertziennes diffusées dans les pays industriels

83

DCE Time Clerk Synchronization Contacte tous les TS sur le

LAN ou dans la Cell Delete toute réponse 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

UTC client

84

DCE Directory Service

Deux types de répertoires & services– Cell Directory Service (CDS)– Global Directory Service (GDS)

» schéma de nommage X500 Services auxiliaires

– Domain Name System (DNS)» utilisé par GDS

schéma de nommage Internet – Global Directory Agent

» utilisé par CDS pour localiser les noms

CDS

GDA

Cell

GDA

CDS

Cell

DNS

GDS

85

DCE File Service

Deux partie conceptuelles– FMS local sur chaque noeud

» dit Episode» une modernisation de FMS de Unix

– FMS global» extension de AFS » indépendance de localisation dans une Cell» duplication possible d'un fichier entre les Cells» nommage DCE» notion de client et de serveur

86

DCE Security Service

Composantes– Authentication Server (AS)

» donne des tickets– Privilege Server (PS)

» issue des privilèges d'accès et d'execution

Privilege Attribute Certificates» exigés pour execs. RPC

– Login Server (LS)» gère les connections et vérifie les

tickets et les privilèges

DCEClien

t

AS

PS

LS

1

2

3

87

DCEPour en savoir +

Tanenbaum, A. Distributed Operating Systems. Prentice Hall, 614. $57

88

Conclusion Manipulations multibases ont été parmi les

plus importantes directions R & D dans les SGBDs

Autres mots-clés:– Interopérabilité– Bases fédérées– Intégration– Bases Réparties Hétérogènes

89

Conclusion La technologie est fort présente dans

l’industrie informatique Il y a néanmoins encore beaucoup à

apprendre et à faire Il y a des nouvelles tendances

– XML multibase et distribué (AquaLogic de BEA)– Extended Web Services– Les « nuages » p.ex. Services Azure

L’impact à voir bientôt

FIN

top related