Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
planung:datenbanken [2023/06/05 08:58] marrocplanung:datenbanken [2023/06/05 22:16] (aktuell) marroc
Zeile 164: Zeile 164:
  
 Die Assoziationen (teilweise auch Kardinalität genannt) gibt es verschiedene Typen. Die Assoziationen (teilweise auch Kardinalität genannt) gibt es verschiedene Typen.
-  * **Einfache Assoziation:** jeder Entität wird wieder "genau eine" Entität zugeordnen, gewissermassen eine **1:1 Beziehung**. \\ Beispiel 1:Ein Land hat genau eine Hauptstadt. Eine Hauptstadt kann genau einem Land zugeordent werden. \\ Beispiel 2: Jeder Schüler hat einen Wiki-Login-Name. Ein Wiki-Login-Name kann einem Schüler zugeornet werden.+  * **Einfache Assoziation:** jeder Entität wird wieder "genau eine" Entität zugeordnen, gewissermassen eine **1:1 Beziehung**. \\ Beispiel 1:Ein Land hat genau eine Hauptstadt. Eine Hauptstadt kann genau einem Land zugeordent werden. \\ Beispiel 2: Jeder Schüler hat einen Instahub. Ein Instahub kann einem Schüler zugeornet werden.
   * **Konditionelle Assoziation**: jeder Entität wird höchstens eine Entität zugeordnet, eine keins-oder-eins Beziehung. \\ Beispiel 1: Ein (schweizer) Staatsangehöriger hat genau einen oder keinen (schweizer) Reisepass. Jeder Reisepass gehört einem Staatsangehörigen \\ Beispiel 2: Jedes Englischbuch im Klassenzimmer gehört einem Lernenden bzw. einer Lernenden. Nicht unbedingt jeder Lernende muss sein Englischbuch im Klassenzimmer dabei haben.   * **Konditionelle Assoziation**: jeder Entität wird höchstens eine Entität zugeordnet, eine keins-oder-eins Beziehung. \\ Beispiel 1: Ein (schweizer) Staatsangehöriger hat genau einen oder keinen (schweizer) Reisepass. Jeder Reisepass gehört einem Staatsangehörigen \\ Beispiel 2: Jedes Englischbuch im Klassenzimmer gehört einem Lernenden bzw. einer Lernenden. Nicht unbedingt jeder Lernende muss sein Englischbuch im Klassenzimmer dabei haben.
   * **Mehrfache Assoziation**: jeder Entität werden "mehrere" Entitäten zugeordnet. Diese Beziehung ist eine mehr-zu-mehr-Beziehung und wird oft als komplex bezeichnet. Oft spricht man hier auch von einer m:n Beziehung. \\ Beispiel 1 einer n:m Beziehung: Im Sozalen Netzwerk können mehrer User mehrere Bilder kommentieren. \\ Beispiel 2 einer 1:n Bezieung: Ein bestimmtes Kunstwerk (Bild) kann nur in einem Museum gleichzeitig ausgestellt werden, jedoch hat ein Museum mehrere Kunstwerke ausgestellt.   * **Mehrfache Assoziation**: jeder Entität werden "mehrere" Entitäten zugeordnet. Diese Beziehung ist eine mehr-zu-mehr-Beziehung und wird oft als komplex bezeichnet. Oft spricht man hier auch von einer m:n Beziehung. \\ Beispiel 1 einer n:m Beziehung: Im Sozalen Netzwerk können mehrer User mehrere Bilder kommentieren. \\ Beispiel 2 einer 1:n Bezieung: Ein bestimmtes Kunstwerk (Bild) kann nur in einem Museum gleichzeitig ausgestellt werden, jedoch hat ein Museum mehrere Kunstwerke ausgestellt.
Zeile 188: Zeile 188:
  
  
-<WRAP nicebox blue>+<WRAP nicebox green>
 ** ERM - Aufgabe ** \\ ** ERM - Aufgabe ** \\
 Erstellen Sie ein ERM zum folgenden Szenario. Dies wird sicher am einfachsten auf Papier erstellt. Indentifizieren Sie die Primär- und Fremdschlüssel, bestimmen Sie die jeweiligen Entitätsbeziehungen und erstellen Sie ein Diagramm. Achtung, vermutlich braucht dies auch etwas Platz! Erstellen Sie ein ERM zum folgenden Szenario. Dies wird sicher am einfachsten auf Papier erstellt. Indentifizieren Sie die Primär- und Fremdschlüssel, bestimmen Sie die jeweiligen Entitätsbeziehungen und erstellen Sie ein Diagramm. Achtung, vermutlich braucht dies auch etwas Platz!
Zeile 204: Zeile 204:
  
 ==== Abbildungsregeln für die drei Beziehungstypen ==== ==== Abbildungsregeln für die drei Beziehungstypen ====
 +Eine relationale Datenbank besteht somit aus mehreren untereinander in Beziehung stehenden Tabellen. Beim Entwerfen solcher gut funktionierender Datenbanken sind Regeln zu beachten, mit denen innerhalb von Tabellen Abhängigkeiten freigelegt werden könne und so redundante Information (Anomalien) vermieden werden können. 
 +
 === Abbildungsregel für 1:1 Beziehungen - KANN-Regel === === Abbildungsregel für 1:1 Beziehungen - KANN-Regel ===
-Die **KANN-Regel** bedeutet, dass man bei einer einfach-zu-einfach Beziehung Tabellen erstellen kann, aber nicht miss. Man kann also 2 Tabellen erstellen, wobei es keine Rolle spielt, ob man (in diesem Beispiel Land bei Hauptstadt als Fremdschlüssel definiert oder umgekehrt Hauptstadt bei Land als Fremdschlüssel definiert). \\  +Die **KANN-Regel** bedeutet, dass man bei einer einfach-zu-einfach Beziehung zwei Tabellen erstellen kann, aber nicht miss. Es spielt keine Rolle, ob man (im Beispiel Land-Hauptstadt bei der Land-Tabelle die Hauptstadt als Fremdschlüssel definiert oder umgekehrt bei der Hauptstadt-Tabelle das Land als Fremdschlüssel definiert). \\ 
- +
-Alternativ ist es hier aber auch möglich, nur 1 Tabelle zu erstellen, die alle Länder und Hauptstädte enthält. In diesem Fall braucht man keinen Fremdschlüssel für diese Beziehung!\\ +
  
 +Alternativ ist es hier aber auch möglich, nur 1 Tabelle zu erstellen, die alle Länder und Hauptstädte enthält. Natürlich braucht es in diesem Fall keinen Fremdschlüssel mehr, jedoch nach wie vor einen Primärschlüssel.
 +----
  
 === Abbildungsregel - MUSS-Regel für einfach-mehrfache Beziehungen === === Abbildungsregel - MUSS-Regel für einfach-mehrfache Beziehungen ===
Zeile 216: Zeile 217:
  
 **Beispiel einer einfach-zu-mehrfachen-Beziehung**\\  **Beispiel einer einfach-zu-mehrfachen-Beziehung**\\ 
-Jeder Auftrag (zum Beispiel Bestellung) gehört zu genau 1 Kunden, während jeder Kunde mehrere Bestellungen tätigen kann (siehe Video weiter oben)+Jeder Auftrag (zum Beispiel Bestellung-Kunden-Firma im Video) gehört zu genau 1 Kunden, während jeder Kunde mehrere Bestellungen tätigen kann. 
-<WRAP nice green box> +---- 
-**Auftrag:** \\ +
-Zeichnen Sie kurz das ERM mit Kunde Bestellungen und diskutieren Sie zu zweit die Beziehungen und die oben beschriebenen Regeln für dieses Beispiel. +
-</WRAP>+
 === Abbildungsregeln - MUSS-Regel für komplexe Beziehungen === === Abbildungsregeln - MUSS-Regel für komplexe Beziehungen ===
  
-Die **MUSS-Regel für komplexe Beziehungen** bedeutet, dass man bei komplexen (mehrfach-zu-mehrfach, also n:m) Beziehungen für jede der beiden Entitäten eine Tabelle braucht und __zusätzlich__ für die Beziehung selber eine eigene / weitere / dritte Tabelle erstellen muss. In der dritten Tabelle müssen beide Fremdschlüssel (für beide Entitäten) enthalten sein. Der Primärschlüssel der dritten Tabelle wird aus den beiden Fremdschlüsseln der anderen Tabellen zusammengesetzt.  +Die **MUSS-Regel für komplexe Beziehungen** bedeutet, dass man bei komplexen (mehrfach-zu-mehrfach, also n:m) Beziehungen für jede der beiden Entitäten eine Tabelle braucht und __zusätzlich__ für die Beziehung selber eine eigene / weitere / dritte Tabelle erstellen muss. In der dritten Tabelle müssen beide Fremdschlüssel (für beide Entitäten) enthalten sein. Der Primärschlüssel der dritten Tabelle wird aus den beiden Fremdschlüsseln der anderen Tabellen zusammengesetzt. \\  
-<WRAP nice green box> +Hier kann unser Beispiel vom Anfang mit den Instahub User Photos - Kommentaren genannt werden.
-**Auftrag:** \\ +
-Besprechen Sie kurz zu zweit diese "Muss-Regel" für unser Instahub-Beispiel und auch für die Zoo Aufgabe. +
-</WRAP>+
  
 +----
 +<WRAP nicebox green>
 +**Auftrag ERM und die Regeln :** \\
 +  - Besprechen Sie kurz zu zweit diese genannten Regeln für unser Instahub-Beispiel und auch für die Zoo Aufgabe. Entwerfen Sie so die Datenbank in groben Zügen (Wie viele Tabelle, welche Attribute, ...)
 +  - Füllen Sie die folgenden Begriffe in das leere ERM und bestimmen Sie die Kardinalitäten. Ergänzen Sie das ERM durch einige wenige Attribute. ERklären Sie in groben Zügen die Struktur der Datenbank, unter Beachtung der oben formulierten Regeln.
 +</WRAP>
 ====== Einführung in SQL ====== ====== Einführung in SQL ======
 Stuctured Quere Language (SQL) ist eine standardisierte Abfrage-Sprache um Daten in Datenbanken zu speichern, zu manipulieren und herauszufiltern (zu erhalten). \\ Stuctured Quere Language (SQL) ist eine standardisierte Abfrage-Sprache um Daten in Datenbanken zu speichern, zu manipulieren und herauszufiltern (zu erhalten). \\
Zeile 276: Zeile 278:
 FROM users FROM users
 WHERE username LIKE "S%" WHERE username LIKE "S%"
 +</code>
 +
 +2. Aufgabe
 +<code SLQ>
 +SELECT username
 +FROM users
 +WHERE gender = "male"
 +</code>
 +
 +3. Aufgabe
 +<code SLQ>
 +
 </code> </code>
 </panel> </panel>
  • planung/datenbanken.1685948318.txt.gz
  • Zuletzt geändert: 2023/06/05 08:58
  • von marroc