Organisatorisches SQL Datenbanken Unit 2: Das ER-Modell Ronald Ortner 28. II. 2017 Ronald Ortner Das Entity-Relationship Modell Organisatorisches SQL Outline 1 Organisatorisches 2 SQL 3 Das Entity-Relationship Modell Grundbegriffe Relationen Ronald Ortner Das Entity-Relationship Modell Organisatorisches SQL Das Entity-Relationship Modell Termin erster Zwischentest UE-Tests (Thema: SQL) erster Zwischentests am 17. Mai (zur Übungszeit) ... ... oder besser schon am 10. Mai? Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Übungsbeispiele Einige Beispiele sind nicht einzusenden und nur vorzubereiten. Diese Beispiele zählen genauso wie die anderen Beispiele ( Kreuzerlliste). Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Wissensüberprüfung am PC SQL Handouts erlaubt Abgabe über MUL-Upload-Client mit Rückmeldung über Korrektheit Jedes Beispiel kann nur einmal eingesandet werden! 5 Punkte für korrektes Beispiel, 0 Punkte für falsches Beispiel Aber: Bis zu dreimal im Semester sehe ich mir falsche Beispiele an und vergebe Punkte. (im wesentlichen korrekte Lösungen, z.B. Spalten vertauscht, verringern “Credits” nicht.) Sie müssen selbst nach der Abgabe entscheiden, ob ich mir ein vom Abgabesystem als falsch eingestuftes Beispiel ansehen soll. Ronald Ortner Organisatorisches SQL Probleme Installation MySQL, SQLYog, Datenbanken Übungsaufgaben sonstige Fragen Ronald Ortner Das Entity-Relationship Modell Organisatorisches SQL SQL-Lesson 2 Heute: String- und Aggregatfunktionen Ronald Ortner Das Entity-Relationship Modell Organisatorisches SQL Grundbegriffe Outline 1 Organisatorisches 2 SQL 3 Das Entity-Relationship Modell Grundbegriffe Relationen Ronald Ortner Das Entity-Relationship Modell Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Das ER Modell – Grundbegriffe Wir beginnen mit Entitäten und Relationen zwischen Entitäten: Entität: Objekt Relation: Beziehung zwischen mehreren Entitäten Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Das ER Modell – Grundbegriffe Wir beginnen mit Entitäten und Relationen zwischen Entitäten: Entität: Objekt Relation: Beziehung zwischen mehreren Entitäten Beispiele: Entitäten: Ronald Ortner, der Papst, diese Vorlesung, das Lieblingsbuch des Papstes, die Abschlussprüfung für diese VO, die Note “Sehr gut” Relations: Ronald Ortner kennt den Papst. Ronald Ortner besitzt das Lieblingsbuch des Papstes. Der Papst besucht diese Vorlesung. Ronald Ortner beurteilt den Papst in der Abschlussprüfung für diese VO mit der Note “Sehr gut”. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Das ER Modell – Grundbegriffe II Abstraktion von Entitäten und Relationen: Entitätstyp: Abstraktion von ähnlichen Entitäten Relationstyp: Abstraktion von ähnlichen Relationen Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Das ER Modell – Grundbegriffe II Abstraktion von Entitäten und Relationen: Entitätstyp: Abstraktion von ähnlichen Entitäten Relationstyp: Abstraktion von ähnlichen Relationen Beispiele: Entitätstypen: Dinge (Ronald Ortners Lieblingsbuch, diese VO, die Abschlussprüfung für diese VO, die Note “Sehr gut” ) Personen (Ronald Ortner, der Papst) Studenten (Franz Huber) Angestellte der MUL (Ronald Ortner) Relationstypen: kennen besitzen besuchen (Lehrveranstaltung) Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe ER Diagramme Entitäten und Relationen können in ER Diagrammen dargestellt werden: Entitätstypen werden als Rechtecke dargestellt. Relationstypen werden als Rauten dargestellt. Examples: Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Das ER Modell – Grundbegriffe III Attribute sind Eigenschaften von Entitäts- oder Relationstypen: Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Das ER Modell – Grundbegriffe III Attribute sind Eigenschaften von Entitäts- oder Relationstypen: Beispiele: Attribute von Personen: Vorname, Nachname, Geburtstag, Nationalität, ... Attribute von Autos: Farbe, Modell, Kennzeichen, Fahrgestellnummer, ... Attribute von Lehrveranstaltungen: Lva-Nummer, Teilnehmer, Semester, ... Attribute der Relation “besuchen”: Datum, ... Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe ER Diagramme II Attribute werden im ER Diagramm als Ellipsen dargestellt: Eigenschaften von Entitäten: Eigenschaften von Relationen: Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Grundbegriffe Schlüssel Definition Schlüssel: Menge von Attributen, die eine Entität eindeutig bestimmen Kandidatenschlüssel: minimaler Schlüssel (ein Schlüssel, aus dem kein Attribut entfernt werden kann → im allgemeinen nicht eindeutig) Primärschlüssel: ein beliebig gewählter Kandidatenschlüssel Beispiele: Die Matrikelnummer bestimmt einen Studenten eindeutig. Die Sozialversicherungsnummer bestimmt eine Person eindeutig. Das Kennzeichen, das Land und der Zeitpunkt bestimmen eindeutig ein Auto. Ronald Ortner Organisatorisches SQL Relationen Outline 1 Organisatorisches 2 SQL 3 Das Entity-Relationship Modell Grundbegriffe Relationen Ronald Ortner Das Entity-Relationship Modell Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Darstellung von Eigenschaften Beispiel: Eigenschaft ’ist ein Schauspieler’: Robert de Niro ist ein Schauspieler. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Darstellung von Eigenschaften Beispiel: Eigenschaft ’ist ein Schauspieler’: Robert de Niro ist ein Schauspieler. Wir sagen: Robert de Niro ist Element der Menge aller Schauspieler. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Darstellung von Eigenschaften Beispiel: Eigenschaft ’ist ein Schauspieler’: Robert de Niro ist ein Schauspieler. Wir sagen: Robert de Niro ist Element der Menge aller Schauspieler. Allgemein: Wir können eine Eigenschaft P mit der Menge all jener Objekte identifizieren, die die Eigenschaft P besitzen. Zum Beispiel: ’ist ein Schauspieler’ = x | x ist ein Schauspieler = Robert de Niro, Brad Pitt, Tom Cruise, . . . Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Darstellung von Relationen Beispiel: Relation ’lieben’: Romeo liebt Julia. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Darstellung von Relationen Beispiel: Relation ’lieben’: Romeo liebt Julia. Wir sagen: Das Tupel (Romeo, Julia) erfüllt die Relation ’lieben’. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Darstellung von Relationen Beispiel: Relation ’lieben’: Romeo liebt Julia. Wir sagen: Das Tupel (Romeo, Julia) erfüllt die Relation ’lieben’. Allgemein: Wir können eine Relation R mit der Menge aller Tupel von Objekten identifizieren, die die Relation R erfüllen. Ronald Ortner ’lieben’ = = (x, y ) | x liebt y (Romeo, Julia), (Julia, Romeo), (Narziss, Narziss), . . . Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Repräsentation von Relationen ’lieben’ = (x, y ) | x liebt y Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Mathematische Repräsentation von Relationen ’lieben’ = (x, y ) | x liebt y ⊆ P × P, wobei × das Cartesische Produkt bezeichnet und P die Menge aller Personen ist. Definition (Relation) Eine Relation R zwischen Entitätstypen E1 , E2 , . . . , En ist eine Teilmenge von E1 × E2 × . . . × En . Beispiel: ’besitzen’ ist eine Teilmenge von P × D, wobei D die Menge aller Dinge ist. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – 1 : 1-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (1 : 1-Relation) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist 1 : 1, wenn es für jede Entität e1 in E1 höchstens eine Entität e2 in E2 mit (e1 , e2 ) ∈ R gibt und umgekehrt. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – 1 : 1-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (1 : 1-Relation) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist 1 : 1, wenn es für jede Entität e1 in E1 höchstens eine Entität e2 in E2 mit (e1 , e2 ) ∈ R gibt und umgekehrt. Beispiele: ’ist verheiratet mit’, ’hat Sozialversicherungsnummer’, ’hat Matrikelnummer’ Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – 1 : 1-Relationen Definition (1 : 1-Relation) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist 1 : 1, wenn es für jede Entität e1 in E1 höchstens eine Entität e2 in E2 mit (e1 , e2 ) ∈ R gibt und umgekehrt. Beispiele: ’ist verheiratet mit’, ’hat Sozialversicherungsnummer’, ’hat Matrikelnummer’ NB: Für eine Entität e1 in E1 kann es auch kein entsprechendes e2 in E2 mit (e1 , e2 ) ∈ R geben, ähnlich für Entitäten e2 ∈ E2 . (Z.B. ist ’verheiratet’ eine 1:1-Relation, obwohl es unverheiratete Personen gibt!) Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – 1 : N-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (1 : N Relationship) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist 1 : N, wenn es für eine Entität e1 in E1 mehrere Entitäten e2 in E2 mit (e1 , e2 ) ∈ R geben kann, aber für jede Entität e2 in E2 gibt es höchstens eine Entität e1 in E1 mit (e1 , e2 ) ∈ R. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – 1 : N-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (1 : N Relationship) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist 1 : N, wenn es für eine Entität e1 in E1 mehrere Entitäten e2 in E2 mit (e1 , e2 ) ∈ R geben kann, aber für jede Entität e2 in E2 gibt es höchstens eine Entität e1 in E1 mit (e1 , e2 ) ∈ R. Beispiele: ’anstellen’, ’Mutter sein von’, ’besitzen’ Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – 1 : N-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (1 : N Relationship) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist 1 : N, wenn es für eine Entität e1 in E1 mehrere Entitäten e2 in E2 mit (e1 , e2 ) ∈ R geben kann, aber für jede Entität e2 in E2 gibt es höchstens eine Entität e1 in E1 mit (e1 , e2 ) ∈ R. Beispiele: ’anstellen’, ’Mutter sein von’, ’besitzen’ NB: Wieder kann es Entitäten in E1 (oder E2 ) geben, die an der Relation nicht ’teilnehmen’. (z.B: arbeitslose, kinderlose Personen usw.) Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – N : M-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (N : M Relationship) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist N : M, wenn es für jede Entität e1 in E1 mehrere Entitäten e2 in E2 mit (e1 , e2 ) ∈ R geben kann und umgekehrt. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – N : M-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (N : M Relationship) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist N : M, wenn es für jede Entität e1 in E1 mehrere Entitäten e2 in E2 mit (e1 , e2 ) ∈ R geben kann und umgekehrt. Beispiele: ’besuchen (Lehrveranstaltung)’, ’mögen’, ’verwandt sein mit’ Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Klassifikation von Relationstypen – N : M-Relationen Es gibt drei verschiedene Klassen von binären Relationen zwischen Entitätstypen E1 und E2 : Definition (N : M Relationship) Eine binäre Relation R zwischen Entitätstypen E1 und E2 ist N : M, wenn es für jede Entität e1 in E1 mehrere Entitäten e2 in E2 mit (e1 , e2 ) ∈ R geben kann und umgekehrt. Beispiele: ’besuchen (Lehrveranstaltung)’, ’mögen’, ’verwandt sein mit’ NB: Wieder kann es Entitäten in E1 (oder E2 ) geben, die an der Relation nicht ’teilnehmen’. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen 1 : 1 und 1 : N-Relationen als Partielle Funktionen Jede 1 : 1-Relation R zwischen Entitätstypen E1 und E2 entspricht einem Paar von partiellen Funktionen f : E1 → E2 , f −1 : E2 → E1 . Beispiel: Relation ’ist verheiratet mit’ Funktion Ehemann: Pweiblich → Pmaennlich Funktion Ehefrau: Pmaennlich → Pweiblich Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen 1 : 1 und 1 : N-Relationen als Partielle Funktionen Jede 1 : 1-Relation R zwischen Entitätstypen E1 und E2 entspricht einem Paar von partiellen Funktionen f : E1 → E2 , f −1 : E2 → E1 . Beispiel: Relation ’ist verheiratet mit’ Funktion Ehemann: Pweiblich → Pmaennlich Funktion Ehefrau: Pmaennlich → Pweiblich Jede 1 : N-Relation zwischen E1 und E2 entspricht einer partiellen Funktion f : E2 → E1 . Beispiel: Relation ’ist Mutter von’ Funktion Mutter : P → Pweiblich Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Verallgemeinerung auf n-stellige Relationen Für Relationen zwischen Entitätstypen E1 , E2 , . . . , En kann man die obigen Definitionen wie folgt verallgemeinern. Z.B.: Eine ternäre Relation zwischen E1 , E2 , E3 ist 1 : 1 : N, wenn f1 : E2 × E3 → E1 eine partielle Funktion ist. f2 : E1 × E3 → E2 eine partielle Funktion ist. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Verallgemeinerung auf n-stellige Relationen Eine ternäre Relation zwischen E1 , E2 , E3 ist 1 : 1 : N, wenn f1 : E2 × E3 → E1 eine partielle Funktion ist. f2 : E1 × E3 → E2 eine partielle Funktion ist. Beispiel: Die Relation ’_ betreut Abschlussarbeit über _ von _’ zwischen Entitätstypen Professoren, Themen, und Studenten ist 1 : 1 : N, wenn: • Für jeden Studenten und jedes Thema gibt es nur einen betreuenden Professor. • Für jeden Professor und jeden Studenten gibt es nur ein Thema. • Jedoch kann ein Professor ein Thema mehrmals an Studenten vergeben. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Verallgemeinerung auf n-stellige Relationen Für Relationen zwischen Entitätstypen E1 , E2 , . . . , En kann man die obigen Definitionen wie folgt verallgemeinern. Eine ternäre Relation zwischen E1 , E2 , E3 ist 1 : N : M, wenn f1 : E2 × E3 → E1 eine partielle Funktion ist. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Verallgemeinerung auf n-stellige Relationen Für Relationen zwischen Entitätstypen E1 , E2 , . . . , En kann man die obigen Definitionen wie folgt verallgemeinern. Eine ternäre Relation zwischen E1 , E2 , E3 ist 1 : N : M, wenn f1 : E2 × E3 → E1 eine partielle Funktion ist. Beispiel: Die Relation ’_legt eine Prüfung für die VO _ gehalten von _’ zwischen Entitätstypen Studenten, Vorlesungen und Professoren ist N : M : 1, wenn: • Für jeden Studenten und jede Vorlesung gibt es nur einen Professor, bei dem der Student die Prüfung ablegen kann. Ronald Ortner Organisatorisches SQL Das Entity-Relationship Modell Relationen Die (min,max)-Notation Die Definition von 1 : 1, 1 : N und N : M-Relationen kann folgendermaßen verallgemeinert werden: Für eine Relation R zwischen E1 und E2 : Gegeben ein e1 in E1 , was ist die minimale Anzahl von Entitäten e2 in E2 mit (e1 , e2 ) ∈ R? (→ min) Gegeben ein e1 in E1 , was ist die maximale Anzahl von Entitäten e2 in E2 mit (e1 , e2 ) ∈ R? (→ max) Unterschied zu 1 : 1, 1 : N, N : M Definition: min kann 0 sein, max kann beliebig groß sein (→ max:=?). Ronald Ortner