Sonntag, 9. Dezember 2007

DBII 1672 - Transaktionen

Transaktion
Aus Sicht einer Anwendung erwarten wir, daß eine Transaktion vom DBMS entweder ganz oder gar nicht durchgeführt wird. Aus Sicht des DBMS ist eine Transaktion eine Einheit, welche die Datenbank von einem konsistenten wieder in einen konsistenten Zustand überführt.

ACID
Die Eigenschaften einer Transaktion kann man mit dem ACID-Prinzip beschreiben. ACID steht dabei für atomicity, consistency, isolation, durability:
- Unteilbarkeit (atomicity)
Eine Transaktion ist eine unteilbare Verarbeitungseinheit; sie wird entweder ganz oder überhaupt nicht ausgeführt.
Netzwerkorientierte Datenbanken - Hierarchische Datenbanken - Transaktionsmanagement 9
- Konsistenz (consistency)
Eine korrekte Ausführung der Transaktion führt die Datenbank von einem konsistenten zu einem konsistenten Zustand.
- Isolation (isolation)
Eine Transaktion muß so ablaufen, als sei sie die einzige im System. Zwischenzustände (die ja inkonsistent sein können) dürfen für andere Transaktionen nicht sichtbar sein.
- Dauerhaftigkeit (durability)
Ergebnisse einer erfolgreich beendeten Transaktion sind dauerhaft, d.h. überleben jeden nachfolgenden Fehler.
Die Unteilbarkeit erfordert, daß das DBMS jederzeit alle bisherigen Aktivitäten einer Transaktion rückgängig machen kann. Hierfür ist der Recovery-Manager zuständig.
Die Konsistenzforderung ist zunächst eine Forderung an die Anwendung, nämlich die Transaktionen entsprechend zu definieren. Systemseitig kann diese Forderung durch semantische Integritätsbedingungen unterstützt werden, die dem DBMS im Schema mitgeteilt werden.
Die Isolationsforderung macht es notwendig, daß das DBMS die Zugriffe der Transaktionen auf die Datenbank kontrolliert und koordiniert. Wir sprechen von Synchronisation.
Die Dauerhaftigkeit wiederum ist Aufgabe des Recovery-Managers des DBMS. Stellt sich heraus, daß die Änderungen einer bereits beendeten Transaktion dennoch rückgängig gemacht werden müssen, so muß hierzu eine neue Transaktion, oft Kompensationtransaktion genannt, gestartet werden.

Spezifikation von Transaktionen im Anwendungsprogramm
Transaktionen werden im Anwendungsprogramm durch BEGIN_TRANSACTION und END_TRANSACTION oder COMMIT gekennzeichnet und dem DBMS durch entsprechende Aufrufe bekanntgegeben. Durch ABORT oder ROLLBACK können Transaktionen aus dem Anwendungsprogramm heraus explizit abgebrochen und rückgesetzt werden.

Synchronisation ist Sache des DBMS, nicht des Anwendungs-programmierers
Die Operationen BEGIN_TRANSACTION, END_TRANSACTION und ABORT sind die einzigen Operationen, durch die das Anwendungsprogramm mit dem Transaktionsmanagement des DBMS kommuniziert. Sämtliche Maßnahmen zur Synchronisation von Transaktionen übernimmt das DBMS, sie sind dem Anwendungsprogrammierer vollständig verborgen. Insbesondere schreibt der Anwendungsprogrammierer keine Kommandos für den Erwerb von Sperren auf Objekten oder andere synchronisationsbezogene Operationen.
Am Rande sei vermerkt, daß dies ein idealisiertes Bild ist, das nicht für alle DBMS gilt. Einige Systeme erlauben dem Anwendungsprogrammierer sehr wohl, einen gewissen Einfluß auf die Synchronisation zu nehmen. Wegen der
10 Netzwerkorientierte Datenbanken - Hierarchische Datenbanken - Transaktionsmanagement
Komplexität des Synchronisationsproblems verlangen solche Eingriffe jedoch hohe Kompetenz und sind mit äußerster Vorsicht durchzuführen.

Sonntag, 11. November 2007

Datenbanken 2 - KE3 - EA2

Hallo zusammen,
ich rätsele gerade, was bei der Aufgabe unter dem Zugriffsverfahren "Listen" gemeint sein könnte. Im Skript taucht lediglich der Begriff "Multiliststrukturen" auf, der irgendwas mit Listen zu tun haben könnte, aber dies als sekundärer Zugriffspfad. Die Frage in der Aufgabe bezieht sich aber eindeutig auf die Primärorganisation der Daten.
Hat vielleicht irgendjemand eine Idee, was hier gemeint sein könnte?

KE 2 Einsendeaufgabe 1 (b)

Hallo,
vielleicht kann mir ja jemand hier helfen. Kann man diese Aufgabe wie auf S. 60 oben unter 3. angehen? Dann wäre die Aufgabe zwar schnell erledigt, aber ich kann das (z) dann irgendwie nicht einbauen.Oder kann man das entsprechend Lemma 4.2.4 umformen? Wenn ja, wie? Wie sollte man da die Notation f(,c) in irgend eine Form g(pi^(k))^-1 bekommen?
Bin für jeden Tip dankbar.
MfG