faecher:informatik:oberstufe:datenbanken:normalisierung:2_normalform: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:normalisierung:2_normalform:start [25.11.2020 18:56] – [Grundsatz: Eine Entität - eine Tabelle] sbelfaecher:informatik:oberstufe:datenbanken:normalisierung:2_normalform:start [04.12.2024 11:39] (aktuell) Marco Kuemmel
Zeile 24: Zeile 24:
      - Wenn alle Werte überführt sind, fügst du jeder Tabelle noch eine Feld ''id'' als Surrogatschlüssel hinzu (Primary-Key, Auto-Increment).      - Wenn alle Werte überführt sind, fügst du jeder Tabelle noch eine Feld ''id'' als Surrogatschlüssel hinzu (Primary-Key, Auto-Increment).
   * Zwei Tabellenspalten der Universaltabelle können den Entitätstabellen nicht sinnvoll zugeordet werden - bei einer geht keine wesentliche Information verloren, wenn man sie weglässt, bei der anderen schon. Welche Attribute sind das? Lasse beide Attribute vorerst einfach aus - wir kommen später darauf zurück.   * Zwei Tabellenspalten der Universaltabelle können den Entitätstabellen nicht sinnvoll zugeordet werden - bei einer geht keine wesentliche Information verloren, wenn man sie weglässt, bei der anderen schon. Welche Attribute sind das? Lasse beide Attribute vorerst einfach aus - wir kommen später darauf zurück.
-  * Fügen nun den Datensatz für Frau Bohrgut ein aus den [[ faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:start |Vorüberlegungen]] ein - du siehst, nun ist ganz klar, welche Informationen in welche Tabelle eingefügt werden müssen.+  * Fügen nun den Datensatz für Frau Bohrgut aus den [[ faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:start |Vorüberlegungen]] ein - du siehst, nun ist ganz klar, welche Informationen in welche Tabelle eingefügt werden müssen.
  
  
Zeile 61: Zeile 61:
 === (A2) === === (A2) ===
  
-Was bei der Normalisierung nun dummerweise verloren gegangen ist, ist die Zuordnung der Bestellungen zu unseren Kunden, den Doktoren - deswegen hatte der Sekretär die Tabelle ja mal angelegt.+Was bei der Normalisierung nun dummerweise verloren gegangen ist, ist die Zuordnung der Bestellungen zu unseren Kunden, den Doktoren - deswegen hatte der Sekretär die Tabelle ja mal angelegt. Auch die Verbindung zwischen Herstellern und Prodkukten sucht man in den einzelnen Tabellen vergeblich?!
  
 Um die Verknüpfung zwischen den Entitäten nun wieder herzustellen, wird eine weitere Tabelle angelegt, die lediglich die Verknüpfung zwischen den anderen Entitäten herstellt. Um die Verknüpfung zwischen den Entitäten nun wieder herzustellen, wird eine weitere Tabelle angelegt, die lediglich die Verknüpfung zwischen den anderen Entitäten herstellt.
Zeile 71: Zeile 71:
 {{ :faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:ausgangslage_normalisierung.png? }} {{ :faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:ausgangslage_normalisierung.png? }}
  
-Die eritte Zeile sagt uns, dass Viktoria Einsenfaust drei Kneifzangen  bestellt hat.+Die dritte Zeile sagt uns, dass Viktoria Einsenfaust drei Kneifzangen  bestellt hat.
  
 Um das in unserer bestellungen-Tabelle abzubilden, müssen wir folgendes eintragen: Um das in unserer bestellungen-Tabelle abzubilden, müssen wir folgendes eintragen:
  
    | id | anzahl | produkt_id | doktor_id | hersteller_id |    | id | anzahl | produkt_id | doktor_id | hersteller_id |
-   | 1  | 3      | 3          | 3         +   | 1  | 3      | 3          | 3         3             | 
 + 
 +**(i)** Was muss man für die Bestellung in der letzten Zeile der Universaltabelle eintragen? 
 + 
 +++++ Lösung | 
 +<code> 
 +| id | anzahl | produkt_id | doktor_id | hersteller_id | 
 +| 2  | 2      | 4          | 1         | 3             | 
 +</code> 
 +++++ 
 + 
 +**(ii)** Komplettiere die Bestellungstabelle in deiner Übungsdatenbank und führe dann die folgende Abfrage aus: 
 + 
 +<code sql> 
 +SELECT * FROM hersteller,doktoren, produkte, bestellungen  
 +WHERE bestellungen.produkt_id = produkte.id 
 +AND bestellungen.doktor_id = doktoren.id 
 +AND bestellungen.hersteller_id = hersteller.id 
 +</code> 
 + 
 +Erläutere, was bei dieser Abfrage passiert und interpretiere das Ergebnis. 
 + 
 + 
 +----  
 +<WRAP center  info 90%> 
 +Nun befinden sich alle Relationen unserer Datenbank in der 2. Normalform((In unserem speziellen Fall sogar zufällig bereits in der 3.)).  
 +</WRAP> 
 + 
 +Die normalisierte Datenbank: {{ :faecher:informatik:oberstufe:datenbanken:nm_beziehungen:zahnarztbedarf_2nf.zip |}} 
 + 
  • faecher/informatik/oberstufe/datenbanken/normalisierung/2_normalform/start.1606330572.txt.gz
  • Zuletzt geändert: 25.11.2020 18:56
  • von sbel