0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den...

63
Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 1 0. Datenintegrität Constraints: Übung / Praktikum constraints 1) Implementieren Sie folgende Constraints auf der Muster-DB: Legen Sie dazu die DB neu an (nur create table). Nach Implementierung der Constraints spielen Sie bitte die Daten wieder ein. Sie werden einige Constraint-Verletzungen bemerken. Relation: Artikel Artikel_Nr prim key Lieferanten_Nr foreign key (Lieferant) Warengruppe Wert: 1-99, not null Mengeneinheit Wert: "g","kg","t","Stck" Verkaufspreis not null, Wert > 0 und > einkaufspreis Einkaufspreis Wert >=0 und < verkaufspreis Lieferzeit Wert > 0 und < 100 Bestand_Minimum Wert >= 0

Transcript of 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den...

Page 1: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 1

0. Datenintegrität Constraints: Übung / Praktikum constraints

1) Implementieren Sie folgende Constraints auf der Muster-DB:

Legen Sie dazu die DB neu an (nur create table). NachImplementierung der Constraints spielen Sie bitte die Datenwieder ein. Sie werden einige Constraint-Verletzungen bemerken.

Relation: ArtikelArtikel_Nr prim key

Lieferanten_Nr foreign key (Lieferant)

Warengruppe Wert: 1-99, not null

Mengeneinheit Wert: "g","kg","t","Stck"

Verkaufspreis not null, Wert > 0 und > einkaufspreis

Einkaufspreis Wert >=0 und < verkaufspreis

Lieferzeit Wert > 0 und < 100

Bestand_Minimum Wert >= 0

Page 2: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 2

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

Relation: ArtikelLager

Artikel_Nr prim key, foreign key (Artikel)

Lager_Nr prim key, Wert >0

Bestand_Lager

Relation : Kunden

Kunde_Nr prim key

Name not null

Plz_Strasse not null

Land not null , Wert : "D", "A", "I", "CH", "GB"

Ort not null

Kundengruppe >=0, <= 100

Gesperrt_Kz Wert: 0,1

Kreditlimit NOT NULL, >=0

Page 3: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 3

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

Relation: AuftraegeAuftrag_Nr prim key

Auftrag_Datum not null

Kunde_Nr foreign key (Kunden) , not null

Vertreter_Nr not null

Rabatt_Prozent Wert >=0 und < 50

Relation: AuftragspositionenAuftrag_Nr prim key, foreign key (Auftrag)

Position_Nr prim key, > 0

Position_aktiv not null, Wert 0,1

Artikel_Nr not null, foreign key (Artikel)

Menge not null

Preis not null, Wert >= 0

Berechnet Wert <= geliefert

eindeutig: (auftrag_nr, Artikel_nr)

Page 4: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 4

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

Relation: RechnungenRechnung_Nr prim key

Rechnung_Datum not null

Kunde_Nr not null, foreign key (Kunde)

Auftrag_Nr not null, foreign key (Auftraege)

Datum_Faellig Wert NULL oder >= Rechnung_Datum

Datum_Mahnung_1 Wert NULL oder >= Datum_Faellig / Rechnung_Datum

Datum_Mahnung_2 NULL oder > Datum_Mahnung_1 (Wert nur wenn Datum_Mahnung_1 IS NOTNULL)

Zahldatum NULL oder > Rechnung_Datum

Bezahlt Wert 0,1

Relation: LieferantLieferanten_nr primary key

Name not null

Page 5: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 5

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

Relation: BestellungenBestell_Nr prim key

Lieferanten_Nr not null, foreign key (Lieferanten)

Lieferant_Name not null

Bestelldatum not null

Artikel_Nr not null, foreign key

Menge Wert > 0

Page 6: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 6

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

Student Matrikelnr Name Fachbereich Fachsemester Geb_Dat Geschlecht

Schlüssel: Matrikelnr, Geschlecht: w / m, Fachbereich: 1-9

Dozent Name Fachbereich Lehrgebiet

Schlüssel: Name Vorlesung Vorl_Nr Bezeichnung Hoersaal Plätze Beginn_h Ende_h Dozent

Schlüssel: Vorl_Nr, Plätze: 20-500, Fremdschlüssel: Dozent auf Tabelle Dozent, Feld Name

2) Implementieren Sie folgende Constraints auf der Hochschul-DB.

Page 7: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 7

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

hoert Student Vorlesung

Schlüssel: Student und Vorlesung, Fremdschlüssel: Student auf Tabelle Student, Feld Matrikelnr, Vorlesung auf Tabelle Vorlesung Feld Vorl_Nr Klausurergebnis Student Fach Klausur_Datum Ergebnis

Schlüssel: Student und Fach und Klausur_Datum, Fremdschlüssel: Student auf Tabelle Student, Fach Matrikel_Nr

Page 8: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 8

3) Es sei folgende Integritätsregel gegeben: „Für einen gesperrtenKunden darf kein Auftrag erfasst werden“. Setzen Sie diese Regeldurch einen prüfenden View um.

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

Page 9: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - WS 2015/2016 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 9

4) Seien die folgenden Daten einer Vereinsanwendung gegeben. Implementieren Sie die genannten Integritäten (alter table add constraint ...) (kein create table schreiben, alter table nur 1 x pro Relation ausschreiben)

[..] 0. Datenintegrität Constraints: Übung / Praktikum constraints

MitgliedNummer number primärschlüsselName char(20) nicht leer

Geburtsdatum dateØ 01.01.1940

<= 31.12.1994Eintrittsdatum

KrankenVSNR

date

number

Ø Geburtsdatum

eindeutigMonatsbeitrag number Zwischen 50 und 100 €

BeitragszahlungMitgliedsnummer number Fremdschlüssel MitgliedRelative Zahlnummer number Nicht leerZahldatum date Nicht leerBLZ numberKontonummer number

Primärschlüssel: (Mitgliedsnummer + Relative Zahlnummer)Eindeutig: (BLZ + Kontonummer)Mitgliedsnummer ändern, wenn in „Mitglied“ geändert wird.Mitgliedsnummer auf NULL setzen, wenn Mitglied gelöscht wird.

Page 10: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 10

Teil 1. Trigger PL/SQL: Übungen

Beispieltrigger Nachverarbeitung:

Bei der Eingabe von Tupeln in die Tabelle „Bestellung“ werden die in Fettschrift gekennzeichneten Daten in den Tabellen „Artikel“ und „Lieferant“ aktualisiert.

create table bestellungen(

bestell_nr int,lieferanten_nr int,lieferanten_name varchar(30),bestelldatum date,artikel_nr varchar(27),menge numeric(9,0)

);

Aufgabe: Bestellung

Page 11: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 11

Teil 1. Trigger PL/SQL: Übungen

ArtikelArtikel_nr char(27) (Prim Key)Bestand numeric(10,0)EK-Preis numeric(10,2)Bestellmenge numeric(10,0) (letzte bestellte Menge)Bestelldatum date (letztes Bestelldatum)Letzt_Lieferant_nr int (Nummer des letzten Lieferanten)Letzt_Lieferant_Name char(30) (Name des letzten Lieferanten, redundant)

LieferantLieferanten_nr int (Prim Key)Name char(30)Bestellwert_Gesamt numeric(10,2) Gesamtwert (Menge*EK-Preis) aller Bestellungen bei diesem Lieferanten

alter table artikel add bestellmenge numeric(10,0);alter table artikel add bestelldatum date;alter table artikel add Letzt_Lieferant_nr int;alter table artikel add Letzt_Lieferant_Name char(30);alter table lieferanten add Bestellwert_Gesamt numeric(10,2);

Aufgabe: Bestellung

Page 12: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 12

Teil 1. Trigger PL/SQL: Übungen

Die Relation „Student“ habe folgende Struktur:

create table student(matrikel_nr char(12),name char(25),fachbereich number,fachsemester number,geb_dat date,geschlecht char(1),

familienstand char(1));

Implementieren Sie mit den geeigneten Mitteln folgende Integritätsregeln:matrikel_nr : primärschlüsselfachbereich : Wertebereich {1,2,3,4,5,9}geschlecht : Wertebereich {‚w‘ , ‚m‘}familienstand : Wertebereich {‚l‘ , ‚v‘ , ‚g‘ , ‚w‘ }

Der Familienstand darf sich nur wie folgt ändern:l (ledig) -> v (verheiratet)v -> g (geschieden) / w (verwitwet)w,g -> v

Aufgabe: Familienstand

Page 13: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 13

Teil 1. Trigger PL/SQL: Übungen

Integritätsregel:

„Zu einem Artikel darf es nicht mehr als 5 Lagerplätze geben!“

Realisieren Sie diese Regel in Oracle bzw. MS-SQL-Server.

Aufgabe: Anzahl Lagerplätze

Page 14: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 14

Teil 1. Trigger PL/SQL: Übungen

create table Spieler( Nummer int primary key ,

Spielt_fuer_Ligamannschaft char(40) ,Gehalt number(10,2))

create table Spieler_Position( Person int references spieler(person),

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

Integritätsregel:

„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).“

Realisieren Sie diese Regel in Oracle .

Aufgabe: Bundesliga

Page 15: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 15

Teil 1. Trigger PL/SQL: Übungen

Schreiben Sie eine gespeicherte Prozedur mit folgender Funktionalität: Durchlaufen Sie die Tabelle Artikel (cursor) . Für jeden aktiven Artikel, bei dem der Lagerbestand kleiner ist als der Mindestbestand, wird ein Eintrag (insert) in die Tabelle Bestellung vorgenommen. Der Artikel wird beim Hauptlieferanten in der im Feld „Bestellmenge“ angegebenen Menge bestellt. Bestelldatum ist das Tagesdatum, Lieferdatum 14 Tage später. Die Prozedur soll den Bestellwert (Summe EK-Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter zurückgeben.Die Tabellenstrukturen seien wie folgt definiert:ArtikelArtikel_nr char(20) (Prim Key)Aktiv bitBestand intMindestbestand intBestellmenge int (zu bestellende Menge)Hauptlieferant int (foreign key auf Lieferant)EKPreis numberLieferantLieferant_nr int (Prim Key)Name char(30)BestellungBestellnr int (primary key höchste bestehende Nummer um 1 erhöhen) )Lieferant int (Nummer des Lieferanten (foreign key))Name char(20) (Name des Lieferanten, redundante Speicherung)Bestelldatum dateLieferdatum dateArtikel_nr char(20) (foreign key auf Artikel)Menge int Anzahl der bestellten Artikel

Aufgabe: Cursor / Stored Proc Bestellung

Page 16: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 16

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

Page 17: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 17

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

Page 18: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 18

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

Page 19: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 19

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

Page 20: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 20

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

Page 21: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 21

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

is-a : partiell, disjunkt

Page 22: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 22

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

§ Ein Assistent arbeitet für einen oder mehrere Professor(en)

§ Für einen Professor arbeiten beliebig viele Assistenten

(0,n)(1,n)

is-a : partiell, disjunkt

Page 23: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 23

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

(0,n)(1,n)

§ Ein Professor hält „beliebig viele“ Vorlesungen

§ Vorlesungen werden von genau einem Professor gehalten (0,n)

(1,1)

is-a : partiell, disjunkt

Page 24: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 24

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

(0,n)(1,n)(0,n)

(1,1)

§ Ein Student hört „beliebig viele“ Vorlesungen

§ In Vorlesungen sitzen „beliebig viele“ Studenten

(0,n)(0,n)

is-a : partiell, disjunkt

Page 25: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 25

Teil 2. Datenbankentwurf : Übungen

Beispiel-Modellierung Hochschule (nach Sander)

(0,n)(1,n)

(0,n)

(1,1)(0,n)(0,n)

§ Professoren prüfen Studenten über Vorlesungen

§ Je Prüfung wird eine Note als Eigenschaft zugewiesen

§ Ein Student wird in beliebig vielen Vorlesungen geprüft

§ Zu jedem Paar aus Studenten und Vorlesungen gibt es genau einen Professor, der prüft

(0,n) (0,n)

(1,1)

is-a : partiell, disjunkt

Page 26: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 26

Teil 2. Datenbankentwurf : Übungen

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.

Page 27: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 27

Teil 2. Datenbankentwurf : Übungen

Aufgabe: Stadtverwaltung

Setzen 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.

Page 28: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 28

Teil 2. Datenbankentwurf : Übungen

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.

Page 29: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 29

Teil 2. Datenbankentwurf : Übungen

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

Page 30: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 30

Teil 2. Datenbankentwurf : Übungen

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.

Page 31: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 31

Teil 2. Datenbankentwurf : Übungen

Aufgabe: Transformation in Relationen

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

Page 32: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 32

Teil 2. Datenbankentwurf : Übungen

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

Page 33: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 33

Teil 2. Datenbankentwurf : Übungen

Aufgabe: Transformation Semantikloses ER-Diagramm 1

E1

R3A1

A2

A3

E2A5

A4

A9

R1

E3

R2A6

A8

A7

mn

1

nn

1

Page 34: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 34

Teil 2. Datenbankentwurf : Übungen

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.

Page 35: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 35

Teil 2. Datenbankentwurf : Übungen

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 36: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 36

Teil 2. Datenbankentwurf : Übungen

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

Page 37: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 37

Teil 2. Datenbankentwurf : Übungen

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 38: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 38

Teil 2. Datenbankentwurf : Übungen

Aufgabe Normalisierung FH

Folgende relationale Strukturen seien entwickelt: (Schlüsselattribute jeweils unterstrichen, Fremdschlüssel kursiv):

Student: MatrikelNr Name Strasse PLZ Ort Bundesland Nationalität FachbereichDozent: Name Fachbereich Vorlesung: VorlesungsNr Vorlesbezeichnung Fachbereichszuordnung DozentName Klausur: Matrikel_Nr Name Fachbereich Vorlesung Dozentname Datum Ergebnis

Folgende Regeln gelten im Anwendungsbereich:

1) Eine Vorlesung wird von genau einem Dozenten gehalten2) Dieser Dozent lässt auch die Klausur schreiben3) Der Fachbereich des Dozenten stimmt mit der Fachbereichszuordnung einer Vorlesung

überein4) Klausuren werden nur semesterweise gespeichert, pro Semester pro Vorlesung eine

Klausur

Welche Normalformen werden verletzt (Begründung) ?Überführen Sie die Relationen in die dritte Normalform.

Page 39: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 39

Teil 2. Datenbankentwurf : Übungen / Lösungen

Aufgabe Normalisierung Musik

Folgende relationale Strukturen seien entwickelt: (Schlüsselattribute jeweils unterstrichen, Fremdschlüssel kursiv):

Dirigent (PersonID Name Alter Nationalität Titel ) Opernhaus (Name Stadt Orchester_Bezeichnung )Orchester ( OrchesterBezeichnung Mitgliederzahl Gründungsjahr Dirigent_Titel

DirigentID )Oper ( Titel , Komponist Jahr_Erstaufführung )Aufführung ( Opernhaus Orchester OperTitel Dirigent Spielzeit Anzahlaufführungen)

Regeln:1) Es werden immer nur die Aufführungen einer Spielzeit pro Opernhaus gespeichert.2) Innerhalb einer Spielzeit wechselt der Dirigent eines Orchesters nicht.3) Innerhalb einer Spielzeit wechselt das Orchester eines Opernhauses nicht

Welche Normalformen werden verletzt (Begründung) ?Überführen Sie die Relationen in die dritte Normalform.

Page 40: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 40

Teil 2. Datenbankentwurf : Übungen

Die Aufteilung einer Oberklasse in Unterklassen kann:

§ Partiell oder total

§ Disjunkt bzw. nicht disjunkt sein

Beschränken wir die Aufteilung auf zwei Subklassen:

Oberklasse

Unterklasse 1 Unterklasse 2

Gehen wir davon aus, dass in einer relationalen Implementierung die Attribute der Oberklasse in den Relationen zu den Unterklassen wiederholt werden. Diskutieren Sie die Integritätsprüfungen, welche Sie bei allen DML-Operationen auf Oberklassen-Relation oder Unterklassenrelation zu beachten sind. Machen Sie Vorschläge zur Implementierung der Einfügeoperationen. Bereiten Sie die Realisierung der Integritäten schablonenhaft vor.

Implementierung von is-a Beziehungen im klassischen Relationenmodell

Page 41: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 41

Teil 3 Physikalische Organisation : Übungen

Hash-Organisation

Tragen Sie folgende Datensätze mit den entsprechenden Schlüsselwerten in eine Hash-Organisation ein, die folgende Eigenschaften hat:

7 Container, ein Container beinhaltet 2 Datensätze. Überlaufbereich ebenfalls 2 Datensätze pro Container

5 – 15 – 25 – 35 – 7 – 12 – 19 – 22 – 84 – 10 – 21 – 22 – 23 – 30

Page 42: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 42

Teil 3 Physikalische Organisation : Übungen

Aufbau ISAM-Datei

Eine ISAM-Datei wird i.A. auf Basis einer vorhandenen Datenmenge sortiert aufgebaut und der Index angelegt. Danach wird die Organisation unter Verwendung von Überlaufbehältern erweitert.

Sei eine ISAM-Organisation gegeben, in einen Datenblock passen 3 Datensätze, in einen Indexblock 2 Indexeinträge. Zu jedem Datenblock gibt es einen Zeiger auf genau einen Überlaufblock. Diese sind ggfs. untereinander verzeigert. Überlaufbehälter nehmen 2 Datensätze auf.

Verteilen Sie folgenden Datensätze (sortiert!) auf die Datenblöcke und legen Sie den Index an. Lassen Sie je Datenblock einen Datensatz als Reserve frei:

5 – 25 – 7 – 42 – 36 – 9 – 18 – 21 – 55 – 41 – 38 – 59 – 67

Wie sieht die Datendatei und die Indexdatei nach Eingabe dieser Daten aus ?

Page 43: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 43

Teil 3 Physikalische Organisation : Übungen

[..] Aufbau ISAM-Datei

5 7 9 18 21 25 36 38 41 42 55 59 67

Fügen Sie nun folgende Werte ein und nehmen Sie die notwendigen Änderungen in Datendatei, Indexdatei und Überlaufbereich vor:

8 – 34 – 74 – 43 – 58 – 60 – 1 – 2 – 3 – 22 – 78 – 6 - 85

Page 44: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 44

Teil 3 Physikalische Organisation : Übungen

Zugriffsbeschleunigung bei ISAM (1)

Sei eine geblockte Dateistruktur gegeben. Blockgröße sei 8000 Bytes, Recordlänge 500 Bytes. Die Datei habe 800000 Records. Es sei ein sortierter, dünner Index angelegt, Schlüssellänge sei 15 Bytes, Verweislänge auf einen Record: 5 Bytes.

Page 45: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 45

Teil 3 Physikalische Organisation : Übungen

Zugriffsbeschleunigung bei ISAM (2)

Sei eine geblockte Dateistruktur gegeben. Blockgröße sei 8000 Bytes, Recordlänge 500 Bytes. Die Datei habe 800000 Records. Es sei ein sortierter, dünner Index angelegt, Schlüssellänge sei 15 Bytes, Verweislänge auf einen Record: 5 Bytes.

In wie vielen Block-Zugriffen wird im Mittel der Datensatz zu einem Schlüssel gefunden, wenn die Suche im Index erfolgt.

Page 46: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 46

Teil 3. Physikalische Organisation : Übungen

Wie sieht ein B-Baum der Ordnung 1 nach der Eingabe folgender Schlüsselwerte aus:

30– 29 – 27 – 18 – 15 – 20 – 9 – 10 –11 –12 –13

Aufgabe B-Baum (1):

Page 47: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 47

Teil 3. Physikalische Organisation : Übungen

Wie sieht ein B-Baum der Ordnung 1 nach der Eingabe folgender Schlüsselwerte aus:

1 – 2 – 3 – 4 – 5 – 20 – 19 – 18 – 17 – 16 – 6 – 12 – 41 - 35

Aufgabe B-Baum (2):

Page 48: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 48

Teil 3. Physikalische Organisation : Übungen

Erzeugen Sie den B-Baum erster Ordnung, der sich durch die Eingabe folgender Daten ergibt

10 – 15 – 12 – 5 – 11 – 3 – 1 – 25 – 2 – 13 – 14 – 17 – 19

Aufgabe B-Baum (3):

Page 49: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 49

Teil 3 Physikalische Organisation : Übungen

Wie sieht ein B*-Baum der Ordnung 1 mit 2 Datensätzen pro Blatt nach der Eingabe folgender Schlüsselwerte aus:

30– 29 – 27 – 18 – 15 – 20 – 9 – 10 –11 –12 –13

B*-Baum (1)

Page 50: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 50

Teil 3 Physikalische Organisation : Übungen

Wie sieht ein B*-Baum der Ordnung 1 mit 2 Datensätzen pro Blatt nach der Eingabe folgender Schlüsselwerte aus:

1 – 2 – 3 – 4 – 5 – 20 – 19 –18 – 17 – 16 - 6 – 12 - 41 - 35

B*-Baum (1)

Page 51: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 51

Teil 3 Physikalische Organisation : Übungen

Wie sieht ein B*-Baum der Ordnung 1 mit 2 Datensätzen pro Blatt nach der Eingabe folgender Schlüsselwerte aus:

10 - 15 - 12 - 5 - 11 - 3 – 1 - 25 – 2 – 13 – 14 – 17 - 19

B*-Baum (3)

Page 52: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 52

Teil 4: Objektrelationales Datenbankmodell : Übungen

Bank 1

In einer Bank-Anwendung benötigt man folgende 2 Objektklassen:

Kunden: Ein Kunde hat eine Kundennummer und einen Namen (varchar(20)). Zu einem Kunden werden maximal 3 Kreditauskünfte gespeichert, die aus einem Datum und dem Auskunfttext (varchar(40)) bestehen. Ein Kunde hat beliebig viele Konten (Kontonummer (integer), Kontostand(number(12,2) ).

Bankmitarbeiter: Eine Bank hat Mitarbeiter mit einer Personalnummer (integer) und einem Namen (varchar(20)). Jedem Mitarbeiter sind beliebig viele Kunden zugeordnet .

Entwickeln Sie hierzu die objekt-relationalen Typen und Tabellen

Page 53: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 53

Teil 4: Objektrelationales Datenbankmodell : Übungen

HochschuleAn einer Hochschule arbeiten Dozenten, die eine eindeutige Nummer und eine Namen haben und mehrere (array-wertig!) komplexe Kommunikationsverbindungen ( (Art, Wert) z.B. (Mail, @aaa) oder (Telefon , 0231.....)) sowie genau eine komplexe Adresse (Strasse, PLZ, Ort).An einer Hochschule studieren Studenten, die eine eindeutige Matrikelnummer und eine Namen haben und mehrere (array-wertig!) komplexe Kommunikationsverbindungen ( (Art, Wert) z.B. (Mail, @aaa) oder (Telefon , 0231.....)) sowie mehrere (array-wertig!) komplexe Adressen (Strasse, PLZ, Ort). Zusätzlich haben Studenten eine Fachbereichszuordnung (int) und ein Fachsemester (int).Vorlesungen sind komplexe Objekte mit einer eindeutigen Nummer, einer Bezeichnung, einer Semesterwochenstundenzahl. Einer Vorlesung sind beliebig Veranstaltungszeiten zugeordnet bestehend jeweils aus dem Wochentag, Beginnzeit, Dauer in Minuten und dem Hörsaal.Dozenten sind beliebig viele Vorlesungen zugeordnet, die sie halten.Studenten sind beliebig viele Vorlesungen zugeordnet, die sie hören.

Entwickeln Sie hierzu die objekt-relationalen Typen und Tabellen

Page 54: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 54

Teil 4: Objektrelationales Datenbankmodell : Übungen

Firma firmnr

hausnummer

ort

strasse

plz

Abbildung: E-R-Modell -> Objektrelationales Modell

Übertragen Sie folgendes E-R-Modell in Objektrelationale Strukturen(create type, create table)Welche Konsequenzen ergeben sich für die Überlegungen zu Totalität oder Disjunktheit von Spezialisierungen?

name branche

land

Page 55: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 55

Teil 4: Objektrelationales Datenbankmodell : Übungen

Kunden

jahresumsatz

Kunde_nr

Kundengruppe

Ansprechpartner

funktionname

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 56: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 56

Teil 4: Objektrelationales Datenbankmodell: Übungen

Lieferanten

jahresumsatz

Lieferanten_nr

abholzeit

bisvonwochentag

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 57: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 57

Teil 4: Objektrelationales Datenbankmodell : Übungen

Bestellungen ausgefuehrt

datumBestell_nr

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 58: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 58

Teil 4: Objektrelationales Datenbankmodell: Übungen

Rechnungen warenwertRechnung_nr

zahlungen

betragdatum

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 59: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 59

Teil 4: Objektrelationales Datenbankmodell: Übungen

Auftraege geliefert

preis

Auftrag_nr

Auftrag_datummenge

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 60: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 60

Teil 4: Objektrelationales Datenbankmodell: Übungen

Artikel

lieferzeit

Artikel_nr

bezeichnungbestand

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 61: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 61

Teil 4: Objektrelationales Datenbankmodell: Übungen

Artikelbewegungen

verkaufspreismenge

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 62: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 62

Teil 4: Objektrelationales Datenbankmodell: Übungen

Auftragspositionen geliefert

Position_nrmenge

Abbildung: E-R-Modell -> Objektrelationales Modell

Page 63: 0. Datenintegrität Constraints: Übung / Praktikum constraints · Die Prozedur soll den Bestellwert (Summe EK -Preis*Bestellmenge über alle bestellte Artikel) als Output-Parameter

Datenbanken 2 - SS 2015 - © Prof. Dr. Klaus-Dieter Krägeloh - Folie 63

Teil 4: Objektrelationales Datenbankmodell : Übungen

n

Verkauft in

n

(1,1)

(0,n)

(0,n)

(1,n)

(1,1)

(1,1)

(0,n)

(0,n) (1,1)

1

1

1

1

n

n 1

n

(0,n)

(1,1)

erteilt

hatArtikel Artikelbewegungen

Auftragspositionen

Verkauft in

Auftraege

umfasst

bewirkt

Rechnungen

erhält

Kunden

(1,1)

n

1

n

Lieferantenis a

Firma

habenLieferproramm

preis

lieferzeit

(0,n)

n

n

(0,n)

Bestellungen hat(0,n)

1n

(1,1)

Abbildung: E-R-Modell -> Objektrelationales Modell

Bestellt_in

(1,1)n

1(0,n)

hat

(0,n)1

(1,1)

n