SGBD Flashcards

1
Q

C’est quoi le schéma ?

A

C’est la structure des tables/relations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

C’est quoi un contenu ?

A

Ce sont les lignes stocké dans chaque table

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

A quoi servent les contraintes d’intégrité ?

A

A assurer la cohérence des données

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

C’est quoi une contrainte d’intégrité explicite?

A

Stocké dans le SGBD et qui peuvent être vérifier automatiquement à chaque modification du contenu (Ex : Produit.prix >= 0)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

C’est quoi une contraine d’intégrité implicite ?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

C’est quoi une base de donné cohérante ?

A

Si son contenu vérifie toutes les contraintes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

C’est quoi une clef ?

A

Sous ensemble de colonne d’une table

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

C’est quoi une super clef ?

A

Ensemble de colonnes qui vérifient : “Il y a au plus une ligne qui à les même valeur dans ces colonnes”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

C’est quoi une clef candidate ?

A

Super clé qui contient un nombre minimal de colonnes (Dans la super-clef on peut prendre trop de colonnes)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

C’est quoi une clef primaire ?

A

Clé candidate choisie pour identifier chaque ligne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

C’est quoi un clef étrangère ?

A

Ensemble de colonnes d’une table faisant référence à la clef primaire d’un autre table.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

C’est quoi un transaction ? Que cela permet -il de faire ?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Que veut dire ACID ?

A

Atomicité
Cohérence
Isolation
Durabilité

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Définir l’Atomicité pour ACID

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

C’est quoi l’auto-commit ?

A

Chaque requête est automatiquement une transaction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

C’est quoi la Journalisation ? Qui l’utilise ? Que permet-il d’avoir ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

C’est quoi la cohérence pour ACID ?

A

Quelque soit l’exécution des transactions, la base de données reste cohérente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

C’est quoi l’Isolation pour ACID ?

A

Les transactions doivent modifier la base comme si elles étaient chacune exécutée seule

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

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 ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

C’est quoi la Durabilité pour ACID ?

A

Les modifications d’une transaction sur la base de données ne sont jamais perdues

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Comment définir un niveau d’isolation en SQL ?

A

SET TRANSACTION ISOLATION LEVEL {Niveau d’isolation};

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Quels sont les niveaux d’isolation d’une transaction et leur impacts sur les lectures impropre et non reproductible ?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

C’est quoi une lecture impropre ? C’est quoi en anglais ? Pourquoi c’est pas bien ?

A

(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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

C’est quoi une lecture non reproductible ?

A

Relecture par une requête de données qui ont été modifiées par une autre depuis la première lecture

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
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};
26
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
27
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
28
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.
29
De quoi dépendent les exécution en série ?
Elles dépendent de l'ordre des transactions
30
Pourquoi on souhaite avoir des exécution sérialisable ?
Car ce sont des exécution qui garantissent la préservation de la cohérence de données
31
Comment savoir si un exécution est sérialisable ? (Définition théorique)
Une exécution E est sérialisables s'il existe une exécution E' en série telles que E et E' sont équivalentes et qu'elles ont le même effet sur toutes les bases de données. (Fait les mêmes opérations dans n'importe qu'elle BDD avec le bon schéma)
32
C'est quoi un conflit entre opréation consécutive ?
On parle de conflit entre deux opérations consécutives d'une exécutions lorsque leur ordre ne peut être inversé sans changer l'effet de cette exécution.
33
Dans quel cas il y a un conflit entre opération consécutive ?
- Deux opérations qui sont dans la même transaction De transaction différentes : - Deux écriture de la même donnée - Lecture/Ecriture de la même donnée
34
Dans quel cas on peut inverser deux opérations consécutive ?
Dans deux transactions différentes : - Deux lecture même sur le même élement - Une écriture/lecture sur un élement différent
35
C'est quoi deux exécution équivalente par conflit ?
On dit que deux exécutions sont équivalentes par conflit si on peut passer de l'une à l'autre en inversant des opérations consécutives sans conflits.
36
C'est quoi une exécution sérialisable par conflit ?
On dit qu'une exécution est sérialisables par conflit si elle est équivalente par conflit à une exécution en série (Il suffit donc de faire des inversions en respectant les règles d'équivalence par conflit de montrer que les deux transactions peuvent s'exécuter à la suite sans problème)
37
Qu'implique la sérialisabilité par conflit d'une exécution ?
Sa séralisibilité
38
Comment savoir si Ti précède Tj dans une exécution E ? (Ti
Si il existe deux opération Oi et Oj dans E tel que : - Oi précède Oj dans E - Oi et Oj s'applique sur le même élement - Oi ou Oj est une opération d'écriture
39
Supposons que Ti
On sait que les Oi et Oj choisit sont en conflit et qu'on ne pourra donc pas les inverser sans conflit
40
Supposons que E est sérialisable et que Ti
Dans toute exécution en série équivalentes par conflit à E : Ti apparaitra nécessairement avant Tj
41
Comment est défini le graphe de précédence d'une exécution ?
Les noeuds sont les transactions de E Il y une arrête de Ti vers Tj si Ti
42
Qu'implique le fait que E est sérialisable par conflit en plus d'avoir un graphe de précédence ?
E est équivalente par conflit à toute exécution en série des transactions E où Ti précède Tj dès qu'il existe une arrête de Ti vers Tj dans le graphe de précédence de E.
43
https://media.discordapp.net/attachments/509074684797648926/1101069350791806976/3vyyasV.png?width=201&height=410 A quoi quelle exécution en série E est équivalente par conflit avec ce graphe de précédence ?
(T2, T3, T1) (T2, T1)
44
A quoi servent les verrous ?
On ne cherche plus à savoir si l'exécution dans cette ordre est sérialisable mais on cherche à différer certaines opérations (un minimum) pour conserver la sérialisibilité.
45
Quels sont les deux types de verrous ? Quand sont ils nécessaire ?
Verrou partagé (Shared lock) nécessaire pour lire un element Verrou exclusif (Exclusive lock) nécessaire pour écrire un element
46
Quels sont les opérations pour obtenir un verrou partagé/exclusif et relaché un verrou en algèbre relationnelle?
Si(X) Ti obtient un verrou partagé sur X Xi(X) Ti obtient un verrou exclusif sur X Ui(X) Ti relache son verrou sur X
47
Quels sont les contraintes sur les lectures/ecriture par rapport au verrou que possède une transaction Ti ?
Une lecture est effectué uniquement quand Ti à un verrou partagé OU exclusif sur X Une écriture est effectué uniquement quand Ti à un verrou exclusif sur X
48
Combien de transaction peuvent avoir de : - Verrou partagé ? - Verrou exclusif ? - Les deux ?
A tout moment un élement de la base : - Vérouillé exclusif par une UNIQUE transaction - Vérouillé partagé par PLUSIEURS transactions Mais jamais les deux pour un même élement
49
C'est quoi une perte de mise à jour ?
Cela se produit quand deux transaction essaye de modifer une même donné et ne commit qu'a la fin
50
Quels sont les exécutions qui ne sont jamais sérialisable ?
Celle avec une lecture impropre / perte de mise à jour
51
C'est quoi une procédure ?
Une procédure agit comme une fonction dans une BDD (Prend des arguments et effectue des traitements potentiellement conditionnelle)
52
Comment savoir quand une exécution est sérialisable ? (3 points)
- Quand on trouve un exemple d'execution en série équivalente - Quand elle est sérialisable par conflit - Quand elle est stricte
53
Que ce passe t'il si on veut un verrou exclusif sur une donné déjà verouillé de manière partagé par une autre transaction ?
On va attendre
54
Comment obtenir la sérialibilité par conflit avec les verroux ?
Avec le verrouillage en deux phases (2 Phase Locking 2PL)
55
Que se passe-t-il si un même transaction veut un verrou exclusif sur une donné dont elle à déjà un verrou partagé ?
Le verrou exclusif prend le pas du verrou partagé (Le remplace)
56
Quelle est la règle du verrouillage en deux phase ?
Dans chaque transaction, tous les verrous sont déposés avant que le premer verrou soit relaché --- On ne peut plus prendre de verrou quand on a commencé a en relacher dans une même transaction
57
Que fait le SELECT ... FOR UPDATE ?
Pose implictement un verrou row share : Les lignes selectionné sont verrouillé en écriture
58
Que fait le LOCK TABLE ... IN SHARE MODE ?
Permet d'obtenir un verrou partagé
59
Que fait le LOCK TABLE .. IN EXCLUSIVE MODE
Permet d'obtenir un verrou exclusif
60
Que fait le LOCK TABLE .. IN SHARE/EXCLUSIVE MODE NOWAIT
Plutôt que de bloquer l'exécution si la table est déjà verrouillée, Oracle abandonne l'instruction.
61
Quel pose implicite fait le INSERT/DELETE/UPDATE ?
Row exclusive > Pose un verrou exclusif (Bloque les lecture ET ecriture) des lignes concerné
62
Quels sont les deux phases du 2PL ?
- Accisitions des verrous - Relachement des verrous
63
Quel est le risque du 2PL ?
L'interblocage (Dead lock)
64
C'est quoi l'interblocage (Dead lock) ?
C'est un structure d'exécution où des transactions sont forcées d'attendre indéfiniment un verrou obtenu par une autre transaction.
65
C'est quoi une execution réparable ?
Une exécution est reparable si chaque transaction est validées après la transaction dont elle a lu des données modifiées. w1(A)w1(B)w2(A)r2(B)c1c2 Réparable
66
C'est quoi une exécution sans annulation en cassacade (SAC) ?
Une exécution est sans annulation en cascade (SAC) si toutes les transactions lisent des valeurs modifié issues uniquement de transactions déjà validé. w1(A)w1(B)w2(A)r2(B)c1c2 Non SAC
67
Quels propriétés on les SAC ?
- Jamais de lecture impropre - Réparable
68
C'est quoi un exécution stricte ?
Une exécution AVEC VERROU est STRICTE si dans chaque transaction, aucun verrou exclusif n'est relaché avant que la transaction soit annulé ou validé.
69
Quel est la propriété des exécutions stricte ?
Elle sont sérialisable
70
C'est quoi deux éxéciton équivalente ?
Deux éxécution qui ont le même effet sur la BDD.
71
Pourquoi est il souhaitable pour une exécution d'être réparable ?
En cas d'annulation d'une transaction dont une autre lit les données modifiées non validée, on peut aussi annuler l'autre. Sinon c'est "trop tard". w1(A)w1(B)w2(A)r2(B)c1c2 Réparable w1(A)w1(B)w2(A)r2(B)c2c1 Non réparable