Datenbanken 1 Flashcards
(75 cards)
Miniwelt
- Teil der Realität, den das Modell beschreibt,
- Die “abgegrenzte Welt”, die wir modellieren wollen
- Bsp: Bibliothek die aus versch. Büchern, Nutzern etc. besteht
Datenbasis
- Teil d. Systems, der die gespeicherten Daten repräsentiert
- Sammlung von Infos, die für das System relevant sind und in DB gespeichert werden
Datenbankschema
- Beschreibt Struktur der DB, also wie Daten organisiert sind
- In UML kann es als ERD oder Klassendiagramm dargestellt werden
Daten
- Gespeicherten Werte in der DB, z.B. für Buch
Informationen
- Entstehen durch Verarbeitung von Daten
- z.B. kann SQL Abfrage Information liefern
Non Repeatable Read schedule
r1[x] w2[x] c2 r1[x] c1
Lost Update
r1[x] r2[x] w2[x] c2 w1[x] c1
Recovery Manager
- Sichert Atomizität
- Sorgt dafür, dass DB im Fall eines Fehlers in konsistentem Zustand zurückkehrt
- Sichert, dass die Änderungen von abgeschlossenen Transaktionen garantiert in der DB gespeichert sind
2-Phasen-Commit-Protokoll (2PC)
- Atomizität sichert Konsistenzbedingung
- Besteht aus 2 Phasen
- Preparephase: Koordinator fragt alle beteiligten Knoten, ob sie lokale Transaktion commiten können
- Commit/Abortphase: Wenn alle Knoten mit “commit” antworten, wird verteilte Transaktion committed, wenn mind. 1 Knoten mit abort antwortet, abbruch von Transaktion
Grundaufgabe Transaktionsmonitor
- Unterstützt Ausführung von verteilten Transaktionen in der Geschäftslogik
- Regelt Abwicklung des 2PCs gemäß XA-Standards
- Beteiligten Ressourcen werden zur Umsetzung des 2 PCs mittels XA-Standards in entsprechende verteilte Transaktion eingebunden
Aufgaben O/R Mapper
- Bereitstellung einer ODMG ähnlichen API
- Übersetzung von OQL ähnlicher Anfrage in SQL Anfrage
- Berechnung des relationalen DB Schemas aus d Abbildungsbeschreibung
- Abbildung von SQL-Ergebnistupeln auf Objekte
Wie wird bei O/R-Mapper APIs das Problem von entkoppelten Objekten technisch gelöst? Welche Zusatzinformation muss dazu in der Datenbank pro abgebildetem Objektgespeichert werden?
- Die Lösung erfolgt durch die Implementierung optimistischer Transaktionen
-Dazu wird Versionszähler pro persistentem Objekt benötigt. - Die Versionsnummer muss in einer entsprechenden Spalte der relationalen Datenbank gespeichert werden
Grobentwurf für modernes Informationssystem mit 3 Schichten Architektur
GUI <-> Geschäftslogik <-> Persistenzschicht <-> DBMS
Java Framework GUI
- GUI: Java Swing
Java Framework für Geschäftslogik
- Enterprise Java Beans
Java Framework für Persistenzschicht
- JPA
Java Framework für DBMS
Oracle
Client Server Splits
- GUI/Geschäftslogik -> Thin Client, RPC
- Persistenzschicht/DBMS -> Fat Client, TCP
- Innerhalb GUI Schicht -> Ultra Thin Client -> HTML+HTTP
Wichtige technische Anforderungen an DB
- Datenintegration
– Zusammengehörige Daten können gemeinsam und redundanzfrei verwaltet werden - Datenstrukturierung
– Vorgaben zur einheitlichen Form der Daten -> erleichtert weitere Verarbeitung der Daten - Anfragen und Schreiben von Daten
– Auf Basis ihrer einheitlichen Struktur - Daten(bank)konsistenz
– Die vorgegebene Struktur der Daten bleibt auch bei Änderungen gewahrt - Persistenz
– Daten können dauerhaft gespeichert werdne - Mehrbenutzerbetrieb
– Viele Nutzer können quasi gleichzeitig Daten lesen und schreiben
Optimistisches Zwei Phasen Sperrprotokoll mir rückwärtsvalidierung
- Lesephase: Transaktion liest & bearbeitet Daten lokal ohne DB zu verändern
- Validierungsphase: Vor dem Commit wird geprüft, ob es Konflikte mit abgeschlossenen Transaktionen gibt, Falls ja wird T zurückgesetzt
- Schreibphase: Bei erfolgreicher Validierung werden Änderungen in die DB übernommen
Ansätze beim Scheduling durch die Phantomproblem vermieden wird
- Sperrgranularität erhöhen
- MVCC (Multiversion concurrency controll)
Welche der folgenden Schedules sind rücksetzbar,
welche kaskadenfrei?
S1 = w1[x] r2[x] c2 c1
S2 = w1[x] r2[x] c1 c2
S3 = w1[x] c1 r2[x] c2
- S1 ist weder rücksetzbar noch kaskadenfrei
- S2 ist rücksetzbar aber nicht kaskadenfrei
- S3 ist rücksetzbar und kaskadenfrei
Kaskadenfreiheit
- Vermeidet kaskadierende Abbrüche
- Transaktionen lesen nur Daten abgeschlossener Transaktionen
- Reduziert Notwendigkeit mehrfacher Transaktionsabbrüche
Rücksetzbarkeit
- Transaktionseffekte müssen rückgängig gemacht werden können
- Keine Transaktion darf abgeschlossen werden, die unbestätigte Daten gelesen hat
- Verhindert Lesen ungültiger Werte