Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:normalisiserung:vorueberlegungen:start [25.11.2020 15:04] – [Grundsatz: Eine Entität - eine Tabelle] sbel | faecher:informatik:oberstufe:datenbanken:normalisiserung:vorueberlegungen:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Vorüberlegungen ====== | ||
- | Wir versuchen uns, in das folgende Szenario einzudenken: | ||
- | |||
- | * Wir sind ein Zwischenhändler, | ||
- | * Wir müssen Buch führen über unsere Kunden (Doktoren), unsere Lieferanten, | ||
- | * Unser sehr unerfahrene Sekretär hat mal was von mysql gehört und die derzeit bekannten Daten in eine Tabelle geschrieben. | ||
- | |||
- | ===== Die Ausgangslage ===== | ||
- | |||
- | Da unser Sekretär normal nur mit Tabellenkalkulationen arbeitet, hat er alle Infos einfach mal in eine Tabelle gepackt: | ||
- | |||
- | {{ : | ||
- | |||
- | |||
- | |||
- | |||
- | ==== Probleme... ==== | ||
- | |||
- | |||
- | Auf den ersten Blick fällt auf, dass in unserer Tabelle etliche Informationen mehrfach gespeichert sind, das kann zu | ||
- | Problemen führen. | ||
- | |||
- | Im Moment sieht alles noch sehr übersichtlich aus. Aber was passiert, wenn wir 10.000 oder 100.000 Datensätze verwalten müssen? Was, wenn ein Kunde den Händler wechselt oder sich die Adresse eines Herstellers ändert? | ||
- | Wie kann jemand etwas bestellen, wenn nicht irgendwo ersichtlich ist, welche Produkte es überhaupt gibt? | ||
- | |||
- | |||
- | ==== Redundanzen, | ||
- | |||
- | Hinter diesen Begriffen verbirgt sich alles, was den logischen Aufbau unserer Datenbank gefährden könnte. | ||
- | |||
- | * Von **Redundanz** spricht man, wenn Informationen mehrfach gespeichert sind. Rdundanzen führen zu einem höheren Speicherplatzbedarf und gefährden die Konsistenz der Informationen, | ||
- | * Von **Anomalie** spricht man, wenn sich beispielsweise Datensätze in ihren Angaben " | ||
- | * Von **Inkonsistenz** spricht man, wenn sich Informationen widersprechen. | ||
- | |||
- | Ein DBMS soll Fehler dieser Art eigentlich vermeiden, dazu muss die Datenbank jedoch sinnvoll konzipiert sein - was im Falle der allumfassenden Tabelle nicht der Fall ist. | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Stelle dir vor, unser Sekretär muss einen neuen Zahn-" | ||
- | |||
- | * Wo kannst du in unserer Datenbanktabelle Redundanzen finden? | ||
- | * Inwiefern stellt der neue Datensatz für Doktor Bohrgut in unserer Tabelle eine Anomalie dar? | ||
- | * Ist auf den ersten Blick ersichtlich, | ||
- | * Die Firma Eisen-Karl hat eine neue Anschrift, unser Sekretär muss diese in unserer Tabelle korrigieren. | ||
- | * Wo erschweren ihm Redundanzen diese Arbeit? | ||
- | * Warum können die Redundanzen dazu führen, dass die Daten inkonsistent werden? | ||
- | |||
- | ==== Normalisierung ==== | ||
- | |||
- | <WRAP center round tip 90%> | ||
- | Unter der " | ||
- | </ | ||
- | |||
- | ==== Grundsatz: Eine Entität - eine Tabelle ==== | ||
- | |||
- | Ein **Grundsatz** ohne Name, den unser Sekretär mit seinem an die Tabellenkalkulation angelehnten Vorgehen bereits verletzt hat, den wir aber eigentlich kennen, lautet: **Jede Entität bekommt ihre eigene Relation, die Attribute sind die Tabellenspalten**((Erinnerung: | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | * Importiere die {{ : | ||
- | * Überführe die Inhalte der " | ||
- | - Lege die drei Tabellen mit den entsprechenden Attributen an | ||
- | - Überführe die Inhalte aus der Universaltabelle in die jeweilige Tabelle, indem du das Ergebnis einer Abfrage direkt an eine INSERT INTO Statement weitergibst: | ||
- | * 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 - du siehst, nun ist ganz klar, welche Informationen in welche Tabelle eingefügt werden müssen. | ||
- | |||
- | ++++ Lösungshinweise| | ||
- | |||
- | +++ Tabellenstrukturen | | ||
- | |||
- | +++ | ||
- | ++++ |