SGBD Flashcards
C’est quoi le schéma ?
C’est la structure des tables/relations
C’est quoi un contenu ?
Ce sont les lignes stocké dans chaque table
A quoi servent les contraintes d’intégrité ?
A assurer la cohérence des données
C’est quoi une contrainte d’intégrité explicite?
Stocké dans le SGBD et qui peuvent être vérifier automatiquement à chaque modification du contenu (Ex : Produit.prix >= 0)
C’est quoi une contraine d’intégrité implicite ?
Qui sont dans la tête de l’administrateur de la base de données uniquement. (Ex : Le total d’un pannier est la somme des prix des objets qu’il contient)
C’est quoi une base de donné cohérante ?
Si son contenu vérifie toutes les contraintes
C’est quoi une clef ?
Sous ensemble de colonne d’une table
C’est quoi une super clef ?
Ensemble de colonnes qui vérifient : “Il y a au plus une ligne qui à les même valeur dans ces colonnes”
C’est quoi une clef candidate ?
Super clé qui contient un nombre minimal de colonnes (Dans la super-clef on peut prendre trop de colonnes)
C’est quoi une clef primaire ?
Clé candidate choisie pour identifier chaque ligne
C’est quoi un clef étrangère ?
Ensemble de colonnes d’une table faisant référence à la clef primaire d’un autre table.
C’est quoi un transaction ? Que cela permet -il de faire ?
Une transaction est un ensemble de requêtes qui permet de gérer des opérations élémentaires que les requêtes simple ne peuvent pas faire.
La notion de transaction permet de vérifier la coherence uniquement à la fin de l’execution de toutes les requêtes SI ON LE PRECISE.
Que veut dire ACID ?
Atomicité
Cohérence
Isolation
Durabilité
Définir l’Atomicité pour ACID
Soit la transaction est complètement réalisée, soit rien du tout
Une transaction n’a que trois états :
Active > En Cours d’exécution
Validée/Committed > Terminé par un succès
Annulée/Aborted > Terminé par un échec
C’est quoi l’auto-commit ?
Chaque requête est automatiquement une transaction.
C’est quoi la Journalisation ? Qui l’utilise ? Que permet-il d’avoir ?
Le rollback utilise la journalisation (On stocke les données avant et après modification.)
Le journal est un fichier sur le disque où sont stockées toutes les modifications faites par les transactions.
L’ordre des commit est aussi journalisé
Permet d’avoir de la reprise après panne
C’est quoi la cohérence pour ACID ?
Quelque soit l’exécution des transactions, la base de données reste cohérente
C’est quoi l’Isolation pour ACID ?
Les transactions doivent modifier la base comme si elles étaient chacune exécutée seule
Ce qu’implique l’Isolation :
- Sur ses modifications par rapport aux autres transaction ?
- Sur l’exécution parallèle ?
- Sur les conflits entre transaction ?
- Sur conflits de transaction qui ne font que lire ?
- Su la concurrence ?
- Sur le point de vue de celui qui envoie la transaction ?
Une transaction ne doit pas révéler ses modifications aux autres transactions tant qu’elle n’a pas été validée.
Les transactions exécutées en parallèle peuvent engendrer des problèmes de cohérence
Des conflits entre les transactions peuvent entraîner l’annulation de certaines transactions
Il n’y pas de problème d’isolation, si toutes les transaction lisent uniquement les données
L’isolation des transactions permet d’avoir une concurrence élevée.
Gestion transparente du point de vue de celui qui envoie la transaction
C’est quoi la Durabilité pour ACID ?
Les modifications d’une transaction sur la base de données ne sont jamais perdues
Comment définir un niveau d’isolation en SQL ?
SET TRANSACTION ISOLATION LEVEL {Niveau d’isolation};
Quels sont les niveaux d’isolation d’une transaction et leur impacts sur les lectures impropre et non reproductible ?
READ COMMITED (Par défaut) (Voit les modifications faites avant le début NON VALIDE)
- Lecture impropre impossible
- Lecture non reproductible possible
READ ONLY (Voit les modifcations faites avant le debut VALIDée) peut pas modif
- Lecture impropre impossible
- Lecture non reproductible impossible
SERIALIZABLE (Voit les modifcations faites avant le debut VALIDée) peut modif
- Lecture impropre impossible
- Lecture non reproductible impossible
C’est quoi une lecture impropre ? C’est quoi en anglais ? Pourquoi c’est pas bien ?
(Dirty read)
Il s’agit d’une lecture d’une donnée écrite par une transaction qui n’est pas encore validée. Risqué car la transaction peut être annulé ou modifier la donnée.
C’est quoi une lecture non reproductible ?
Relecture par une requête de données qui ont été modifiées par une autre depuis la première lecture
Comment différer la vérification des contraintes en SQL ?
En définissant la table :
CONSTRAINT nom_fk FOREIGN KEY vise REFERENCES Impasse (tireur) {option};
Après l’avoir fait
SET CONSTRAINTS nom_fk {Option} ;
SET CONSTRAINTS ALL {Option};
Quels sont les différents niveau de différation de la vérification des contraintes en SQL?
NOT DIFERABLE > Ne peut pas être différée (option par défaut)
DEFERABLE INITIALLY IMMEDIATE > Différé si on le précise
DEFERABLE INITIALLY DEFERED > Différé par défaut
C’est quoi une exécution concurrentes ?
Une exécution concurrente est une suite d’opérations prises par une ou plusieurs transactions en même temps
C’est quoi une exécution en série ?
On dit qu’une exécution est en série si toutes les opérations de chaque transaction sont exécutées de manière consécutives.