Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist...

34
Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 1 Teil 1. Datenintegrität Trigger : Praktikum „Das Attribut "bestand_lager" in der Relation "artikel" ist definiert als die Summe der Lagerbestände dieses Artikels auf allen Lagerplätzen ("bestand_lager" in Relation "artikellager")“ a) Diskutieren Sie, mit welchen Integritätsmechanismen diese Regel implementiert werden kann oder nicht b) Implementieren Sie die Regel 1) Es sei folgende Integritätsregel gegeben: Teil 1.I. D

Transcript of Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist...

Page 1: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 1

Teil 1. Datenintegrität Trigger : Praktikum

„Das Attribut "bestand_lager" in der Relation "artikel" ist definiert als die Summe der Lagerbestände dieses Artikels auf allen Lagerplätzen ("bestand_lager" in Relation "artikellager")“

a) Diskutieren Sie, mit welchen Integritätsmechanismen diese Regel implementiert werden kann oder nicht

b) Implementieren Sie die Regel

1) Es sei folgende Integritätsregel gegeben:

Teil 1.I. D

Page 2: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 2

Teil 1. Datenintegrität Trigger : Praktikum

„Das Attribut "saldo_offene_rechnung" in der Relation "kunden" ist definiert als die Summe der unbezahlten Rechnungsbeträge aller Rechnungen dieses Kunden.“

a) Diskutieren Sie, mit welchen Integritätsmechanismen diese Regel implementiert werden kann oder nicht

b) Implementieren Sie die Regel

2) Es sei folgende Integritätsregel gegeben:

Page 3: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 3

Teil 1. Datenintegrität Trigger : Praktikum

„Der Termin in einer Auftragsposition muss größer oder gleich dem Auftragsdatum sein ! „

a) Diskutieren Sie, mit welchen Integritätsmechanismen diese Regel implementiert werden kann oder nicht

b) Implementieren Sie die Regel

3) Es sei folgende Integritätsregel gegeben:

Page 4: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 4

Teil 1. Datenintegrität Trigger : Praktikum

„Zu jedem Artikel darf es nur maximal 5 Lagerplätze geben“

a) Diskutieren Sie, mit welchen Integritätsmechanismen dieseRegel implementiert werden kann oder nicht

b) Implementieren Sie die Regel

4) Es sei folgende Integritätsregel gegeben:

Page 5: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 5

Teil 1. Datenintegrität Trigger : Praktikum

5) Es sei folgende Aufgabenstellung gegeben:In einem Unternehmen werden Preisänderungen vorgenommen, indem der VK_Preiseines Artikels per Update-Statement geändert wird. Sichern Sie durch Trigger-Integrität folgende Integritätsregeln ab bzw. nehmen Sie die entsprechendenNachbuchungen vor (Syntax ORACLE). Beachten Sie die unterschiedlichenZielsetzungen von before und after-Triggern.

Integrität: Bei Artikel mit der Warengruppe 1 dürfen keine Verkaufspreise geändertwerden. Bei Artikel mit einer Warengruppe > 50 darf nur 1 x jährlich ein Verkaufspreisgeändert werden (Hinweis: Gibt es für den Artikel in der Preishistorie bereits einenEintrag, dessen Gültigkeit im laufenden Jahr endete ?)

Nachverarbeitung: Der sich aufgrund der Preisänderung ergebende neue Lagerwerteines Artikels wird aktualisiert. Das Gueltig_bis-Datum des bisherigen aktuellenPreises (gueltig_bis ist NULL!) wird auf den aktuellen Tag gesetzt. Der neue Preis wirdals aktueller Preis in die Preishistorie eingetragen (Gueltig_von: aktuelles Datum,Gueltig_bis:_NULL) . Hinweis: Eine Transaktion kann man mit Fehlermeldung durchdie Funktion: raise_application_error(-1, ´Meldung´) abbrechen.

Page 6: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 6

Teil 1. Datenintegrität Trigger : Praktikum

5) ...Es sei folgende Aufgabenstellung gegeben:Die Tabellenstrukturen seien wie folgt definiert:

ArtikelArtikel_nr varchar2(20) (Prim Key)

VK_Preis float (aktueller VK-Preis)

Gueltig_seit date (Datum letzte Änderung)

Lagerbestand int

Warengruppe int

Lagerwert float Wert aller Artikel (= Lagerbestand * aktueller VK-Preis)(berechnetes Feld)

PreishistorieArtikel_nr varchar2(20) (Prim Key: Artikel_nr + Gültig_von)

Preis float

Gueltig_von date Startpunkt zu dem der Preis gültig war.

Gueltig_bis date Endezeitpunkt der Gültigkeit (bei einem aktuellen Preis:NULL)

Page 7: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 7

Teil 1. Datenintegrität Trigger : Praktikum

6) Gehen Sie davon aus, dass ein DBMS nicht über eine foreign-key-Aktionsregel „on update cascade“ verfügt. Realisieren Sie bitte miteinem Trigger, dass eine Änderung der Artikelnummer imArtikelstamm (Tabelle artikel) auf alle anderen Fremdschlüssel-Referenzen dieser Artikelnummer in der Musterdatenbankübertragen wird.

Page 8: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 8

Teil 1. Datenintegrität Trigger : Praktikum

7) Wenn ein Tupel in die Tabelle auftragpositionen eingefügt wird, sollen alle Buchungen im Datenbestand aktualisiert werden .

Sichern Sie auf Datenbankebene ab, dass bei jedem solchen Insert folgende Daten aktualisiert werden: § der „Lagerbestand“ des Artikel in Artikellager , § der „Gesamtbestand“ im Artikelstamm, § Jahresumsatz beim betreffenden Kunden§ Stueckzahl_Gekauft beim Kunden (Feld hinzufügen).

Erweitern Sie zusätzlich die Tabelle Auftragspositionen um das Feld „von_lager“. Von diesem wird der Lagerbestand abgebucht.

Die Mengen-Buchungen basieren auf dem Feld „geliefert“ (=auftragsmenge)

Page 9: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 9

Teil 1. Datenintegrität Trigger : Praktikum

8) Wandeln Sie den Trigger aus der vorigen Aufgabe bezogen auf folgende Aufgabenstellung ab:

Wenn sich der Wert des Feldes „geliefert“ in der Tabelle auftragspositionen verändert, sind Artikel in der entsprechenden Anzahl mehr oder weniger verkauft worden als vorher verkauft worden. Sichern Sie auf Datenbankebene ab, dass bei jeder solchen Änderung (nur Update!) folgende Daten aktualisiert werden: der „Lagerbestand“ des Artikel am Lagerplatz (artikellager) , der „Gesamtbestand“ im Artikelstamm, die Umsatzdaten (Wert und Stück) beim betreffenden Kunden.

Page 10: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 10

Teil 1. Datenintegrität Trigger : Praktikum

9) Für einen Mitarbeiter wird je Arbeitstag ein Arbeitsbeleg erstellt,der den Tag und seine Arbeitsstunden angibt. Der Beleg hat eine eindeutige Belegnummer. Die geleisteten Stunden werden in einer Tabelle „Mitarbeiter“ je Mitarbeiter addiert. Außerdem soll jeweils die letzte erfasste Belegnummer beim Mitarbeiter gespeichert werden. Mitarbeiter arbeiten in Abteilungen (Abteilungsnummer beim Mitarbeiter). Die angefallenen Arbeitsstunden aller Mitarbeitereiner Abteilung werden zusätzlich monatsweise ( jeder Beleg gehört zu einem Arbeitstag, jeder Tag zu einem Monat...!) in einer Tabelle „Monatsarbeitszeit_Abteilung“ zusammengefasst.

Schreiben Sie einen Trigger, der beim Einfügen von Tupeln in dieTabelle „Arbeitsbeleg“ die Tabellen „Mitarbeiter“ und„Monatsarbeitszeit_Abteilung“ entsprechend aktualisiert.

Page 11: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 11

Teil 1. Datenintegrität Trigger : Praktikum

[..] 9)Die Tabellenstrukturen seien wie folgt definiert:MitarbeiterMitarbeiter_Nr int (Prim Key)Name char(30)Abteilung intSumme_Stunden float (Summe der Arbeitsstunden des Mitarbeiters, kann NULL sein)Nummer_letzter_Beleg int (Nummer des letzten Arbeitsbeleges für den Mitarbeiter)

Monatsarbeitszeit_AbteilungMonat intAbteilung int (Monat+Abteilung = Prim Key)Summe_Stunden float (Summe der Arbeitsstunden aller Mitarbeiter der Abteilung im

Monat, kann NULL sein)

ArbeitsbelegBeleg_Nr int (Prim key )Mitarbeiter_nr int (Nummer des Mitarbeiters (foreign key), NOT NULL)Arbeitstag date (NOT NULL)Stunden float (Geleistete Arbeitsstunden des Mitarbeiters am Arbeitstag , NOT

NULL !)

Page 12: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 12

Teil 1. Datenintegrität Trigger : Praktikum

10)Gegeben Sei ein Tabelle, in der Arbeitszeiten von Mitarbeitern gespeichert werden. Sie habe folgende Struktur:

create table arbeitszeit ( mitarbeiter int not null,

beginn date not null,ende date not null,stunden number(6,2) default 0.0 not null , primary key(mitarbeiter, beginn)

);Bei einem Insert in diese Tabelle, wird im Tupel der Mitarbeiter, der Beginn der Arbeitszeitund das Ende enthalten sein. Schreiben Sie für die insert-Situation einen Trigger, derfolgendes leistet:

Integritätsprüfungen: a) Das neu eingegebene Arbeitszeitintervall (Beginn, Ende) darf sich mit keinem

bestehenden Intervall für den Mitarbeiter überschneiden

Page 13: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 13

Teil 1. Datenintegrität Trigger : Praktikum

[..] 10)Hinweis:Nehmen Sie an, es sei folgendes Intervall bereits gespeichert:

ß-----------------------à08:00 16:00

Ein neues Intervall steht zu diesem Intervall u.a. in folgenden 2 (von insgesamt 4! ) Möglichkeiten in Konflikt:

alt ß-----------------------à08:00 16:00

neu ß---------à06:00 09:00

oder neu ß---------à10:00 14:00

b) Das neue Intervall darf nicht über eine Tagesgrenze gehen (Hinweis: Tag, Monat und Jahr, die Beginn-Zeit und die Ende-Zeit müssen gleich sein)

b) Ende muß größer oder gleich Beginn sein, ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn gesetzt werden.

Wird eine der Bedingungen verletzt, ist der Trigger mit Fehler abzubrechen.

Page 14: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 14

Teil 1. Datenintegrität Trigger : Praktikum

[..] 10)Nachberechnung:

Anschließend ist die Arbeitszeit (Differenz zwischen Ende und Beginn) in Form von Std. Min. zu errechnen und im Feld Stunden zu speichern.

Die Minuten sollen in Industriezeit, d.h. dezimal ausgewiesen werden, also 1 Std. 20 Min sind 1.33 Std.

Hinweis: § Beginn und Ende liegen am selben Tag. § Ende und Beginn als Minuten des Tages berechnen (Stunde*60!)

und voneinander abziehen. § Aus der Differenz Stunden ermitteln, Restminuten dezimal

umwandeln

Page 15: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 15

Teil 1. Datenintegrität Trigger: Praktikum

11) Es seien gegeben folgende Tabellen:create table spieler (nummer int primary key, name varchar(20), spielt_fuer

char(40), gehalt number(10,2));create table spieler_position (person int references spieler(nummer), position

varchar(40), primary key (person, position));

a) Die Daten in der Tabelle ‚Spieler‘ darf nur der Nutzer ‚Meister’ während seiner Arbeitszeit (9:00-16:00) bearbeiten.

b) Einem Spieler, der für die Ligamannschaft ‚Bayern’ spielt, darf nicht zugleich in der Position „Abwehr“ und „Angriff“ eingesetzt werden (Trigger auf Tabelle Spieler_Position).

SpielerNr Name Spielt_fuer Gehalt1 Bordon Schalke 2,42 Kehl BVB 2,13 Ribery Bayern 4

Spieler_PositionPerson Position

1 Mittelfeld2 Mittelfeld2 Angriff3 Mittelfeld

Page 16: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 16

Teil 2. Datenbankentwurf : Praktikum

Aufgabe: Komponisten

Setzen Sie folgenden Sachverhalt in ein E-R-Diagramm um (inklusive Angabe der Attribute, Schlüssel, Type, Komplexitäten): In einer zu modellierenden Umwelt gibt es Personen, die die Rollen von Komponisten, Sängern, Orchesterdirigenten und Promotern spielen. Personen haben eine eindeutige ID. Komponisten schreiben Musikstücke. Ein Stück ist immer genau einem Komponisten zuzuordnen. Das Musikstück wurde in einem bestimmten Jahr von seinem Komponisten geschrieben. Es hat einen eindeutigen Titel sowie eine mehrwertige Beschreibung. Musikstücke lassen sich u.a. in die Kategorien Klassik und Moderne aufteilen.Klassische Musik wird für ein bestimmtes Instrument geschrieben. Moderne unterteilt man in Vocal und Instrumental. Moderne Musikstücke wurden u.U. mehrfach von unterschiedlichen Sängern (Vocal) bzw. Dirigenten (Instrumental) auf Tonträger aufgenommen. Die Aufnahme hat eine eindeutige ID, ein Aufnahmedatum und einen Produktionsort. Sänger haben immer genau einen Promoter, der aber mehrere Sänger betreuen kann.

Teil 2. Datenbankentwurf : Praktikum

Page 17: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 17

Aufgabe: StadtverwaltungSetzen Sie folgende Beschreibung in ein E-R-Diagramm incl. Komplexitäten um:

In einer Stadtverwaltung arbeiten Personen (eindeutige Personalnummer, Name, Einstufung. Sie lassen sich in Arbeiter und Beamte klassifizieren. Arbeiter erhalten ein Gehalt in einer bestimmten Höhe, Beamte eine Vergütung. Sie haben zusätzlich eine Diensteinstufung, die mehrere Werte annehmen kann . Beamte können ernannt oder gewählt sein (politische Beamte). Jede Person ist genau einem Dezernat zugeordnet. Dezernate haben eine eindeutige Bezeichnung, jedem Dezernat sind mehrere Aufgabengebiete zugeordnet, In einem Dezernat können viele Personen arbeiten. Jedes Dezernat muss von genau einem politischen Beamten (Dezernent) geleitet werden, ein Dezernent kann nur ein Dezernat leiten.

Teil 2. Datenbankentwurf : Praktikum

Page 18: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 18

Aufgabe: Bundestag

Setzen Sie folgende Beschreibung in ein E-R-Diagramm incl. Komplexitäten um:

Im Bundestag sitzen Abgeordnete aus Wahlkreisen. Sie haben einen Namen, Geburtsdatum und sind durch die Wahlkreisnummer eindeutig identifiziert. Ferner müssen sie genau einer Partei angehören. Parteien haben einen eindeutigen Schlüssel (Bezeichnung) und eine Mitgliederzahl. Wahlkreise haben eine eindeutige Nummer und eine Bezeichnung. Jeder Wahlkreis entsendet genau einen Abgeordneten. Wahlkreise liegen in Städten, zu einer Stadt können mehrere Wahlkreise gehören. Städte haben eine eindeutige Bezeichnung und eine Einwohnerzahl. Abgeordnete stimmen ( u.U. mehrfach) über Gesetzesvorlagen ab. Gesetzesvorlagen haben eine eindeutige Identnummer und einen Inhalt. Das Abstimmungsergebnis ist je Abgeordnetem mit dem Datum und dem Abstimmungsverhalten (ja, nein, Enthaltung) zu speichern.

Teil 2. Datenbankentwurf : Praktikum

Page 19: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 19

Aufgabe: Verkaufsartikel

Setzen Sie folgende Beschreibung in ein E-R-Diagramm incl. Komplexitäten um:Eine Firma verkauft Artikel. Sie sind durch eine eindeutige Artikelnummer gekennzeichnet. Ferner haben sie eine Bezeichnung und einen Preis. Einige Artikel sind rabattfähig. Diese haben als weitere Attribute einen „maximalen Rabatt“. Weiterhin gibt es Artikelrabatte. Sie haben Gültigkeitsbereiche „gilt_von“ und „gilt_bis“ , „gilt_von“ kennzeichnet einen Rabatt eindeutig, außerdem haben sie den Rabattwert als Attribut. Rabattfähige Artikel müssen mindestens einen, sie können viele Artikelrabatte haben. Jeder Artikelrabatt muss genau einem Artikel zugeordnet sein. Die Firma hat Kunden (Kundennummer eindeutig und der Name). Kunden können aktiv oder inaktiv sein. Inaktive Kunden haben das Datum als Attribut, an dem sie inaktiv wurden. Einge aktive Kunden erhalten für ausgewählte, rabattfähige Artikel einen Kunden_Sonderrabatt. Ein Artikel kann Sonderrabatte für verschiedene Kunden haben, ebenso kann ein Kunde Sonderrabatte für mehrere Artikel erhalten

Teil 2. Datenbankentwurf : Praktikum

Page 20: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 20

Aufgabe: Fahrzeugpark

Setzen Sie folgende Beschreibung in ein E-R-Diagramm incl. Komplexitäten um:In einem Unternehmen gibt es Fahrzeuge. Sie sind durch ihr Kennzeichen eindeutig identifizierbar. Ferner haben sie eine Leistungsstärke, einen Fahrzeugtyp und eine Erstzulassung. Weiterhin speichert man die für das Fahrtzeug erforderliche Führerscheinklasse. In dem Unternehmen sind Personen angestellt. Sie sind durch eine Personalnummer eindeutig gekennzeichnet. Sie verfügen über eine Adresse (Strasse, PLZ, Ort) und ein Eintrittsdatum. Einige Angestellte sind Fahrer, sie haben eine oder mehrere Führerscheine verschiedener Klassen. Je Fahrer werden die von ihm gefahrenen Stunden gespeichert. Jedem Fahrzeug ist genau ein Fahrer zugeordnet, einem Fahrer können mehrere, es muss kein Fahrzeug zugeordnet sein. Andere Angestellte sind Monteure. Sie haben eine bestimmte Qualifikation. Monteure können keine Fahrer sein. Fahrzeuge werden von Monteuren einer Inspektion (Wartung) unterworfen. Ein Fahrzeug kann beliebig oft gewartet werden. Diese Inspektion findet an einem bestimmten Tag statt und hat ein Inspektionsergebnis.Wenn ein Fahrer ein Fahrzeug benutzt, werden die Daten dieser Fahrt (Datum, Zielort, sowie Ort und Uhrzeit von evtl. mehreren Zwischenstopps) gespeichert.

Teil 2. Datenbankentwurf : Praktikum

Page 21: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 21

Aufgabe: Transformation in Relationen

Überführen Sie die ER-Diagramme aus den bisherigen Aufgaben nach den vorgegebenen Regeln in relationale Strukturen.

Teil 2. Datenbankentwurf : Praktikum

Page 22: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 22

Aufgabe: Transformation Semantikloses ER-Diagramm 1

Überführen Sie folgendes Diagramm in eine relationale Struktur. Berücksichtigen Sie die Tatsache, dass nur sehr wenige Elemente von E1und E3 zueinander in der Beziehung R1 stehen

Teil 2. Datenbankentwurf : Praktikum

Page 23: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 23

Aufgabe: Transformation Semantikloses ER-Diagramm 1

E1

R3A1

A2

A3

E2A5

A4

A9

R1

E3

R2A6

A8

A7

mn

1

nn

1

Page 24: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 24

Aufgabe: Transformation Semantikloses ER-Diagramm 2

Überführen Sie dieses „Semantik“-lose E-R-Diagramm in eine relationale Struktur unter Kennzeichnung von Schlüsseln und Fremdschlüsseln. Gehen Sie davon aus, dass die Relationship R2 für beide Rollen obligatorisch ist. R3 sei für die Rolle E3 obligatorisch, für E2 optional.

Teil 2. Datenbankentwurf : Praktikum

Page 25: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 25

Aufgabe: Transformation Semantikloses ER-Diagramm 2

E1

A1

R1

A2 A3

E2

A5 B1 B2 B3

R3R2

E3

C1C2

C3

1

1

1

n

m n

B4

Page 26: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 26

Aufgabe: Transformation Semantikloses ER-Diagramm 3

Überführen Sie folgendes ER-Diagramm (ohne Semantik) gemäß den in der Vorlesung genannten Regeln (ohne Effizienzüberlegungen) in relationale Strukturen

Teil 2. Datenbankentwurf : Praktikum

Page 27: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 27

Aufgabe: Transformation Semantikloses ER-Diagramm 3

A1

E1

R1

A2 A3

R3 E2

E3

A4 A6

R2

A10 A11

1

n n

1

m n

Page 28: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 28

Trigger zur Generalisierung

Sei folgende Spezialisierung von Firmen in Kunden und Lieferanten gegeben. Beachten Sie, dass Kunden und Firmen eigene Schlüsselidentität haben.

Übertragen Sie das E-R-Diagramm so in Relationen, dass die Relationen zu den Unterklassen die Attribute der Oberklasse mit enthalten (nur so kommt bei einem select * from kunden die Vererbung zustande)

Gewährleisten Sie durch Constraints / Trigger folgende Eigenschaften dieser Spezialisierung bzw. generelle Eigenschaften von is-a-Relationships:

Die Spezialisierung ist total, d.h. jedes Element der Superklasse muss in wenigstens einer Subklasse enthalten sein. Prüfen Sie diese Eigenschaft nur beim Löschen eines Sub-Klassen-Elementes (es muss in der anderen Relation enthalten bleiben !)

Teil 2. Datenbankentwurf : Praktikum / Lösungen

Aufgabe: Generalisierung in Standard-Rel. Modell

Page 29: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 29

Trigger zur Generalisierung

Wenn man ein Element der Superklasse löscht, müssen alle dazugehörigen Entitäten der Unterklassen gelöscht werden

Änderungen an den Attributen der Oberklasse (vererbt!) dürfen nur dort vorgenommen werden (ich darf keine Adressdaten bei Kunden/Lieferanten ändern)

Änderungen an den vererbten Attributen der Oberklasse müssen an die Unterklassen weitergereicht werden.

Aufgabe: Generalisierung in Standard-Rel. Modell

Page 30: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 30

Firma

Lieferanten

Kunde

firmnr strasse orthausnummer plz

is a name

lieferanten_nrKunde_nr

name

land

branche

kundengruppe

vertreter_nr

gesperrt_kzdatum_kreditauskunft

saldo_offene_rechnungenkreditlimit

jahresumsatz

vorjahresumsatz

Page 31: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 31

Aufgabe: Generalisierung in Standard-Rel. Modell

Page 32: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 32

Teil 3 Physikalische Organisation : Praktikum

Tablespace

Legen Sie das in der Vorlesung genannte tablespace an

Prüfen Sie anhand des Data Dictionary, welche tablespaces Oracle standardmäßig anlegt und wohin Ihre Tabellen standardmäig verteilt werden.

Page 33: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 33

Teil 3 Physikalische Organisation : Praktikum

Clustering

Erstellen Sie sinnvolle Cluster für die Musterdatenbank (mit Begründung und implementieren Sie diese.

Page 34: Teil 1. Datenintegrität Trigger : Praktikum · „Zu jedem Artikel darf es nur maximal 5 ... ist Ende gleich Beginn soll Ende auf eine Minute später als Beginn ... Klassische Musik

Datenbanken 1 - SS 2008 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 34

Teil 4: Objektrelationales Datenbankmodell : Praktikum

Implementieren Sie die Beispiele Bank1, Bank2 und Hochschule aus der Übung in Oracle.