IFT2821 Base de données Chapitre 8 Fonctions avancées

Slides:



Advertisements
Présentations similaires
Contrôle de la concurrence
Advertisements

Chapitre annexe. Récursivité
1 CNAM Vendredi 29 Novembre 2002 Bases de Données Avancées UV C Responsable : Mr Scholl PROTOCOLE A DEUX PHASES Meryem Guerrouani.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
1 IXERP consulting. L archivage consiste à extraire de la base de données opérationnelle les informations qu' il n est plus nécessaire de conserver «
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 6 : Protection des données Bertrand Audras Microsoft Technology Center.
Fonctions & procédures
TRANSACTION Problèmes posés
1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre.
Les bases de données temps-réel
Plan de formation Chapitre 1 : Présentation de SAP
TP 3-4 BD21.
Ordonnancement des mouvements de deux robots
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les contraintes d’integrité
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Contrôles d'accès aux données
Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes ( ACID.
Synchronisation et communication entre processus
Administration de SharePoint
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Systèmes de Gestion de Bases de Données (Relationnelles)
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
Configuration de Windows Server 2008 Active Directory
L’utilisation des bases de données
Gestion denquêtes et suivi dindicateurs statistiques 1er degré © DOS3 – Pôle Analyse & Développement Octobre 2011 – v.0.1 Tutorial portail directeur décole.
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
GESTION DE TRANSACTIONS
SYSTEME DE GESTION DE BASES DE DONNEES
8.1 URDL22005 Systèmes dexploitation Interblocages Modèle Système Caractérisation dinterblocage Méthodes pour Gérer les Interblocages Prévention des Interblocages.
Programmation concurrente
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17.
1 Gestion des Transactions: Survol Chapitre Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence.
1 Reprise Chapitre Objectifs Vol et forçage: rappel Le log organisation maintient et utilisation Autres structures de données Protocole WAL Points.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
Cours N°2 Base de Données & Langage SQL
Les concepts et les méthodes des bases de données
STSWEB Bascule Diffusion Nationale TOULOUSE – déc.2008.
Initiation aux bases de données et à la programmation événementielle
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Bienvenue sur CAUTIONET l'outil On Line de gestion de caution
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
Introduction.
SQL partie 4. SQL est un langage de protections d'accès Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
Mise en oeuvre et exploitation
Gérer la sécurité des mots de passe et les ressources
Module 8 : Surveillance des performances de SQL Server
Les Composants de l’architecture Oracle
Bases de données Open Source Pierre Crépieux 13/03/2008.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Créer des packages.
Surveiller et résoudre le conflit de verrouillage
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
1  G. Gardarin GESTION DE TRANSACTIONS l 2. Journaux et reprise l 3. Scénarios de reprise l 4. Modèles étendus l 5. Cas des systèmes répartis.
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Les vues Une vue: c’est une relation virtuelle. Définie par:
Module 7 : Restauration de bases de données
Initiation aux SGBD Frédéric Gava (MCF)
La concurrence Objectifs Les bases Le verrouillage à deux phases
INTRODUCTION AUX BASES DE DONNEES
Développement d’applications Problèmes relatifs aux BD.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Transcription de la présentation:

IFT2821 Base de données Chapitre 8 Fonctions avancées

Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés PL/SQL

Introduction En plus d'offrir la possibilité de définir et d'interroger une base de données, un SGBD relationnel, offre également des fonctionnalités avancées Fonctions avancées Gestion de la concurrence Sécurité Intégrité Reprise après panne La concurrence peut mettre la base dans un état incohérent

Introduction Exemple Programme RÉSERVATION Entrée : une séance s nombre de places souhaité NbPlaces client c Début Lire séance s Si(nombre de places libre > NbPlaces) Lire le compte du client c Débiter le compte du client c Soustraire le NbPlaces au nombre de places libres Écrire la séance s Écrire le compte du client c FinSi Fin

Introduction Notation - On notera lecture par : r - On notera écriture par : w - On notera une exécution du programme de réservation par : p Une exécution du programme p : r[s] r[c] w[c] w[s] Les boucles, les test ne compte pas vraiment. Ce qui compte c ’est les opérations d ’accès (lecture, écriture)

Introduction Exécution concurrentes : sérialisabilité Solutions: 1- Exécution en série : concurrence zéro (pas viable) 2- Bonne imbrication des opérations (sérilisable) r1[s] r1[c1] r2[c2] w1[s] r2[s] w2[s] w1[c1] w2[c2] Exécution des programmes en série ne pose aucun problème, cependant pas viable. La bonne imbrication ne suffit pas un problème matériel ou logiciel qui entraîne l ’interruption du programme Le programme choisit lui-même d ’annuler ce qu’il a fait r1[s] r1[c1] w1[s] annuler.

Introduction Exécution concurrentes : sérialisabilité Soit deux programmes p1(s,5,c1) et p2(s,10,c2) qui s’exécutent dans l’ordre ci-dessous sachant que le nombre de places libres est égale à 50 r1[s] r1[c1] r2[s] r2[c2]w2[s] w2[c2] w1[s] w1[c1] nombre de place libre est : 45 au lieu de 35 (incohérence) Problème : mauvaise imbrication des opérations Qu’en est-il de l’exécution suivante ? r1[s] r1[c1] w1[s] r2[s] r2[c2]w2[s] w1[c1] w2[c2] ?

Transaction Transaction Problème Solution r1[s] r1[c1] w1[s] r2[s] r2[c2] w2[s] w1[c1] w2[c2] Solution Annuler w1[s] (jusqu’ou il faut remonter dans les annulations ?) considérer un ensemble d’opérations indivisible w1[s] w1[c1] Valider (commit): rendre les mise-à-jour permanentes Annulation (rollback): annule les mise-à-jour effectuées Panne ou annulation par le programme

Transaction Transaction Reconstitution (recouvrabilité) Une transaction est l’ensemble des opérations séparant un rollback du commit ou du rollback et inversement. Reconstitution (recouvrabilité) Exécutions non reconstituables(dirty read) r1[s] r1[c1] w1[s] r2[s] r2[c2] w2[s] w2[c2] commit2 w1[c1] rollback1 nombre de sièges réservé sera plus grand que le nombre de sièges effectif de clients ayant validé leur réservations. En cas d ’annulation (quelle est la porté du rollback s ’il n ’existe en haut ni rollback ni commit, jusqu ’au premier ordre SQL) on annuler T1 il faut aussi annuler T2 alors que ce n ’est pas possible il y a eu un commit. On parle d ’exécution non recouvrable. On pourrait penser à interdire à une transaction T2 qui fait un dirty read dans une transaction T1 alors on accepterait la situation suivante.

Transaction Reconstitution solution (annulation en cascade) r1[s] r1[c1] w1[s] r2[s] r2[c2] w2[s] w2[c2] w1[c1] rollback1 annuler la transaction 2 sans la transaction n ’ait validé. pas viable (pour la transaction 2). Il faut interdire les dirty read Exécution non stricte (dirty write) r1[s] r1[c1] r2[s] w1[s] w1[c1] r2[c2] w2[s] commit1 w2[c2] rollback2 transaction 1 a validé après que transaction 2 ait écris dans s lorsque transaction 2 est annulé le système doit annuler les mise-à-jour de transaction 1(en ce qui concerne les données de transaction 1)

Transaction Résumé Recouvrabilté: on ne doit pas avoir à annuler une transaction déjà validé Annulation en cascade : un rollback sur une transaction ne doit entraîner l ’annulation d’autres transactions Recouvrabilité stricte : deux transaction ne peuvent accéder simultanément en écriture à la même donnée.

Transaction Propriétés Atomicité Tout ou rien Cohérence mises-à-jours entre deux états cohérents Isolation Les effets (lectures et écritures ) d'une transaction ne sont visible par les autres transaction qu'à sa fin Durabilité Un fois terminée, ses effets sont durables. Ne peut être annulée

Gestion de la concurrence Contrôle de la concurrence (1) Consiste à ordonner les exécutions des programmes de manière à éviter les anomalies présentées précédemment. Contrôle continu : vérifie au fur et à mesure de l’exécution que le critère de la sérialisabilté est respecté(approche pessimiste). Contrôle par certification : vérifie le critère de la sérialisabilité quant la transaction s’achève (approche optimiste).

Gestion de la concurrence Contrôle de la concurrence (2) Mécanisme de verrouillage : on bloque l’accès à une donnée lu ou écrite par une transaction («pose de verrou») et on libère cet accès quant cette transaction termine par Commit ou Rollback. Le blocage systématique est contraignant r1[s] r1[c1] w1[s] r2[s] r2[c2]w2[s] w1[c1] w2[c2] bloquage inutile de la transaction 2. Solution plus souple Granularité du verrouillage : uplet, table, page Degré des restriction : Verrou partagé (en lecture) Verrou exclusif (en écriture)

Gestion de la concurrence Contrôle de la concurrence (3) 1. Verrouillage à deux phases: rl ou wl: verrou en lecture ou écriture(read lock, write lock) ru ou wu: relâchement de verrou en lecture ou écriture (read unlock, write unlock) rli[x] : la transaction i pose un verrou en lecture sur la ressource x pli[x] : la transaction i pose un verrou en lecture ou en écriture sur la ressource x Définition : deux verroux pli[x] et qlk[y] sont en conflit si x=y et i  k et pl ou ql est un verrou en lecture ou écriture.

Gestion de la concurrence Contrôle de la concurrence (4) Algorithme(Scheduler): 1. Le scheduler reçoit pi[x] et consulte le verrou déjà posé su x, qlk[x] ,s ’il existe. si pli[x] est en conflit avec ql k[x], pi[x] est retardée et la transcation Ti est mise en attente. sinon, Ti obtient le verrou pli[x ] et l’opération pi[x] est exécutée. 2. Un verrou pi[x] n’est jamais relâché avant la confirmation de l’exécution par un autre module, le gestionnaire des données. 3. Dès que Ti relâche un verrou, elle ne peut plus obtenir un autre.

Gestion de la concurrence Contrôle de la concurrence (3) 2. Contrôle par estampillage : consiste à fixer ,à priori, l’ordre de sérialisabilité des transactions soumises au scheduler. À chaque transaction on affecte une estampille. Les estampilles sont uniques et croissant (i.e., ordre totale des transaction). Quand un conflit survient on vérifie si l’ordre des transaction résout le conflit(i.e., si i < k alors opérationi s ’exécute avant opérationk). Sinon on rejette la transaction responsable conflit. Exemple : r1[s] w2[x] r3[x] r2[x] w1[x]. On rejette T1 au moment de l’exécution de w1(x).

Gestion de la concurrence Blocage Situation où deux ou plusieurs transactions sont mutuellement bloquées en attente d'un verrou Solutions Technique de l'examen du graphe d'attente Technique du mécanisme de délai Variantes Rejouer la transaction Signaler à l'application

Reprise après panne Journal (log) Fichier disque (ou bande) dans lequel sont écrites les modifications de la BD (valeurs concernées avant et après chaque requête élémentaire) Utiliser pour défaire une transaction Problème: Comment garantir la cohérence de la BD à l'intérieur d'une requête élémentaire ?

Reprise après panne Point de commit (syncpoint) Point du programme dans lequel la BD est dans un état cohérent Début du programme et à la fin de chaque transaction Implications Toutes les mises à jour sont rendues permanentes Toutes les variables de positionnement sont détruites et tous les verrous sur les n-uplets effacés (cette implication s'applique également au ROLLBACK)

Reprise après panne Défaillance système (soft crash) Affecte toutes les transactions courantes sans endommager la BD physiquement Si la mémoire centrale est effacé, lors du redémarrage, Les transactions courantes sont annulées (ROLLBACK) Certaines transactions terminées doivent être rejouées (mémoires tampons non transférées sur disque) Comment le système sait quelles transactions annuler et quelles transactions rejouer ?

Reprise après panne Défaillance système (soft crash) Point de contrôle A intervalle régulière, le système transfert le contenu des mémoires tampons dans la bases de données (physique) et produit un compte rendu dans le journal (physique) Temps tc tf T1 T2 T3 T4 T5 Point de contrôle Défaillance du système

Reprise après panne Défaillance des supports (hard crash) Destruction physique d'une partie de la base de données. Reprise après panne se fait en deux étapes : Restaurer la dernière sauvegarde de la base Rejouer toutes les transactions terminées avec succès depuis cette dernière sauvegarde

Reprise après panne (Résumé) DB État 1 DB État 2 DB État 3 DB État 4 Transaction 1 Transaction 2 Transaction 3 DB backup Procédures de Mise à jour DB État 2

Reprise après panne Utilisateur Serveur Bases de données Log des transactions Enregistrement retrouvé Opérer les mises à jours Obtenir enregistrement Utilisateur 1: une transaction de Mise à jour 8: message de notification 3: obtenir enregistrement 2 4 5 6: Ecrire les mises à jours 7 9: backup périodique Log image avant de l ’enregistrement Log image après de Procédures de recouvrement

Sécurité Attribution des privilèges privilèges objets GRANT {liste_privilèges | ALL [PRIVILEGES]} [ liste_attribut ] ON objet TO {liste_utilisateurs | PUBLIC}] [WITH GRANT OPTION] privilèges ALTER, DELETE, INSERT,SELECT, UPDATE, ... objets table, vue, ... WITH GRANT OPTION Permet à "l'autorisé" d'autoriser

Sécurité Retrait des privilèges Exemples REVOKE {liste_privilèges | ALL [PRIVILEGES]} ON objet FROM {liste_utilisateurs | PUBLIC}] [CASCADE CONSTRAINTS] Exemples GRANT ALL PRIVILEGES ON EMPLOYE TO ALICE GRANT UPDATE (SALAIRE) ON EMPLOYE TO TOD, NANCY GRANT SELECT ON DEPARTMENT TO PUBLIC GRANT SELECT,UPDATE , DELETE, INSERT ON PROJECT TO ALICE GRANT ALL PRIVILEGES ON EMPLOYE TO NED WITH GRANT OPTION REVOKE UPDATE ON PROJECT TO ALICE (CASCADE???)