Question | Answer |
Définir transaction | Action demandée par un seul utilisateur, un programme, pour une lecture,une écriture ou une MAJ. |
Définir la cohérence | État cohérent ---> État cohérent. (Les états intermédiaires ne sont pas nécessairement cohérents.) |
Si la transaction succède... | -Transaction:validée("commit")
-Lorsque validée ne peut pas être annulé
-BD: nouvel état cohérent |
Si la transaction faillit... | -Transaction: annulée("rolled back")
-BD: nouvel état cohérent |
Définir les 4 propriétés de bases(ACID) | -Automicité: tout ou rien
-Cohérence: État cohérent ---> État cohérent
-Isolation: Effet partiel des transactions incomplètes invisible aux autres
-Durabilité: Effet d'une transaction validée permanents. |
3 exemples de problèmes de concurrence | -Mise à jour perdue
-Dépendance non validée
-Analyse incohérente |
Décrire une MAJ perdue | Mise à jour avant que la première ne soit terminé. |
Décrire dépendance non validée | Une transaction utilise les données d'une autre mise à jour et elle est annulé par la suite |
Décrire Analyse incohérente | Une transaction lit une valeur et par la suite une transaction met à jour cette valeur. |
Définir planification sérielle | -Opérations exécuté consécutivement sans opération interfoliée
-Pas garanti que le résultat soit toujours identique. |
Définir planification non série | Opération de transactions exécutées de manière interfoliées pour une exécution simultanée sans interférence. |
Si 2 transactions lisent... | ...Pas en conflit donc ordre sans importance |
Si 2 transactions lisent et écrivent des données différentes... | ...Pas en conflit donc ordre sans importance |
Si 2 transactions lisent et écrivent la même donnée... | ... Ordre importe |
Définir graphe de précédence | Noeud pour chaque transaction(Ti--->Tj)
-Si Tj lit la valeur écrite par Ti
-Si Tj écrit la valeur déjà lu par Ti
-SI Tj écrit la valeur écrite par Ti |
2 techniques de base de contrôle de la concurrence | -Verrouillage (locking)
-Estampillage (Timestamping) |
2 types de verrous | -verrou partagé(peut lire, mais pas modifier)
-verrou exclusif(peut lire et modifier) |
Décrire le verrouillage en 2 phases(2PL) | Toutes opérations de verrouillage précèdent la première opération de déverrouillage. |
Décrire les 2 phases(2PL) | -Croissance:acquière tous les verrous mais n'en libère aucun.
-Réception:relâche les verrous et ne peut en obtenir aucun. |
De quoi dépendent les problèmes potentiels pour une annulation en cascade? | Le moment où les verrous sont relâchés |
Expliquer le contrôle de concurrence avec les indexs | La recherche des verrous commence à la racine et descend jusqu'aux feuilles sans jamais remonter . |
Stratégie de verrouillage pour les recherches | -Verrous partagés sur les noeuds de racine à la feuille
-Libère verrous sur parent quand obtenu sur noeud enfant |
Stratégie de verrouillage pour les insertions | -Approche conservatrice: verrous exclusifs sur tous les noeuds
-Approche optimiste:verrou partagé sur tous les noeuds et verrou exclusif sur la feuille |
Définir un blocage indéfini(deadlock) | Chaque transaction attendent chacune après le verrou de l'autre. |
Comment régler un blocage indéfini(deadlock) | -Abandonner la ou les transactions et les repartir |
Comment prévenir les verrous indéfinis(2 sous-méthodes) | Les estampilles(valeur unique de temps)
-Attendre-Mourir
-Blessé-Attend |
Décrire la technique de la prévention des verrous indéfinis(Attendre-Mourir) | -Ancienne transaction attendre plus récente
Sinon transaction annulée et repartie avec le même estampillage |
Décrire la technique de la prévention des verrous indéfinis(Blessé-Attend) | -Transaction plus récente attendre ancienne
Sinon jeune annulée(blessé) |
Détection des verrous indéfinis | Reconnaît et brise les verrous indéfinis. Blocage indéfini ssi cycle |
Solutions pour la récupération d'un verrou(3) | -Choix de la victime par moindre coût
+Temps exécution
+Nb données modifiées
+Nb données à modifier
-Profondeur d'annulation de transaction
-Éviter d'annuler toujours la même transaction |
Décrire les méthodes d'estampillage | -Transactions ordonnées globalement
-Conflit résolus
-Pas de verrouillage |
Qu'est-ce que l'estampille | Identificateur unique créé par le SGBD qui détermine l'heure du début de la transaction |
Décrire la technique optimiste(3 phases) | 1.Lecture d'une valeur et stocke dans une variable locale(MAJ sur var locales)
2.Validation que état cohérent
3.Écriture MAJ de la donnée local |
La granularité des données | Du plus vaste au plus étroit
Plus grand verrous |
4 utilitaires de récupérations... | -Méchanisme de sauvegarde
-Journalisation
-Points de contrôle
-Gestionnaire de récupération |
Que conserve le fichier journal | -Les enregistrements de transaction
+identifcateur de transaction
+Type d'enregistrement(début,action,annulation/validation)
-Les enregistrements de point de contrôle |
Comment agit le SGBD en cas de panne(avec point de contrôle) | -Refait toutes les transactions acceptées depuis PC avant le point de contrôle
-Défait toute les transactions actives. |
Techniques de récupération si BD endommagée | -Restaurer la dernière sauvegarde
-Refaire MAJ transactions validées avec journal |
Techniques de récupération si BD incohérente | -Défaire changements incohérence
-Refaire transactions pour que MAJ soient sur stockage secondaire |
Mise à jour différée | Les MAJ non écrites dans le journal de la BD avant validation |
Mise à jour immédiate | MAJ appliquées à la BD dès exécution
-Refaire transactions validées suite à la panne
-Défaire transactions |
5 modèles avancés de transaction | -Modèle de transaction imbriquées
-Sagas
-Modèle de transaction multi-niveaux
-Restructuration dynamique
-Modèle de flus de travaux |
Modèle de transaction imbriquées | -Hiérarchie de sous-transactions.
-Validé du bas vers le haut.
-L'annulation de l'enfant peut ne pas annulé la transaction complète si enfant non-vital |
Sagas | -Une transaction à plat qui peut interfoliées avec d'autres transactions
-1 niveau d'imbrication
-Pour chaque sous-transaction définie = une transaction de compensation correspondante |
Modèle de transaction multi-niveaux | -Transactions traditionnelle à plat pas de conflit
-Opération commutative |
Définir la sérialisation | Une transaction est sérialisé si le nouvel ordre de la transaction donne le même ordre que celui dans l'ordre chronologique. |