Quelle est la différence entre “conflit serializable” et “conflit équivalent”?
Dans la base de données de la théorie, quelle est la différence entre "conflit serializable" et "conflit équivalent"?
Mon manuel a une section sur les conflits serializable mais gloses sur les conflits d'équivalence. Ces sont probablement les deux concepts que je suis familier avec, mais je ne suis pas familier avec la terminologie, donc je suis à la recherche d'une explication.
Vous devez vous connecter pour publier un commentaire.
Juste deux termes pour décrire une chose de différentes façons.
Conflit équivalent: vous avez besoin de dire que l'Annexe A un conflit est équivalent à l'Annexe B. il doit comporter deux horaires
Conflit serializable: Toujours utiliser l'Annexe A et de B. on peut dire que l'Annexe A un conflit est sérialisable. L'annexe B est un conflit serializable.
On n'a pas dit l'Annexe A/B est un conflit équivalent
On n'a pas dit l'Annexe A est en conflit serializable à l'Annexe B
Conflit dans le SGBD peut être définie comme deux ou plus des opérations et accéder à la même variable et au moins l'un d'entre eux est une opération d'écriture.
Par exemple:
Dans ce cas, il n'y a pas de conflit, car les deux opérations sont à l'exécution des opérations de lecture.
Mais dans le cas suivant:
il y a un conflit.
Permet de dire que nous avons un calendrier
S
, et on peut réordonner les instructions en eux. et de créer plus de 2 horairesS1
etS2
.Conflit équivalent: Désigne les horaires
S1
etS2
où ils maintiennent l'ordre des instructions contradictoires dans les deux calendriers. Par exemple, siT1
a lireX
avantT2
écritX
dansS1
, alors il devrait être le même dansS2
aussi. (La commande doit être maintenues que pendant le conflit, les opérations).Conflit Serializability:
S
est dit être en conflit sérialisable si il est le conflit équivalent à une série de travail (p. ex., où les opérations sont exécutées l'une après l'autre).De Wikipédia.
De conflit d'équivalence
Les horaires
S1
etS2
sont dit être en conflit équivalent, si les conditions suivantes sont remplies:Deux horaires
S1
etS2
impliquer le même ensemble d'opérations (y compris ordre des actions au sein de chaque transaction).L'ordre de chaque paire de conflit d'actions dans
S1
etS2
sont les mêmes.Conflit-sérialisable
Un programme est dit être en conflit serializable lorsque le calendrier est conflit équivalent à un ou plusieurs de série horaires.
Une autre définition de conflit-serializability est qu'un programme est en conflit-sérialisable si et seulement si son graphe de précédence/serializability graphique, lorsque seules les transactions validées sont considérés, est acyclique (si le graphe est défini de façon à inclure également les transactions non validées, puis les cycles impliquant des transactions non validées peuvent se produire sans conflit serializability violation).
Si un rendez-vous peut être transformé en un calendrier de S par une série de swaps de non-conflit d'instructions, nous disons que S et S sont des conflits équivalent.
Nous disons qu'un calendrier de S un conflit est sérialisable si il est le conflit équivalent à une série d'horaire.
Conflit Équivalent Horaires: si un rendez-vous peut être transformé en un calendrier de S "par une série de swaps de non conflit d'instructions, nous disons que le calendrier de S & S' sont en conflit équivalent.
Conflit Serializable Horaire: Annexe conflit est sérialisable si il est le conflit équivalent à une série d'horaire.
Conflit serializable signifie un conflit equuivalent à toute série d'horaire.
Définitions ont déjà été expliqué parfaitement, mais je sens que cela va être très utile à certains.
J'ai développé un petit programme de console (sur github) qui peut tester le calendrier des conflits serializability et permettra également de dessiner un graphe de précédence.
Si il y a au moins un conflit équivalent horaire pour l'opération envisagée calendrier, il est le conflit serializable.