www.wikidata.de-de.nina.az
Der Begriff Serialisierbarkeit stammt aus der Datenbanktheorie der Informatik In Transaktionssystemen existiert ein Ausfuhrungsplan fur die parallele Ausfuhrung mehrerer Transaktionen Der Plan wird auch Historie genannt und gibt an in welcher Reihenfolge die einzelnen Operationen der Transaktion ausgefuhrt werden Als serialisierbar wird eine Historie bezeichnet wenn sie zum selben Ergebnis fuhrt wie eine nacheinander seriell ausgefuhrte Historie uber dieselben Transaktionen Man unterscheidet Konfliktserialisierbarkeit Sichtenserialisierbarkeit und 1 Serialisierbarkeit Steht der Begriff Serialisierbarkeit allein wird er meistens als Konfliktserialisierbarkeit verstanden Inhaltsverzeichnis 1 Anschauliches Beispiel 2 Konfliktserialisierbarkeit 3 Sichtenserialisierbarkeit 4 Zusammenhang zwischen Konflikt und Sichtenserialisierbarkeit 5 1 Serialisierbarkeit 6 Vergleich zwischen Sichten und 1 Serialisierbarkeit 7 Datenbank Scheduler 7 1 Serieller ScheduleAnschauliches Beispiel BearbeitenUm sich die wichtigsten Begriffe dieses Artikels anschaulich vorstellen zu konnen soll folgendes Beispiel dienen In einer Bucherei wird ein Karteikarten System zur Verwaltung des Bestandes an Buchern verwendet Eine Historie bzw eine Ausfuhrungsreihenfolge konnte hier lauten Hake den letzten Eintrag im Feld ausgeliehen an auf der Karte Moby Dick ab Schreibe Hans Meier in das Feld ausgeliehen an auf der Karte Moby Dick Streiche den letzten Eintrag im Feld Ruckgabe am auf der Karte Moby Dick Schreibe 15 Marz 2003 in das Feld Ruckgabe am auf der Karte Moby Dick dd dd Hier werden zwei Transaktionen gemischt ausgefuhrt Transaktion A ist ein Ruckgabevorgang und lautet A 1 Hake den letzten Eintrag im Feld ausgeliehen an auf der Karte Moby Dick ab A 2 Streiche den letzten Eintrag im Feld Ruckgabe am auf der Karte Moby Dick dd dd Transaktion B ist ein Ausleihvorgang und lautet B 1 Schreibe Hans Meier in das Feld ausgeliehen an auf der Karte Moby Dick B 2 Schreibe 15 Marz 2003 in das Feld Ruckgabe am auf der Karte Moby Dick dd dd Die Operationen A 1 und B 1 sind konfliktar ebenso wie die Operationen A 2 und B 2 wurde man sie in vertauschter Reihenfolge ausfuhren ware das Ergebnis der Historie ein unverstandliches Durcheinander Eine Begrundung lautet Operationen A 1 und A 2 beziehen sich jeweils auf den letzten Eintrag Welcher der letzte Eintrag ist wird aber von den Operationen B 1 bzw B 2 bestimmt Wird also B 1 B 2 vor A 1 A 2 ausgefuhrt wird ein neuer Eintrag fur Hans Meier hinzugefugt Dieser Eintrag ist nun der Letzte in der Liste entspricht aber nicht mehr dem letzten Ausleiher sondern schon dem Neuen Somit wird der falsche Eintrag abgehakt bzw gestrichen Mit Hilfe der Konfliktserialisierbarkeit konnen wir die Historie darauf hin uberprufen ob diese konfliktaren Operationen in der richtigen Reihenfolge ausgefuhrt werden Die Sichtenserialisierbarkeit hingegen sagt uns dass das Ergebnis der Historie dasselbe ist wie wenn wir nur die letztendlich sichtbaren Operationen der Transaktionen in der richtigen Reihenfolge ausgefuhrt hatten Die 1 Serialisierbarkeit stellt eine Erweiterung des Begriffs auf Mehrversionen Historien dar Die Verwendung einer Mehrversionen Historie wurde in diesem Beispiel bedeuten dass bei jeder Anderung einer Bucherkarte eine neue Karte erstellt und gleichzeitig die alte Karte aufgehoben wird Es werden dann Operationen moglich wie Lies das Feld Autor der Karte Moby Dick in der Kartenversion vom 17 Marz 1993 dd dd Alle Formen der Serialisierbarkeit garantieren dass das Ergebnis einer Historie richtig ist Konfliktserialisierbarkeit BearbeitenZur Uberprufung der Aquivalenz der Historien wird hier die Konfliktaquivalenz herangezogen Die Bedingungen der Konfliktserialisierbarkeit lauten in Formeln Sei H eine Historie C H die Commit abgeschlossene Projektion von H H heisst genau dann konfliktserialisierbar wenn displaystyle exists nbsp serielle Historie H s C H H s displaystyle H s C H equiv H s nbsp dd In Worten Eine Historie H heisst genau dann konfliktserialisierbar wenn es eine serielle Historie gibt zu der die Commit abgeschlossene Projektion von H konfliktaquivalent ist Die Commit abgeschlossene Projektion einer Historie enthalt nur noch diejenigen Transaktionen die durch Commit abgeschlossen werden also nicht abgebrochen werden Diese Projektion wird im Artikel Historie naher erlautert Konfliktserialisierbarkeit kann mit Hilfe eines Serialisierbarkeitsgraphen getestet werden Ist der entstehende Graph azyklisch kreisfrei so ist die getestete Historie serialisierbar Sichtenserialisierbarkeit BearbeitenHier wird zur Uberprufung der Aquivalenz die Sichtenaquivalenz verwendet Die Bedingungen der Sichtenserialisierbarkeit lauten analog zu oben in Formeln Sei H eine Historie C H die Commit abgeschlossene Projektion von H H heisst genau dann sichtenserialisierbar wenn displaystyle exists nbsp serielle Historie H s C H V H s displaystyle H s C H equiv V H s nbsp dd In Worten Eine Historie H heisst genau dann sichtenserialisierbar wenn es eine serielle Historie gibt zu der die Commit abgeschlossene Projektion von H sichtenaquivalent ist Sichtenserialisierbarkeit kann mit Hilfe eines Polygraphen getestet werden Ist der entstehende Graph azyklisch so ist die getestete Historie sichtenserialisierbar Zusammenhang zwischen Konflikt und Sichtenserialisierbarkeit BearbeitenDie Menge aller konfliktserialisierbaren Historien bildet eine echte Untermenge der Menge aller sichtenserialisierbaren Historien Historien die konfliktserialisierbar sind sind demnach automatisch auch sichtenserialisierbar Sichtenserialisierbarkeit ist theoretisch die effektivere Form der Serialisierbarkeit denn sie ermoglicht mehr Nebenlaufigkeit und damit bessere Leistungen als Konfliktserialisierbarkeit Das Problem dabei ist dass der Test auf Sichtenserialisierbarkeit mit einem Polygraphen NP vollstandig ist also extrem lange dauert Dadurch ist eine Ausnutzung der Sichtenserialisierbarkeit praktisch nicht moglich 1 Serialisierbarkeit BearbeitenDie 1 Serialisierbarkeit ist eine Spezialisierung der Sichtenserialisierbarkeit auf Mehrversionen Historien In Formeln Sei H M V displaystyle H MV nbsp eine Mehrversionen Historie C H M V displaystyle C H MV nbsp die Commit abgeschlossene Projektion von H M V displaystyle H MV nbsp H M V displaystyle H MV nbsp heisst genau dann 1 serialisierbar wenn displaystyle exists nbsp 1 serielle Mehrversionen Historie H 1 s M V C H M V V H 1 s M V displaystyle H 1s MV C H MV equiv V H 1s MV nbsp dd In Worten Eine Mehrversionen Historie H M V displaystyle H MV nbsp heisst genau dann 1 serialisierbar wenn es eine 1 serielle Mehrversionen Historie gibt zu der die Commit abgeschlossene Projektion von H M V displaystyle H MV nbsp sichtenaquivalent ist Prinzipiell ist die hierzu verwendete Aquivalenzrelation identisch mit der Sichtenaquivalenz die besonderen Beschaffenheiten der Mehrversionen Historien machen aber die Uberprufung der Gleichheit des letzten Schreibens hinfallig Der Test ob zwei Mehrversionen Historien sichtenaquivalent sind wird dadurch vereinfacht 1 Serialisierbarkeit kann mit Hilfe eines Mehrversionen Serialisierbarkeitsgraphen getestet werden Ist der entstehende Graph azyklisch so ist die getestete Historie 1 serialisierbar Vergleich zwischen Sichten und 1 Serialisierbarkeit BearbeitenAusschliesslich gewohnliche Einversionen Historien konnen sichtenserialisierbar sein wahrend Mehrversionen Historien ausschliesslich 1 serialisierbar sein konnen Die Grundbedeutung beider Begriffe ist sieht man von der Form der Historie ab identisch Wenn ich nur diejenigen Operationen ausfuhre die das Ergebnis sichtbar beeinflussen und das in der richtigen Reihenfolge ist das Ergebnis korrekt Beide Eigenschaften bestatigen also die Korrektheit der uberpruften Historie Beide Eigenschaften werden in der Praxis kaum verwendet da die Uberprufung uber die zugehorigen Graphen extrem lange dauert Datenbank Scheduler BearbeitenEin Datenbank Scheduler dient der Verwaltung von Schreib und Lesezugriffen sog Operationen auf Datenbankobjekten Er sorgt dafur dass keine Konflikte bei nebenlaufigen Transaktionen auftreten Transaktionen werden nach Moglichkeit parallel ausgefuhrt um die Systemressourcen optimal ausnutzen zu konnen bzw sie in kurzerer Zeit abzuschliessen als wenn man sie nacheinander seriell ausfuhrt Dies kommt besonders bei Mehrbenutzerdatenbanken zum Tragen da in solchen Systemen viele Datenbankzugriffe in sehr kurzer Zeit stattfinden konnen beispielsweise im zentralen Server einer Bank der die Konten aller Filialen verwaltet Mit anderen Worten der Scheduler ist die Komponente eines DBMS welche die Ablaufreihenfolge auch Schedule oder Historie genannt der Datenzugriffe auf der Datenbank Datenbankoperation so konstruiert dass sie einem bestimmten Protokoll gehorchen Ausserdem ubernimmt ein Scheduler die Ablaufkontrolle Dabei hat er die Moglichkeit eine Operation sofort auszufuhren d h an den Datenverwalter weitergeben sie zu verzogern meist realisiert uber eine Warteschlange um den Operationen andere Transaktionen den Vorzug zu geben oder sie zuruckzuweisen durch Abbruch abort der zugehorigen Transaktion Ein Scheduler muss folgende Eigenschaften eines Schedules sicherstellen Serialisierbarkeit Fehlersicherheit Serieller Schedule Bearbeiten In einem seriellen Schedule werden die enthaltenen Transaktionen strikt nacheinander ausgefuhrt Ein serieller Schedule ist damit immer korrekt weil keine Uberschneidungen der Transaktionen auftreten konnen Allerdings ist ein serieller Schedule auch verhaltnismassig ineffizient weil eine Transaktion immer die Beendigung der anderen Transaktion abwarten muss und damit keine Parallelisierung ausgenutzt werden kann Ein Schedule wird als serialisierbar bezeichnet wenn er aquivalent zu einem seriellen Schedule ist Es gibt dabei folgende Aquivalenzklassen Final State Serialisierbarkeit Schedules sind final state aquivalent wenn ihre Operationen ausgehend von einem gleichen Anfangszustand den gleichen Endzustand erzeugen Dabei wird die globale Konsistenz nach Ausfuhrung aller beteiligter Transaktionen betrachtet FSR final state serializability ist die Klasse aller final state serialisierbaren Historien Sichten Serialisierbarkeit Schedules sind sichten aquivalent wenn alle Transaktionen den gleichen Datenbank Zustand sehen d h wenn gilt Transaktionen lesen gleiche Werte displaystyle Rightarrow nbsp sie produzieren das gleiche Ergebnis Es wird also sowohl die globale Konsistenz nach Ausfuhrung aller beteiligten Transaktionen als auch die lokale Konsistenz nach Ausfuhrung jeder einzelnen Transaktion betrachtet VSR view serializability ist die Klasse aller sichten serialisierbaren Historien Konflikt Serialisierbarkeit Schedules sind konflikt aquivalent wenn unvertragliche Operationen in der gleichen Reihenfolge angeordnet sind CSR conflict serializability ist die Klasse aller konflikt serialisierbaren Historien Commit Serialisierbarkeit CMFSR commit final state serializability ist die Klasse aller commit final state serialisierbaren Historien CMVSR commit view serializability ist die Klasse aller commit view serialisierbaren Historien CMCSR commit conflict serializability ist die Klasse aller commit conflict serialisierbaren Historien Fehlersicherheit eines Schedules ist die Eigenschaft dass dieser Schedule sich bei Abbruch einer oder mehreren Transaktionen genauso verhalt wie ein ahnlicher Schedule der ausschliesslich die nicht abgebrochenen Transaktionen enthalt Es gibt folgende Klassen von Schedules bzgl der Fehlersicherheit RC recoverable Es ist moglich nach einer abgebrochenen Transaktion die Verarbeitung der restlichen Schedules weiterzufuhren ohne Inkonsistenzen zu erhalten ACA avoids cascading abort Geschachtelte Abbruche werden vermieden indem Transaktionen nur von abgeschlossenen Transaktionen lesen durfen ST strict schedules RG rigorous schedules Abgerufen von https de wikipedia org w index php title Serialisierbarkeit amp oldid 240985508