manipulations multibases et distribuées partie 3
DESCRIPTION
Manipulations Multibases et Distribuées Partie 3. Witold Litwin [email protected]. 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 PresentationTRANSCRIPT
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