Datenbanken 5. Aufgabenblatt 1. Aufgabe Für einen Industriebetrieb sind folgende Entitätstypen gegeben: Teil (Artikel), Lager, Lieferant, Produkt, Arbeitnehmer und Abteilung. Es können außerdem folgende Beziehungstypen unterschieden werden: a) Abteilung / Arbeitnehmer-Beziehungstyp (Eins-zu-viele-Beziehung) b) Produkt / Arbeitnehmer-Beziehungstyp (Eins-zu-viele-Beziehung) c) Produkt / Manager-Beziehungstyp (identifiziert die Manager der Produkte und ist eine Eins-zu-vieleBeziehung) d) Produkt / Lieferant / Teil-Beziehungstyp (Viele-zu-viele-zu-viele-Dreifach-Beziehung) e) Potentieller-Lieferant / Teil-Beziehungstyp (Liste potentieller Lieferanten eines bestimmten Teils, Viele-zuviele-Beziehung) f) Inventar-Beziehungstyp (hält fest, welches Teil in welchem Lager gelagert wird und ist eine Viele-zu-vieleBeziehung) Gib das zugehörige ERM-Diagramm an! 2. Aufgabe Stelle in einem ERM-Diagramm eine „Heirat“ als Beziehungstyp zwischen Person-Entitäten dar. 3. Aufgabe Kann die folgende Dreifachbeziehung Teil / Lieferant / Produkt durch drei binäre Beziehungen, nämlich Teil / Lieferant, Lieferant / Produkt und Produkt / Teil ersetzt werden. a) Zeige mit Hilfe der Daten in der folgenden Tabelle, die die Dreifachbeziehung umfaßt, ob die Zerlegung in binäre Relationen möglich ist oder nicht. Teil-Nr. 25 25 10 10 17 17 Lieferant-Nr. 4 5 4 4 2 5 Produkt-Nr. 1 2 2 3 1 1 b) Erstelle die unter a) vorliegende Tabelle mit Hilfe von SQL-Anweisungen und führe anschließend die Zerlegung in binäre Relationen ebenfalls mit Hilfe von SQL-Anweisungen durch. c) Führe die unter b) erhaltenen Relationen wieder mit Hilfe von SQL-Anweisungen zusammen. Erfüllt die Zusammenführung die Forderung nach Verbundtreue. 4. Aufgabe In einem Unternehmen sind Sachbearbeiter und Mitarbeiter angestellt. Die Sachbearbeiter betreuen die Kunden und nehmen Aufträge entgegen. Der jeweilige Auftrag wird an eine Abteilung weitergeleitet, aus dem Auftrag wird ein Projekt. An dem Projekt arbeiten mehrere Mitarbeiter. Zur Verwaltung von Informationen und Ereignisse soll eine Datenbank erstellt werden. a) Beschreibe Entity-Typen, Attribute und Schlüsselfelder bzw. die Beziehungstypen in textueller Form (angelehnt an die Mengenbeschreibung der Mathematik, d.h. zu Begin steht der Entitätstyp und in Klammern die Attribute, wobei der oder die Primärschlüssel unterstrichen sind; bei Beziehungstyp steht zu Beginn der Name 1 Datenbanken des Beziehungstyps, dann in Klammern die Entitätstypen und Beziehungsattribute). Die folgende Darstellung beschreibt die Elemente, die in die Datenbank aufgenommen werden sollen: - Ein Angestellter hat „personalNr,name,gebdat,plz,wohnort, strasse, gehalt,beruf“ - Eine Abteilung hat „abtNr,abtname - Ein Kunde hat „knNr,name,plz,wohnort,strasse“ - Ein Auftrag umfasst „auftragsNr,auftrDat,beschreib,fertigDat“ - Ein Projekt umfasst „projNr,name,begDatum,endDatum“ Diese Entitätstypen stehen in Beziehung zueinander. Mögliche Beziehungstypen sind: is_a(angestellter,mitarbeiter,sachbearbeiter)1 arbeitet_in(abteilung,sachbearbeiter,position) betreut(kunde,auftrag) erteilt(kunde,auftrag) berabeitet_als(auftrag,projekt)2 arbeitet_an(mitarbeiter,projekt,anz,prozAnteil)3 betreut(abteilung,projekt) Nicht durch Fußnoten ausgewiesene Beziehungen sind 1:n-Beziehungen b) Erstelle ein grafisches ER-Modell für die Kunden- und Projektverwaltung 5. Aufgabe Gib die ERM-Diagramme mit (min,max)-Notation für folgende Sachverhalte an. 1. Jeder Angestellte arbeitet in genau einer Abteilung, Abteilungen haben 5 bis 15 Mitarbeiter 2. Jeder Angestellte arbeitet an keinem, einem oder mehreren Objekten, Projekte werden von einem oder mehreren Angestellten bearbeitet 6. Aufgabe Beim konzeptionellen Entwurf hat man gewisse Freiheitsgrade hinsichtlich der Modellierung der realen Welt. 1. Man kann ternäre Beziehungen in binäre Beziehungen transformieren Betrachte in dem folgenden ERM-Diagramm die Beziehung „prüfen“ und führe eine Transformation in binäre Beziehungen durch. 1 Generalisierung 1:1-Beziehung 3 m:n-Beziehung 2 2 Datenbanken Studenten Note N M prüfen Vorlesungen 1 Professoren 2. Man hat manchmal die Wahl, ein Konzept der realen Welt als Beziehung oder als Entity-Typ zu modellieren Betrachte in dem unter 1. gegebenen Entity-Diagramm die Beziehung „prüfen“ und entwickle daraus (im Gegensatz dazu) einen eigenständigen Entity-Typ „Prüfungen“. Gib dafür das ERM-Diagramm an. 3. Vergleiche die beiden Modellierungen und erläutere die Vor- und Nachteile der beiden Modellierungen 3 Datenbanken Lösungen 1. Aufgabe Abteilung Lieferant 1 N Abteilung/ Arbeitnehmer M Produkt/ Lieferant/ Teil N potentieller Lief. N N Arbeitnehmer Teil 1 M Produkt/ Manager v N Produkt/ Arbeitnehmer v N N M Teilestrukur M vv Inventar M N Produkt Lager 2. Aufgabe Person 1 1 Heirat 3. Aufgabe a) Informationen über drei Zweifachbeziehungen: Teil/Lieferant, Lieferant/Produkt, Produkt/Teil Teil-Nr. 25 25 10 17 17 Lief-Nr. 4 5 4 2 5 Lief-Nr. 4 4 4 5 5 2 Prod-Nr. 1 2 3 1 2 1 4 Datenbanken Prod-Nr. 1 1 2 2 3 Teil-Nr. 25 17 10 25 10 Informationen, die aus den drei Zweifachbeziehungen gewonnen werden können. Teil-Nr. 25 25 25 25 10 10 17 17 Lieferant-Nr. 4 4 5 5 4 4 2 5 Produkt-Nr. 1 2 1 2 2 3 1 1 b) vgl. ueb53.sql 4. Aufgabe a) Entitätstypen angestellter(personalNr,name,gebdat,plz,wohnort, strasse, gehalt,beruf) mitarbeiter(personalNr,name,gebdat,plz,wohnort, strasse, gehalt,beruf)4 sachbearbeiter((personalNr,name,gebdat,plz,wohnort, strasse, gehalt,beruf) abteilung(abtNr,abtname) kunde(knNr,name,plz,wohnort,strasse)( auftrag(auftragsNr,auftrDat,beschreib,fertigDat) projekt(projNr,name,begDatum,endDatum) Beziehungstypen is-a(angestellter,mitarbeiter, sachbearbeiter) arbeitet_in(abteilung,sachbearbeiter,position) arbeitet_in(abteilung,mitarbeiter,position) betreut(kunde,auftrag) erteilt(kunde,auftrag) bearbeitet_als(auftrag,projekt) arbeitet_an(mitarbeiter,projekt,anz,prozAnteil) betreut(abteilung,projekt) b) ERM-Diagramm 4 Die Attribute werden vom Entitätstyp angestellter vererbt 5 Datenbanken plz gebDatum wohnort angestellter strasse name gehalt persNr is_a beruf sachbearbeiter 1 mitarbeiter n betreut n arbeitet_in n arbeitet_in kNr name n position 1 kunde position 1 abteilung wohnort 1 als strasse abtNr abtName 1 arbeitet_an erteilt betreut prozAnt auftrNr 0,n 0,n aufttrDat 1 auftrag beschreibung m 1 bearbeitet_als fertigDat projekt projNr begDatum endDatum 5. Aufgabe Gib die ERM-Diagramme mit (min,max)-Notation für folgende Sachverhalte an. 1. Jeder Angestellte arbeitet in genau einer Abteilung, Abteilungen haben 5 bis 15 Mitarbeiter (1,1) angestellte (5,15) arbeitet_in abteilung 2. Jeder Angestellte arbeitet an keinem, einem oder mehreren Objekten, Projekte werden von einem oder mehreren Angestellten bearbeitet (0,*) angestellte (1,*) arbeitet_in projekt 6. Aufgabe Beim konzeptionellen Entwurf hat man gewisse Freiheitsgrade hinsichtlich der Modellierung der realen Welt. 6 Datenbanken 1. Man kann ternäre Beziehungen in binäre Beziehungen transformieren Betrachte in dem folgenden ERM-Diagramm die Beziehung „prüfen“ und führe eine Transformation in binäre Beziehungen durch. Studenten Note N M prüfen Vorlesungen 1 Professoren Studenten Note N N über prüft M M Vorlesungen Professoren 2. Man hat manchmal die Wahl, ein Konzept der realen Welt als Beziehung oder als Entity-Typ zu modellieren Betrachte in dem unter 1. gegebenen Entity-Diagramm die Beziehung „prüfen“ und entwickle daraus (im Gegensatz dazu) einen eigenständigen Entity-Typ „Prüfungen“. Gib dafür das ERM-Diagramm an. Studenten 1 ablegen N Prüfungen N N Note umfasst abhalten 1 1 Vorlesungen Professoren 3. Vergleiche die beiden Modellierungen und erläutere die Vor- und Nachteile der beiden Modellierungen Es ist möglich, dass in der Modellierung mittels Entitytyp eine Prüfung existiert, zu der z.B. noch kein Prüfer feststeht. Die Kombination „Student – Vorlesung“ bestimmt nicht mehr den Professor. Manche Aspekte der Modellierung lassen sich über den Entitätstyp Prüfung allerdings auch genauer erfassen. So ist bspw. spezifiziert, dass pro Prüfung genau eine Vorleung geprüft wird. 7