La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Manipulations multibases et distribuées Partie 3 Witold Litwin

Présentations similaires


Présentation au sujet: "1 Manipulations multibases et distribuées Partie 3 Witold Litwin"— Transcription de la présentation:

1 1 Manipulations multibases et distribuées Partie 3 Witold Litwin

2 2 Transactions

3 3 Transactions ACID u Opérations atomiques inexprimables avec une requête relationnelle. –Exécutées entièrement ou pas du tout u Préservant la consistance de la BD u comme si l'usager était isolé sur la BD u A effet durable sur la BD, une fois terminées comme prévu

4 4 Primitives de gestion de transactions u BEGIN, COMMIT, ROLLBACK BEGIN TRANSACTION UPDATE Compte1 Val = Val -100 IF SQLCODE <> 0 ROLLBACK ; EXIT ; UPDATE Compte2 Val = Val IF SQLCODE <> 0 ROLLBACK ; EXIT; COMMIT

5 5 Concurrence u 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 u Théorie de concurrence analyse les problèmes d'accès simultané

6 6 Verrou mortel u Les transactions s'attendent mutuellement (deadlock) u Solution typique: –avorter une de transactions (la victime) –le choix est fait par le gestionnaire des verrous (lock manager)

7 7 Les exécutions correctes u Sérialisabilité Les exécutions concurrentes sont correctes ssi leur résultat est équivalent à celui d'une exécution sérielle u Le critère naturel et le plus populaire

8 8 Cas MBD Architecture de référence

9 9 Transaction Sous- transact. Sous- transact. Sous- transact.

10 10 Cas MBD Architecture de référence Coordinateur Participant

11 11 Quelles transactions ?? Problème nouveau. Si à 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 ?

12 12 Quelles transactions ??

13 13 Verrouillage à deux phases (2PL)

14 14 2-PC

15 15

16 16 Solutions

17 17

18 18 T 31 T W 31 (C) W 28 (A) W 31 (B) Site 1Site 2 t

19 19 T 31 T W 31 (C) W 31 (A) W 28 (A) W 31 (B) Site 1Site 2 t

20 20 T 31 T W 31 (C) W 31 (A) W 28 (A) 28 C C 31 W 31 (B) Site 1Site 2 t

21 21 T 31 T W 31 (C) W 31 (A) W 28 (A) 28 C C 31 W 28 (B) W 31 (B) Site 1Site 2 t

22 22 T 31 T W 31 (C) W 31 (A) W 28 (A) 28 C C 31 W 28 (B) W 31 (B) A 31 C 28 C 31 Site 1Site 2 t

23 23 Protocoles & standards d'intéroperabilité MBD u La seule voie pour la coopération des SGBD u 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"

24 24 Protocoles & standards MBD Industriels autres que ODBC u Data Access Language (DAL) –Disponible sur Apples depuis 1989 »un dialecte de SQL u Distributed Relational Database Access (DRDA) –IBM, une partie de System Application Arch. (SAA) u EDA-SQL –Inf. Builders ; un dialecte de SQL et une API

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

26 26 ODBC Origines SQL-Access ISO - RDA SQL - Access Group Consortium Privé de 40 Comp. Crée sous l'impulsion de J. Gray en 1989

27 27 ODBC Origines ODBC SQL-Access ISO - RDA Microsoft coup de poing sur la table

28 28 ODBC Architecture Programme d'application Gestionnaire de Drivers Driver Btrieve Excell Sybase Interface ODBC Single Tier Driver Multiple Tier Driver Passerelle DB2 Passerelle MicroDécision Systems

29 29 ODBC : quelques drivers u HP : ALLBASE/SQL u CA : IDMS, DATACOM, VSAM, DL/1, TOTAL... u CrossAccess ; IMS, VSAM, IDMS, RMS... u IBM : DB2 u DBA ODBC driver (Siemens-Nixdorf) –INFORMIX, ORACLE, INGRES, SESAM/SQL, UDS/SQL... u DDA/ODBC driver (Bull) –ORACLE, INFORMIX, INGRES, DB2, RDB... u Contacte Microsoft pour la liste à jour

30 30 ODBC u L'interface –offre l'API unique aux applications »connections »gestion de mémoires »ordres SQL u Le gestionnaire de drivers –charge le driver approprié –passe les ordres de connection et de SQL –récupère les résultats en format ODBC

31 31 ODBC u Le driver –traduit les ordres SQL & API vers ceux de la source de données »décompose SQL u Single-tier »passe SQL à la source u multiple-tier –SQL ODBC traduit –SQL non-ODBC non-traduit ("pass through") –traduit le format de données »à l'envoi »au retour –traduit les codes d'erreur vers ceux standard

32 32 ODBC Niveaux de conformité u Fonctions offertes par un driver –API »Core u Tout le driver »Level1 »Level2 –SQL »Minimum u Tout le driver »Core »Extended

33 33 ODBC Fonctions de Core API u Alloue et libère –environnement, connections et "handles" »SQLAllocEnv, SQLAllocConnect, SQLAllocStmt »SQLFreeStmt, SQLFreeConnect, SQLFreeEnv –fonctions à executer avant toute connection u Connecte au sources de données et déconnecte »SQLConnect, SQLDisconnect u Prépare et exécute ordres SQL »SQLPrepare, SQLExecute, SQLExecDirect, SQLCancel, SQLGetCursorName, SQLSetCursorName u Alloue mémoire pour les paramètres et résultats de SQL »SQLBindCol

34 34 ODBC Fonctions de Core API u Trouve des données dans le résultat »SQLFetch u Trouve les metadonnées du résultat »SQLRowCount, SQLNumResultsCols, SQLDescribeCol, SQLColAttributes u Commit et rollback »SQLTransact u Gère les codes erreur »SQLError

35 35 ODBC Fonctions Level1 API u Fonctions de Core API avec un ordre suppl. »SQLBindParameter (prép. des ordres SQL) u Connections avec les boites de dialogue –spécifiques aux drivers »SQLDriverConnect u Requêtes aux metadonnées de la connection et de l'ordre en cours »SQLSetConnectOption, SQLGetConnectOption »SQLSetStatementOption, SQLGetStatementOption u Envoie d'une partie de paramètres de l'ordre ou du résultat –utile pour des données longues »SQLPutData, SQLParamData, SQLGetData

36 36 ODBC Fonctions Level1 API u Requêtes au catalogues des attributs, tables et stats »SQLColumns, SQLSpecialColumns, SQLStatistics,SQLTables, u 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

37 37 ODBC Fonctions Level2 API u Level1 u "Browsing" de l'info sur la connection et les sources disponibles »SQLBrowseConnect, SQLDataSources, SQLDrivers u Envoi des tables ("arrays") de valeurs de paramètres »SQLParamOptions u "Browsing" de l'info sur les paramètres et résultats –le nombre et les param. individuels »SQLDescribeParam, SQLNumParams, SQLMoreResults u Gère les curseurs "scrolable" », SQLSetScrollOptions, SQLSetPos, SQLExtendFetch

38 38 ODBC Fonctions Level2 API u Laisse-passer un dialecte de SQL –ordres spécifiques de la source de données »SQLNativeSql u Requêtes aux catalogues SQL –privilèges, clés, procédures... »SQLForeignKeys, SQLPrimaryKeys, SQLProcedureColumns,SQLProcedures, SQLTablePriviledges u Appel du traducteur DLL »SQLDriverToDataSource, SQLDataSourceToDriver

39 39 ODBC SQL : Niveau Grammaire Minimale u CREATE TABLE, DROP TABLE u Simple SELECT, INSERT, UPDATE SEARCHED, DELETE SEARCHED u Expressions simples –(A > B+C) u Types de données –CHAR, VARCHAR, LONG VARCHAR

40 40 ODBC SQL : Niveau Grammaire Core u Grammaire Minimale u DDL –ALTER TABLE, CREATE INDEX, DROP INDEX, CREATE VIEW, DROP VIEW, GRANT & REVOKE u DML –SELECT entier »sous-requêtes et fonctions agrégats de SQL Access u Types de données –DECIMAL, NUMERIC, SMALLINT, INTEGER, REAL, FLOAT, DOUBLE PRECISION

41 41 ODBC SQL : Niveau Grammaire Etendue u Grammaire Minimale u DML –outer joins, –UPDATE, DELETE positionnées –SELECT FOR UPDATE –Unions u Types de données BIT, TINYINT, BIGINT, BINARY, VARBINARY, LONG VARBINARY, DATE, TIME, TIMESTAMP

42 42 ODBC Conception d'un driver u 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 u Les drivers ne sont pas en principe fournis par Microsoft u Plusieurs vendeurs peuvent proposer un driver vers une même source, p.e. Sybase

43 43 ODBC Conception d'un driver u Les drivers vers une même source peuvent différer en –niveau de conformité –performances u 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 u pour "read-ahead" ou une copie d'une table –optimisation locale de requêtes »jointures internes et externes

44 44 ODBC Limitations de V2 u Une connection per SGBD –mais une application peut ouvrir plusieurs connections simultanément u Ordres SQL-ODBC sont monobase –sauf les "passe-through" vers un SGMB u Requêtes MBD doivent être décomposées par le système local –l'idée peu performante »connections multiples »jointures MBD u Absence de 2PC

45 45 ODBC Pour en savoir + u ODBC 2.0 Programmer's Reference and SDK Guide. Microsoft Press, 900. $25 u Geiger, K. Inside ODBC.Microsoft Press, 482 & CD- ROM. $39.95

46 46 Autres protocoles notables u OLE & DDE –de Microsoft –Permettent d'échanger les données entre un SGBD et les applications externes »tableur, traitement de texte, gestionnaire d'images u CORBA –tentative de standard multicompagnie –orienté l'échange distribué des objets

47 47 DCE u Distributed Computing Environment u Un ensemble de services supportes par les principaux constructeurs u Tout particulièrement –SGF distribué –Les serveurs de temps unique u DCE sera probablement largement appliqué

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

49 49 DCE Reference Architecture u 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")

50 50 DCE Reference Architecture u 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 u Cell peut correspondre à une multibase Ordinateur Chaussure Cellules organisées par produit

51 51 DCE Distributed Time Service u Maintient la synchronisation des horloges u Basé sur les Time Servers qui veuillent sur –la synchronisation mutuelle des horloges –la synchronisation avec le temps réel u Offre 33 fonctions (library calls) aux applications u Le modèle de temps –temps à intervalle »quelle heure est-il ? u entre 9:30 et 9:31 –représenté sur 64 bits –pas d'ordre total »problème pour les dates de valeur

52 52 DCE Distributed Time Format Année Mois Jour Heure Min. Sec, (préc. de 1 msec. Diff. / GMT Indic. d'imprécision Erreur max (en sec.) :23: :00 I International Standard 8601 pour Universal Coordinated Time (UTC)

53 53 DCE Time Adjustement Algorithm u Time Clerks (TC) –démons sur les machines-client u Time Servers (TS) –démons en charge de gérer la base de UTC »locaux (dans les Cells) »globaux u avec peut-être une interface vers les sources exterieures de UTC –ondes hertziennes diffusées dans les pays industriels

54 54 DCE Time Clerk Synchronization u Contacte tous les TS sur le LAN ou dans la Cell u Delete toute réponse sans intersection avec une autre u Calcule l'intersection max du reste u Prend la valeur du milieu comme nouveau UTC u Fait une correction graduelle »p.e. < 5 msec. par tick d'horloge UTC1 UTC2 UTC3 UTC4 UTC UTC client

55 55 DCE Directory Service u Deux types de répertoires & services –Cell Directory Service (CDS) –Global Directory Service (GDS) »schéma de nommage X500 u Services auxiliaires –Domain Name System (DNS) »utilisé par GDS u schéma de nommage Internet –Global Directory Agent »utilisé par CDS pour localiser les noms CDS GDA Cell GDA CDS Cell DNS GDS

56 56 DCE File Service u 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

57 57 DCE Security Service u Composantes –Authentication Server (AS) »donne des tickets –Privilege Server (PS) »issue des privilèges d'accès et d'execution u Privilege Attribute Certificates »exigés pour execs. RPC –Login Server (LS) »gère les connections et vérifie les tickets et les privilèges DCE Client AS PS LS 1 2 3

58 58 DCE Pour en savoir + u Tanenbaum, A. Distributed Operating Systems. Prentice Hall, 1994, 614. $57

59 59 Conclusion u Manipulations multibases - parmi les plus importantes directions R & D dans les SGBDs u Autres mots-clés: –Interopérabilité –Intégration –Bases Réparties Hétérogènes u Encore beaucoup à apprendre et à faire

60 60 Exercices u Voir tous ceux déjà dans le texte u Est-ce que cette requête est une transaction ACID ? Use Banks vital cic Update cl* set street = 'Charles de Gaulle" where street = 'Etoile u Proposez un exemple de requête multibase où le modèle ACID convient et un il il ne convient pas u En quoi consiste le blocage dun participant au 2PC ? u 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 sûr le blocage dun participant. Prouvez que le protocole de dates de valeur est libre de verrou mortel. u A quoi sert ODBC ? u Lutilité de fonctions API par rapport aux celles dites SQL de ODBC u Comment pourrait-on appeler autrement les drivers CrossAccess ? u Comment la DCE gère la base de temps globale ?

61 FIN

62


Télécharger ppt "1 Manipulations multibases et distribuées Partie 3 Witold Litwin"

Présentations similaires


Annonces Google