UNION INTERCEPT SELECT WHERE JOINT FROM ACID

Dimension: px
Commencer à balayer dès la page:

Download "UNION INTERCEPT SELECT WHERE JOINT FROM ACID"

Transcription

1 STOCKAGE TRANSACTION, SÉRIALISABILITÉ, NIVEAUX D'ISOLATION 1

2 BASE RELATIONNELLE Un serveur de données relationnel : Rend compte de la «réalité» sous forme de table Met en relation la perception logique et l implémentation physique de la modélisation (d où le qualificatif de Relationnel) Rien n est particularisé (pas de pointeurs à câbler) L ordre est sans importance pour stocker des données Répond aux spécifications de l Algèbre Relationnelle élaborée par l anglais Edgar Codd Opérateurs UNION, INTERCEPT, projection (SELECT), restriction (WHERE), produit cartésien (JOINT), prédicats complexes,.. Implémente un langage structuré de requête SQL avec des schémas, clause FROM, possibilité de structurer les requêtes (les sous requêtes), effectuer des jointures et des produits cartésiens, etc. Implémentation des propriétés d acidité (ACID)

3 POURQUOI UNE TRANSACTION Lier ensemble des opérations qui, logiquement sont indissociables et dont les effets ne peuvent être envisagées séparément. Considérons un exemple d application bancaire 3

4 EXEMPLE Lire compte courant de Mr X Retrancher 1000 DT Écrire résultat dans compte courant Lire compte professionnel de Mr X Ajouter 1000 DT Écrire résultat dans compte professionnel 4

5 EXEMPLE SUITE Lire compte courant de Mr X Retrancher 1000 DT Écrire résultat dans compte courant Panne Lire compte professionnel de Mr X Ajouter 1000 DT Écrire résultat dans compte professionnel 5

6 EXEMPLE SUITE Debut-transaction Lire compte courant de Mr X Retrancher 1000 DT Écrire résultat dans compte courant Lire compte professionnel de Mr X Ajouter 1000 DT Panne Reprise du système jusqu au début de la transaction Écrire résultat dans compte professionnel Fin-Transaction 6

7 C EST QUOI UNE TRANSACTION Une Transaction, une séquence atomique d actions sur une BD (lectures/écritures) séparant un commit ou un rollback du commit ou du rollback suivant. Chaque transaction doit laisser la BD dans un état cohérent après l avoir prise dans un état cohérent. Les utilisateurs peuvent spécifier des contraintes d intégrité simples sur les données et le SGBD se charge de les garder inviolables. En dehors de ça, le SGBD n a pas conscience de la sémantique des données (ex., il ne comprend pas comment les intérêts d un compte bancaire sont calculés). Le fait qu une transaction préserve la cohérence de la BD est au bout du compte de la responsabilité de l utilisateur! 7

8 LES MENACES Problèmes de concurrence pertes d opérations introduction d incohérences verrous mortels (deadlock) Panne de transaction erreur en cours d'exécution du programme applicatif nécessité de défaire les mises à jour effectuées Panne système reprise avec perte de la mémoire centrale toutes les transactions en cours doivent être défaites Panne disque perte de données de la base 8

9 GESTION DES TRANSACTIONS ET L ACIDITÉ Les transactions d une base de données relationnelle sont gouvernées par le principe d acidité. L acidité est une exigence de la norme SQL. Un standard n est pas une norme Concerne les serveurs d applications (J2EE, SAP,..) Elle permet, à la façon d une théorie, de rendre compte fidèlement de ce que l on observe et de pouvoir effectuer des «prédictions» relatives à l intégrité et la cohérence des données. En particulier, elle exige qu il n y ait aucune interférence entre les transactions. ACID Atomicité Consistance Isolation Durabilité

10 DÉFINITION DES PROPRIÉTÉS ACID Atomicité Les modifications sont préservées en totalité ou complètement annulées (COMMIT, ROLLBACK ou points d'arrêt appelés SAVEPOINT) Consistance La Base passe d'un état cohérent à un état cohérent. Isolation Si une autre transaction s'effectue en concurrence, elle semble s'être déroulée avant ou après (un peu comme si l'on était seul à travailler sur la base) Il existe plusieurs niveaux d'isolation Durabilité (Persistance) Les modifications d'état sont permanentes. Elles sont conservées en cas d'incident (CRASH RECOVERY et MEDIA RECOVERY).

11 INTERACTIONS ENTRE LES COMPOSANTS CONSTITUTIFS DU SERVEUR DE DONNÉES ORACLE10G Parameter SPFILE Passord File Databas e Shared Pool Library Cache Data Dictionary cache Instance Oracle10g Database buffer Cache Java Pool Streams SGA SID Redo Log buffer Large Pool PMON SMON DBW0 LGWR CKPT ARCH SYSAUX SYSTEM TEMP UNDO DATAFILE Control file REDO multiplexés Optionnels Archive Mode LOG

12 MULTI VERSIONS ET MULTI UTILISATEURS En concurrence d accès à la base: Une lecture ne doit pas empêcher une écriture Une lecture ne doit pas empêcher une lecture Une écriture ne doit pas empêcher une lecture Une écriture ne doit pas empêcher une écriture Une écriture bloque une écriture qui porte sur la sur la même ligne Dans ce cas, la base est réputée OLTP On Line Transactional Processing (Haut débit transactionnel)

13 COMMIT ET ABORT INTRODUCTION D ACTIONS ATOMIQUES Commit (fin avec succès) et Abort (fin avec échec) Ces actions s'effectuent en fin de transaction COMMIT Validation de la transaction Rend effectives toutes les mises à jour de la transaction ABORT (Rollback) Annulation de la transaction Défait toutes les mises à jour de la transaction 13

14 PRIMITIVES DE GESTION DE TRANSACTIONS BEGIN, COMMIT, ROLLBACK BEGIN TRANSACTION UPDATE Compte1 Val = Val -100 IF SQLCODE <> 0 ROLLBACK ; EXIT ; UPDATE Compte2 Val = Val Provoque l'annulation des mises à jour - Relâche les verrous IF SQLCODE <> 0 ROLLBACK ; EXIT; COMMIT - Reprend la transaction - Provoque l'intégration réelle des mises à jour dans la base - Relâche les verrous

15 EFFET LOGIQUE Update Update Mémoire de la transaction Commit Abort Bases de données Poubelle 15

16 IMPLÉMENTATION DE TRANSACTIONS TID : Identificateur de transaction Inscription dans la BD seulement après le COMMIT Journalisation: Toute opération d'une transaction est notée avant et après l'exécution dans un fichier journal présumé à l'abris de pannes Les opérations de commitement sont notées avant d'être exécutées sur la BD (write- ahead log protocol) Points de reprise (checkpoints) sauvegardes de l'état de la BD et notamment de TIDs de transactions en cours à intervalles réguliers

17 ET SI LA CASSE ARRIVE... On ferme l'accès à la base On reprend le dernier checkpoint On retrouve sur le journal toutes les transactions commises après commencées avant ou après le checkpoint On reexécute chronologiquement ces transactions et seulement ces transactions On rouvre la base aux usagers

18 TRANSACTIONS NON-ACID Transactions imbriquées Transactions longues Transactions distribuées exigent un commitement à 2 phases (2 PC)

19 JOURNAUX ET SAUVEGARDE Journal des images avant Journal contenant les débuts de transactions, les valeurs d'enregistrement avant mises à jour, les fins de transactions (commit ou abort) Il permet de défaire les mises à jour effectuées par une transaction Journal des images après Journal contenant les débuts de transactions, les valeurs d'enregistrement après mises à jour, les fins de transactions (commit ou abort) Il permet de refaire les mises à jour effectuées par une transaction 19

20 JOURNAL DES IMAGES AVANT Utilisé pour défaire les mises à jour : Undo 2.Log Page lue Page modifiée 3.Update 1.Read 4.Write Base de données 20

21 JOURNAL DES IMAGES APRÈS Utilisé pour refaire les mises à jour : Redo 3.Log Page lue Page modifiée 2.Update 1.Read 4.Write Base de données 21

22 GESTION DU JOURNAL Journal avant et après sont unifiés Écrits dans un tampon en mémoire et vider sur disque en début de commit Structure d'un enregistrement : N transaction (Trid) Type enregistrement : {début, update, insert, commit, abort} TupleId (Attribut modifié, Ancienne valeur, Nouvelle valeur)... Problème de taille on tourne sur N fichiers de taille fixe possibilité d'utiliser un fichier haché sur Trid/Tid 22

23 SCÉNARIOS DE REPRISE Les mises à jour peuvent être effectuées directement dans la base (en place) la base est mise à jour immédiatement, ou au moins dès que possible pendant que la transaction est active Les mises à jour peuvent être effectuées en mémoire et installées dans la base à la validation (commit) le journal est écrit avant d'écrire les mises à jour 23

24 STRATÉGIE DO-UNDO Mises à jour en place l'objet est modifié dans la base Utilisation des images avant copie de l'objet avant mise à jour utilisée pour défaire en cas de panne Update Mémoire cache 1. LirePage 2. LogPage 3. WritePage Journal avant Undo Base 24

25 STRATÉGIE DO-REDO Mises à jour en différentiel l'objet est modifié en page différentielle (non en place=ombre) Utilisation des images après copie de l'objet en journal après mise à jour (do) utilisée pour refaire en cas de panne (redo) Update Mémoire cache 1. LirePage 3. LogPage 2. WritePage Journal après Redo Base Ombre Commit 25

26 LA GESTION DES BUFFERS Bufferisation des journaux on écrit le journal lorsqu'un buffer est plein ou lorsqu'une transaction commet Bufferisation des bases on modifie la page en mémoire le vidage sur disque s'effectue en différé (processus E/S) Synchronisation journaux / base le journal doit toujours être écrit avant modification de la base! 26

27 REPRISE À FROID En cas de perte d'une partie de la base, on repart de la dernière sauvegarde Le système retrouve le checkpoint associé Il ré-applique toutes les transactions commises depuis ce point (for each committed Ti : redo (Ti)) 27

28 PROBLÈMES DE CONCURRENCE Objectifs de la concurrence: Permettre l exécution simultanée d un grand nombre de transactions Régler les conflits lecture / écriture Garder de très bonnes performances Éviter les blocages 28

29 PROBLÈME DE CONCURRENCE Nécessité d'exécuter les programmes et requêtes de façon concurrente Garantir que l exécution simultanée de plusieurs programmes se fait correctement Cohérence de la base de données Exécution correcte des programmes Exemples de contextes hautement concurrentiels: annuaires téléphoniques (accès en lecture) systèmes de réservation de billets (lecture et mise à jour) 29

30 CONTRÔLE DE CONCURRENCE Phénomènes indésirables : Lecture sale : Une transaction lit des données écrites par une transaction Lecture non reproductible : Une transaction lit de nouveau des données qu il a lues précédemment et trouve que les données ont été modifiées par une autre transaction (qui a validé depuis la lecture initiale) Lecture fantôme : Une transaction ré-exécute une requête renvoyant un ensemble de lignes satisfaisant une condition de recherche et trouve que l ensemble des lignes satisfaisant la condition a changé à cause 30 d une transaction récemment validée.

31 INFÉRENCES ENTRE ÉCRIVAINS PERTE D OPÉRATION (LOST UPDATE) 1ere transaction Temps 2eme transaction READ D X=D+1 WRITE D=X READ D Y=D*2 WRITE D=Y La mise à jour faite par la 1ère transaction est perdue. 31

32 ECRITURE INCONSISTANTE (ANG. DIRTY WRITE) 1ere transaction Temps 2eme transaction READ C C=C+100 WRITE C ROLLBACK READ C IF C>500 THEN D=D+500 WRITE D Initialement, C le crédit d un compte est < 500. Une 1ère transaction modifie le crédit C d'un compte. Une 2ème lit C dans ce nouvel état, puis, constatant que la provision est suffisante, modifie le débit D du compte. Après annulation de la 1ére transaction, la contrainte d'intégrité D C n est plus vérifiée. 32

33 ENTRE LECTEURS ET ÉCRIVAINS LECTURE INCONSISTANTE (ANG. DIRTY READ) 1ere transaction Temps 2eme transaction READ A A=A-100 WRITE A READ B B=B+100 WRITE B COMMIT READ A READB La 1ère transaction a pour but de faire un virement entre deux comptes A et B, qui satisfait la contrainte d'intégrité "somme A+B invariante". La deuxième transaction lit A et B juste après que la 1ére transaction ait déduit 1000 de A. Elle trouve A+B diminué. 33

34 ENTRE LECTEURS ET ÉCRIVAINS LECTURE NON REPRODUCTIBLE (ANG. NON- REPEATABLE READ) ) 1ere transaction READ P READ P READ P Temps 2eme transaction READ P P=P-2 WRITE P COMMIT Une 1ère transaction consulte les places libres dans un avion et laisse un temps de réflexion à l'utilisateur. Entre temps, une 2ème transaction, qui voit les mêmes places libres, valide deux réservations. La 1ère demande à nouveau les places libres: la liste est diminuée alors qu'elle n'a pas encore choisi ses réservations! 34

35 ENTRE LECTEURS ET ÉCRIVAINS LECTURE FANTÔME (ANG. PHANTOM READ)) 1ere transaction READ P READ P READ P Temps 2eme transaction READ P P=P+1 WRITE P ROLLBACK Cas identique au précédant mais avec libération au lieu de réservation de place par la 2ème transaction. Il n'y a pas alors de conflit à proprement parler mais seulement interrogation sur la validité de ces "apparitions fantômes". 35

36 TERMINOLOGIE ET NOTATION Ti: une transaction de numéro i. Ri: une opération de lecture (read) de Ti. Wi: une opération d écriture (write) de Ti. Ri(x): une opération de lecture sur l objet x, x étant un objet manipulé par Ti (p.e.: ligne, colonne, ). Wi(x): une opération d écriture sur l objet x. Exple: Transaction 1 Transaction 2 R1(x) R2(x) x = x +5 R2(y) W1(x) R2(z) R1(y) x = x + y + z z = x + y W2(x) W1(z) 36

37 TERMINOLOGIE Ordonnancement ( schedule) T1 = R1(x), W1(x), R1(y), W1(Z) T2 = R2(x), R2(y), R2(z), W2(x) S={R1(x), W1(x), R1(y), W1(Z), R2(x), R2(y), R2(z), W2(x)} S est un ordonnancement en série (sériel, serial); toutes les opérations de T1 précèdent celles de T2 (+) Aucun conflit entre les transactions. (-) problème de performance Les mécanismes de contrôle de concurrence tentent d interfolier ( interleave) les opérations de lecture et d écriture de plusieurs transactions; de manière à toujours assurer un résultat identique à un ordonnancement en série. 37

38 PROPRIÉTÉS D EXÉCUTION Recouvrabilité : Possibilité d annuler l effet d une transaction qui abandonne (abort). Solution : Ordre des Commit effectués par les transactions suit l ordre de dépendances Lecture(X)/Ecriture(X). Exemple Conséquence sur l exemple : le nombre de places disponibles a été diminué par T1 et repris par T2, avant que T1 n annule ses réservations. Le nombre de sièges réservé sera plus grand que le nombre effectif de clients ayant validé leur réservation 38

39 PROPRIÉTÉS D EXÉCUTION Sans Abandons en Cascade (Cascadeless) : la lecture d une valeur écrite par une transaction T ne peut se faire qu une fois T a réalisé son Commit. Cascadeless ----> Recouvrable exemple Ici, le rollback de T1 intervient sans que T2 n ait validé. Il faut alors impérativement que le système effectue également un rollback de T2 pour assurer la cohérence de la base : on parle d annulations en cascade (noter qu il peut y avoir plusieurs transactions à annuler).. Solution :la lecture d une valeur écrite par une transaction T ne peut se faire qu une fois T a réalisé son Commit.39

40 PROPRIÉTÉS D EXÉCUTION Strict : l écriture d une valeur déjà affectée par une autre transaction T ne peut se faire qu une fois T a réalisé son Commit. Exemple Ici il n y a pas de dearty read mais une dearty write. En effet T1 a validé après que T2 ait écrit dans s. Donc la validation de T1 enregistre la mise-à-jour de T2 alors que celle-ci s apprête à annuler ses mises-à-jour par la suite. Au moment où T2 va annuler, le gestionnaire de transaction doit remettre la valeur du tuple connue au début de la transaction : ce qui revient à annuler la mise-à-jour de T1 Solution : Cascadeless + retarder les Write(X) jusqu à ce que les écritures effectuées par d autres transactions sur X soient validées (commit). 40

41 PROPRIÉTÉS En résumé, on distingue trois niveaux de recouvrabilité selon le degré de contrainte imposé au système : 1. Recouvrabilité : on ne doit pas avoir à annuler une transaction déjà validée. 2. Annulation en cascade : un rollback sur une transaction ne doit pas entraîner l annulation d autres transactions. 3. Recouvrabilité stricte : deux transactions ne peuvent pas accéder simultanément en écriture à la même donnée, sous peine de ne pouvoir utiliser la technique de récupération de l image avant 41

42 NOTION D ÉQUIVALENCE Deux opérations sont conflictuelles ssi Elles opèrent sur le même objet, Au moins une des 2 opérations est une écriture, Chacune des opérations à une transaction différente. Exemple d opérations conflictuelles: T1 = R1(x), W1(x), R1(y), W1(Z) T2 = R2(x), R2(y), R2(z), W2(x) (R1(x), W2(x)), (W1(x), R2(x)), (W1(x), W2(x)), (W1(z), R2(z)) Deux exécutions sont équivalentes si: Les mêmes actions (lecture, écriture) se retrouvent dans les mêmes transactions Chaque paire de d actions conflictuelle (lecture/écriture, écriture/lecture ou écriture/écriture) sont ordonnées de la même façon dans les deux exécutions 42

43 EXÉCUTION SÉRIALISABLE Une exécution S est sérialisable si S est équivalente à une exécution en série des mêmes transactions Exemple : Soit le programme réservation de spectacle, représenté par la séquence suivante : r(s) r(c) w(c) w(s) r : Lecture (Read) w : Ecriture (Write) s : Séance c : Client 43

44 Exécution sérialisable Soient deux transactions T1 et T2, chacun voulant réserver des places pour la même séance pour deux clients distincts c1 et c2. Soit la situation suivante : Il reste 50 places libres pour la séance s T1 veut réserver 5 places pour la séance s T2 veut réserver 2 places pour la séance s Soit le déroulement imbriqué de ces deux réservations r1(s) r1(c1) r2(s) r2(c2) w2(s) w2(c2) w1(s) w1(c1) T1 lit s et c1 : places libres 50 T2 lit s et c2 : places libres 50 Pbm!! Il reste 45 places libres T2 écrit s : 50-2 = 48 alors que 7 places ont été T2 écrit le nouveau compte de c2 T1 écrit s : 50-5 = 45 réservées : T2 lit et modifie une information que T1 a déjà T1 écrit le nouveau compte de c1 lue en vue de la modifier 44

45 EXÉCUTION SÉRIALISABLE Solution1 : Exécuter en série les transactions, on bloque une tant que la précédente n a pas fini son exécution. r1(s) r1(c1) w1(s) w1(c1) r2(s) r2(c2) w2(s) w2(c2) Dans ce cas, pas de problèmes. T2 lit une donnée écrite par T1 qui a terminé son exécution et ne créera donc pas d interférences. Cette solution n est pas acceptable, on ne peut pas se permettre de bloquer tous les utilisateurs sauf un, en attente d une transaction qui peut durer très longtemps 45

46 EXÉCUTION SÉRIALISABLE Solution2 : Exécution entremele de T1et T2 r1(s) r1(c1) w1(s) r2(s) r2(c2) w2(s) w1(c1) w2(c2) T1 lit s et c1 : places libres 50 T1 écrit s = 50 5 = 45 T2 lit s : places libres 45 T2 lit c2 T2 écrit s = 45 2 = 43 T1 écrit le nouveau compte de c1 T2 écrit le nouveau compte de c2 Le résultat obtenu est le même obtenu par une exécution en série, on parle alors de sérialisabilité 46

47 SÉRIALISABILITÉ Hypothèses: Exécution d'une transaction individuelle est correcte Exécution de transactions en série (les unes derrière les autres) est correcte Idée: se ramener à une exécution de transactions en série Concept de sérialisabilité 47

48 GRAPHE DE DÉPENDANCES Il est possible de déterminer la sérialisabilité d'une exécution. On met en oeuvre des relations de précédence entre les transactions. Une fois toutes les relations de précédence établies, on peut générer un graphe dit de dépendance (précédence) Théorème: Une exécution est sérialisable ssi son graphe de dépendance ne comporte pas de cycle Graphe dépendances : Un noeud par transaction; liens de Ti à Tj si Tj effectue une lecture/écriture d une granule précédemment écrit par Ti, ou si Tj effectue une écriture d un granule précédemment lu par Ti. 48

49 GRAPHE DE DÉPENDANCES 1. Chaque transaction est un noeud du graphe; 2. Pour un objet O : Si une transaction T1 fait une écriture de l'objet O avant qu'une transaction T2 ne fasse une opération sur cet objet alors, dans le graphe, T1 précède T2 : Cette relation de précédence est concrétisée par un arc orientée de T1 vers T2. 3. Pour un objet O : Si une transaction T1 fait une lecture sur l'objet O avant qu'une transaction T2 ne fasse une opération d'éciture sur cet objet, alors, dans le graphe, T1 précède T2: 4. L'exécution est sérialisable si et seulement si le graphe ne présente aucun cycle. 49

50 GRAPHE DE DÉPENDANCES T1 T2 T3 Lire (X) Ecrire (X) Lire (Y) Ecrire (Y) Lire (Z) Lire (Y) Ecrire (Y) Lire (X) Ecrire (X) Lire (Y) Lire (Z) Ecrire (Y) Ecrire (Z) - Définir pour chaque objet la liste des transactions qui accèdent a l'objet par ordre chronologique. - dresser le graphe pour determiner si c est serialisable ou non 50

51 GRAPHE DE DÉPENDANCES Pour L'objet X: Lecture de T1, Ecriture de T1, Lecture de T2, Ecriture de T2. Relation de précédence: T1 précède T2. Pour l'objet Y: Lecture de T2, Ecriture de T2, Lecture de T3, Ecriture de T3, Lecture de T1, Ecriture de T1. Relation de précédence: T2 ecrit avant T3 donc T2 précède T3; T3 ecrit avant T1 donc T3 précède T1. Pour l'objet Z: Lecture de T2, Lecture de T3, Ecriture de T3. Relation de précédence: Le fait que T2 lise avant que T3 ne lise ne provoque pas de conflit. Cependant, la précédence doit être exprimée ici, parce que T3 fait par la suite une opération d'écriture sur Z. 51

52 GRAPHE DE DÉPENDANCES Toutes les transactions sont représentées par des noeuds. On indique que T1 précède T2 en dessinant une flèche de T1 vers T2. Pour plus de clarté, on peut mettre sous chaque flèche, l'objet a partir duquel a été déduite la relation représentée par la flèche. Le graphe de précédence ressemble alors a ce qui suit: X T1 T2 L exécution donnée n est pas serialisable Y T3 Y,Z 52

53 GRAPHE DE DÉPENDANCES Exemple2 : T1 T2 T3 Lire (X) Ecrire (X) Lire (Y) Ecrire (Y) Lire (Z) Lire (Y) Lire (Z) Ecrire (Y) Ecrire (Z) Lire (Y) Ecrire (Y) Lire (X) Ecrire (X) 53

54 GRAPHE DE DÉPENDANCES Pour L'objet X: Lecture de T1, Ecriture de T1, Lecture de T2, Ecriture de T2. Relations de précédence: On détermine sans difficulté que T1 précède T2. Pour l'objet Y: Lecture de T3, Ecriture de T3, Lecture de T1, Ecriture de T1, Lecture de T2, Ecriture de T2. Relations de précédence: T3 écrit avant T1 donc T3 précède T1; T3 écrit avant T2 donc T3 précède T2; T1 écrit avant T2 donc T1 précède T2. Pour l'objet Z: Lecture de T3, Ecriture de T3, Lecture de T2. Relations de précédence: T3 écrit avant T2 donc T3 précède T2. 54

55 GRAPHE DE DÉPENDANCES T1 X,Y T2 Il n'y a pas de cycle dans ce graphe de sérialisabilite. L execution est serialisable. Y Z T3 55

56 APPROCHE DE LA GESTION DE LA CONCURRENCE Objectif: forcer la sérialisabilité Deux méthodes: Verrouillage Estampillage Verrouillage: L idée est simple : on bloque l accès à une donnée dès qu elle est lue ou écrite par une transaction («pose de verrou») et on libère cet accès quand la transaction termine par commit ou rollback («libération du verrou») Le verrou partagé (SLocks) est typiquement utilisé pour permettre à plusieurs transactions concurrentes de lire la même ressource. Le verrou exclusif (XLocks) réserve la ressource en écriture à la transaction qui a posé le verrou. 56

57 VERROUS EXCLUSIF : PROTOCOLE PXO Définition: un verrou est dit exclusif s'il interdit toute autre obtention d'un verrou, de quelque type que ce soit, sur l'élément verrouillé, par une autre transaction. Verrous exclusifs avec libération explicite Toute demande d accès contient implicitement une demande de verrouillage (Lire XLire). Toute transaction qui a besoin d une ressource qui est actuellement verrouillée est mise en attente (FIFO). L'obtention du verrou autorise lectures et mises à jour Un verrou peut être relâché explicitement (XRelâcher) à n importe quel moment. Au plus tard, il est relâché implicitement à la fin de la transaction. 57

58 VERROUILLAGE EXCLUSIF: EXEMPLE ET PROBLÈMES 58

59 SOLUTIONS DES INTERBLOCAGES Deux approches: Détection: laisser les transactions se mettre en interblocage, le détecter puis le résoudre. Grâce au graphe de dépendances : un interblocage: un cycle dans le graphe Quand faire la détection? lors des demandes de verrouillage périodiquement après un certain temps d attente pour une transaction Action: tuer l une des transactions celle qui a fait le moins de maj la plus jeune celle qui a le moins de ressources allouées Tuer: défaire (annuler ses maj, ses verrous) puis relancer automatiquement plus Tard Prévention: prévenir les interblocages. En pratique, solution détection la plus souvent utilisée car prévention plus coûteuse. 59

60 MÉCANISMES DE VERROUILLAGE La consistance est assurée grâce aux mécanismes de verrouillage. Ces mécanismes garantissent la réservation temporaire de ressources à une transaction. Un SGBDR offre plusieurs niveaux de verrouillage, appelés granularité: Logique, sur table ou sur une ligne Physique, sur segment, fichier ou page 60

61 MÉCANISMES DE VERROUILLAGE Oracle8 n offre que le niveau logique: Verrouillage au niveau de la ligne (type TX). Juste les lignes modifiées par la transaction sont verrouillées On doit disposer de l option TPO (Transaction Processing Option), mise en œuvre par le paramètre ROW_LOCKING=ALWAYS du fichier init.ora Verrouillage au niveau de la table (type TM) Toutes les lignes de la table sont verrouillées Les autres transactions continuent à consulter les datas de la table, y compris ceux qui sont modifiées 61

62 MÉCANISMES DE VERROUILLAGE On peut utiliser les verrous pour verrouiller: Les datas : (data locks ou DML) DML protègent les datas de l user. Le dictionnaire de datas (dictionary lock) : ce qui permet de protéger la description des structures de datas La définition de la table ne peut pas être modifiée pendant une transaction Les Objets systèmes (SGA, buffer, ). Ce qu on appelle par verrous internes (latches) Automatiques 62

63 LES DIFFÉRENTS TYPES DE VERROUILLAGE Les verrous TX (ligne) et TM (table) sont aussi classés selon deux catégories: Verrou exclusif Verrou partagé Alors, les différents type de verrouillage sont: Verrouillage exclusif de la table (X) Verrouillage de la table en mode partagé (S) Verrouillage sélectif des lignes (RS) Verrouillage exclusif des lignes (RX) 63 Verrou exclusif Verrou partagé Verrou ligne RX RS Verrou table X S

64 MISE EN ŒUVRE DES VERROUS Verrouillage implicite géré par le SGBDR. Ce type de verrouillage assure la consistance et l'intégrité des données INSERT, UPDATE et DELETE posent automatiquement un verrou RX sur la table concernée. SELECT ne demande jamais de verrou. Possibilité d exécuter un SELECT sur une table même si il y a des verrous sur la table ou sur ses lignes. SELECT FOR UPDATE permet de réserver, en vue d une maj ultérieure, les lignes qui sont consultées. Un verrou RS est allouée donc sur la table Verrouillage explicite par la commande LOCK En complément du verrouillage implicite, nous pouvons définir une stratégie de verrouillage. Il est fortement déconseillé d utiliser le LOCK TABLE car le verrouillage automatique d Oracle (à partir de 6.x) est plus performant que le mode manuel 64

65 VERROUILLAGE EXCLUSIF DE LA TABLE (X) C'est le mode le plus restrictif, il assure aux Tr qui l'obtient un accès exclusif en écriture sur une table par la commande : LOCK TABLE table IN EXCLUSIVE MODE; Opérations Seule une Tr peut avoir un accès en mode X pour une table Les autres Tr peuvent consulter les datas de la table mais ne peuvent ni les modifier, ni poser des verrous sur la table et sur ses lignes. 65

66 VERROUILLAGE DE LA TABLE EN MODE PARTAGÉ (S) Commande LOCK TABLE table IN SHARE MODE; Opérations Les autres Tr peuvent mettre différents verrous en mode partagé sur la table (RS ou S) Une Tr qui verrouille une table en mode S empêche les autres transactions de demander des verrous de type SRX ou X. 66

67 VERROUILLAGE SÉLECTIF DES LIGNES (RS) Il est acquis de manière automatique si l'une des commandes SQL suivante est exécuté: SELECT... FROM table... FOR UPDATE OF... ; LOCK TABLE table IN ROW SHARE MODE; Opérations Ce verrou est le moins contraignant. Il permet aux autres Tr de mettre à jour les datas autres que celles concernées par la Tr qui a demandé le verrou (RS). En revanche, aucune autre transaction ne peut demander de verrou de type X. 67

68 VERROUILLAGE EXCLUSIF DES LIGNES (RX) Ce mode est acquis de façon automatique pour une table modifiée par l'une des instructions suivantes : 68 INSERT INTO table...; UPDATE table...; DELETE FROM table...; LOCK TABLE table IN ROW EXCLUSIVE MODE; Opérations: Ce mode empêche d'autres Tr de verrouiller manuellement la table en mode S, X ou SRX La Tr qui a mis le verrouillage peut modifier un ou plusieurs les lignes de la table

69 DML LOCKS Le tableau suivant résumera les combinaisons possibles des divers modes de verrouillage que peuvent demander des transactions simultanées sur la même table. X Verrou obtenu par une transaction Verrous impossibles pour les autres transactions RS, RX, S, X Verrous possibles pour les autres transactions 69 S RX, X RS, S RX S, X RX, RS RS X RS, RX, S

70 GESTION DES VERROUS Le gestionnaire de verrou maintient une table de verrous qui contient pour chaque objet sur lequel il y a un (ou des) verrou(s) : le nombre de transactions portant sur l objet la nature des verrous (partagé ou exclusif) un pointeur vers une queue de demandes de verrous Le SGBD maintient aussi la description des transactions dans une table des transactions qui contient : des pointeurs vers une liste de verrous posés par chaque transaction 70

71 CONTRÔLE DE CONCURRENCE : PROTOCOLE DE S2PL Le protocole de verrou «Strict 2-Phase Locking» est basé sur deux règles : Si une transaction T veut lire (resp. modifier) un objet, il demande d abord un verrou partagé (resp. un verrou exclusif) sur l objet Tous les verrous posés par une transaction sont relâchés lorsque la Tr se termine 71

72 CONTRÔLE DE CONCURRENCE : PROTOCOLE DE S2PL Sans verrou T1 R(A) W(A) R(B) W(B) Commit T2 R(A) W(A) R(B) W(B) Commit Protocole S2PL T1 T2 X(A) R(A) W(A) X(B) R(B) W(B) Commit X(A) R(A) W(A) X(B) R(B) W(B) Commit 72

73 CONTRÔLE DE CONCURRENCE : PROTOCOLE DE S2PL Limite du protocole S2PL: Temps d attente pour la Tr qui n a pas obtenu en premier le verrou Nécessité donc d un autre protocole qui ne pénalise pas les Tr 73

74 CONTRÔLE DE CONCURRENCE : PROTOCOLE DE 2PL Le protocole de verrou «2-Phase Locking» est basé aussi sur deux règles : Si une transaction T veut lire (resp. modifier) un objet, il demande d abord un verrou partagé (resp. un verrou exclusif) sur l objet Une transaction peut relâcher un verrou avant de se terminer, mais elle ne peut plus redemander de verrou une fois qu elle en a relâché un Toute Tr est alors composée de deux phases : la phase croissante : demandes de verrous la phase décroissante : relâchements de verrous une Tr ne relâche un verrou sur un objet que si elle est sûre que celui-ci ne sera plus utilisé (ni en lecture ni en écriture) une Tr ne relâche les verrous sur un objet que si elle est sûre que plus aucun verrou ne sera posé sur les autres objets 74

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Les transactions 1/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Les transactions 1/40. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/40 2/40 Pourquoi? Anne-Cécile Caron Master MAGE - BDA 1er trimestre 2013-2014 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions 1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent

Plus en détail

Implémentation des SGBD

Implémentation des SGBD Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

Plus en détail

Bases de données avancées Concurrence d'accès et reprise

Bases de données avancées Concurrence d'accès et reprise Bases de données avancées Concurrence d'accès et reprise Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan La notion de transaction Les problèmes de la concurrence Problèmes

Plus en détail

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1 1 COMPOSANTS DE L ARCHITECTURE D UN SGBD Chapitre 1 Généralité 2 Les composants principaux de l architecture d un SGBD Sont: Les processus Les structures mémoires Les fichiers P1 P2 Pn SGA Fichiers Oracle

Plus en détail

Quel SGBDR pour VFP?

Quel SGBDR pour VFP? D. Peralta le 4 mars 2008 Rencontres AtoutFox 2007/2008 Quel SGBDR pour VFP? Lors des précédentes rencontres, nous avons écrit des articles sur l utilisation des SGBDR avec VFP. Nous avons vu les différentes

Plus en détail

Données Réparties. Thibault BERNARD. thibault.bernard@univ-reims.fr

Données Réparties. Thibault BERNARD. thibault.bernard@univ-reims.fr Données Réparties Thibault BERNARD thibault.bernard@univ-reims.fr Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées Sommaire Introduction Gestion de la

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Cours de Base de Données Cours n.12

Cours de Base de Données Cours n.12 Cours de Base de Données Cours n.12 Gestion des transactions : contrôle de concurrence Elisabetta De Maria - http://www.i3s.unice.fr/ edemaria/ UFR Sciences et Laboratoire I3S, CNRS 2013-2014 Université

Plus en détail

3. La SGA ou System global Area

3. La SGA ou System global Area 1/11 L'instance Oracle Oracle est une base de données composée de 3 parties différentes : L'instance Les fichiers de données Les fichiers de données facultatifs (fichier d'initialisation, fichier de mots

Plus en détail

Administration des bases de données relationnelles Part I

Administration des bases de données relationnelles Part I Administration des bases de données relationnelles Part I L administration des bases de données requiert une bonne connaissance - de l organisation et du fonctionnement interne du SGBDR : structures logiques

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Notion de base de données

Notion de base de données Notion de base de données Collection de données opérationnelles enregistrées sur un support adressable et utilisées par les systèmes et les applications Les données doivent être structurées indépendamment

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

Module BDR Master d Informatique (SAR)

Module BDR Master d Informatique (SAR) Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet Anne.Doucet@lip6.fr Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Réplication des données

Réplication des données Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance

Plus en détail

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin 1 Transactionnel et transactionnel réparti Source R.CHEVANCE G.Gardarin Plan Concept de transaction - Propriétés ACID Transactionnel réparti Moniteur transactionnel Modèle X/Open Exemple de moniteur transactionnel:

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Gestion des Journaux. Méthodes d accès aux données. Système d exploitation. Gestion de Verrous. Gestion de. Mémoire. Gestion de transactions Page 2

Gestion des Journaux. Méthodes d accès aux données. Système d exploitation. Gestion de Verrous. Gestion de. Mémoire. Gestion de transactions Page 2 Gestion de Transactions Principes de base Propriétés ACID d'une transaction Protocoles de contrôle de concurrence Protocoles de tolérance aux pannes Gestion de transactions dans Oracle Modèles de transactions

Plus en détail

Tolérance aux pannes

Tolérance aux pannes Tolérance aux pannes Arnaud Labourel Université de Provence 15 mars 2012 Arnaud Labourel (Université de Provence) Tolérance aux pannes 15 mars 2012 1 / 55 Présentation Tolérances aux pannes Pannes Définition

Plus en détail

Gestion des transactions dans le relationnel Résistance aux pannes et sécurité

Gestion des transactions dans le relationnel Résistance aux pannes et sécurité Gestion des transactions dans le relationnel Résistance aux pannes et sécurité Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Février 2013

Plus en détail

Oracle Maximum Availability Architecture

Oracle Maximum Availability Architecture Oracle Maximum Availability Architecture Disponibilité des systèmes d informations Technologies et recommandations 1 Qu est-ce que Oracle Maximum Availability Architecture (MAA)? 1. Objectif : Disponibilité

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

PLAN DE COURS ORACLE : ADMINISTRATION DE BASES DE DONNEES. Objectif. Code. Dure e. Public Concerne. Pre -requis. Programme OR305

PLAN DE COURS ORACLE : ADMINISTRATION DE BASES DE DONNEES. Objectif. Code. Dure e. Public Concerne. Pre -requis. Programme OR305 PLAN DE COURS ORACLE : ADMINISTRATION DE BASES DE DONNEES Objectif Administrer une ou plusieurs bases de, tant sous l'aspect "gestionnaire de " que sous l'aspect "responsable système Oracle". Public Concerne

Plus en détail

Chapitre 1 : Introduction

Chapitre 1 : Introduction Chapitre 1 : Introduction A. Objectifs de l'ouvrage.................. 8 B. Présentation d'oracle11g................. 8 1. Introduction........................ 8 2. Principales nouveautés de la version

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

Eléments de base de la sécurité des bases de données

Eléments de base de la sécurité des bases de données Eléments de base de la sécurité des bases de données N. Boudjlida UHP Nancy 1, LORIA, Campus scientifique, BP 239 54506 Vandœuvre Lès Nancy CEDEX (F) Nacer.Boudjlida@loria.fr, http://www.loria.fr/ nacer

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Réplication des bases de données

Réplication des bases de données Réplication des bases de données Stéphane Gançarski Hubert Naacke LIP6 Université Paris 6 1 Références Livre Articles Cours Principles of Distributed Database Systems Eager Replication [KA 2000]: Bettina

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Généralités sur les bases de données

Généralités sur les bases de données Généralités sur les bases de données Qu est-ce donc qu une base de données? Que peut-on attendre d un système de gestion de bases de données? Que peut-on faire avec une base de données? 1 Des données?

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Bases de données avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

Plus en détail

Questions tuyaux et solutions - Fichiers et bases. des données

Questions tuyaux et solutions - Fichiers et bases. des données Questions tuyaux et solutions - Fichiers et bases de données Thomas Vanesse 21 juin 2011 Résumé Ce document reprend l ensemble des questions théoriques parues aux examens de 2003 à 2011. Les résolutions

Plus en détail

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques Plan de formation : Certification OCA Oracle 11g Description Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques industriels les plus avancés. Cette formation permettra

Plus en détail

Bases de données réparties

Bases de données réparties Bases de données réparties J. Akoka - I. Wattiau 1 Contexte Technologique : des solutions de communication efficace entre les machines des SGBD assurent la transparence des données réparties standardisation

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier ENSTA Mastère Spécialisé en Architecture des Systèmes d Information Cours C1-3 Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier Partie II : les SGBD vus du coté Administrateur

Plus en détail

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

EJB avancés. Transactions Sécurité Ressources Performances

EJB avancés. Transactions Sécurité Ressources Performances EJB avancés Transactions Sécurité Ressources Performances Les transactions Concept fondamental dans les applications distribuées Indispensable pour une exécution sure des services Difficile à mettre en

Plus en détail

Hibernate vs. le Cloud Computing

Hibernate vs. le Cloud Computing Hibernate vs. le Cloud Computing Qui suis-je? Julien Dubois Co-auteur de «Spring par la pratique» Ancien de SpringSource Directeur du consulting chez Ippon Technologies Suivez-moi sur Twitter : @juliendubois

Plus en détail

Rendez-vous Firebird RMLL 2007

Rendez-vous Firebird RMLL 2007 Rendez-vous Firebird RMLL 2007 Les Transactions Pierre Yager CRISALID pierre@crisalid.com Les Transactions Concepts Métriques : ACID SQL Isolement Côté Serveur Côté Client Conseils, Questions Ouvertes

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Le Network File System de Sun (NFS)

Le Network File System de Sun (NFS) 1 sur 5 Le Network File System de Sun (NFS) Le Network File System de Sun (NFS) Architecture Protocoles Mounting Automounting vs Static mounting Directory et accès aux fichiers Problèmes Implémentation

Plus en détail

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES

CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES SGBD / Aide à la décision CYCLE CERTIFIANT ADMINISTRATEUR BASES DE DONNÉES Réf: KAO Durée : 15 jours (7 heures) OBJECTIFS DE LA FORMATION Ce cycle complet vous apportera les connaissances nécessaires pour

Plus en détail

Systèmes concurrents. Philippe Quéinnec. 14 septembre 2012. Systèmes concurrents 1 / 48

Systèmes concurrents. Philippe Quéinnec. 14 septembre 2012. Systèmes concurrents 1 / 48 Systèmes concurrents Philippe Quéinnec 14 septembre 2012 Systèmes concurrents 1 / 48 Neuvième partie Transactions Systèmes concurrents 2 / 48 Interférences entre actions Dénition des transactions Type

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation

Plus en détail

BD Avancées TRAVAUX DIRIGÉS. UFR Sciences et Techniques. IUP Blois Master SIR 1 année

BD Avancées TRAVAUX DIRIGÉS. UFR Sciences et Techniques. IUP Blois Master SIR 1 année UFR Sciences et Techniques IUP Blois Master SIR 1 année BD Avancées TRAVAUX DIRIGÉS Enseignant Jean-Yves ANTOINE (Jean-Yves.Antoine AT univ-tours.fr) Sécurité des données CONTRÔLE DES ACCES CONCURRENTS

Plus en détail

Notation o i (E) : la transaction i effectue sur l élément E l opération x qui peut être : r lecture (read) w écriture (write)

Notation o i (E) : la transaction i effectue sur l élément E l opération x qui peut être : r lecture (read) w écriture (write) MASTER INFORMATIQUE DE L UNIVERSITÉ BORDEAUX 1 BASES DE DONNÉES AVANCÉES INF 559 (CHRISTIAN RETORÉ) EXERCICES CORRIGÉS ACCÈS CONCURRENTS (31 DÉCEMBRE 2007) Le cours a présenté trois techniques de gestion

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

REAL APPLICATION CLUSTERS

REAL APPLICATION CLUSTERS Oracle upg adm 9i Claude DA COSTA Chap 11 Scalable Real Appli Clusters Page 1/10 REAL APPLICATION CLUSTERS Cash Fusion Shared server_side initialization parameter Oracle upg adm 9i Claude DA COSTA Chap

Plus en détail

Chapitre 10. Architectures des systèmes de gestion de bases de données

Chapitre 10. Architectures des systèmes de gestion de bases de données Chapitre 10 Architectures des systèmes de gestion de bases de données Introduction Les technologies des dernières années ont amené la notion d environnement distribué (dispersions des données). Pour reliér

Plus en détail

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes) Avant-propos 1. Lectorat 11 2. Pré-requis 12 3. Objectifs 12 4. Environnement technique 13 Choisir la bonne architecture matérielle 1. Introduction 15 2. Architecture disque 16 2.1 La problématique de

Plus en détail

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales Ecole des Hautes Etudes Commerciales HEC Alger Évolution des SGBDs par Amina GACEM Module Informatique 1ière Année Master Sciences Commerciales Evolution des SGBDs Pour toute remarque, question, commentaire

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 13 : Organisation d une base de données, ou comment soulever (un peu) le voile Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les clusters de table

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des

Plus en détail

Année Universitaire 2009/2010 Session 2 de Printemps

Année Universitaire 2009/2010 Session 2 de Printemps Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure

Plus en détail

Bases de données multidimensionnelles OLAP. OnLine Analytical Processing

Bases de données multidimensionnelles OLAP. OnLine Analytical Processing Bases de données multidimensionnelles OLAP OnLine Analytical Processing OLAP OLAP (On Line Analytical Processing): Ensemble des outils nécessaires pour la mise en place d'un Système d'information décisionnel

Plus en détail

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers Programme détaillé Objectifs de la formation Les systèmes de gestion de bases de données prennent aujourd'hui une importance considérable au regard des données qu'ils hébergent. Véritable épine dorsale

Plus en détail

Les transactions étendues et quelques Frameworks qui les supportent.

Les transactions étendues et quelques Frameworks qui les supportent. Les transactions étendues et quelques Frameworks qui les supportent. Christophe Ponsen cponsen@info.fundp.ac.be Institut d Informatique, Université de Namur Résumé Les transactions étendues posent de nombreux

Plus en détail

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2

5 Moniteurs. Slide 1. Caractéristique majeure d un programme avec moniteurs = Composé de deux sortes de modules/processus: Slide 2 5 Moniteurs Motivation = les sémaphores peuvent être utilisés pour résoudre à peu près n importe quel problème d exclusion mutuelle ou synchronisation... mais, les sémaphores possèdent certains désavantages:

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

dans laquelle des structures vont être créées pour une ou plusieurs applications.

dans laquelle des structures vont être créées pour une ou plusieurs applications. Création d'une nouvelle base de données A. Vue d'ensemble 1. Étapes de création d'une nouvelle base de données pour une application Le processus complet de création d'une nouvelle base de données pour

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

BD parallèles et réparties

BD parallèles et réparties LOG660 - Bases de données de haute performance BD parallèles et réparties Département de génie logiciel et des TI BD parallèles vs réparties BD réparties Les données se trouvent sur plusieurs sites (noeuds)

Plus en détail

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Partie 1 : Notion de bases de données (Conception

Plus en détail

Vincent Augusto 2010-2011

Vincent Augusto 2010-2011 le des Systèmes Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne 2010-2011 Un 1/73 le des Un 2/73 1 2 3 4 le 5 6 7 8 Un le des Un 3/73 Contenu du cours : Techniques pour l analyse

Plus en détail

Chapitre 3 Gestion des sauvegardes

Chapitre 3 Gestion des sauvegardes Chapitre 3 Gestion des sauvegardes 1. Notions préalables et terminologie Gestion des sauvegardes 1.1 Consistance, snapshots et VSS L'erreur la plus commune lorsque l'on parle de solutions de sauvegarde,

Plus en détail

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Administration d'une base de données

Administration d'une base de données Administration d'une base de données Soors Aurore 1 Table des matières 1. Architecture d'une base de données...4 1.1. La structure logique...4 1.1.1. Les tablespaces...4 1.1.2. Les segments, extensions

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

Les bases de données Page 1 / 8

Les bases de données Page 1 / 8 Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...

Plus en détail

processus fonction main() l'image binaire contexte d'exécution un contexte mémoire. en même temps

processus fonction main() l'image binaire contexte d'exécution un contexte mémoire. en même temps 1 2 Dans une première approche, on peut dire qu'un processus représente une "application" qui tourne en mémoire. Il sera donc chargé en mémoire par le noyau et commencera son exécution; du point de vue

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

Plan. Bases de données. Cours 2 : Stockage. Quels types de mémoire pour une BD? Où stocker les données? Polytech Paris-Sud. Apprentis 4 ème année

Plan. Bases de données. Cours 2 : Stockage. Quels types de mémoire pour une BD? Où stocker les données? Polytech Paris-Sud. Apprentis 4 ème année Bases de données Polytech Paris-Sud Apprentis 4 ème année Cours 2 : Stockage 2.1 Introduction 2.2 Aspects bas-niveau kn@lri.fr http://www.lri.fr/~kn 2/20 Hierarchie mémoire : Où stocker les données? Type

Plus en détail

CESI Bases de données

CESI Bases de données CESI Bases de données Introduction septembre 2006 Bertrand LIAUDET EPF - BASE DE DONNÉES - septembre 2005 - page 1 PRÉSENTATION GÉNÉRALE 1. Objectifs généraux L objectif de ce document est de faire comprendre

Plus en détail

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés. 2010 Ing. Punzenberger COPA-DATA GmbH Tous droits réservés. La distribution et/ou reproduction de ce document ou partie de ce document sous n'importe quelle forme n'est autorisée qu'avec la permission

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

Auto-évaluation La programmation database en JDBC

Auto-évaluation La programmation database en JDBC Auto-évaluation La programmation database en JDBC Document: f1216test.fm 02/04/2012 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION LA PROGRAMMATION

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/26 Bases de Données Avancées DataWareHouse Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin,

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Initiation aux bases de données (SGBD) Walter RUDAMETKIN Initiation aux bases de données (SGBD) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Moi Je suis étranger J'ai un accent Je me trompe beaucoup en français (et en info, et en math, et...)

Plus en détail

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 10g - Administration Workshop II. 5 Jours [35 Heures]

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 10g - Administration Workshop II. 5 Jours [35 Heures] Plan de cours disponible à l adresse http://www.adhara.fr/.aspx Objectif Utiliser RMAN pour créer et gérer des jeux de sauvegarde et des copies d'image Récupérer la base de données jusqu'à un point dans

Plus en détail

et les Systèmes Multidimensionnels

et les Systèmes Multidimensionnels Le Data Warehouse et les Systèmes Multidimensionnels 1 1. Définition d un Datawarehouse (DW) Le Datawarehouse est une collection de données orientées sujet, intégrées, non volatiles et historisées, organisées

Plus en détail