Theorie Flashcards
XML
eXtensible Markup Language
- Auszeichnungssprache
- strukturierte Darstellung von Daten zum Austausch zwischen verschiedenen Instanzen (“gemeinsame Sprache”)
Syntax
hierarchisch angeordnet
Wurzelelement; Element mit Inhalt;
Attribut aus Attributname und Attributwert
Wohlgeformtheit eines XML-Dokuments
- öffnende und schließende Tags (Kurzschreibweise)
- korrekte Verschachtelung
- genau ein Wurzelelement
–> nur prinzipiell verarbeitbar, nicht zwangsläufig für Einsatzzweck richtig strukturiert
Validität eines XML-Dokments
Def.: Wohlgeformtheit + richtige Struktur für Einsatzzweck
- Document Type Definition (DTD): älter, selbst kein XML
- XML Schema Definition (XSD): neuer, selbst in XML formuliert (kennt Datentypen)
DTD
- Häufigkeit: ?: 0-1; +: >1; *:>0
- Attribute: #IMPLIED: optional; #REQUIRED: verpflichtend
Kritik an DTD
- kein XML
- nicht ausdrucksstark genug z.B. keine Spezifizierung von Datentypen der Attribute möglich
Garantie an den Anwender (bzgl. Transaktionen)
- Atomarität: Zurücksetzung einer fehlerhaften (unvollständigen) Transaktion
- Konsistenz: Schlüssigkeit und Korrektheit einer Datenbank in sich
- Isolation: Unabhängigkeit einer Transaktion von parallel laufenden Transaktionen
- Dauerhaftigkeit : Persistenz aller Daten einer abgeschlossenen Transaktion
- -> ACID
Recovery und Vorsorge
Wiederherstellung von Daten im Fehlerfall (HW oder SW)
- HW: nur zertifizierte Rechner und speziell ausgelegte Geräte
- SW: Abstimmung von SW-Komponenten
- Sicherung: Protokollierung jeder Änderung in einer Logdatei, tägliche Differenzsicherung, wöchentliche Komplettsicherung und sichere Aufbewahrung
Sicherer Datenbankbetrieb
- Datenbank und Logdaten auf externen nichtflüchtigen Medien
- Datenbank-Puffer im Arbeitsspeicher (Performance)
- Zugriff auf Datenbank nur, wenn Daten nicht im Puffer
- Schreiben im Datenbank-Puffer
- asynchrone Aktualisierung
Metadaten
Informationen zu und Zustände über eine Datenbank
- Informationen zu laufenden Transaktionen
- Zustände zu Synchronisationsmechanismen
- Aktualität und Gültigkeit der Daten im Datenbankpuffer
- Zustand der aktuellen Logdaten
Datenbankpuffer
- großer Teil des Arbeitsspeichers, bis zu 1 TB bei großen Datenbanken
- Bearbeitung der Daten im Puffer für weniger I/Os
- Speicherung der Änderungen in Logfiles
Datenbankpuffer
- großer Teil des Arbeitsspeichers, bis zu 1 TB bei großen Datenbanken
- Bearbeitung der Daten im Puffer für weniger I/Os
- Speicherung der Änderungen in Logfiles
Before- und After-Image
- Before-Image: zu ändernde Daten, bis Transaktionsende gespeichert
- After-Image: geänderte Daten, bis zur nächsten Sicherung gespeichert
einfacher TA-Betrieb
- Lesen der Daten: von Datenbank falls nicht bereits im Puffer
- Merken der
zu ändernden Daten in der Logdatei (Before
Image) - Ändern der Daten: Ändern (Update, Delete, Insert) der Daten im Arbeitsspeicher, Sperren
dieser Einträge für andere Benutzer - Merken der
geänderten Daten in der Logdatei (After Image)
. . . Obige vier Schritte können sich innerhalb einer Transaktion mehrmals
wiederholen
- Transaktionsende
mit COMMIT
Transaktionsende in der Logdatei vermerken. Sperren freigeben.
Schreiben aller Änderungen in die Datenbank. - Transaktionsende
mit Rollback
Rücksetzen der Metadaten der Transaktion. Geänderte Daten im
Arbeitsspeicher mittels Before-Images restaurieren. Sperren freigeben.
moderner TA-Betrieb
- asynchrones Schreiben der Daten in die Datenbank um Überlastungen zu verhindern
- Pufferung: Minimierung des I/O-Verkehrs, Konsistenz der Daten abhängig von Logfiles