Cours introduction aux SGBD, tutoriel & guide de travaux pratiques en pdf.
Indépendance des données
-Les applications sont isolées des changements de structure et du mode de stockage des données. – Indépendance logique des données: Protection des changements de structure des données au niveau logique.
– Indépendance physique des données: Protection des changement de structure au niveau physique.
– Un des plus importants bénéfices de l’ utilisation des SGBD
Contrôle de concurrence
– L’ exécution concurrente de programmes est essentielle pour un SGBD. – Les accès disque sont fréquents et relativement lents, il est important que l’ unité centrale puisse exécuter de façon concurrente les programmes des utilisateurs.
– L’ exécution partielle des actions de différents programmes peut aboutir à des incohérences: ex., opération de débit en même temps que la réalisation d’ un virement. ? Les SGBD assurent que la concurrence soit réalisée sans problème: chaque utilisateur a l’ impression d’ être seul à travailler sur le système.
Transaction: Exécution d’ un programme au-dessus d’ une BD ? Concept clé : transaction, une séquence atomique d’ actions sur une BD (lectures/écritures). ? 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!
Ordonnancement et concurrence des transactions ?
Les SGBD assurent que l’ exécution de {T1, … , Tn} soit équivalente à une exécution en série T1 ’… Tn’ . – Avant de lire/écrire un élément, chaque transaction demande à émettre un verrou sur l’ élément et attend que le SGBD lui accorde ce verrou. Tous les verrous sont relâchés à la fin de la transaction (protocole V2Pstrict.) – Idée: Si une action de Ti (ex., écrire X) affecte Tj(qui effectue une lecture sur X), une des deux, disons Ti, obtient le verrou sur X la première et Tj est forcée à attendre la fin de Ti; cette façon de faire permet d’ ordonner les transactions. – Et si Tj a déjà verrouillé Y et que Ti demande par la suite à verrouiller Y? (Deadlock!) Ti ou Tj est abandonnée (aborted) et remise en concurrence!
Atomicité
? Les SGBD assurent l’ atomicité (tout ou rien) même si un crashes surgit au milieu d’ une exécution de transaction. ? Idée: garder un journal ou log (histoire) de toutes les actions réalisées par le SGBD : – Avant qu’ un changement ne soit réalisé sur la BD, l’ action est tracée dans un log file. – Après un crash, les effets d’ une exécution partielle d’ une transaction sont défaites à l’ aide du fichier log.