Stufen der Entwicklung einer Datenbank. ER-Modell. Datenbank-Entwurf (1) Datenbank-Entwurf (2) 1. Datenbank - Entwurf ( ER - Diagramm)

Ähnliche Dokumente
Teil 6: Einführung in das Entity-Relationship-Modell

Vorlesung Datenbank-Entwurf Klausur

Teil 8: Einführung in das Entity-Relationship-Modell

Kapitel DB:IV (Fortsetzung)

Medizininformatik Software Engineering

Teil 3: Einführung in das Entity-Relationship-Modell

Datenbankentwurf. Kapitel 3. Datenbankentwurf 76 / 508

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme

Vorlesung Dokumentation und Datenbanken Klausur

Kapitel DB:IV (Fortsetzung)

Teil 7: Einführung in den logischen Entwurf

Einführung in Datenbanken

Datenbanksysteme: Entwurf

Kapitel 1: Wiederholungsfragen Grundlagen DBS

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

3. Das Relationale Datenmodell

Rückblick: Entity-Relationship-Modell

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

Einführung in die Datenorganisation. Informationssysteme

Rückblick: Datenbankentwurf

Konzeptuelle Modellierung

Datenbanken Unit 2: Das ER-Modell

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

Kapitel 1: Einführung 1.1 Datenbanken?

Datenbanken Unit 3: Das relationale Modell

Datenbanken Unit 3: Das relationale Modell

Datenmodelle. Einführung in das Entity-Relationship-Modell. Datenbankmodelle. Beispiel für ein ER-Schema. Kunde( Meier, , ) 41, Meier

Datenmodelle dienen der Darstellung der Informationsstruktur, nicht der Darstellung der Informationen selbst. Motivation

Veranstaltung Pr.-Nr.: Datenmodellierung. Veronika Waue WS 07/08. Phasenschema der Datenbankentwicklung (grob) Informationsanalyse

Datenbanken 1. Kapitel 2: Datenbankentwurf. Ansprechpartner hat Name Adresse. Geschaeftspartner <pi> Characters (30) Characters (50) ist.

Introduction to Data and Knowledge Engineering Übung 1: Entity Relationship Model

3. Relationales Modell

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Übungen Teil 1: ER-Modelle. Dozent: Stefan Maihack Dipl. Ing. (FH)

Wiederholung VU Datenmodellierung

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Kapitel 2: Das Relationale Modell

Das Entity-Relationship-Modell

Einteilung von Datenbanken

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Kapitel 1: Einführung 1.1 Datenbanken?

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

Kapitel 2: Das Relationale Modell

Integritätsbedingungen Eindeutige Identifikation (1)

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

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

10. Datenbank Design 1

Relationales Datenbanksystem Oracle

Das Entity-Relationship-Modell. Prof. Dr. T. Kudraß 1

Vorlesung Datenbanken I Endklausur

Das konzeptionelle Datenmodell

Inhaltsverzeichnis. 1. Fragestellung

Wirtschaftsinformatik 2. Tutorium im WS 11/12

Datenorientierter Ansatz. Datenbankentwurfsschritte. Welche Daten müssen im System verwaltet werden? Wie werden die Daten im System verändert?

Grundlagen des relationalen l Modells

Entwurf von Datenbanken

Übung zur Vorlesung Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW) IN8003, SS 2011 Prof. Dr. J. Schlichter

Kapitel DB:III (Fortsetzung)

Kapitel 3: Datenbanksysteme

Relationales Datenbankpraktikum 2016ss

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

konzeptionelles DB-Design

Datenorganisation. Februar bis Mai Dipl.-Oek. Patrick Bartels Institut für Wirtschaftsinformatik Universität Hannover

Konzeptueller Entwurf

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

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

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

Vorlesung Datenbanken II A Klausur

E-R-Modell zu Relationenschema

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Vorlesung Datenbanken I Nachklausur

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Fundamentals of Software Engineering 1

Schema: konkrete Beschreibung einer bestimmten. (unter Verwendung eines Datenmodells)

Einführung in Datenbanken

Indizes. Index. Datenfeld Normale Tabelle. Gesucht wird: Zugriff. 3. Zugriff 1. Zugriff.

Es geht also um die sogenannte SQL- Data Definition Language.

Probeklausur mit Musterlösung

Microsoft Access Relationen. Anja Aue

Hands-on-Workshop Datenmodellierung mit dem neuen Innovator for Database Architects. MID Insight Nürnberg,

Datenmodelle und Datenbanken 2

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

3. Grundlagen relationaler Datenbanksysteme

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Theorie zur Übung 8 Datenbanken

ER-Modell, Normalisierung


Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Geoinformation Abbildung auf Tabellen

Übung 01 Tabellen erstellen

Kapitel 5: Das E/R-Modell

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Prüfung Informatik für Ökonomen II. 14. Januar Teil 1: Datenbanktechnik Musterlösungen

Kommunikation und Datenhaltung

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Transkript:

9. Einführung in das Entity-Relationship-Modell 9-1 9. Einführung in das Entity-Relationship-Modell 9-2 ER-Modell Stufen der Entwicklung einer Datenbank 1. Überblick über den Datenbank-Entwurf 2. Grundlegende ER-Elemente. Integritätsbedingungen: Allg. Bemerkungen 4. Relationship-Arten (Kardinalitäten) 1. Datenbank - Entwurf ( ER - Diagramm) 2. Umsetzen des ER - Diagramms ins relationale Modell (Tabellen). Tabellen definieren (Schema erzeugen) und ins DBMS implementieren (CREATE TABLE) 5. Schlüssel, schwache Entities 6. Qualität eines ER-Schemas 4. Werte in die Datenbank eintragen (INSERT INTO) 5. Anfragen stellen (SELECT FROM WHERE) 9. Einführung in das Entity-Relationship-Modell 9-9. Einführung in das Entity-Relationship-Modell 9-4 Datenbank-Entwurf (1) Datenbank-Entwurf (2) Datenbankentwurf ist (meist) eine Teilaufgabe eines Software-Projektes, in dem bestimmte Aufgaben in der realen Welt durch Programme unterstützt werden sollen ( Softwaretechnik). Ziel des Datenbankentwurfes ist es, ein Datenbankschema zu entwickeln, das die für die Anwendungsprogramme notwendige Information zur Verfügung stellt, ein korrektes Abbild des relevanten Ausschnitts der realen Welt darstellt (formales Modell). Fehler beim DB-Entwurf: Information fehlt Vorgegebene Fragen über die reale Welt können nicht aus der Datenbank beantwortet werden. Schema zu eingeschränkt D.h. man kann sinnvolle Daten, die in der Realität auftreten können, nicht in die Datenbank abspeichern. Schema zu liberal (nicht unbedingt schlimm). Ungültige Daten sind möglich, d.h. es gibt DB-Zustände, die keiner sinnvollen Situation der realen Welt entsprechen. Das ist nicht immer ganz zu vermeiden, und jedenfalls weniger schlimm als die umgekehrte Situation (voriger Punkt). Problem: Datenqualität. Unkontrollierte Redundanz.

9. Einführung in das Entity-Relationship-Modell 9-5 9. Einführung in das Entity-Relationship-Modell 9-6 Datenbank-Entwurf () Beispiel (1) Es gibt drei Phasen des DB-Entwurfs: Konzeptioneller DB-Entwurf erstellt ein Modell der Miniwelt in einem konzeptionellen Datenmodell (z.b. dem Entity-Relationship Modell). Statt konzeptionell kann man auch konzeptuell sagen. Logischer DB-Entwurf transformiert das Schema in das Datenmodell des DBMS. Dies ist heute fast immer das relationale Modell, also Tabellen. Physischer DB-Entwurf hat die Verbesserung der Leistung des endgültigen Systems zum Ziel. Indexe und Speicherparameter werden in dieser Phase gewählt. ER-Schema in graphischer Notation: Name Dozent Telefon hält Vorlesung Nr Titel Diese Miniwelt enthält Dozenten und Vorlesungen. Dozenten halten Vorlesungen. Dozenten haben Name und Telefonnummer. Vorlesungen haben eine Nr und einen Titel. 9. Einführung in das Entity-Relationship-Modell 9-7 9. Einführung in das Entity-Relationship-Modell 9-8 Beispiel (2) Das ER-Modell (1) Möglicher Zustand: Dozent Name Herrmann 2 49404 Tel hält 7 Vorlesung Nr 20727 7 7 Titel Datenbanken Nr 4222 Titel WWW Vorgeschlagen von Peter Pin-Shan Chen (1976). Beinhaltet eine nützliche graphische Notation, die eine bessere Übersicht ermöglicht; um die Struktur der Daten zu sehen. Dies unterstützt auch die Kommunikation mit zukünftigen Nutzern. Viele Variationen und Erweiterungen des ER-Modells wurden vorgeschlagen.

9. Einführung in das Entity-Relationship-Modell 9-9 9. Einführung in das Entity-Relationship-Modell 9-10 Das ER-Modell (2) Inhalt Es gibt spezielle graphische Editoren und andere Entwicklungs-Tools. Z.B. ist Oracle Designer ein CASE-Tool für DB-Anwendungen und ein Bestandteil ist der ER Diagrammer. (CASE: Computer-Aided Software Engineering.) Alternativen: Sybase PowerDesigner, CA ERwin,... Sie können das Programm DIA zum Zeichnen der ER-Schemata benutzen. Die Installationsdateien von DIA finden Sie auf der Übungsseite. 1. Überblick über den Datenbank-Entwurf 2. Grundlegende ER-Elemente. Integritätsbedingungen: Allg. Bemerkungen 4. Relationship-Arten (Kardinalitäten) 5. Schlüssel, schwache Entities 6. Qualität eines ER-Schemas 9. Einführung in das Entity-Relationship-Modell 9-11 9. Einführung in das Entity-Relationship-Modell 9-12 Entities: Begriffe des ER-Modells (1) Objekte der Miniwelt, über die Informationen gespeichert werden sollen. Z.B. Personen, Bücher,... Es ist egal, ob Entities eine physische Existenz haben (und angefasst werden können) oder nur eine konzeptionelle Existenz. Es muss möglich sein, Entities voneinander zu unterscheiden, d.h. sie müssen eine Identität, also einen in der Datenbank eindeutigen Namen haben. Begriffe des ER-Modells (2) Attribute: Eine Eigenschaft oder Charakteristik eines Entities. Auch Relationships können Attribute haben, siehe unten. Z.B. der Titel dieser Vorlesung ist Einführung in Datenbanken und das WWW. Der Wert eines Attributs ist ein Element eines Datentyps, wie String, Integer, Datum: Er hat eine druckbare Darstellung.

9. Einführung in das Entity-Relationship-Modell 9-1 9. Einführung in das Entity-Relationship-Modell 9-14 Begriffe des ER-Modells (4) Begriffe des ER-Modells () Relationship: Beziehung zwischen Paaren von Entities. Z.B. Ich (Person) halte ASQ DBMS und WWW (Vorlesung). Das Wort Relationship wird auch als Abkürzung für Relationship-Typ verwendet (siehe unten). Entity-Typ: Menge ähnlicher Entities (in Bezug auf die zu speichernden Informationen), d.h. Entities, die die gleichen Attribute haben. Z.B. alle Dozenten dieser Universität. Relationship-Typ: Menge ähnlicher Relationships. Z.B. X hält Vorlesung Y. 9. Einführung in das Entity-Relationship-Modell 9-15 9. Einführung in das Entity-Relationship-Modell 9-16 ER-Diagramme (1) ER-Diagramme (2) Entity-Typ E: E Attribut A des Entity-Typs E: E A Relationships können auch Attribute haben: Student löste Punkte Aufgabe Relationship R zwischen Entity-Typen E 1 und E 2 : E 1 R E 2 Das bedeutet, dass eine Punktzahl für jedes Paar Student X und Aufgabe Y gespeichert wird, so dass X eine Lösung für Y abgegeben hat.

9. Einführung in das Entity-Relationship-Modell 9-17 9. Einführung in das Entity-Relationship-Modell 9-18 Graphische Syntax (1) Graphische Syntax (2) Ein ER-Diagramm enthält Entities, Relationships, Attribute und Verbindungslinien. Entities, Relationships und Attribute sind jeweils mit einer Zeichenkette markiert. Diese Zeichenkette wird in das Element geschrieben. Verbindungslinien sind nur erlaubt zwischen einem Entity und einem Relationship, einem Entity und einem Attribut und einem Relationship und einem Attribut. Außerdem müssen folgende Bedingungen gelten: Ein Relationship muss genau zwei Verbindungslinien zu Entities haben. Jede Anzahl von Verbindungslinien zu Attributen ist erlaubt. Ein Attribut muss genau eine Verbindungslinie haben. 9. Einführung in das Entity-Relationship-Modell 9-19 9. Einführung in das Entity-Relationship-Modell 9-20 Graphische Syntax () Die Namen der Entities müssen im ganzen Diagramm eindeutig sein. D.h. es kann nicht zwei Entities mit der selben Aufschrift geben. Die Namen der Attribute müssen nur für ein Entity oder ein Relationship eindeutig sein. D.h. es kann nicht zwei Attribute mit dem selben Namen geben, die mit dem gleichen Entity (oder mit dem gleichen Relationship) verbunden sind. Relationships müssen durch Name und verbundene Entities eindeutig identifiziert sein. Übung Welche Fehler enthält dieses Diagramm? E F A B A S R E

9. Einführung in das Entity-Relationship-Modell 9-21 9. Einführung in das Entity-Relationship-Modell 9-22 Inhalt Optionale Attribute Man kann auch Attribute zulassen, die nur teilweise definiert sind (optional, können NULL sein). Solche Attribute können mit einem kleinen Kreis auf der Linie zwischen Entity-Typ (oder Relationship) und Attribut markiert werden: E A 1. Überblick über den Datenbank-Entwurf 2. Grundlegende ER-Elemente. Integritätsbedingungen: Allg. Bemerkungen 4. Relationship-Arten (Kardinalitäten) 5. Schlüssel, schwache Entities 6. Qualität eines ER-Schemas 9. Einführung in das Entity-Relationship-Modell 9-2 9. Einführung in das Entity-Relationship-Modell 9-24 Gültige DB-Zustände Integritätsbedingungen (1) KUNDE Kund Nr Name Geb Jahr Stadt 1 Schmidt 1966 Dortmund 2 Jonas 1965 Hannover Braun 64 Halle Kramer 1995 Berlin Kundennummern müssen eindeutig sein. Das Geburtsjahr muss größer als 1870 sein. Kunden müssen mindestens 18 Jahre alt sein. Integritätsbedingungen ( Constraints ) sind Bedingungen, die jeder DB-Zustand erfüllen muss. Schränkt die Menge möglicher DB-Zustände ein. Idealerweise zu Abbildern von Situationen der realen Welt. Integritätsbedingungen können als Teil des DB-Schemas definiert werden. Das DBMS lehnt jede Änderung ab, die eine Bedingung verletzen würde. Somit werden ungültige Zustände ausgeschlossen. Heutige DBMS erlauben keine beliebigen Bedingungen, nur spezielle Fälle, siehe unten.

9. Einführung in das Entity-Relationship-Modell 9-25 9. Einführung in das Entity-Relationship-Modell 9-26 Zusammenfassung (1) Zusammenfassung (2) Warum Constraints festlegen? Etwas Schutz vor Eingabefehlern Constraints enthalten Wissen über DB-Zustände Erzwingung von Gesetzen/Unternehmensstandards Schutz vor Inkonsistenz bei redundant gespeicherten Daten (gleichen Daten zweimal gespeichert). Anfragen/Programme werden einfacher, wenn der Programmierer nicht alle Fälle beachten muss (d.h. Fälle, in denen die Constraints nicht erfüllt sind). Z.B. keine Indikatorvariable bei Spalten ohne Nullwerte. Constraints und Ausnahmen: Constraints können keine Ausnahmen haben. Jeder Versuch, ungültige Daten einzugeben, wird abgelehnt. Es ist eine allgemeine Erfahrung, daß es Ausnahmesituationen gibt, in denen das DBS wegen der festgelegten Constraints unflexibel scheint. Nur Bedingungen, die ohne Zweifel immer gelten müssen, sollten als Constraint festgelegt werden. Normalerweise-wahr -Bedingungen könnten nützlich sein, aber nicht als Constraints. Z.B. können Programme nachfragen, wenn ein Kunde über 100 ist. Auch nützliche Information für physischen Entwurf. 9. Einführung in das Entity-Relationship-Modell 9-27 9. Einführung in das Entity-Relationship-Modell 9-28 Inhalt Kardinalitäten (1) 1. Überblick über den Datenbank-Entwurf Allgemeines Relationship: 2. Grundlegende ER-Elemente E 1 R E 2. Integritätsbedingungen: Allg. Bemerkungen 4. Relationship-Arten (Kardinalitäten) 5. Schlüssel, schwache Entities 6. Qualität eines ER-Schemas

9. Einführung in das Entity-Relationship-Modell 9-29 9. Einführung in das Entity-Relationship-Modell 9-0 Kardinalitäten (2) Normalerweise gibt es keine Einschränkung, wie oft ein Entity an einem Relationship teilnimmt. Ein Entity kann mit einem, mit mehreren oder mit keinem Entity eines anderen Typs verbunden sein. Oft weiß man jedoch, wie viele E 2 -Entities zu einem E 1 -Entity in Beziehung stehen. Abteilung geleitet von Abt leiter Kardinalitäten () In der (min,max)-notation spezifiziert man ein Intervall für die Anzahl der ausgehenden Kanten jedes Entities: E 1 (m 1, n 1 ) R (m 2, n 2 ) D.h. ein Entity des Typs E 1 kann zu m 1 bis n 1 Entities des Typs E 2 in Beziehung stehen. Analog gelten die Beziehungen von E 2 zu E 1. E 2 9. Einführung in das Entity-Relationship-Modell 9-1 9. Einführung in das Entity-Relationship-Modell 9-2 Kardinalitäten (4) Das Symbol wird als Maximum verwendet, wenn es kein Limit gibt. (0, ) bedeutet, es gibt gar keine Einschränkung Beispiel: Eine Abteilung wird von max. einem Abteilungsleiter geleitet und umgekehrt: Abteilung (1, 1) geleitet von (1, 1) Abt leiter Kardinalitäten (5) anderes Beispiel: Ein Flughafen liegt in genau einem Land, ein Land kann mehrere Flughäfen haben (oder gar keinen): Flughafen (1, 1) (0, ) liegt in Land Das Land nimmt gar nicht oder viele Male an der Beziehung teil Der Flughafen nimmt genau einmal an der Beziehung teil Leipzig Deutschland Frankfurt Deutschland München Deutschland

9. Einführung in das Entity-Relationship-Modell 9-9. Einführung in das Entity-Relationship-Modell 9-4 Kardinalitäten (6) Kardinalitäten festlegen Übung: Kardinalitäten festlegen. Neben normalen Kunden enthält die DB auch solche, die noch nichts bestellt haben, sondern nur einen Produktkatalog erhalten haben. Bestellung von Kunde Eine Bestellung kann mehrere Produkte umfassen: Bestellung für Produkt Die Kardinalitäten (0, 1), (1, 1) und (0, ) sind besonders üblich und im relationalen Schema leicht zu erzwingen. Z.B. statt (0, 0) wählt man lieber (0, ) (leichter). Wenn jedoch 0 eine harte Grenze ist (d.h. der DB-Zustand wäre ungültig, wenn dies verletzt ist), sollte man die Kardinalität (0, 0) wählen und diese über Constraints, Trigger oder Anwendungsprogramme erzwingen. 9. Einführung in das Entity-Relationship-Modell 9-5 9. Einführung in das Entity-Relationship-Modell 9-6 Übliche Fälle (1) Die Minimalkardinalität wird normalerweise 0 oder 1 sein und die Maximalkardinalität 1 oder. Also sind nur (0, 1), (1, 1), (0, ), (1, ) in der Praxis üblich. Davon ist jedoch (1, ) im relationalen Schema schwer umzusetzen. Um das Relationship zu verstehen, muss man die Kardinaltitäten auf beiden Seiten kennen. Maximalkardinalitäten verwendet, um zwischen viele zu viele, eins zu viele / viele zu eins und eins zu eins -Relationships zu unterscheiden. Übliche Fälle (2) Viele zu Viele -Relationships: Beide Maximalkardinalitäten sind : Min.-Kardinalitäten können 0 oder 1 sein, siehe Teilnahme unten. Student (0, ) (1, ) besucht Vorlesung Ein Student kann viele Vorlesungen besuchen und eine Vorlesung kann viele Studenten haben. Das ist der allgemeinste Fall. Bei der Übersetzung ins relationale Modell benötigen viele zu viele -Relationships eine extra Tablle.

9. Einführung in das Entity-Relationship-Modell 9-7 9. Einführung in das Entity-Relationship-Modell 9-8 Übliche Fälle () Eins zu Viele -Relationships: Maximalkardinalität 1 auf der viele -Seite und auf der eins -Seite. (0, ) Dozent (1, 1) hält Vorlesung Z.B. ein Dozent hält viele Vorlesungen, aber jede Vorlesung hat maximal einen Dozenten ( ein Dozent, viele Vorlesungen ). Also ist das eins zu viele von Dozent zu Vorlesung. Übliche Fälle (4) Eins zu Viele -Relationships, fortgesetzt: Beachte: 1/eins und /viele sind vertauscht! Dozent ist die eins -Seite, aber hat Maximalkardinalität. Vorlesung ist die viele -Seite, aber hat Maximalkardinalität 1. Eins zu viele -Relationships brauchen keine extra Tabelle bei der Übersetzung ins relationale Modell. Das sind wahrscheinlich die üblichsten Relationships. Viele zu eins : symmetrisch (z.b. gehalten von ) 9. Einführung in das Entity-Relationship-Modell 9-9 9. Einführung in das Entity-Relationship-Modell 9-40 Übliche Fälle (5) Eins zu Eins -Relationships: Maximalkardinalität 1 auf beiden Seiten: Mann (0, 1) (0, 1) verheiratet mit Frau Ein Mann kann mit maximal einer Frau verheiratet sein, eine Frau mit maximal einem Mann. Oder: Ist Chef von zwischen Angestellten und Abteilungen: Jede Abteilung hat genau einen Chef (notwendige Teilnahme) Angestellte kann maximal eine Abteilung führen (normale Angestellte führen keine Abteilung: optionale Teilnahme). Übliche Fälle (6) Teilnahme: Die Minimalkardinalitäten legen die Teilnahme von Entities in einem Relationship fest: total (zwingend): Jedes Entity muss am Relationship beteiligt sein. partiell (optional): Einige Entities sind am Relationship beteiligt, andere nicht. Minimalkardinalitäten sind für die Klassifikation des Relationships in viele zu viele, eins zu viele oder eins zu eins nicht wichtig.

9. Einführung in das Entity-Relationship-Modell 9-41 9. Einführung in das Entity-Relationship-Modell 9-42 Übliche Fälle (7) Inhalt Im folgenden Beispiel ist die Teilnahme von Vorlesung zwingend (jede Vorlesung muss einen Dozenten haben), Das könnte in der Praxis zu einschränkend sein. Es wird am Semesteranfang gelten, aber nicht während der Planung. ist die Teilnahme von Dozent optional (Dozenten können Forschungssemester haben). D.h. es kann Dozenten geben, die im laufenden Semester keine Vorlesungen halten. Dozent (0, ) hält (1, 1) Vorlesung 1. Überblick über den Datenbank-Entwurf 2. Grundlegende ER-Elemente. Integritätsbedingungen: Allg. Bemerkungen 4. Relationship-Arten (Kardinalitäten) 5. Schlüssel, schwache Entities 6. Qualität eines ER-Schemas 9. Einführung in das Entity-Relationship-Modell 9-4 9. Einführung in das Entity-Relationship-Modell 9-44 Schlüssel (1) Ein Schlüssel eines Entity-Typs E ist ein Attribut, das die Entities dieses Typs eindeutig identifiziert. Es darf nie zwei Entities geben, die den gleichen Wert für das Schlüsselattribut haben. Auch Kombination von zwei oder mehr Attributen als Schlüssel deklarierbar: Dann dürfen Entities nicht in allen diesen Attributen übereinstimmen. Graphische Syntax: Schlüssel (2) Schlüssel werden in ER-Diagrammen markiert, indem man die Schlüsselattribute unterstreicht: Dozent Vorname Nachname Tel Nur Entity-Typen können Schlüsselattribute haben. Schlüssel können nicht für Relationships erklärt werden (aber Kardinalitäten sind so ähnlich wie Schlüssel für Relationships).

9. Einführung in das Entity-Relationship-Modell 9-45 9. Einführung in das Entity-Relationship-Modell 9-46 Mehrere Schlüssel (1) Schlüssel () Minimalität von Schlüsseln: Minimalität bedeutet, dass man kein Schlüsselattribut weglassen kann, ohne die Eigenschaft der eindeutigen Identifikation zu verlieren. In der Literatur wird ein Schlüssel, der nicht minimal ist, Superkey genannt. Ein Entity-Typ kann mehr als einen Schlüssel haben: Z.B. ist PersNr ein Schlüssel. Die Kombination von Vorname und Nachname ist ein weiterer Schlüssel. Beide Schlüssel sind minimal, weil keiner eine Obermenge des anderen ist. (Keiner der beiden impliziert den anderen.) Es ist egal, dass der erste Schlüssel nur ein Attribut hat und der zweite aus zwei Attributen besteht. 9. Einführung in das Entity-Relationship-Modell 9-47 9. Einführung in das Entity-Relationship-Modell 9-48 Mehrere Schlüssel (2) Mehrere Schlüssel () Einer der Schlüssel wird als Primärschlüssel deklariert. Andere Schlüssel werden Alternativoder Sekundärschlüssel genannt. SQL verwendet die Begriffe PRIMARY KEY für Primärschlüssel und UNIQUE für Sekundärschlüssel. Der Primärschlüssel sollte ein Schlüssel sein, der nur aus einem Attribut besteht und wenn möglich nie geändert wird. Nach der Übersetzung ins relationale Modell wird der Primärschlüssel in anderen Tabellen verwendet, die sich auf Entities dieses Typs beziehen. In manchen Systemen kann der Zugriff über den Primärschlüssel sehr schnell sein. Ansonsten ist die Wahl des Primärschlüssels egal. Graphische Syntax erlaubt für jeden Entity-Typ nur die Festlegung eines Schlüssels (Primärschlüssel). Der Primärschlüssel wird durch Unterstreichen gekennzeichnet. Dozent Vorname Nachname PersNr

9. Einführung in das Entity-Relationship-Modell 9-49 9. Einführung in das Entity-Relationship-Modell 9-50 Sind Schlüssel notwendig? Das ER-Modell verlangt nicht die Definition eines Schlüssels für jeden Entity-Typ (Objektidentität). Bei der Übersetzung ins relationale Modell benötigt man jedoch für jeden Entity-Typ einen Schlüssel. Gibt es keine natürlichen Schlüssel, verwendet man Zahlen zur Identifizierung ( künstliche Schlüssel ). Künstliche Schlüssel Künstliche Schlüssel sind einfach. Es gibt aber auch Nachteile, wenn man sie verwendet Dinge wie Bestellnummer, die schon in der realen Welt verwendet werden, sind an der Grenze zwischen natürlich und künstlich. Der Zweck von Schlüsseln ist nicht nur die Identifikation von Entities. Schlüssel sollten auch helfen, Duplikate in der DB zu vermeiden. Künstliche Schlüssel tun dies nicht. 9. Einführung in das Entity-Relationship-Modell 9-51 9. Einführung in das Entity-Relationship-Modell 9-52 Schwache Entities (1) Schwache Entities (2) Ein Entity kann eine Art Detail beschreiben, das ohne Master- Entity nicht existieren kann. Dann gibt es ein Relationship mit einer (1,1)- Kardinalität, die zum Master (Elternteil) zeigt. Außerdem wird der Schlüssel des Master-Entities ein Teil des Schlüssels des Detail-Entities: Rechnung (Master) R Nr (1, ) Datum hat (1, 1) Position (Detail) Pos R Nr In solchen Fällen gibt es immer zusammengesetzte Schlüssel: Ein Klassenraum wird durch ein Gebäude und durch eine Zimmernummer identifiziert. Eine Unteraufgabe wird durch eine Aufgabennummer (z.b. 1) und einen Buchstaben (z.b. a) identifiziert. Eine Web-Seite wird durch einen Web-Server und einen Pfad auf diesem Server identifiziert.

9. Einführung in das Entity-Relationship-Modell 9-5 9. Einführung in das Entity-Relationship-Modell 9-54 Schwache Entities () Existenzabhängigkeit: Wird ein Gebäude abgerissen, verschwinden die Räume darin automatisch. Daher wurden schwache Entities eingeführt. Sie sind durch doppelte Linien an ihrer Box, an der Verbindungslinie und an der Relationship-Raute gekennzeichnet: Rechnung R Nr (1, ) Datum hat (1, 1) Position Pos Schwache Entities (4) Nur die Erweiterung des Schlüssels wird dargestellt. Da es nur ein Teil-Schlüssel (partieller Schlüssel) ist, wird er gestrichelt unterstrichen. Also besteht der echte Schlüssel des schwachen Entities aus den Schlüsselattributen des Master- Entities (automatisch vererbt) und dem gestrichelt unterstrichenen partiellen Schlüssel. 9. Einführung in das Entity-Relationship-Modell 9-55 9. Einführung in das Entity-Relationship-Modell 9-56 Schwache Entities (5) Schwache Entities sind normale Entities, außer dass ihr Schlüssel auf spezielle Art gebildet wird. Somit können sie auch normale weitere Relationships haben: Rechnung hat Position für Produkt Schwache Entities können selbst Master-Entities für andere schwache Entities sein. Es kann eine ganze Hierarchie von Master-Detail-Relationships geben Aber Zyklen sind verboten. Association-Entities (1) Ein Relationship mit einer viele-zu-viele-beziehung kann in ein Entity umgewandelt werden Das Relationship wird dann zu einem schwachen Entity. Es erbt die Schlüssel der Entity-Typen, die am ursprünglichen Relationship beteiligt sind.

9. Einführung in das Entity-Relationship-Modell 9-57 9. Einführung in das Entity-Relationship-Modell 9-58 Association-Entities (2) Schwache Entities können mehrere Master/Eltern haben: Kino Name zeigt von Vorstellung Zeit Film Titel Im obigen Beispiel besteht der Schlüssel des schwachen Entities Vorstellung aus Name (geerbt von Kino ), Titel (geerbt von Film ) und Zeit. Association-Entities () Relationship: (0, ) Student ID löst Punkte (0, ) Übung Nr Association-Entity (vollkommen äquivalent): (0, ) Student ID hat für Lösung Punkte (0, ) Übung Nr 9. Einführung in das Entity-Relationship-Modell 9-59 9. Einführung in das Entity-Relationship-Modell 9-60 Graphische Syntax (1) Alle Regeln der Folien 9-17 bis 9-19 gelten noch. Name von Attributen (mit Entities verbunden) darf unterstrichen (bei Entity mit einfachem Rand) oder gestrichelt unterstrichen sein (wenn Entity doppelten Rand hat). Graphische Syntax (2) Linien zwischen Entities und Relationships können mit einem Zahlenpaar (n, m) versehen sein, wobei m sein darf. Wenn m nicht ist, muss n m gelten. nicht erlaubt an 1.Stelle, 0 macht an 2.Stelle keinen Sinn. Das sind die einzigen Fälle, in denen Unterstreichen erlaubt ist.

9. Einführung in das Entity-Relationship-Modell 9-61 9. Einführung in das Entity-Relationship-Modell 9-62 Inhalt Geeignete Namen 1. Überblick über den Datenbank-Entwurf 2. Grundlegende ER-Elemente. Integritätsbedingungen: Allg. Bemerkungen Namen sollten selbstdokumentierend sein. Der Zusammenhang zur realen Welt muss klar sein. Wenn nötig, fügt man Kommentare, Erklärungen oder Beispieldaten hinzu. Namen sollten nicht zu lang sein. Namen mit mehr als 15 20 Buchstaben werden unhandlich. 4. Relationship-Arten (Kardinalitäten) 5. Schlüssel, schwache Entities 6. Qualität eines ER-Schemas Für Entity-Typen sollten Substantive verwendet werden. Oft Verben für Relationship-Namen verwendet. Relations Namen (z.b. hält ) sollten sich von links nach rechts und von oben nach unten lesen. 9. Einführung in das Entity-Relationship-Modell 9-6 9. Einführung in das Entity-Relationship-Modell 9-64 Attribut vs. Entity (1) Attribut vs. Entity (2) Manchmal nicht klar, ob neuer Entity-Typ benötigt wird: Vorlesung Nr Titel gehalten von Dozent Name Man könnte den Namen des Dozenten als Attribut für Vorlesung modellieren: Nr Vorlesung DozName Titel Vorteile der Variante mit dem Dozent -Entity: Wenn später mehr Daten über Dozenten gespeichert werden sollen (z.b. Tel.-Nummer), muss das Schema nur wenig geändert werden. Es ist unwahrscheinlicher, dass der gleiche Dozent in verschiedenen Schreibweisen auftaucht (Tippfehler). Natürlich hängt das auch von den Anwendungsprogrammen ab. Aber die Lösung mit DozName als Attribut ist einfacher.

9. Einführung in das Entity-Relationship-Modell 9-65 9. Einführung in das Entity-Relationship-Modell 9-66 Attribut vs. Entity () Redundante Information Im Prinzip kann jedes Attribut in einen eigenen Entity-Typ umgewandelt werden: Dozent Name hat Telefon Nummer Dieser Entwurf wäre nur für die Telefongesellschaft interessant. Ansonsten ist er zu kompliziert. Man vermeide Entity-Typen, die eigentlich nur Datentypwerte sind. Redundante Informationen in einem ER-Schema sind schlecht, weil sie zu unnötigen Komplikationen im konzeptionellen Entwurf führen. Man sollte Attribute, die über ein Relationship erreicht werden können, nicht wiederholen: Vorlesung... DozName gehalten von Dozent... Name