faecher:informatik:oberstufe:datenbanken:er_modelle:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:er_modelle:start [21.10.2020 14:11] sbelfaecher:informatik:oberstufe:datenbanken:er_modelle:start [28.11.2024 18:24] (aktuell) – [Material] Frank Schiebel
Zeile 3: Zeile 3:
 Das Entity-Relationship-Modell (ERM oder ER-Modell) ist das heute mit am weitesten verbreitete Datenmodell. Der Einsatz von ER-Modellen ist der De-facto-Standard für die Datenmodellierung, auch wenn es unterschiedliche grafische Darstellungsformen für Datenmodelle gibt. Das Entity-Relationship-Modell (ERM oder ER-Modell) ist das heute mit am weitesten verbreitete Datenmodell. Der Einsatz von ER-Modellen ist der De-facto-Standard für die Datenmodellierung, auch wenn es unterschiedliche grafische Darstellungsformen für Datenmodelle gibt.
  
-In der Datenbank wird ein Ausschnitt der Realität abgebildet oder modelliert. Da die Realität eine überschaubare Anzahl von Möglichkeiten und Randbedingungen beinhaltet ist bei der Beschreibung dieses Ausschnitts eine Beschränkung auf die wichtigsten oder interessantesten Objekte der Realität und ihre Beziehungen untereinander sinnvoll. Wir erzeugen dadurch einen Ausschnitt der realen Welteine "Miniwelt".+In der Datenbank wird ein Ausschnitt der Realität abgebildet oder modelliert. Da die Realität eine überschaubare Anzahl von Möglichkeiten und Randbedingungen beinhaltetist bei der Beschreibung dieses Ausschnitts eine Beschränkung auf die wichtigsten oder interessantesten Objekte der Realität und ihre Beziehungen untereinander sinnvoll. Wir erzeugen dadurch einen Ausschnitt der realen Welt eine "Miniwelt".
  
 Eine Datenbank verknüpft verschiedene **Entitäten** der Miniwelt auf logische Weise, stellt also die **Beziehungen** zwischen den Entitäten dar. Eine Entität ist dabei ein Objekt  der Minwelt, das verschiedenen Eigenschaften haben kann - diese Eigenschaften nennt man **Attribute** der Entität. Eine Datenbank verknüpft verschiedene **Entitäten** der Miniwelt auf logische Weise, stellt also die **Beziehungen** zwischen den Entitäten dar. Eine Entität ist dabei ein Objekt  der Minwelt, das verschiedenen Eigenschaften haben kann - diese Eigenschaften nennt man **Attribute** der Entität.
  
-Im folgenden Beispiel sind die Entitäten "Schüler" und "Lehrer", dargestellt im folgenden **Entity-Relations-Diagram** (ER-Diagramm). Unterschlagen werden dabei Aspekte der Realität wie "Schüler findet Lehrer doof", "Lehrer schreibt schwere Klasssenarbeiten" und der Umsatnd, dass in der realen Welt Eltern existieren. Je nach dem Zweck den,eine Datenbank erfüllen soll, werden anderen Aspekte der Realität in der Miniwelt abgebildet und in das Modell übernommen.+Im folgenden Beispiel sind die Entitäten "Schüler" und "Lehrer", dargestellt im folgenden **Entity-Relations-Diagram** (ER-Diagramm). Unterschlagen werden dabei Aspekte der Realität wie "Schüler findet Lehrer doof", "Lehrer schreibt schwere Klasssenarbeiten" und der Umsatnd, dass in der realen Welt Eltern existieren. Je nach dem Zweck, den eine Datenbank erfüllen soll, werden anderen Aspekte der Realität in der Miniwelt abgebildet und in das Modell übernommen.
  
 {{ .:erd.png |}} {{ .:erd.png |}}
  
-//"Jeder Schüler hat genau einen Klassenlehrer"// ist hier die Beziehung zwischen den Entitäten "Schüler" und "Lehrer". Da jeder Schüler nur genau einen Klassenlehrer hat, spricht man hier von einer **N:1 Relation** ("Viele zu Eins") zwischen den Entitäten "Schüler" und "Lehrer".+//"Jeder Schüler hat genau einen Klassenlehrer"// ist hier die Beziehung zwischen den Entitäten "Schüler" und "Lehrer". Umgekehrt gilt hingegen //"Jeder Klassenlehrer hat viele Schüler"//. Da jeder Schüler nur genau einen Klassenlehrer hat, spricht man hier von einer **N:1 Relation** ("Viele zu Eins") zwischen den Entitäten "Schüler" und "Lehrer".
  
-Insgesamt gibt es nur **vier** Beziehungen zwischen Entitäten+Insgesamt gibt es nur **drei** Beziehungen zwischen Entitäten, der Fachbegriff ist "Kardinalität"
  
   - 1:1 - Beziehung   - 1:1 - Beziehung
-  - 1:N - Beziehung +  - 1:N - Beziehung (oder anders herum)
-  - N:1 - Beziehung (Umkehrung zu 1:N)+
   - N:M - Beziehung   - N:M - Beziehung
  
- 
-{{.:er-modell.pdf|Übersicht zum ER-Modell}} 
  
 ==== Aufgaben ==== ==== Aufgaben ====
Zeile 33: Zeile 30:
   * Ergänze die Schulverwaltungsdatenbank durch eine weitere Entität, die mit mindestens einer der beiden vorgegebenen in einer Beziehung steht.   * Ergänze die Schulverwaltungsdatenbank durch eine weitere Entität, die mit mindestens einer der beiden vorgegebenen in einer Beziehung steht.
   * Zeichne ein ER-Diagramm für deine "neue" Schulverwaltungsdatenbank   * Zeichne ein ER-Diagramm für deine "neue" Schulverwaltungsdatenbank
 +
 +++++ Lösungsvorschlag | Hier gibt es zahlreiche richtige Lösungen. Eine denkbare Möglichkeit sieht so aus:
 +{{ :faecher:informatik:oberstufe:datenbanken:er_modelle:erd_schule_erweitert.drawio.png |}}
 +
 +Die Beziehungskardinalität zwischen Lehrern und Klassen kann natürlich anders formuliert werden und/oder anders aussehen, je nachdem, ob ein Lehrer z.B. Klassenlehrer in mehr als einer Klasse sein kann - oder man die Beziehung allgemeiner formuliert als "unterrichtet in". Ultimativ ist auch beides denkbar: 
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:er_modelle:erd_schule_variante2.drawio.png?400 |}}
 +++++
  
 ---- ----
Zeile 42: Zeile 47:
 Beispiel: {{.:er1.jpg?600|}} \\  Beispiel: {{.:er1.jpg?600|}} \\ 
 Lösung:\\  Lösung:\\ 
-Ein Lehrer ist Klassenlehrer von vielen Schülern => 1:N \\  +Ein Lehrer ist Klassenlehrer von vielen Schülern -> 1:N \\  
-(anders als oben: jeder Schüler hat genau einen Klassenlehrer => N:1) \\ +(anders als oben: jeder Schüler hat genau einen Klassenlehrer -> N:1) \\ 
  
 Diagramm 1: {{.:er2.jpg?600|}} \\  Diagramm 1: {{.:er2.jpg?600|}} \\ 
  
-Diagramm 2: {{.:er3.jpg?600|}} \\ +Diagramm 2: {{.:er4.jpg?600|}} \\ 
  
-Diagramm 3: {{.:er4.jpg?600|}} \\ +Diagramm 3: {{.:er3.jpg?600|}} \\ 
  
  
-===Versuche den Beziehungstyp von der sprachlichen Umschreibung abzuleiten=== 
  
-a) „Eine Bestellung kann verschiedene Produkte enthalten“ \\  +---- 
-Diagramm 4: {{.:er5.jpg?600|}} +{{:aufgabe.png?nolink  |}} 
- +=== (A3===
-b„Neben normalen Kunden kann die Datenbank auch Kunden enthalten, die noch nichts bestellt haben“+
  
-==== Übung 3 ==== +Modelliere die folgenden Situationen in je einem ER-Diagramm: Welche Beziehung besteht zwischen den Entitäten, welche Attribute haben die Entitäten?
- +
-<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** ER-Diagramme> +
-Modelliere die folgenden Situationen in einem ER-Diagramm: Welche Beziehung besteht zwischen den Entitäten, welche Attribute haben die Entitäten?+
   * Schüler (Vorname, Name) erhalten Zeugnisse. Die Zeugnisse enthalten eine Bemerkung über Mitarbeit und Verhalten und die Fachnoten.    * Schüler (Vorname, Name) erhalten Zeugnisse. Die Zeugnisse enthalten eine Bemerkung über Mitarbeit und Verhalten und die Fachnoten. 
   * Zu einer gespeicherten Sammlung von Digitalfotos, deren Datum und Auflösung bekannt ist, soll ein Stichwortverzeichnis angelegt werden.    * Zu einer gespeicherten Sammlung von Digitalfotos, deren Datum und Auflösung bekannt ist, soll ein Stichwortverzeichnis angelegt werden. 
   * CDs (Titel, ISBN-Nummer) sind von bestimmten Interpreten (Name) und enthalten Songs (Titel). (3 Entitäten!)   * CDs (Titel, ISBN-Nummer) sind von bestimmten Interpreten (Name) und enthalten Songs (Titel). (3 Entitäten!)
-</box> 
  
-  +---- 
-==== Übung 4 ====+{{:aufgabe.png?nolink  |}} 
 +=== (A4) === 
 + 
 +Erweitere die Entitäten im Webshop in deinem Datenbankmanagementprogramm um weitere Attribute, indem du Felder in vorhandene Tabellen hinzufügst. Füge neue Entitäten hinzu, indem du neue Tabellen anlegst. Informiere dich in einer Internetrecherche über die möglichen Feldtypen in deinem Datenbanksystem (mysql/sqlite), überlege, welche Typen für deine Ideen jeweils geeignet sind. 
 + 
 +==== Material ====
  
-<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** ER-Diagramme> +[[https://slides.info-bw.de/fs-wiki-db-er-modelle-1/|Präsentation: Modellierung mit ER-Modellen]] [[https://slides.info-bw.de/fs-wiki-db-er-modelle-1/?print-pdf|(PDF)]]((Link öffnen, dann aus dem Browser in ein PDF drucken)) [[https://codeberg.org/slides-fs/fs-wiki-db-er-modelle-1|(Code)]]
-Erweitere die Entitäten in deiner Bücherdatenbank in mysql um weitere Attribute indem du Felder in vorhandene Tabellen hinzufügstFüge neue Entitäten hinzu, indem du neue Tabellen anlegstInformiere dich in einer Internetrecherche über die möglichen Feldtypen in mysql und halte die wichtigsten auf deiner Wiki-Seite fest. +
-</box>+
  
  • faecher/informatik/oberstufe/datenbanken/er_modelle/start.1603289502.txt.gz
  • Zuletzt geändert: 21.10.2020 14:11
  • von sbel