Datenbanken 1 Flashcards

(75 cards)

1
Q

Miniwelt

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Datenbasis

A
  • Teil d. Systems, der die gespeicherten Daten repräsentiert
  • Sammlung von Infos, die für das System relevant sind und in DB gespeichert werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Datenbankschema

A
  • Beschreibt Struktur der DB, also wie Daten organisiert sind
  • In UML kann es als ERD oder Klassendiagramm dargestellt werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Daten

A
  • Gespeicherten Werte in der DB, z.B. für Buch
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Informationen

A
  • Entstehen durch Verarbeitung von Daten
  • z.B. kann SQL Abfrage Information liefern
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Non Repeatable Read schedule

A

r1[x] w2[x] c2 r1[x] c1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Lost Update

A

r1[x] r2[x] w2[x] c2 w1[x] c1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Recovery Manager

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

2-Phasen-Commit-Protokoll (2PC)

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Grundaufgabe Transaktionsmonitor

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Aufgaben O/R Mapper

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Grobentwurf für modernes Informationssystem mit 3 Schichten Architektur

A

GUI <-> Geschäftslogik <-> Persistenzschicht <-> DBMS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Java Framework GUI

A
  • GUI: Java Swing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Java Framework für Geschäftslogik

A
  • Enterprise Java Beans
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Java Framework für Persistenzschicht

A
  • JPA
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Java Framework für DBMS

A

Oracle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Client Server Splits

A
  • GUI/Geschäftslogik -> Thin Client, RPC
  • Persistenzschicht/DBMS -> Fat Client, TCP
  • Innerhalb GUI Schicht -> Ultra Thin Client -> HTML+HTTP
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wichtige technische Anforderungen an DB

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Optimistisches Zwei Phasen Sperrprotokoll mir rückwärtsvalidierung

A
  1. Lesephase: Transaktion liest & bearbeitet Daten lokal ohne DB zu verändern
  2. Validierungsphase: Vor dem Commit wird geprüft, ob es Konflikte mit abgeschlossenen Transaktionen gibt, Falls ja wird T zurückgesetzt
  3. Schreibphase: Bei erfolgreicher Validierung werden Änderungen in die DB übernommen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Ansätze beim Scheduling durch die Phantomproblem vermieden wird

A
  1. Sperrgranularität erhöhen
  2. MVCC (Multiversion concurrency controll)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

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

A
  • S1 ist weder rücksetzbar noch kaskadenfrei
  • S2 ist rücksetzbar aber nicht kaskadenfrei
  • S3 ist rücksetzbar und kaskadenfrei
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Kaskadenfreiheit

A
  • Vermeidet kaskadierende Abbrüche
  • Transaktionen lesen nur Daten abgeschlossener Transaktionen
  • Reduziert Notwendigkeit mehrfacher Transaktionsabbrüche
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Rücksetzbarkeit

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Schedule beim dem Teiltransaktionen serialisierbar ist aber gesamter Schedule nicht
Sg = r2[y2] r1[x1] w1[y2] w2[x1] c2 c1 S1 = r1[x1] w2[x1] c2 c1 S2 = r2[y2] w1[y2] c2 c1
26
Java RMI proxy objekt
- Stellvertreter-Instanz auf d. Client-Seite, die Methodenaufrufe an Remote Objekt weiterleitet
27
Java RMI Remote Interface
- Definiert Methoden, die von einem entfernen Objekt angeboten werden
28
Java RMI Remote Object
- Instanz einer Klasse, die Remote Interface auf Remote Server implementiert
29
Java RMI Serialisierung
- Prozess, der Umwandlung eines Objektes in ein Bytestrom um es über das Netzwerk zu übertragen
30
Cache
- speichert oft genutzte Daten vorübergehend, damit sie schneller abgerufen werden können - Werden bewusst zur Leistungsverbesserung ins System eingebaut
31
An welche Stellen in der Schichtenarchitektur eines Web-Informationssystems bietet sich Caching besonders an?
Präsentationsschicht: - Browser-Cache: Statische Daten werden in CDN gespeichert Datenerhaltungsschicht: - Redis oder Memcache - Rechenintensive DB Abfragen können im In-Memory-Cache gespeichert werden
32
Deployment Problem und wo tritt es nicht auf ?
- Wenn Anwendungslogik auf vielen Clients verteilt ist, wodurch Updates auf jedem Client manuell durchgeführt werden müssen - Problem tritt bei Fat client nicht auf
33
Grundproblem beim Caching von Daten
- Konsistenz zwischen Cache und Datenquelle - Veraltete Daten: Wenn Originaldaten sich ändern , aber cache nicht aktualisiert wird kann Client veraltete Daten haben - Cache-Invalidierung: Schwierig richtigen Zeitpunkt zum löschen oder aktualisieren der Daten zu finden ohne performancevorteile zu verlieren
34
Idealisierter Datenbankentwurf
1. Anforderungsanalyse: Miniwelt verstehen 2. Konzeptioneller Entwurf: Erstellen eines konzeptionellen Schemas für DB (z.B. UML) 3. Logischer Entwurf: Übersetzung des Schemas auf Schema bzgl. DBMS Datenmodell 4. Schemadefinition: Programm zur Schemaerzeugung erstellen 5. Implementierung und Wartung: Leere Datenbank erzeugen und initial befüllen, System konfigurieren, Anwendung integrieren mit Testbetrieb, Standardbetrieb aufnehmen
35
Datenbankkonsistenz
- DB erfüllt Strukturvorgaben des Schemas
36
Schemaevolution
- DB kann im laufe der Zeit verändert werden
37
Beschreibung Phantomproblem mit Beispiel
T1 fragt Bestellungen > 100 Euro ab. T2 fügt Bestellung mit 120 Euro hinzu. T1 sieht die neue Bestellung nicht, wenn sie vor T2 ausgeführt wird.
38
Warum eignen sich formale Schedules im Allgemeinen nicht zur Charakterisierung des Phantomproblems?
- Schedules berücksichtigen nur Lese- und Schreiboperationen, nicht jedoch Datenänderungen (z. B. Einfügungen). - Phantomproblem entsteht durch neue Daten während der Transaktion.
39
XA Standard
- XA-Standard: Koordination von verteilten Transaktionen. - Sicherstellung von Atomazität und Konsistenz. - Transaktionen werden vollständig ausgeführt oder zurückgerollt. - Verwendet zwischen Transaction Manager und Resource Managers.
40
Beschreiben Sie eine Folge von Ereignissen wahrend des Zwei-Phasen-Commit-Protokolls, durch die ein am 2PC beteiligter Knoten nicht entscheiden kann, ob er eine lokale Transaktion zur verteilten Transaktion abschließen soll (Commit) oder abbrechen soll (Abort), ohne die Atomizitat der verteilten Transaktion zu gefährden.
- Prepare gesendet, Teilnehmer antworten „Ja“. - Koordinator fällt aus, Entscheidung fehlt. - Teilnehmer unentschieden, Atomizität gefährdet. - Lösung: Warten, Timeout, Ersatzkoordinator.
41
CRUD operationen
Create Read Update Delete public interface DingService { // Create a new Ding Ding create(Ding ding); // Read a Ding by its ID Ding read(Long id); // Update an existing Ding Ding update(Ding ding); // Delete a Ding by its ID boolean delete(Long id); }
42
Vor und Nachteile von Dienstschnittstellen
Vorteile: - Datenunabhängigkeit: Anwendungen funktionieren unabhängig von internen Datenbankänderungen - Zentrale Kontrolle: Einheitliche Verwaltung von Zugriffsrechten und Sicherheit Nachteile: - Performance-Overhead: Zusätzliche Schicht bedeutet längere Antwortzeiten - Erhöhte Komplexität: Mehr Aufwand für Entwicklung und Wartung der zusätzlichen Komponente
43
Wann sind zwei formale schedules äquivalent?
– Sie aus den gleichen Operationen bestehen – die Operationen innerhalb einer Transaktion gleich geordnet sind – sie die gleiche Menge an Konflikten besitzen
44
Warum ist der idealisierte Entwicklungsprozess für DBs in der Realität oft nicht umsetzbar?
- Einbettung in ein Gesamtsystem → Der DB-Entwurf muss sich dem Software-Prozess des gesamten Systems anpassen. - Strategische Vorgaben → Die Wahl des DBMS wird durch strategische und politische Faktoren beeinflusst. - Kontinuierliche Anpassung → Die DB wird auch im Betrieb erweitert und optimiert
45
Eager loading
Vorteile: - Schnellere Zugriffe auf alle benötigten Daten, da sie vorab geladen werden. - Weniger DB-Queries während der Laufzeit. Nachteile: - Kann unnötig viele Daten laden und Speicher verbrauchen. - Höhere Initial-Ladezeit.
46
Lazy loading
- Vorteil: Weniger Speicherverbrauch, da nur benötigte Daten geladen werden. - Nachteil: Viele Zugriffe verlangsamen die Performance, besser wäre ein einmaliges Laden.
47
Wozu ein Postprozessor in DBs und O/R Mappern
- Daten-Transformation. - Datenvalidierung - Lazy Loading - Sicherheit - Optimierung
48
Interprozess-Kommunikationsform "Client-Server"
- Zwei Prozesse: Client (Anfrager) und Server (Antwortgeber). - Kommunikation: Client sendet Request, Server antwortet mit Response. - Server-Session: Jeder Client hat eine eigene Sitzung mit Timeout. - Beispiel: Web-Server (ein Server, viele Clients).
49
Entkoppeltes Objekt
- Objekt nicht mehr mit der Datenbank oder Session verbunden. - Änderungen werden nicht automatisch mit DB synchronisiert.
50
Postprozessor für persistente Klassen
- Nach dem Laden von Objekten angewendet. - Führt Aufgaben wie Lazy Loading, Validierung oder Anpassungen durch.
51
Session im Kontext Client-Server System
- Pro Client existiert ein separater Zustand auf dem Server - Zuordnung von Client‐Requests zu Server‐Sessions erfolgt über IDs (als Teil der Request) - Lebensdauer der Server‐Session meist Time‐Out‐basiert, z.B. nach 5 min ohne Anfrage wird eine Session automatisch gelöscht
52
Standardbegriffe für Anforderungen an DBMS für unternehmenskritischen Merhnutzerbetrieb
Transaktionale Konsistenz - Konsistenz bzgl. Sequenzen von Schreib‐Lese‐Operationen Leistung / Skalierbarkeit - Effizienz von Anfragen und Schreiboperationen Datenverfügbarkeit - Gewährleistet ständigen Zugriff auf die DB, auch bei Ausfällen. Fehlerbehandlung und Wiederherstellung: - Ermöglicht die Wiederherstellung der DB nach Fehlern und Ausfällen
53
wie kann es bei beim strikten Zweiphasen-Sperrprotokoll (S2PL) zu einer Verklemmung kommen: r1[x]r2[y]w1[x]w2[y] (Anmerkung: Das beispiel ist kein deadlock! Man muss erklären wie ein deadlock entstehen kann)
T1 (Transaktion 1): r1[x]: Liest x (Lesesperre auf x). w1[x]: Schreibt auf x (Schreibsperre auf x). T2 (Transaktion 2): r2[y]: Liest y (Lesesperre auf y). w2[y]: Schreibt auf y (Schreibsperre auf y). Verklemmung: - T1 benötigt Schreibsperre auf y, die T2 hält. - T2 benötigt Schreibsperre auf x, die T1 hält. - Beide Transaktionen warten aufeinander und blockieren sich, was zu einer Verklemmung (Deadlock) führt
54
Persistenz durch Erreichbarkeit
- Objekte werden gespeichert, wenn sie über eine erreichbare Referenz von einem anderen Objekt referenziert werden. - Nicht erreichbare Objekte werden gelöscht.
55
Lazy Dereferencing
- Objekte werden erst bei Bedarf geladen, nicht sofort. - Optimiert die Leistung, da nur benötigte Daten abgerufen werden.
56
Wie stellt ein S2PL-Scheduler sicher, dass Transaktionen, die an einer Verklemmung beteiligt sind, beendet werden konnen?
- Transaktionen werden beendet, indem Scheduler eine der beteiligten Transaktionen abbricht (rollback) - dadurch werden gehaltene Sperren freigegeben und der Deadlock aufgelöst wird
57
Beschreiben Sie kurz ein konkretes Anwendungsbeispiel fur die Notwendigkeit bzw. Problematik der Atomizitat bei verteilten Transaktionen.
Anwendungsbeispiel: Geldüberweisung zwischen Konten zweier Banken Transaktionsoperationen: - Abbuchung von 100 Euro vom Konto bei Bank A. - Gutschrift von 100 Euro auf das Konto bei Bank B. Atomizität garantiert, dass: - Beide Operationen entweder vollständig oder gar nicht ausgeführt werden. - Falls eine Operation fehlschlägt, wird die gesamte Transaktion zurückgesetzt (Rollback). - Problematik: Verhindert inkonsistente Zustände, wie z.B. Geld von einem Konto abzubuchen, ohne es dem anderen gutzuschreiben.
58
Welche Arten von Sperren gibt es beim strikten Zwei-Phasen-Sperrprotokoll (S2PL)
- Lesesperre r_i[x] (read lock) auf einem Datensatz x zeigt, dass Datensatz gerade von einer T. gelesen wird - Schreibsperre w_i[x] (write lock) zeigt, dass der Datensatz gerade von einer T. geschrieben wird
59
Wie lange werden die Sperren einer entspr. Transaktion gehalten?
- Wenn eine andere Transaktion Tj eine Schreibsperre auf x hält wird ri[x] blockiert, bis Tj beendet ist – Danach wird eine Lesesperre auf x gesetzt und r_i[x] ausgeführt - Wenn eine andere Transaktion Tj eine Lese‐ oder Schreibsperre auf x hält wird wi[x] blockiert, bis Tj beendet ist – Danach wird eine Schreibsperre auf x gesetzt und wi[x] ausgeführt
60
Modelltreue
- Datenbasis repräsentiert tatsächlich Miniwelt
61
Sie sollen ein klinisches Informationssystem entwickeln, damit med. Fachpersonal, Patientenmedikationen im Mehrbenutzerbetrieb einsehen und verändern kann. Wie bewerten Sie die Bedeutung von Transaktionen für ein entsprechendes System?
- Datenintegrität: Transaktionen garantieren vollständige und konsistente Änderungen. - Mehrbenutzerbetrieb: Verhindert Inkonsistenzen bei gleichzeitigen Änderungen durch mehrere Benutzer. - Fehlerbehandlung: Fehler führen zu Rollback, Rückkehr in konsistenten Zustand. Beispiel: Gleichzeitige Medikationsänderung -> Ohne Transaktion können Fehler auftreten Verwaiste Transaktionen -> Falsche Daten
62
ODL
- Object Definition Language - Sprache zur Definition von Objektstrukturen in objektorientierter DB
63
OQL
- Object Query Language - Abfragesprache für das Abrufen von Daten aus objektorientierten DBs
64
Datentransferobjekte (DTOs) und Zweck in Service-orientierter Architektur
- Objekte zum Transport von Daten ohne Geschäftslogik - Effizienter Datentransport zwischen Client und Server - Entkopplung von Geschäftslogik und API
65
Warum keine Java Feldreferenzen in DTO Klassen
- Kopplung vermeiden: Verhindert enge Abhängigkeiten und erleichtert Wartung. - Seriellisierbarkeit: Vermeidet Probleme bei der Übertragung von Daten. - Zirkuläre Abhängigkeiten: Verhindert komplexe Probleme bei der Datenverarbeitung. Beziehungen abbilden: - IDs verwenden: Statt direkter Referenzen IDs verwenden. - Flache Strukturen: Beziehungen durch Listen von IDs oder primitiven Daten abbilden.
66
Geben Sie den Serialisierbarkeitsgraphen fur den folgenden Schedule an: ¨ w3[z]c3r4[x]c4w2[x]r2[y]c2r1[y]c1 Ist der Schedule serialisierbar?
T4 - T2 - T1 Serialisierbar weil nicht zyklisch
67
ODL Kollektionstypen
set: Ungeordnete Menge ohne Duplikate bag: Ungeordnete Menge mit Duplikaten list: Geordnete Menge mit Duplikaten array: Dynamische Arrays
68
ODL Interface
Interface implementiert: - insert_element(): Fügt Element hinzu. - remove_element(): Entfernt Element. - is_empty(): Prüft, ob Sammlung leer - cardinality(): Gibt Anzahl der Elemente zurück. -contains_element(): Prüft, ob bestimmtes Element vorhanden - create_iterator(): Erzeugt Iterator für die Sammlung
69
ODL Schlüsseldefinition
- Schlüsselbedingungen können mit "key" angegeben werden class Vielflaechner (key vName) { attribute string vName; attribute float oberflaeche; }
70
Beziehungen in ODL
- Ermöglicht explizite Definition von Beziehungen zw Klassen class Vielflaechner { relationship set flaechen inverse Flaeche::koerper; } class Flaeche { relationship set koerper inverse Vielflaechner::flaechen; }
71
Beispiel modellierung ODL
class Vielflaechner (extent alleVielflaechner key vName) { attribute string vName; attribute float oberflaeche; relationship set flaechen inverse Flaeche::koerper; void translation(in Punkt p); };
72
OQL Ausdrücke
"Text" -> String struct -> beschreibt eine Sammlung von Attributen Punkt -> Beschreibt Objekt von Typ Punkt Kante(Punkt(x:1.0, y:2.0, z:0.0), Punkt(x:1.0, y:2.0, z: 0.0)) -> beschreibt ein Objekt vom Typ Kante, das zwei Punkte miteinander verbindet.
73
Welche Aggregatfunktionen gibt es in OQL
count(collection): Zählt die Elemente in einer Sammlung. min, max, sum, avg(collection: Berechnen den minimalen, maximalen Wert, die Summe oder den Durchschnitt von numerischen Werten in einer Sammlung.
74
Was sind OQL Pfadausdrücke
- Ermöglichen Zugriff auf Attribute und Methoden von Objekten p.x -> float (Zugriff auf Attribut x von Punkt p) k.p1.x -> float (Zugriff auf Attribut x des Punktes p1 von Kante k)
75
OQL Select
select [distinct] e from [x1 in] e1, [x2 in] e2, ..., [xn in] en [where c] [order by f1, ..., fm]