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 Witold.Litwin@dauphine.fr

2 2 SQL Server 2008 u Architecture MBD générale similaire à celle de MsAccess, en plus puissante –passerelles vers Oracle, DB2 –ODBC et donc MsAccess u Le langage Transac-SQL supporte plusieurs fonctions de MSQL u Est le dialecte MBD le moins procédural de l'industrie

3 3 SQL Server 2008 u 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 dusager –Une seule base par USE –Quelques restrictions au niveau de requêtes interbases

4 4 SQL Server 2008 Autres Possibilités Multibases u Commandes CREATE TABLE ou VIEW u Déclencheurs (triggers) – CREATE TRIGGER... u Ces derniers réalisent les dépendances MDB u Notamment, la clause CONSTRAINT nest pas multibase – Les déclarations usuelles de contraintes dintégrité réf. par cette clause ne peuvent être que monobases

5 5 SQL Server 2008 Autres Possibilités Multibases u Les procédures stockées u Les bases peuvent être sur des nœuds (SGBDs) différents – Sur différentes machines réelles ou virtuelles u Les noms des bases externes / USE doivent être précédées alors par les chemins daccès et les noms de nœuds. – Sous forme N.B.S.T

6 6 SQL Server 2008 Autres Possibilités Multibases u Les nœuds doivent alors être liés – « Linked nodes » u Un lien permet de déclarer lURL, le nom dusager, mot de passe de connexion… u On peut créer les liens par – Une procédure stockée u Interface de commande – SQL Server Management Studio »Interface Interactive

7 7 Exécution de Requêtes Multibases u Bases sur le même nœud u Mêmes règles que pour une requête monobase u Bases distribuées On minimise le temps/volume réseau u Sélections, projections jointures monobases sur les bases sources dès que possible u Jointures multibases sur la base cible Agrégations finales aussi

8 8 Exécution de Requêtes Multibases u Exemple générique Use B0 Select R.A, X.B From R, B1.R1 X Where R.C = V1 and X.D = V2 and R.E = X.E

9 9 Exécution de Requêtes Multibases Plan dexécution typique Q1: Use B1 Select X.B, X.E Into B0.T From B1.R1 X Where X.D = V2 Q2: Use B0 Select R.A, T.B From R, T Where T.D = R.D and A = V1

10 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 larticle de Sonia & al dans le matériel de support

11 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 lattribut X B1 envoie à B2 dabord 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 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 lexécution de MDistinct Sur URL notamment

13 13 Exécution de Requêtes Multibases Dune manière générale, les règles doptimisation pratique de requêtes MBD restent primaire On peut faire bien mieux On en parlera dans le cours de directions de recherche

14 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 15 Transactions

16 16 Transactions

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

18 18 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 + 100 IF SQLCODE <> 0 ROLLBACK ; EXIT; COMMIT

19 19 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é –En premier: en utilisant les verrous

20 20 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)

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

22 22 Cas MBD Architecture de référence

23 23 Cas MBD Architecture de référence Transaction Sous- transact. Sous- transact. Sous- transact.

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

25 25 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 ?

26 26 Quelles transactions ??

27 27 Verrouillage à deux phases (2PL)

28 28 2-PC

29 29

30 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ées Resende, Abbadi Transactions imbriquées ouvertes Weikum & Scheck.

31 31 Solutions Compensations A; Silbershatz (U. Yale) & Korth (?) Sagas Hector Garcia Molina (U. Stanford) Transactions Flexibles Litwin & Rusinkiewicz (Telcordia)

32 32 Solutions

33 33

34 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 35 Variantes Gestion de priorités Chaque répétition dune transaction augmente sa priorité contre les interruptions concurrentes Certification sans attentes On exécute chaque transaction T jusquau bout sans attentes On certifie lexécution correcte de T

36 36 Variantes Lopération teste si il na 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 sexécutent pas jusquau bout Systèmes de réservation

37 37 Autres Règles de Priorité u La manipulation de donnée D est selon la sa date de valeur et celle de la transaction venante –Linté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 38 T 31 T 28 20 W 31 (C) W 28 (A) 28 31 W 31 (B) Site 1Site 2 t

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

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

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

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

43 43

44 44 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"

45 45 Autres Règles de Priorité u Le retrait de 150 à 17h20 –Donnera lieu au calcul dintérêt sur -50 si V3 =17h21 – Pas de pénalité si V3 > 18h u Mais la réservation dune place davions parmi les 11 dispo, laisserait seulement 10 places dispo avant V, dhabitude

46 46 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 (du passé) –Inf. Builders ; un dialecte de SQL et une API

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

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

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

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

51 51 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 Microsoft maintient la liste à jour

52 52 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 connexion et de SQL –récupère les résultats en format ODBC

53 53 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")

54 54 ODBC u Le driver (suite) –traduit le format de données »à l'envoi »au retour –traduit les codes d'erreur vers ceux standard

55 55 ODBC Niveaux de conformité u Fonctions offertes par un driver –API »Core u Tout le driver »Level1 »Level2

56 56 ODBC Niveaux de conformité u Fonctions offertes par un driver –SQL »Minimum u Tout le driver »Core »Extended – On est à V 3.1

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

58 58 ODBC Fonctions de Core API 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

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

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

61 61 ODBC Fonctions Level1 API u Requêtes aux metadonnées de la connexion 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

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

63 63 ODBC Fonctions Level2 API u Level1 –"Browsing" de l'info sur la connection et les sources disponibles u SQLBrowseConnect, SQLDataSources, SQLDrivers –Envoi des tables ("arrays") de valeurs de paramètres u SQLParamOptions

64 64 ODBC Fonctions Level2 API u Level1 –"Browsing" de l'info sur les paramètres et résultats »le nombre et les param. individuels u SQLDescribeParam, SQLNumParams, SQLMoreResults –Gère les curseurs "scrolable" u, SQLSetScrollOptions, SQLSetPos, SQLExtendFetch

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

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

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

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

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

70 70 ODBC Conception d'un driver 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

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

72 72 ODBC Limitations de V3.1 u Une connexion per SGBD –mais une application peut ouvrir plusieurs connections simultanément u Ordres SQL-ODBC sont monobase –sauf les "passe-through" vers un SGMB

73 73 ODBC Limitations de V3.1 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

74 74 ODBC Pour en savoir + u Site MSDN de Microsoft http://msdn.microsoft.com/ u Pas mal dautres sites u Plusieurs livres

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

76 76 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é

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

78 78 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")

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

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

81 81 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.) 1995 -11 -02-14:23:43.123 - 01:00 I 003.600 International Standard 8601 pour Universal Coordinated Time (UTC)

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

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

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

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

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

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

88 88 Conclusion u Manipulations multibases ont été parmi les plus importantes directions R & D dans les SGBDs u Autres mots-clés: –Interopérabilité – Bases fédérées –Intégration –Bases Réparties Hétérogènes

89 89 Conclusion u La technologie est fort présente dans lindustrie informatique u Il y a néanmoins encore beaucoup à apprendre et à faire u Il y a des nouvelles tendances – XML multibase et distribué (AquaLogic de BEA) –Extended Web Services – Les « nuages » p.ex. Services Azure u Limpact à voir bientôt

90 FIN

91


Télécharger ppt "1 Manipulations Multibases et Distribuées Partie 3 Witold Litwin"

Présentations similaires


Annonces Google