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 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 Base de Données Scalable u La nombre de sites serveurs de la BDS croît dynamiquement avec sa taille –Les tables se repartitionnent dune manière transparente pour les applications –Pas besoin darrêter lexploitation pour ajouter un nœud et reconfigurer »Souvent un casse-tête pour le DBA u En utilisant les ressources cumulées –TOs de RAM, POs de disques…

16 16 Base de Données Scalable u P eut sétendre sur des milliers de sites (PCs & WSs) en utilisant les ressources en commun –Peut être du type P2P – Google parle de 10M de sites bientôt » Projet Spanner u Les sites sont dits « grid » or « cloud » –Voir + loin pour le jargon commercial u Le sites de « cloud » sont en général virtuels

17 17 Base de Données Scalable u Il sagit de machines virtuelles créées à la demande dans un « Data Center » u Les sites physiques (CPU & mémoires, dites « Blades » ) sont alloués dans des Data Centers par conteneurs – 1500 à 2500 « blades » par conteneur

18 18 Base de Données Scalable u Loffre commerciale pointe son nez depuis 2009 – SQL Azur » BD de 10 GO max (2010) »Sur une seule machine virtuelle MS (2010) » Une plaisanterie pour linstant

19 19 Base de Données Scalable u Plusieurs SGBDs utilisant Hadoop & MapReduce –En fonctions externes u AsterData – Crée par les étudiants de Stanford u GreenPlum – Transfuges de Sun u ParAcell –Sun/Oracle

20 20 Base de Données Scalable Jargon Commercial: »P2P, « Grid Hosting», «Cloud Computing», « Elastic Computing », « Data Fabrics», Database as Service, SaaS… u GemFire (Gemstone) u Amazon EC u Blue Cloud (IBM) u SQL Azure et Windows Azure (MS) u Enomaly u Google Apps u Yahoo Pipes u 3Tera

21 21 Structures de Données Distribuées et Scalables (Infrastructure Cloud) u Partitionnement dynamique transparent au client –par hachage (LH*, Chord…) –par intervalles (RP*) : SDDS-2005 au B019, Google –multi-attribut (k-RP*…) –à tolérance de pannes (LH*sa)

22 22 Structures de Données Distribuées et Scalables (Infrastructure Cloud) u Accès par clé par le client –Peut subir des renvois entre les serveurs u Idem pour laccès parallèle –Scans et peut-être Map/Reduce u Voir les cours sur les SDDSs

23 23 Structures de Données Distribuées et Scalables (Infrastructure Cloud) u Modèles de données u Fichiers clé – valeur – Hadoop, Cassandra, Mango, Voldemort, Pig… u Tables relationnelles – SD-SQL Server, Hive, HadoopDB

24 24 SD-SQL Server 1 er SGBD Scalable Distribué u Utilise le principe des SDDS u Les tables relationnelles se répartissent automatiquement par éclatements sur autant de SD-SQL Servers quil faut u La répartition est invisible aux applications –Proto visible sur le site CERIA (vidéo) –Thèse Doctorat de Soror Sahri (2006) » MdC à Paris 6

25 25 SD-SQL Server 1 er SGBD Scalable Distribué SD-SQL Server DémoSD-SQL Server Démo par Soror

26 26 Transactions

27 27 Transactions

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

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

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

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

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

33 33 Cas MBD Architecture de référence

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

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

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

37 37 Quelles transactions ??

38 38 Verrouillage à deux phases (2PL)

39 39 2-PC

40 40

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

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

43 43 Solutions

44 44

45 45 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 ?)

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

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

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

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

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

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

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

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

54 54

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

85 85 ODBC Pour en savoir + u Site MSDN de Microsoft u Pas mal dautres sites u Plusieurs livres

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

101 FIN

102


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

Présentations similaires


Annonces Google