Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Ähnliche Dokumente
3. Das Relationale Datenmodell

Datenbanken: ER-Modell

Einführung in das Entity-Relationship-Modell

9. Einführung in Datenbanken

3. Spezielle ER-Modelle und Tabellenableitung. Transformation von ER-Diagrammen in Relationen

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Als logisches Datenmodell wird hier das Relationenmodell vorgestellt, das heute den Standard für relationale Datenbanken darstellt.

2. Datenmodellierung mit ERM. Motivation für Datenmodellierung. Begriffsklärung. Kardinalität/Komplexität von Beziehungstypen

Kap 4: Abbildung des E/R Modells auf das relationale Modell. Entity steht in Bez. Anzahl der a A r b B

Kapitel DB:III (Fortsetzung)

Inhalt. 2.1 Datenbankentwurf. 2.2 Relationales Modell. 2.3 Relationale Entwurfstheorie. 2.4 Relationale Algebra. 2.5 Structured Query Language (SQL)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Wirtschaftswissenschaften Prof. Dr. W. Esswein Lehrstuhl Wirtschaftsinformatik, insbesondere Systementwicklung

TECHNISCHE UNIVERSITÄT DRESDEN Fakultät Wirtschaftswissenschaften Prof. Dr. W. Esswein Lehrstuhl Wirtschaftsinformatik, insbesondere Systementwicklung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Datenbanken: Relationales Datenbankmodell RDM

Inhaltsverzeichnis. 1. Fragestellung

Datenbankentwurf. Entwicklungsprozess Anforderungsanalyse & Miniwelt

Kapitel 3: Datenbanksysteme

Kapitel 3. Relationales Modell (Relationenmodell) Transformation ER-Modell Relationenmodell. Prof. Dr. Wolfgang Weber, Vorlesung Datenbanken 1

ER-Modell. Entity-Relationship-Model

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Fundamentals of Software Engineering 1

Datenbankmodelle 1. Das Entity-Relationship-Modell. Prof. Dr. Bernhard Schiefer 2-1

Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert

Vorlesung Datenbanken II A Klausur

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Datenbanken. Sommersemester 2010 Probeklausur

Datenbankmodelle 1. Das Entity-Relationship-Modell

Software-Engineering Einführung

Entwurf von Datenbanken

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

VO Datenmodellierung. Katrin Seyr

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Datenbanken und Informationssysteme Sommersemester 2012 Probeklausur

SQL: statische Integrität

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung

Design Theorie für relationale Datenbanken

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Objektrelationale Datenbanken

Online-Kurs 'Datenbanken und Datenmodellierung'

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Vom Entity-Relationship-Modell (ERM) zum relationalen Datenmodell (RDM)

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation

Vertiefungsmodul Daten-, Informations- und Wissensmanagement BW Übung

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Schlüssel bei temporalen Daten im relationalen Modell

7. Übung - Datenbanken

Referentielle Integrität

Datenbanken 1. Kapitel 3: Relationenmodell WURDE_VERKAUFT INTEGER PRODNR. <pk,fk1> <pk,fk2> PRODNR = PRODNR SHOPID = SHOPID SHOPID INTEGER INTEGER

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5


Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Teil 7: Einführung in den logischen Entwurf

konzeptueller Entwurf mittels E/R-Modell einfache Funktionalitäten n-stellige Relationships (n>2) (siehe nächste zwei Folien) schwache Entities

Datenbankentwurf. 4.2 Logischer Entwurf. Kapitel 4. ER-Modell. Umsetzung. Entwurfsdokumentation. relationales Modell. Verbesserung

Berufliche Schulen Alle Schularten

Relationales Datenmodell

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

Datenbanken in der Praxis 6. Integrität, DBS-Architektur, Sichten

Datenbanken 1 Sommersemester 2014/

Vorlesung Datenbankmanagementsysteme

Objektorientierte Modellierung (1)

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Datenintegrität. Bisherige Integritätsbedingungen

Entity-Relationship-Modell. Ein Studierender kann (oder muss) mehrere Vorlesungen hören. Eine Vorlesung wird i.a. von mehrerer Studierenden gehört.

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Klausur Datenbankmanagementsysteme

Vorlesung Suchmaschinen Semesterklausur Sommersemester 2014

Datenbanksysteme SS 2007

Microsoft Access 2010 SQL nutzen

Erstellen von relationalen Datenbanken mit Hilfe der Nomalisierung

Relationenmodell (RM)

IT-Kompaktkurs. Datenbanken Skript zur Folge 5. Prof. Dr. Georg Herde Fachhochschule Deggendorf

Übung Datenbanken Winter 2010

Referentielle Integrität

Daten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Friihjahr. Erste Staatsprüfilrg für ein Lehramt an öffentlichen Schulen.Prüfurgsaufgaben- Prüfungsüeilnehmer Prüfungsüermin Einzelprüfungsnummer

Klausur zur Vorlesung Datenbanksysteme I

Objektrelationale und erweiterbare Datenbanksysteme

Datenbanksysteme SS 2007

Inhaltsverzeichnis. Datenbanken 1

Arbeitsblätter zu Teil I des Praktikums

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Vorlesung Informatik II

4 Grundlagen der Datenbankentwicklung

FACHHOCHSCHULE MANNHEIM. Hochschule für Technik und Gestaltung. Beispielklausur zur Vorlesung:

EDV-GESTÜTZTES ENTWERFEN, BERECHNEN UND KONSTRUIEREN IM BAUINGENIEURWESEN Prof. Dr.-Ing. Klaus Wassermann MODULPRÜFUNG

Schritt 3 (Grundlegende Folien für die Wiederholung sind mit gekennzeichnet!)

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Das relationale Datenmodell Verantwortliche Personen: Anca Dobre, Michael Schrattner, Susanne Bleisch

Relationale Datenbanken in der Praxis

Einteilung von Datenbanken

Datenbanken: Datenintegrität.

3. Übung. Einführung MS Access. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

Transkript:

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov. 2009 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2 Aufgabe 1: ER-Modellierung 1. Siehe Unterstreichungen in Abbildung 1 2. Siehe Kardinalitäten in Abbildung 1 Datenbanksysteme I Abbildung 1: ER-Modell von Zugverbindungen 3. Beschreibung: Jeder Bahnhof liegt in einer Stadt. Eine Stadt kann aber wiederum mehrere Bahnhöfe haben. Jeder Zug hat einen ausgewiesenen Start- und Zielbahnhof, d.h. fährt auf einer festen Strecke. Auf dieser Strecke können mehrere Zwischenstationen auftreten, dies wird über die dreistellige Relation verbindet realisiert. Die Ankunfts- und Abfahrtszeiten stellen Attribute der Relation dar. 4. Optionalitäten lassen sich durch eine genauere Notation der Kardinalitäten einer Beziehung ausdrücken. Anstatt 1:N kann man z.b. genauer auch 1:1... N schreiben. Eine optionale Beziehung wird dann z.b. durch 1:0... N ausgedrückt, d.h. es kann auch Kardinalität 0 vorkommen. Nach ER-Notation der Vorlesung gibt es auch ein eigenes Symbol für optionale Relationships (siehe S. 22). In Abbildung 1 kann z.b. die Beziehung liegt in auf Seite der Entität Bahnhöfe optional sein, da zwar ein Bahnhof immer zu einer Stadt gehört, eine Stadt aber nicht zwingend einen Bahnhof haben muss. Zusätzlich sieht das Skript auch optionale Attribute vor. Ein Beispiel wäre hier das Attribut Länge der Entität Züge. 1

Aufgabe 2: Relationales DB-Schema 1. Relationenschema: Städte: (Name : String, Region : String) Bahnhöfe : (Name : String, #Bahnsteige: Integer) Züge : ( ZugNr : String, Länge : Float) liegt in : (BName : String, SName : String, Region : String) Start : (ZugNr : String, BName : String) Ziel : (ZugNr : String, BName : String) verbindet : ( VonBahnhof : String, NachBahnhof : String, ZugNr : String, Abfahrt : Date, Ankunft : Date) 2. Verfeinerung: Es werden Relationen für binäre Beziehungstypen mit Relationen für Entitytypen zusammengefasst, falls diese gleiche Schlüssel besitzen und es sich dabei um 1:N, N:1 oder 1:1 Beziehungen handelt. Damit ergibt sich folgendes Schema: Städte: (Name : String, Region : String) Bahnhöfe : (Name : String, #Bahnsteige: Integer, SName : String, Region : String) Züge : ( ZugNr : String, Länge : Float, StartBahnhof : String, ZielBahnhof : String) verbindet : ( VonBahnhof : String, NachBahnhof : String, ZugNr : String, Abfahrt : Date, Ankunft : Date) 2

Aufgabe 3: Modellierung von Entities 1. Als Beispiel werden die Entitäten Person mit Spezialisierungen Angestellter und Student, Sekretärin und Professor als Spezialisierung von Angestellter und schließlich Vorlesung als eigenständige Entität verwendet. Eine mögliche Modellierung dieser Konstellation findet sich in Abbildung 2. Dabei wird eine andere Notation als in der Vorlesung verwendet, ein ISA-Relationship wird z.b. durch Doppelstriche veranschaulicht. Vorname Nachname Anschrift Person Geburtsdatum Matrikelnummer Hauptfach Personalnummer Angestellter Student Nebenfach Zimmernummer Akademischer Status Gehaltsgruppe N ist registriert für M Nummer Sekretärin 1 1...N arbeitet für Professor 1 N lehrt Vorlesung Titel Raum Forschungsgruppe Lehrstuhl Abbildung 2: Erste Modellierung der Entities 2. Als Schlüssel kommen alle Attributkombinationen einer Entität in Frage, die eine Instanz (Tupel) eindeutig identifizieren. Schlüsselkandidaten sind dann wiederum diejenigen Schlüssel, für die keine Untermenge ein Schlüssel ist. In Abbildung 2 wurde als Primärschlüssel der Schlüsselkandidat {Anschrift, Vorname, Nachname, Geburtsdatum} für die Entität Person benutzt. Dies ist in der Tat ein Schlüsselkandidat, da keine Untermenge des Schlüssels ein gültiger Schlüssel ist. {Nachname, Anschrift, Geburtsdatum} ist z.b. kein gültiger Schlüssel, Zwillinge die im selben Haus leben wären somit nicht unterscheidbar. {Vorname, Nachname} reicht auch nicht als Schlüssel, siehe Universitätsmitarbeiter mit gleichen Vor- und Nachnamen. Die Spezialisierungen Angestellter und Student können den Primärschlüssel von Person übernehmen, aber auch andere Primärschlüssel definieren. Dies macht in diesem Fall Sinn, da beide Schlüsselkandidaten vorweisen, die nur aus einem Attribut bestehen (Personalnummer bzw. Matrikelnummer). Um Primärschlüssel mit vielen Attributen wie in Abbildung 2 zu vermeiden wird oft ein neues Attribut id eingeführt, das Tupel eindeutig identifiziert. Dementsprechend würde man die Primärschlüssel wohl auch eher wie in Abbildung 3 gezeigt wählen und auch für die Spezialisierungen Angestellter und Student auf den Schlüssel id als Primärschlüssel zurückgreifen. 3

3. Das Diagramm in Abbildung 3 verwendet jeden Relationship-Typ mindestens einmal: ISA: Angestellter und Student als Spezialisierung von Person 1:1 : Relationship zwischen Sekretärin und Professor könnte streng genommen als 1:1 Relationship modelliert werden 1:N : Eine Vorlesung wird genau von einem Professor gehalten N:M : Ein Student hört mehrere Vorlesungen, eine Vorlesung wird von mehreren Studenten besucht. optionales Relationship: z.b. Professoren im Forschungssemester, Studenten im Urlaubssemester, unattraktive Vorlesungen 4. In ER-Diagrammen sind Mehrfachvererbungen möglich. So könnte eine Konstellation z.b. so aussehen, dass Student sowohl von Person als auch von Angestellter erbt (z.b. ein HIWI). Mehrfachvererbung ist jedoch in J2SE nicht möglich. Vorname Nachname Anschrift Person Geburtsdatum id Matrikelnummer Hauptfach Personalnummer Angestellter Student Nebenfach Zimmernummer Akademischer Status Gehaltsgruppe N ist registriert für M Nummer Sekretärin 1 1...N arbeitet für Professor 1 N lehrt Vorlesung Titel Raum Forschungsgruppe Lehrstuhl Abbildung 3: (verbesserte) alternative Modellierung 4

Aufgabe 4: Das Relationenmodell 1. Bei einer Relation in der ersten Normalform müssen alle Attribute atomar sein, d.h. die Werte der Attribute dürfen nur aus elementaren Datentypen (z.b. VARCHAR oder DATE) bestehen. Die Relation Vorlesungsbetrieb(Student, Vorlesungen) lässt sich jedoch in zwei getrennte Entitäten aufspalten, die durch ein N:M Relationship in Beziehung zueinander stehen. Ein entsprechendes ER-Diagramm ist in Abbildung 4 dargestellt. Die dazugehörigen Relationen zeigt Abbildung 5. Abbildung 4: Entities 2. Wird dieses Diagramm in ein die entsprechenden Relationen-Schemata umgewandelt, so wird das N:M Relationship als eigenständige Tabelle modelliert, die als Fremdschlüssel den Primärschlüssel der Student-Relation und Vorlesung-Relation enthält. Abbildung 5 zeigt das umgewandelte ER-Diagramm in Relationenform. Abbildung 5: Relationen-Schema 3. Gültige Schemata müssen drei strukturelle Integritätsregeln (unabhängig von möglichen Anwendungen) erfüllen: Jede Relation braucht einen Primärschlüssel (siehe Skript S. 31) Referentielle Integrität: Existiert in Relation 4 ein Fremdschlüsselwert, so muss dieser auch in der korrespondierenden Relation als Wer vorhanden sein. (siehe Skript S. 32) Kein Attributwert des Primärschlüssels einer Relation darf Null sein (siehe Skript S. 33). Somit darf Vorlesung kein Tupel ohne id haben, Student keines ohne Matrikel-Nr. 5

Aufgabe 5: Ternäres Relationship Um das vorliegende Diagramm in ein relationales Schema zu überführen muss zuerst dessen Bedeutung klar werden. Das vorliegende Relationship beschreibt die ternäre Beziehung zwischen Studenten, Professoren und Seminarthemen. In Stichpunkten lässt sich diese wie folgt formulieren: Studenten dürfen bei einem Professor nur ein Seminarthema bearbeiten Studenten dürfen dasselbe Thema nur bei einem Professor bearbeiten Professoren können dasselbe Thema an unterschiedliche Studenten vergeben Die Umwandlung eines ternären Relationships lässt sich generalisieren: Aus dem Relationship wird eine eigene Entität E. Besitzt das Relationship Attribute, so werden diese der neuen Entität E zugeordnet. Alle bestehenden Entitäten werden mit E nun nur noch durch binäre Relationships verbunden. E enthält entsprechend die Primary Keys der verbundenen Entitäten als Fremdschlüssel. Die ursprünglichen Kardinalitäten des ternären Relationships werden nun über den Primärschlüssel von E modelliert. Im vorliegenden Fall werden also die Entitäten Professoren, Studenten und Seminarthemen beibehalten und eine neue Entität betreuen eingeführt, die das ternäre Relationship darstellt. Zur Umsetzung ins relationale Modell muss ein Schlüssel für die Relation betreuen bestimmt werden. Hierzu betrachten wir die geltenden Funktionen: Studenten Seminarthemen Professoren (1) Studenten Professoren Seminarthemen (2) Aus den linken Seiten dieser Funktionen ergeben sich potentielle Schlüssel. Diese sind minimal. 1. Möglichkeit: Eine gültige Ausprägung ist: betreuen (PersonalNr : Integer, MatrNr : Integer, Titel : String, Note : Dezimal) PersonalNr MatrNr Titel Note 2125 24002 Präferenzen und Datenbanken 1,0 2125 24002 Suchmaschinen und Datenbanken 2,0 Im dargestellten Beispiel bearbeitet ein Student beim gleichen Professor zwei unterschiedliche Themen. Dies ist ein Widerspruch zur Bedingung (2). 2. Möglichkeit: Eine gültige Ausprägung ist: betreuen (PersonalNr : Integer, MatrNr : Integer, Titel : String, Note : Dezimal) PersonalNr MatrNr Titel Note 2125 24002 Präferenzen und Datenbanken 1,0 2126 24002 Präferenzen und Datenbanken 2,0 Es wird nicht ausgeschlossen, dass ein Student dasselbe Thema bei unterschiedlichen Professoren bearbeitet, was jedoch ein Widerspruch zur Bedingung (1) ist. 3. Möglichkeit: Die Kombination der drei Attribute (PersonalNr, MatrNr, Titel) als Schlüssel zu verwenden löst diese Problematik nicht. Denn dann sind keine der zwei vorgestellten Konsistenzbedingungen mehr erfüllt, wie man sich leicht an einem Beispiel veranschaulichen kann. In SQL löst man diese Problematik wie folgt: Der Primärschlüssel der Relation betreuen wird z.b. {PersonalNr, MatrNr}. Zusätzlich definiert man {Titel, MatrNr} als unique, also als eindeutig. 6