UY1-SIGL460-Chapitre7-S1(2015-2016).pdf

download UY1-SIGL460-Chapitre7-S1(2015-2016).pdf

of 28

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

    [email protected]

    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