UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
-
Upload
betafilip6910 -
Category
Documents
-
view
221 -
download
0
Transcript of UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
1/28
SIGL460Bases de donnes avances
Chapitre 7Fonctions avances
1
Serge Mani, ing. PhD, CISA, CISM
Universit de Yaound 1
Facult des SciencesDpartement dinformatique
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
2/28
Plan du cours
Introduction Reprise aprs panne
Gestion de la concurrence
Scurit
Intgrit
2
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
3/28
Introduction
En plus d'offrir la possibilit de dfinir etd'interroger une base de donnes, unSGBD relationnel offre galement des
fonctionnalits avances.
Fonctions avances Reprise aprs panne
Gestion de la concurrence Scurit
Intgrit
3
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
4/28
Reprise aprs panne
Transaction
Une unit logique de travail
ExempleEXEC SQL WHENEVER ERROR GOTO toto;
EXEC SQL UPDATE COMPTE SET solde = solde - 1000 WHEREnum = 8830702;
EXEC SQL UPDATE COMPTE SET solde = solde + 1000 WHERE
num = 6645501;EXEC SQL COMMIT WORK;
return;
toto:
EXEC SQL ROLLBACK WORK;
return; 4
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
5/28
Reprise aprs panne
Transaction
Proprits
Atomicit : Tout ou rien
Cohrence :Au dbut et la fin d'une transaction,mais pas forcment l'intrieur
Isolation : Les effets d'une transaction ne sontvisibles par les autres transactions qu' sa fin
Durabilit : Un fois termine, les effets sontdurables
5
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
6/28
Reprise aprs panne
Journal (log)
Fichier disque (ou bande) dans lequel sontcrites les modifications de la BD (valeurs
concernes avant et aprs chaque requtelmentaire)
Utiliser pour dfaire une transaction
Problme : Comment garantir la cohrencede la BD l'intrieur d'une requtelmentaire ?
6
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
7/28
Reprise aprs panne
Point de commit (syncpoint)
Point du programme dans lequel la BD estdans un tat cohrent
Dbut du programme et la fin de chaquetransaction
Implications
Toutes les mises jour sont rendues permanentes Toutes les variables de positionnement sont
dtruites et tous les verrous sur les n-upletseffacs (cette implication s'applique galement au
ROLLBACK) 7
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
8/28
Reprise aprs panne
Dfaillance systme (soft crash)
Affecte toutes les transactions courantes sansendommager la BD physiquement
Si la mmoire centrale est effac, lors duredmarrage :
Les transactions courantes sont annules (ROLLBACK)
Certaines transactions termines doivent tre rejoues
(mmoires tampons non transfres sur disque)
Comment le systme sait quelles transactions annuler etquelles transactions rejouer ?
8
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
9/28
Reprise aprs panne
Dfaillance systme (soft crash)
Point de contrle A intervalle rgulier, le systme transfert le contenu des
mmoires tampons dans la bases de donnes (physique) etproduit un compte rendu dans le journal (physique)
9
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
10/28
Reprise aprs panne
Dfaillance des supports (hard crash)
Destruction physique d'une partie de la basede donnes.
Reprise aprs panne se fait en deux tapes :
Restaurer la dernire sauvegarde de la base
Rejouer toutes les transactions termines avecsuccs depuis cette dernire sauvegarde
10
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
11/28
Gestion de la concurrence
Constat Des transactions concurrentes peuvent travailler sur
les mmes parties d'une base de donnes
Principe de l'isolation Principe de la cohrence
Consquences
Problme de la perte d'une mise jour Problme des dpendances non valides
Problme de l'analyse incohrente
11
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
12/28
Gestion de la concurrence
Quelques dfinitions Un ordonnancement est un scnario particulier dexcution dun
ensemble de transactions
Il est squentiel si les transactions sont excutes les unesaprs les autres (non entrelaces)
Il est srialisable sil est quivalent un ordonnancementsquentiel (pas forcment tous les ordonnancementsquentiels possibles)
Deux oprations de lecture ou dcriture dans deux transactionsdiffrentes sont dites non permutables si elles portent sur lamme donne et quau moins une des deux est une criture
Un ordonnancement est srialisable par permutation si lesoprations non permutables sont effectues dans le mme ordrerelatif que dans un ordonnancement squentiel
12
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
13/28
Gestion de la concurrence
Principales stratgies de contrle Verrouillage
Utilise un mcanisme de verrous
Estampillage Se base sur lidentification unique des transactions et la
gestion de lordonnancement
Certification Retarde les critures et la vrification des conflits la fin des
transactions (approche optimiste) Multi-version
Utilise des versions diffrentes dun mme objet pour viterles blocages
13
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
14/28
Gestion de la concurrence
Verrouillage
Mcanisme qui permet une transaction debloquer l'accs un objet dont elle a besoin
(habituellement un n-uplet) pour qu'il ne soitmodifi de manire imprvisible par les autrestransactions
Deux types de verrous Verrous exclusifs (X locks) Verrous d'criture
Verrous partags (S locks)
Verrous de lecture 14
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
15/28
Gestion de la concurrence
Verrouillage
Problme de la perte de mise jour
problme rsolu mais blocage
Problme des dpendances non valides
problme rsolu (dans les deux cas)
Problme de l'analyse incohrente
problme rsolu mais blocage
15
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
16/28
Gestion de la concurrence
Blocage
Situation o deux ou plusieurs transactions sontmutuellement bloques en attente d'un verrou
Solutions Technique de l'examen du graphe d'attente
Technique du mcanisme de dlai
Variantes
Rejouer la transaction
Signaler l'application
16
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
17/28
Scurit
Attribution des privilgesGRANT {liste_privilges | ALL [PRIVILEGES]} [ liste_attribut ] ON
objet TO {liste_utilisateurs | PUBLIC}] [WITH GRANT OPTION]
Privilges ALTER, DELETE, INSERT,SELECT, UPDATE, REFERENCES
Objets
table, vue, ...
WITH GRANT OPTION
Permet l'autoris d'autoriser
17
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
18/28
Scurit
Retrait des privilgesREVOKE {liste_privilges | ALL [PRIVILEGES]} ON objet FROM
{liste_utilisateurs | PUBLIC}] [CASCADE CONSTRAINTS]
Privilges et objets idem
CASCADE CONSTRAINTS
Supprime les contraintes introduites par l'utilisateur(fonctionne avec REFERENCES et ALLPRIVILEGES)
18
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
19/28
Intgrit
Contrainte d'intgrit statique Respecte pour chacun des tats de la BD
Mcanismes dclaratifs PRIMARY KEY, UNIQUE, NOT NULL, DOMAIN, FOREIGN
KEY, CHECK, ASSERTION
Procdural TRIGGER (SQL3)
Contrainte d'intgrit dynamique
Contrainte sur changements d'tats
Rfrence aux tats successifs
TRIGGER
19
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
20/28
Intgrit
CHECK intra-ligne
Plusieurs colonnes de la mme ligne
Les Articles dont le noArticleest suprieur
90 ont un prix suprieur $15.00
20
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
21/28
Intgrit
Check inter-lignes d'une mme table Concerne plusieurs lignes
LeprixUnitaired'unArticlene peut dpasser le prixmoyen de plus de $40.00
N.B. Non support par Oracle 21
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
22/28
Intgrit
Check inter-tables
N.B. : Non support par Oracle 22
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
23/28
Intgrit
Assertions
LeprixUnitairemoyen d'un Article ne peutdpasser $25.00
CREATE ASSERTION assertionPrixMoyenMaximalCHECK (25 >= SELECT AVG(prixUnitaire)
FROM Article)
Toujours valide par opposition au CHECK
N.B. : Non support par Oracle
23
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
24/28
Intgrit
Assertion inter-tables La somme des quantits livrespour une ligne de
commandene peut dpasser la quantitcommande
24
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
25/28
Intgrit
Trigger
Opration (procdurale)
Dclenche par vnement pr-dtermin
Excute au niveau serveur de BD
Sapplique aussi bien aux contraintesstatiques que dynamiques
Exemple Lorsqu'une augmentation duprixUnitaired'unArticleest tente, il faut limiter l'augmentation 10% du prix en cours
25
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
26/28
Intgrit
Trigger
26
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
27/28
Intgrit
Trigger
UPDATE Article
SET prixUnitaire = 15.99
WHERE noArticle = 10
27
-
7/25/2019 UY1-SIGL460-Chapitre7-S1(2015-2016).pdf
28/28
Intgrit
Trigger Empcher une augmentation duprix unitaire
d'unArticleau del de 10% du prix en cours
28