Preferensgraf
En prioritetsgraf , även kallad konfliktgraf och serialiseringsgraf , används i samband med samtidighetskontroll i databaser .
Preferensgrafen för ett schema S innehåller:
- En nod för varje genomförd transaktion i S
- En båge från T i till T j om en åtgärd av T i föregår och står i konflikt med en av T j: s handlingar. Det vill säga att åtgärderna tillhör olika transaktioner, åtminstone en av åtgärderna är en skrivoperation, och åtgärderna kommer åt samma objekt (läs eller skriv).
Exempel på prioritetsdiagram
Exempel 1
Exempel 2
En prioritetsgraf för schemat D, med 3 transaktioner. Eftersom det finns en cykel (av längd 2; med två kanter) genom de genomförda transaktionerna T1 och T2, är detta schema (historik) inte konfliktserialiserbart . Lägg märke till att förpliktelsen av transaktion 2 inte har någon betydelse när det gäller skapandet av en prioritetsgraf.
Testar serialiserbarhet med Precedence Graph
Algoritm för att testa konfliktserialisering av ett schema S tillsammans med ett exempelschema.
- eller
- För varje transaktion T x som deltar i schema S, skapa en nod märkt Ti i prioritetsdiagrammet. Sålunda innehåller prioritetsgrafen T 1 , T 2 , T 3 .
- För varje fall i S där T j exekverar ett read_item (X) efter att T i exekverar ett write_item (X), skapa en kant (T i → T j ) i prioritetsgrafen. Detta förekommer ingenstans i exemplet ovan, eftersom det inte finns någon läsning efter skrivning.
- För varje fall i S där T j exekverar ett write_item (X) efter att T i exekverar ett read_item (X), skapa en kant (T i → T j ) i prioritetsgrafen. Detta resulterar i en riktad kant från Ti till T2 ( eftersom Ti har R (A) före T2 som har W(A) ).
- För varje fall i S där T j exekverar en write_item (X) efter att Ti exekverar en write_item (X), skapa en kant (T i → T j ) i prioritetsgrafen. Detta resulterar i riktade kanter från T2 till T1 , T2 till T3 och T1 till T3 .
- Schemat S är serialiserbart om och endast om prioritetsgrafen inte har några cykler. Eftersom T 1 och T 2 utgör en cykel är exemplet ovan inte (konflikt) serialiserbart.
externa länkar
- The Fundamentals of Database Systems, 5:e upplagan, användningen av prioritetsgrafer diskuteras i kapitel 17, eftersom de hänför sig till tester för att serialisera konflikter .
- Abraham Silberschatz , Henry Korth och S. Sudarshan. 2005. Databas System Concepts (5 uppl.), PP. 628–630. McGraw-Hill, Inc., New York, NY, USA.
Kategori: