Aufgabe 11-1 Synthesealgorithmus
Aufgabenstellung
Gegeben sei das folgende Relationenschema: AssistentProfessorDiplomand (
- PersNr, ← Personalnummer des Assistenten
- Name, ← Name des Assistenten
- Fachgebiet, ← Fachgebiet des Assistenten
- ChefPersNr, ← Personalnummer des Professors
- ChefName, ← Name des Professors
- MatrNr, ← Matrikelnummer des Studenten
- StudName, ← Name des Studenten
- Semester, ← Fachsemester des Studenten
- StudWohnOrt ← Wohnort des Studenten )
Die Relation AssistentProfessorDiplomand enthält die Daten von Studierenden, deren Diplomarbeit von einem Assistenten betreut wird, welcher wiederum bei einem bestimmten Professor angestellt ist.
Gegeben seien folgende funktionale Abhängigkeiten:
- ChefPersNr → ChefName
- PersNr → Name, Fachgebiet, ChefPersNr, ChefName
- MatrNr → PersNr, Name, Fachgebiet, ChefPersNr, ChefName, StudName, Semester, StudWohnOrt
(a) Bestimmen Sie alle Schlüsselkandidaten.
- MatrNr ist der einzige Schlüsselkandidat da durch diesen alle anderen Attribute abhängig sind
- Weder ChefPersnr oder PersNr sind eindeutig
(b) Überführen Sie das Relationenschema mit Hilfe des Synthesealgorithmus in die 3. Normalform.
Erinnerung
Schritte des Synthesealgorithmus:
- Linksreduktion
- Rechtsreduktion
- Entfernung von rechtsleeren Abhängigkeiten
- Zusammenfassen von Abhängigkeiten mit gleicher linker Seite
- Neues Relationsschema erzeugen
- Rekonstruktion eines Schlüsselkandidaten:
- Elimination überflüssiger Relationen
Linksreduktion
- ChefPersNr → ChefName
- PersNr → Name, Fachgebiet, ChefPersNr, ChefName
- MatrNr → PersNr, Name, Fachgebiet, ChefPersNr, ChefName, StudName, Semester, StudWohnOrt
Es gibt hier nichts zu ändern, da links jeweils nur ein Attribute steht
Rechtsreduktion
-
ChefPersNr → ChefName
- bleibt unverändert
-
PersNr → Name, Fachgebiet, ChefPersNr, ChefName
- wird zu PersNr → Name, Fachgebiet, ChefPersNr
- weil Chefname kommt in ChefPersNr schon vor
-
MatrNr → PersNr, Name, Fachgebiet, ChefPersNr, ChefName, StudName, Semester, StudWohnOrt
- wird zu: MatrNr → PersNr,, StudName, Semester, StudWohnOrt
- alles Andere kommts schon in PersNr und ChefPersNr vor
Entfernung von rechtsleeren Abhängigkeiten
- gibt keine überflüssige Abhängigkeit
Zusammenfassen von Abhängigkeiten mit gleicher linker Seite
- keine gleiche linke Seite
Relationsschema erzeugen
Rekonstruktion eines Schlüsselkandidaten:
→ Diplomand enthält Schlüsselkandidaten (MatrNr)
Elimination überflüssiger Relationen
→ nichts zu tun
Aufgabe 11-2 Kombinatorik von Schedules
Aufgabenstellung
Gegeben sei eine Menge von n Transaktionen , wobei jede Transaktion aus vielen Einzeloperationen besteht:
Beispiel:
Erläutern Sie für das Beispiel sowie für den allgemeinen Fall :
(a) Wieviele beliebige Schedules gibt es?
Aktionen dürfen innerhalb der Transaktion nicht vertauscht werden → sonst beliebig angeordnet
Im Beispiel:
- Es gibt 10 Aktionen → 10 freie Plätze im Schedule
- Erste Transaktion bekommt 4 beliebige Plätze
- Zweite TA bekommt 3 beliebige aus den übrigen 10-4 = 6 Plätzen
- Dritte TA bekommt den Rest
Anzahl beliebiger Schedules im allgemeinen
(b) Wieviele serielle Schedules gibt es?
Anzahl der Permutationen der Transaktionen → Jede Transaktion kann an einer beliebigen stelle stehen
Anzahl serieller Schedules im allgemeinen
(c) Wieviele serialisierbare Schedules gibt es?
- Kann man im allgemeinen nicht genau bestimmen, da die Anzahl von den Abhängigkeiten bestimmt wird.
- Liegt aber zwischen der Anzahl beliebiger Schedules und der Anzahl der seriellen Schedules
Anzahl serialisierbarer Schedules im allgemeinen
Aufgabe 11-3 Serialisierbarkeit von Schedules (Serialisierungsgraph)
Aufgabenstellung
Geben Sie für die folgenden Beispiele jeweils den vollständigen Abhängigkeitsgraphen sowie ggf. einen äquivalenten seriellen Schedule an bzw. begründen Sie kurz, warum dieser nicht existiert.
a)
Abhängigkeiten
• Auf Object : , , , , • Auf Object : , , • Auf Object 𝑧: wird nur gelesen → keine Abhängigkeiten
b)
Abhängigkeiten
- Auf Object x: , ,
- Auf Object y: , ,
- Auf Object z: , , ,
Aufgabe 11-4 Anomalien
Aufgabenstellung
Welche Anomalien treten in den folgenden Schedules auf? Begründen Sie Ihre Antwort. Hier sind die gegebenen Schedules entsprechend dem gegebenen Vorlagenformat umgeschrieben:
(a)
- In diesem Fall ist das nur für der Fall
- Muster:
- Verstoß gegen Isolation
(b)
→ Lost Update bezüglich
- Muster:
(c)
→ Dirty Read bezüglich
- Muster: