Übung 4: Aufgabe 1) 1.2 Relation: Eine Relation besteht aus Attributen und Tupeln. Sie wird üblicherweise mit Hilfe einer Tabelle beschrieben, welche in zweidimensionaler Anordnung die Datenelemente erfasst. Tupel: Ein Tupel stellt eine konkrete Kombination von Attributwerten dar und wird im Datenbankbereich auch als Datensatz bezeichnet ( = die Zeilen in einer Tabelle). HT TH Attribut: Attribut: Eigenschaft eines Entitätstyps (zum Beispiel Nachname und Geburtsdatum von Entitätstyp Angestellter). Das Attribut oder die Attributkombination eines Entitätstyps, deren Wert(e) die Entität eindeutig beschreiben, d.h. diese identifizieren, heißen identifizierende(s) Attribut(e) (zum Beispiel ist das Attribut Projektnummer identifizierend für den Entitätstyp Projekt). Üblicherweise haben 1:nBeziehungstypen keine Attribute, da diese immer einem der beteiligten Entitätstypen zugeordnet werden können. Im Falle eines n:m-Beziehungstyps kann aus dem Beziehungstyp ein eigenständiger Entitätstyp mit Beziehungstypen zu den ursprünglich beteiligten Entitätstypen geschaffen werden. Dem neuen Entitätstyp kann dann das Attribut zugeordnet werden (zum Beispiel Attribut Projektbeteiligungsgrad beim n:m-Beziehungstyp „Angestellter arbeitet am Projekt“ zwischen den Entitätstypen Angestellter und Projekt). (= die Spalten in einer Tabelle). Tabelle: Eine Datenbanktabelle ist eine Menge von Daten, die in Zeilen und Spalten einer Tabelle strukturiert sind. Dabei legen die Spalten fest, was in der Tabelle gespeichert wird. In den Zeilen liegen die einzelnen Datensätze vor. Die Zeilen werden hier als Tupel bezeichnet. Die Spalten werden Attribute genannt. Schlüssel: Ein Schlüssel dient in einer Relationalen Datenbank dazu, die Tupel einer Relation eindeutig zu identifizieren. Zum Beispiel kann eine Relation als Tabelle dargestellt werden. Dann ist der Schlüssel für so eine Tabelle eine Gruppe von Spalten, welche so ausgewählt werden, dass jede Zeile in dieser Gruppe eine einmalige Wertekombination hat. Primärschlüssel: Im relationalen Datenmodell spielt die Verknüpfung von verschiedenen Tabellen eine entscheidende Rolle. Um Tabellen eindeutig verknüpfen zu können, muss allerdings jeder Datensatz einer Tabelle eindeutig identifiziert und adressiert werden. Ein Attribut, das einen Datensatz mit allen seinen Feldwerten eindeutig identifiziert, wird als Primärschlüssel bezeichnet. Für einen Primärschlüssel muss immer gelten: • Er darf nicht leer sein. • Es dürfen keine Duplikate in den Datensätzen derselben Tabelle existieren. • Jede Tabelle hat genau einen Primärschlüssel. Fremdschlüssel: Ein Fremdschlüssel ist ein Attribut in einer Relation (Tabelle), welches eine Beziehung zu einem Schlüsselfeld einer anderen Relation (Tabelle) herstellt. HT TH HT HT TH TH HT HT TH HT TH TH 1.3 Transaktion: Eine Transaktion besteht aus einer Gruppe von Aktionen, die in einer oder mehreren Datenbanktabellen erfolgreich ausgeführt werden müssen, bevor sie endgültig festgeschrieben (gespeichert) werden. Schlägt eine der Aktionen in der Gruppe fehl, werden alle anderen Aktionen ebenfalls rückgängig gemacht (rolled back). Transaktionen verhindern also, dass die Datenbank in einen inkonsistenten Zustand gerät, wenn ein Problem bei der Durchführung einer der Aktionen auftritt, aus denen sich die Transaktion zusammensetzt. ACID-Prinzip: "ACID"-Eigenschaften: • Atomic Eine Transaktion wird entweder ganz oder gar nicht ausgeführt. Transaktionen sind also „unteilbar“. Wenn eine atomare Transaktion abgebrochen wird, ist das System unverändert. (Unteilbarkeit: Alles-oder-nichts-Prinzip) • Consistent Konsistenz: Wenn das System vor der Transaktion in einem gültigen Zustand war, dann ist es dies auch nachher • Isolated Bei gleichzeitiger Ausführung mehrerer Transaktionen dürfen sich diese nicht gegenseitig beeinflussen. • Durable Die Auswirkungen einer Transaktion müssen im Datenbestand dauerhaft bestehen bleiben. Die Effekte von Transaktionen dürfen also nicht „mit der Zeit verblassen“ oder „aus Versehen verloren gehen“. Eine Verschachtelung von Transaktionen ist wegen dieser Eigenschaft strenggenommen nicht möglich, da ein Rollback einer äußeren Transaktion die Dauerhaftigkeit einer inneren, bereits ausgeführten Transaktion verletzen würde. Aufgabe 2) 2.1 Entity Relationship-Modell (ERM): (=Gegenstands-Beziehungsmodell) - dient dazu, im Rahmen der semantischen Datenmodellierung einen Ausschnitt der realen Welt zu beschreiben es besteht aus einer Grafik und einer Beschreibung der darin verwendeten Elemente kommt im Wesentlichen auf das Was und nicht auf das Wie an HT TH Grundlage der Entity-Relationship-Modelle ist die Typisierung von Objekten und deren Beziehungen untereinander: - Entität (Entity): Objekt der Wirklichkeit, materiell oder abstrakt - Entitätstyp: Typisierung gleichartiger Entitäten - Beziehung (Relationship): Verknüpfung zwischen zwei oder mehreren Entitäten - Beziehungstyp: Typisierung gleichartiger Beziehungen - Grad oder Komplexität eines Beziehungstyps: Anzahl der Entitätstypen, die an einem Beziehungstyp beteiligt sind. Die Regel ist der Grad 2 - Kardinalität: mögliche Anzahl der an einer Beziehung beteiligten Entitäten (zum Beispiel kann ein Angestellter mehrere Projekte leiten, während ein Projekt von genau einem Angestellten geleitet wird). - Attribut: Eigenschaft eines Entitätstyps HT HTU UTH U TH U U U U U U U U HTU U UTH U Das Modell selbst besteht aber immer ausschließlich aus Entitätstypen und Beziehungstypen. 2.2 Die Abbildung besteht aus vier Entitäten, nämlich Student, Studiengang und Lehrveranstaltung. Es gibt jeweils eine Beziehung zwischen Student und Studiengang mit der Kardinalität N:1 bzw. Studiengang und Lehrveranstaltung mit Kardinalität M:N. Diese zwei Beziehungen sind von einem unterschiedlichen Typ. Weiters wird die Entität Student durch die Attribute Name, Vorname und Legi-Nr. beschrieben. Bezeichnung und Departement sind ebenfalls zwei Attribute und beschreiben den Studiengang. Die Entität Lehrveranstaltung lässt sich durch die Attribute LV_Name und LV_Nummer näher identifizieren. 2.3 Aufgabe 3) Tabelle: Autor ID-Nr._A U Name U Tabelle: Zeitschrift Nr.-Zeitschrift U U Titel Vorname Seiten Initialien Ausgabe-Nummer Jahr Tabelle: Buch ISBN-Nr. U Titel U Tabelle: Artikel Artikel-Nr U U Jahr Titel Tabelle: Verlag Verlag-Nr U Tabelle: Schreiben ISBN-Nr. Seiten Verlag-Name U ID-Nr._A Artikel-Nr Aufgabe 4) 4.1 1. 1. Normalform: 2. Die Feldinhalte müssen einfach (atomar) sein. Die Attribute der Relation müssen atomar sein (ist eine schon vorausgesetze Eigenschaft von Relationen). Strukturierte Attribute (wie Adresse) müssen aufgeteilt werden in ihre Teilattribute (z.B. in PLZ, Ort, Straße und Hausnummer). Relationen in erster Normalform werden auch oft als flache Relationen bezeichnet. Aufgrund von funktionalen Abhängigkeiten (PLZ bestimmt Ort) ergeben sich in 1NF-Relationen Redundanzen. 3. 2. Normalform: 4. Jedes Feld muß funktional vom Schlüsselfeld abhängig sein. Die zweite Normalform vermeidet partielle funktionale Abhängigkeiten (diese bewirken Redundanzen). Eine partielle funktionale Abhängigkeit besteht, wenn Attribute (die nicht Schlüsselkandidaten sind) funktional schon von einem Teil des Schlüssels abhängen (siehe Abbildung). Die zweite Normalform kann durch Elimination der abhängigen Attribute und Auslagerung in eine eigene Relation erreicht werden. 3. Normalform Es dürfen keine funktionalen Abhängigkeiten zwischen Nicht-SchlüsselFeldern existieren. Die Tabelle darf somit keine transitiven Abhängigkeiten aufweisen. Die dritte Normalform löst transitive Abhängigkeiten auf. Geht man von einem Schlüssel aus, der eine Attributmenge bestimmt, die wiederum ein abhängiges Attribut bestimmt, so liegt eine transitive Abhängigkeit vor (siehe Abbildung). Zur Beseitigung kann man das transitiv abhängige Attribut in eine neue Relation kopieren (gemeinsam mit der bestimmenden Attributmenge) und aus der ursprünglichen Relation entfernen. 4.2 Da die Feldelemente atomar sind und funktional vom Schlüssel abhängen und keine transitiven Abhängigkeiten bestehen, befinden sich die Tabellen bereits in 3.Normalform. Tabelle: Autor ID-Nr._A U Name U Tabelle: Zeitschrift Nr.-Zeitschrift U Tabelle: Buch ISBN-Nr. U U Tabelle: Artikel Artikel-Nr U U U Vorname Titel Seiten Titel Jahr Tabelle: Schreiben ISBN-Nr. Ausgabe-Nummer Seiten Titel Tabelle: Verlag Verlag-Nr U Initialien ID-Nr._A Verlag-Nr Nr.-Zeitschrift Verlag-Name U Jahr Artikel-Nr Aufgabe 5) 5.1 Wird der gleiche Befehl zweimal eingegeben entsteht ein Duplikat, was eine Fehlermeldung hervorruft, da der Primärschlüssel eindeutig sein muss. 5.2