faecher:informatik:oberstufe:datenbanken:er_modelle_praxis: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_praxis:start [20.11.2019 20:53] sbelfaecher:informatik:oberstufe:datenbanken:er_modelle_praxis:start [23.01.2024 09:40] (aktuell) Frank Schiebel
Zeile 5: Zeile 5:
 ==== Primärschlüssel oder "minimale" Schlüssel ==== ==== Primärschlüssel oder "minimale" Schlüssel ====
  
-In einer Datenbank muss jeder Datensatz eindeutig identifizierbar sein. Ein Attribut, anhand dessen man +In einer Datenbank muss jeder Datensatz eindeutig identifizierbar sein. Ein Kombination von Attributen, anhand dessen man 
-einen Datensatz eindeutig finden kann, wird in der Datenbanksprache **Primärschlüssel** oder "minimaler schlüssel"genannt. Eine Tabelle darf nie zwei oder mehr Datensätze enthalten, die den gleichen Primärschlüssel haben. Glücklicherweise +einen Datensatz eindeutig finden kann, wird in der Datenbanksprache **Primärschlüssel** oder "minimaler Schlüssel" genannt. Eine Tabelle darf nie zwei oder mehr Datensätze enthalten, die den gleichen Primärschlüssel haben. 
-überwachen Datenbanksysteme automatisch, dass so etwas nicht auftritt – sofern man es ihnen sagt.+
  
 Wenn man ein oder mehrere Attribute als Primärschlüssel definiert, gibt das Datenbanksystem einen Wenn man ein oder mehrere Attribute als Primärschlüssel definiert, gibt das Datenbanksystem einen
Zeile 15: Zeile 14:
  
 In einer Datenbank bietet es sich häufig an, eine fortlaufende Nummer zu vergeben, die nur innerhalb In einer Datenbank bietet es sich häufig an, eine fortlaufende Nummer zu vergeben, die nur innerhalb
-der Datenbank eine Bedeutung hat (künstlicher Schlüssel oder Surrogatschlüssel). Die Option+der Datenbank eine Bedeutung hat (**künstlicher** Schlüssel oder **Surrogatschlüssel**). Die Option
 //"auto_increment"// sorgt dafür, dass ein neu hinzugefügter Datensatz automatisch die //"auto_increment"// sorgt dafür, dass ein neu hinzugefügter Datensatz automatisch die
 nächste mögliche Nummer bekommt, wenn man keinen Wert für den Primärschlüssel einträgt. nächste mögliche Nummer bekommt, wenn man keinen Wert für den Primärschlüssel einträgt.
Zeile 31: Zeile 30:
  
 ==== Aufgaben ==== ==== Aufgaben ====
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) ===
  
- 
-<WRAP center round box 95%> 
-**Aufgabe 1** 
-\\ 
 Gegeben ist die folgende Schuldatenbank Datenbank mit zwei Tabellen (schueler/lehrer): Gegeben ist die folgende Schuldatenbank Datenbank mit zwei Tabellen (schueler/lehrer):
  
  
-^ schueler                                                                                                ^^^^^^^^ +^ schueler                                                                                                 |||||||| 
-^ SNummer  ^ SNachname  ^ SVorname  ^ SGeburtsdatum  ^ SGeschlecht  ^ SKlasse  ^ SEmail              ^ KLNummer +^ SNummer   ^ SNachname  ^ SVorname  ^ SGeburtsdatum  ^ SGeschlecht  ^ SKlasse  ^ SEmail              ^ KLNummer 
-| 1        | Fischer    | Fritz     | 06.04.1993                  10a    | fritzle@gmx.de      |         +| 1         | Fischer    | Fritz     | 06.04.1993                 7a      | fritzle@gmx.de      |         
-| 2        | Müller     | Martina   | 01.12.1997                   6c    | muellerma@web.de    |         +| 2         | Müller     | Martina   | 01.12.1997                 6c      | muellerma@web.de    |         
-| 3        | Wahnsinn   | Heller    | 05.12.1994                   9b    | hellwa@hotmail.com         +| 3         | Wahnsinn   | Heller    | 05.12.1994                 9b      | hellwa@hotmail.com         
-| 4        | Meyer      | Lischen   | 05.12.1992                  10a    | meli@hotmail.com    |         +| 4         | Meyer      | Lischen   | 05.12.1992                 10a     | meli@hotmail.com    |         
-| 5        | Maier      | Lieschen  | 05.12.1991                  10a    | melie@hotmail.com           |+| 5         | Maier      | Lieschen  | 05.12.1991                 10a     | melie@hotmail.com           |
  
  
Zeile 67: Zeile 65:
   * Könnte man die Datenbank durch Schaffung einer weiteren Entität weiter "modularisieren"? Wenn ja, welche Entität käme in Frage? Wie würden sich die Attribute und Werte der Tabelle ''schueler'' dadurch verändern? Welchen Vorteil könnte es haben, diese Information in eine weitere Tabelle auszulagern?   * Könnte man die Datenbank durch Schaffung einer weiteren Entität weiter "modularisieren"? Wenn ja, welche Entität käme in Frage? Wie würden sich die Attribute und Werte der Tabelle ''schueler'' dadurch verändern? Welchen Vorteil könnte es haben, diese Information in eine weitere Tabelle auszulagern?
  
-</WRAP>+++++ Lösungen | 
 + 
 +++ ER-Diagramm | {{ :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:lsg_a1_erdiagramm.png |}} ++ 
 + 
 +++ Wie wird die Relation hergestellt? | Die Relation wird hergestellt durch Verknüpfung von Fremd-- zu Primärschlüssel. Der Fremdschlüssel ist das Tabellenfeld KLNummer in der Tabelle Schüler, der Primärschlüssel ist das Feld LNummer in der Tabelle lehrer. Die Verknüpfung wird realisisert durch die Bedingung "Ist schuler.KLNummer = lehrer.LNummer?". LNachname ist ungeeignet, da er ziemlich sicher nicht eindeutig ist. (Müller, Maier, Eissler) 
 + 
 +{{ :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:lsg_a1_verkn.png |}} ++ 
 + 
 +++ Eigenschaften des Primärschlüssels/Probleme bei Änderungen | EinNeuer Lehrer muss eine neue LNummer erhalten,die es noch niemals gab. Die LNummer 2 sollte niemals wieder vergeben werden. Wenn die Nummer nicht mehr existiert, erhält man als Ergebnis "existiert nicht", andernfalls erhält man falsche Daten. Idealerweise kann man der Datenbank mitteilen, was mit den zur LNummer 2 gehörenden Fremdschlüssel passieren soll, wenn der Datensatz mit dem Primärschlüssel 2 gelöscht wird. Der Fachbegriff dafür ist "Constraint". ++ 
 + 
 +++ Weitere "Modularisierung" | Man könnte die Klassen als weitere Entität einführen: 
 + 
 +{{ :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:lsg_a1_klassen.png |}} 
 + 
 +In der Tabelle ''schueler'' muss dann anstatt des Klassennamens die ID der Klasse als weiterer Fremdschlüssel eingetragen werden. 
 + 
 +++ 
 +++++ 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A2) ===
  
-<WRAP center round box 95%> 
-**Aufgabe 2**\\ 
  
 Markiere in folgender Übersicht der Datenbank ''webshop'' die minimalen Schlüssel und Fremdschlüssel. Minimale Schlüssel werden unterstrichen, Fremdschlüssel gestrichelt unterstrichen. Markiere in folgender Übersicht der Datenbank ''webshop'' die minimalen Schlüssel und Fremdschlüssel. Minimale Schlüssel werden unterstrichen, Fremdschlüssel gestrichelt unterstrichen.
  
 {{  :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:webshop_er.png?600  |}} {{  :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:webshop_er.png?600  |}}
-</WRAP>+ 
 +Importiere die Datenbank {{ :faecher:informatik:oberstufe:datenbanken:er_modelle_praxis:webshop.zip|webshop}} in deinen mysql-Datenbankbereich. 
 ===== Dateien ===== ===== Dateien =====
 +
 +
 {{simplefilelist>.:*}} {{simplefilelist>.:*}}
  • faecher/informatik/oberstufe/datenbanken/er_modelle_praxis/start.1574279586.txt.gz
  • Zuletzt geändert: 20.11.2019 20:53
  • von sbel