La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "IFT2821 Base de données Chapitre 8 Fonctions avancées."— Transcription de la présentation:

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

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

3 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 3 Introduction n 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 n Fonctions avancées –Gestion de la concurrence –Sécurité –Intégrité –Reprise après panne

4 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 4 Introduction n 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

5 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 5 Introduction n 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]

6 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 6 Introduction n 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]

7 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 7 Introduction n Exécution concurrentes : sérialisabilité –Soit deux programmes p1(s,5,c1) et p2(s,10,c2) qui sexécutent dans lordre 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 –Quen est-il de lexécution suivante ? r1[s] r1[c1] w1[s] r2[s] r2[c2]w2[s] w1[c1] w2[c2] ?

8 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 8 Transaction n Transaction –Problème r1[s] r1[c1] w1[s] r2[s] r2[c2] w2[s] w1[c1] w2[c2] –Solution Annuler w1[s] (jusquou il faut remonter dans les annulations ?) considérer un ensemble dopé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

9 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 9 Transaction n Transaction –Une transaction est lensemble des opérations séparant un rollback du commit ou du rollback et inversement. n 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.

10 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 10 Transaction n 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 n 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)

11 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 11 Transaction n 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 dautres transactions –Recouvrabilité stricte : deux transaction ne peuvent accéder simultanément en écriture à la même donnée.

12 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 12 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

13 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 13 Gestion de la concurrence n 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 lexé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 sachève (approche optimiste).

14 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 14 Gestion de la concurrence n Contrôle de la concurrence (2) –Mécanisme de verrouillage : on bloque laccè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)

15 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 15 Gestion de la concurrence n 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) rl i [x] : la transaction i pose un verrou en lecture sur la ressource x pl i [x] : la transaction i pose un verrou en lecture ou en écriture sur la ressource x –Définition : deux verroux pl i [x] et ql k [y] sont en conflit si x=y et i k et pl ou ql est un verrou en lecture ou écriture.

16 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 16 Gestion de la concurrence n Contrôle de la concurrence (4) –Algorithme(Scheduler): 1.Le scheduler reçoit p i [x] et consulte le verrou déjà posé su x, ql k [x],s il existe. –si pl i [x] est en conflit avec ql k [x], p i [x] est retardée et la transcation T i est mise en attente. –sinon, T i obtient le verrou pl i [x ] et lopération p i [x] est exécutée. 2.Un verrou p i [x] nest jamais relâché avant la confirmation de lexécution par un autre module, le gestionnaire des données. 3.Dès que T i relâche un verrou, elle ne peut plus obtenir un autre.

17 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 17 Gestion de la concurrence n Contrôle de la concurrence (3) 2.Contrôle par estampillage : consiste à fixer,à priori, lordre 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 lordre des transaction résout le conflit(i.e., si i < k alors opération i s exécute avant opération k ). Sinon on rejette la transaction responsable conflit. Exemple : r 1 [s] w 2 [x] r 3 [x] r 2 [x] w 1 [x]. On rejette T 1 au moment de lexécution de w 1 (x).

18 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 18 Gestion de la concurrence n Blocage –Situation où deux ou plusieurs transactions sont mutuellement bloquées en attente d'un verrou n Solutions –Technique de l'examen du graphe d'attente –Technique du mécanisme de délai n Variantes –Rejouer la transaction –Signaler à l'application

19 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 19 Reprise après panne n 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 ?

20 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 20 Reprise après panne n 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)

21 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 21 Reprise après panne n 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 ?

22 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 22 Reprise après panne n 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) T1 T2 T3 T4 T5 Tempstctf Défaillance du systèmePoint de contrôle

23 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 23 Reprise après panne n 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

24 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 24 Reprise après panne (Résumé) DB État 2 DB État 1DB État 2DB État 3DB État 4 Transaction 1Transaction 2Transaction 3 DB backup Procédures de Mise à jour

25 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 25 Reprise après panne Serveur Bases de données Log des transactions Enregistrement retrouvé Opérer les mises à jours Obtenir enregistrement Utilisateur 1: une transaction de Mise à jour8: message de notification 3: obtenir enregistrement : Ecrire les mises à jours 7 9: backup périodique Log image avant de l enregistrement Log image avant de l enregistrement Log image après de l enregistrement Log image après de l enregistrement Procédures de recouvrement

26 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 26 Sécurité n Attribution des privilèges GRANT {liste_privilèges | ALL [PRIVILEGES]} [ liste_attribut ] ON objet TO {liste_utilisateurs | PUBLIC}] [WITH GRANT OPTION] n privilèges –ALTER, DELETE, INSERT,SELECT, UPDATE,... n objets –table, vue,... n WITH GRANT OPTION –Permet à "l'autorisé" d'autoriser

27 Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées Concepts avancés Modèle des objets PL/SQL 27 Sécurité n Retrait des privilèges REVOKE {liste_privilèges | ALL [PRIVILEGES]} ON objet FROM {liste_utilisateurs | PUBLIC}] [CASCADE CONSTRAINTS] n 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???)


Télécharger ppt "IFT2821 Base de données Chapitre 8 Fonctions avancées."

Présentations similaires


Annonces Google