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:31] – [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 50: Zeile 50:
  
 ++++ ++++
 +
 +++++ Ergebnis: |
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:normalisierung:2_normalform:2nf.png |}}
 +
 +++++
 +
 +----
 +{{:aufgabe.png?nolink  |}}
 +=== (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. 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.
 +
 +Erstelle eine Tabelle ''bestellungen'' mit den Feldern ''id'' (Primary-Key, Auto-Increment), ''produkt_id'', ''doktor_id'', ''hersteller_id'' und ''anzahl''.
 +
 +Nun schauen wir in unserer Universaltabelle nach den Bestellungen:
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:ausgangslage_normalisierung.png? }}
 +
 +Die dritte Zeile sagt uns, dass Viktoria Einsenfaust drei Kneifzangen  bestellt hat.
 +
 +Um das in unserer bestellungen-Tabelle abzubilden, müssen wir folgendes eintragen:
 +
 +   | id | anzahl | produkt_id | doktor_id | hersteller_id |
 +   | 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.1606329103.txt.gz
  • Zuletzt geändert: 25.11.2020 18:31
  • von sbel