faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:start [25.11.2020 14:15] – Externe Bearbeitung 127.0.0.1faecher:informatik:oberstufe:datenbanken:normalisierung:vorueberlegungen:start [23.11.2023 12:46] (aktuell) – [Vorüberlegungen] Svenja Müller
Zeile 5: Zeile 5:
   * Wir sind ein Zwischenhändler, der Zahnärzte mit allem ausstattet, was die brauchen, um ihre Patienten zu foltern.   * Wir sind ein Zwischenhändler, der Zahnärzte mit allem ausstattet, was die brauchen, um ihre Patienten zu foltern.
   * Wir müssen Buch führen über unsere Kunden (Doktoren), unsere Lieferanten, angebotene Produkte und unsere Bestellungen.   * Wir müssen Buch führen über unsere Kunden (Doktoren), unsere Lieferanten, angebotene Produkte und unsere Bestellungen.
-  * Unser sehr unerfahrene Sekretär hat mal was von mysql gehört und die derzeit bekannten Daten in eine Tabelle geschrieben. +  * Unser sehr unerfahrener Sekretär hat mal was von mysql gehört und die derzeit bekannten Daten in eine Tabelle geschrieben. 
  
 ===== Die Ausgangslage ===== ===== Die Ausgangslage =====
Zeile 11: Zeile 11:
 Da unser Sekretär normal nur mit Tabellenkalkulationen arbeitet, hat er alle Infos einfach mal in eine Tabelle gepackt:  Da unser Sekretär normal nur mit Tabellenkalkulationen arbeitet, hat er alle Infos einfach mal in eine Tabelle gepackt: 
  
-{{ :faecher:informatik:oberstufe:datenbanken:normalisiserung:vorueberlegungen:ausgangslage_normalisierung.png |}}+{{ .:ausgangslage_normalisierung.png |}}
  
    
Zeile 30: Zeile 30:
 Hinter diesen Begriffen verbirgt sich alles, was den logischen Aufbau unserer Datenbank gefährden könnte. 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, da Änderungen häufig mehrfach vorgenommen werden müssen. +  * Von **Redundanz** spricht man, wenn Informationen mehrfach gespeichert sind. Redundanzen führen zu einem höheren Speicherplatzbedarf und gefährden die Konsistenz der Informationen, da Änderungen häufig mehrfach vorgenommen werden müssen. 
-  * Von **Anomalie** spricht man, wenn sich beispielsweise Datensätze in ihren Angaben "unregelmäßig" unterscheiden oder die Bedeutung von Attributen unklar ist und z.B. erst aus dem Kontext erschlossen werden kann.+  * Von **Anomalie** spricht man, wenn sich beispielsweise Datensätze in ihren Angaben "unregelmäßig" unterscheiden. Es gibt drei Arten von Anomalien:  
 +    * Bei der **Einfüge-Anomalie** kann es passieren, dass Daten gar nicht in die Datenbank übernommen werden, wenn zum Beispiel der Primärschlüssel keinen Wert erhalten hat, oder eine unvollständigen Eingabe von Daten zu Inkonsistenzen führt. 
 +    * Bei der **Änderungs-Anomalie**, auch Update-Anomalie genannt, werden gleiche Attribute eines Datensatzes in einer Transaktion nicht automatisch geändert. So entsteht eine Inkonsistenz der Daten. 
 +    * Bei einer **Löschanomalie** kann es vorkommen, dass der Benutzer einer Datenbank aktiv Informationen löschen will und damit indirekt andere zusammenhängende Informationen parallel mitgelöscht werden.
   * Von **Inkonsistenz** spricht man, wenn sich Informationen widersprechen.   * Von **Inkonsistenz** spricht man, wenn sich Informationen widersprechen.
  
Zeile 43: Zeile 46:
  
   * Wo kannst du in unserer Datenbanktabelle Redundanzen finden?   * Wo kannst du in unserer Datenbanktabelle Redundanzen finden?
-  * Inwiefern stellt der neue Datensatz für Doktor Bohrgut in unserer Tabelle eine Anomalie dar?+  * Inwiefern stellt der neue Datensatz für Doktor Bohrgut in unserer Tabelle eine Anomalie dar? Kannst du eine mögliche Löschanomalie in unserer Universaltabelle finden?
   * Ist auf den ersten Blick ersichtlich, was für eine Bedeutung die Tabellenspalte "nummer" hat? Wie kannst du das herausfinden? Warum stellt das eine Anomalie dar?   * Ist auf den ersten Blick ersichtlich, was für eine Bedeutung die Tabellenspalte "nummer" hat? Wie kannst du das herausfinden? Warum stellt das eine Anomalie dar?
   * Die Firma Eisen-Karl hat eine neue Anschrift, unser Sekretär muss diese in unserer Tabelle korrigieren.    * Die Firma Eisen-Karl hat eine neue Anschrift, unser Sekretär muss diese in unserer Tabelle korrigieren. 
Zeile 55: Zeile 58:
 </WRAP> </WRAP>
  
-==== 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: Relation ist nur ein anderer Name für Tabelle...). Wenn man sich daran hält, muss man sich nur noch Gedanken und sinnvolle Attribute und die Möglichkeiten der Verknüpfung machen. 
- 
----- 
-{{:aufgabe.png?nolink  |}} 
-=== (A2) === 
- 
-  * Importiere die {{ :faecher:informatik:oberstufe:datenbanken:normalisiserung:vorueberlegungen:zahnarztbedarf.zip |Universaltabelle}} in deine Übungsdatenbank. 
-  * Überführe die Inhalte der "Universaltabelle" in drei Tabellen: ''doktoren'', ''hersteller'', ''produkte''. Verteile die vorhandenen Attribute auf die Tabellen der Entitäten, **verändere die Attribute nicht**, bennene Sie auch nicht um. Gehe wie folgt vor: 
-     - 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: ''INSERT INTO doktoren SELECT doktor, telefon_fax, adresse FROM `zahnarztbedarf` ''. Du musst auf die Reihenfolge der Attribute bei der Abfrage achten! 
-  * 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 | 
-{{ :faecher:informatik:oberstufe:datenbanken:normalisiserung:vorueberlegungen:struktur01.png |}} 
-++ 
- 
-++ Überführungsabfragen |\\ 
-INSERT INTO produkte SELECT produkt, preis, nummer FROM `zahnarztbedarf`\\ 
-INSERT INTO hersteller SELECT hersteller FROM `zahnarztbedarf`\\ 
-INSERT INTO doktoren SELECT doktor, telefon_fax, adresse FROM `zahnarztbedarf` 
-++ 
- 
-++ Nicht übertragbare Attribute | 
-Das Attribut ''id'' ist weitgehend sinnfrei, da überhaupt nicht klar ist, was diese ID eigentlich identifizieren sollte, das kann weggelassen werden. Das Attribut ''anzahl'' bezieht sich auf die Produkt-Bestellungen der Zahnärzte, das passt zu keiner unserer Tabellen, weil es gewissermaßen zu ''doktoren'' und zu ''produkte'' gehört.  
-++ 
-++++ 
  • faecher/informatik/oberstufe/datenbanken/normalisierung/vorueberlegungen/start.1606313748.txt.gz
  • Zuletzt geändert: 25.11.2020 14:15
  • von 127.0.0.1