Graf priority - Precedence graph
A prioritní graf, také pojmenovaný konfliktní graf[1] a serializovatelnost graf, se používá v kontextu řízení souběžnosti v databáze.[1]
Graf priority pro plán S obsahuje:
- Uzel pro každou potvrzenou transakci v S.
- Oblouk z Ti do Tj pokud akce Ti předchází a konflikty s jedním z Tjakce.
Příklady grafu priority
Příklad 1

Příklad 2
Příklad 2
Prioritní graf plánu D se 3 transakcemi. Protože existuje cyklus (o délce 2; se dvěma okraji) prostřednictvím potvrzených transakcí T1 a T2, toto plán (historie) je ne Konflikt lze serializovat.Upozornění, že potvrzení transakce 2 nemá žádný význam, pokud jde o vytvoření prioritního grafu.
Testování serializovatelnosti s grafem priority

Příklad testování serializovatelnosti
Algoritmus k testování Serializovatelnost konfliktů plánu S spolu s ukázkovým plánem.
- nebo
- Pro každou transakci TX účastnící se plánu S, vytvořte uzel označený Ti v prioritním grafu. Graf priority tedy obsahuje T1, T2, T3.
- Pro každý případ v S, kde Tj provede a read_item(X) po Ti provede a write_item(X), vytvořte hranu (Ti → Tj) v prioritním grafu. Ve výše uvedeném příkladu se to nikde nevyskytuje, protože po zápisu není čtení.
- Pro každý případ v S, kde Tj provede a write_item(X) po Ti provede a read_item(X), vytvořte hranu (Ti → Tj) v prioritním grafu. Výsledkem je směrovaná hrana od T1 do T2 (jako T1 má R (A) před T2 mít W (A)).
- Pro každý případ v S, kde Tj provede a write_item(X) po Ti provede a write_item(X), vytvořte hranu (Ti → Tj) v prioritním grafu. Výsledkem jsou směrované hrany od T2 do T1, T2 do T3 a T1 do T3.
- Plán S je serializovatelný právě tehdy, pokud graf priority nemá žádné cykly. Jako T1 a T2 tvoří cyklus, výše uvedený příklad není (konfliktní) serializovatelný.
Reference
externí odkazy
- Základy databázových systémů, 5. vydání použití prioritních grafů je popsáno v kapitole 17, protože se vztahují k testům na serializovatelnost konfliktu.
- Abraham Silberschatz, Henry Korth a S. Sudarshan. 2005. Database Systems Concepts (5. vydání), PP. 628–630. McGraw-Hill, Inc., New York, NY, USA.