Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Grundlagen der Programmierung: Datenbanken

Erste Normalform

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die erste Normalform besagt, dass sämtliche Spalten innerhalb einer Datenbank ausschließlich genau einen Wert beinhalten sollen, wobei keine Wiederholungen oder Wiederholungsgruppen vorhanden sein dürfen.

Transkript

Bevor wir die erste Normalform anwenden, die man auch mit 1NF abkürzt, setze ich voraus, dass wir bereits unsere Spalten und die entsprechenden Primärschlüssel definiert haben. Okay, die erste Normalform besagt, dass jede Spalte, in jeder Zeile, in jeder Tabelle nur genau einen Wert enthalten sollte, und es keine Wiederholungen oder so genannte Wiederholungsgruppen gibt. Was heißt das nun praktisch? Angenommen, ich entwickle eine Datenbank für meine Firma, und eine meiner Tabellen ist eine recht einfache Mitarbeitertabelle. Ich benenne sie Englisch mit “Employee” und gebe ihr Spaltennamen wie "EmployeeID", "LastName", "FirstName" und so weiter. Jedem Mitarbeiter ordne ich einen Computer zu. Da ich dies überwachen möchte, füge ich eine Spalte "ComputerSerial" hinzu, die verzeichnet, wer welchen Computer benutzt. Bis jetzt ist alles in Ordnung. Technisch befindet sich die Datenbank in der ersten Normalform. Und jetzt kommt das Problem. Ich habe festgestellt, dass einige Mitarbeiter einen Mac und einen PC für Testzwecke benötigen. Andere brauchen einen Desktop-Computer und einen Laptop. Somit haben verschiedene Mitarbeiter mehrere Computer. Es gibt verschiedene Möglichkeiten jetzt mit dieser Situation umzugehen. Ich könnte einfach zusätzliche Daten in diese eine Spalte stopfen. Dann trennen wir die einzelnen Werte durch Kommata, und Fertig. Das ist aber etwas, was sich im Design relationaler Datenbanken verbietet. Wir würden damit nämlich die erste Normalform verletzen. Relationale Datenbanken kommen problemlos mit hunderten Tabellen klar. Jede Tabelle kann hunderte Spalten und Millionen von Zeilen enthalten. Doch Spalten, die eine variable Anzahl von Werten enthalten, sind nicht erwünscht. Jede Spalte sollte in jeder Zeile genau einen und nur einen Wert enthalten. Wäre es aber möglich, mehrere Werte zu speichern? Aus technischer Sicht ist es kein Problem. Wenn diese Spalte für Zeichendaten definiert ist, hält die Datenbank sie nicht davon ab Kommata und mehrere Werte einzugeben. Doch was die Datenbank angeht, ist es immer nur ein einziger Wert, der eben nur Kommata enthält. Es dürfte Ihnen schwer fallen direkt nach einer Seriennummer zu suchen und das Sortieren der Daten ist ebenso schwierig. Von der Verwaltung mal ganz zu schweigen. Wenn Sie so vorgehen, befindet sich die Datenbank nicht in der ersten Normalform, weil die erste Normalform fordert, dass jedes Feld in jeder Spalte einen und nur einen Wert enthalten darf. Wir kehren also zurück zur ursprünglichen Methode und fügen statt dessen neue Spalten hinzu: "ComputerSerial2", "ComputerSerial3" und so weiter. Das ist aber genau das, was man als sogenannte Wiederholungsgruppen bezeichnet. Und es sollte diese Wiederholungsgruppen eben auch nicht geben. Das klassische Anzeichen für eine Wiederholungsgruppe ist eine Spalte mit dem gleichen Namen, dem eine Nummer angefügt ist, nur um den Namen eindeutig zu machen. In der Regel ist es ein Zeichen für ein unflexibles Datenbankdesign. Wenn wir garantieren könnten, dass es immer nur zwei oder drei Spalten sind, ginge das vielleicht gerade noch in Ordnung. Doch wie sieht es aus, wenn wir Tablet Computer und Smartphones einbeziehen wollen? Was passiert, wenn ein Mitarbeiter mit Testaufgaben betraut ist und dafür sechs Computer benötigt? Wir wollen keine Änderung am Datenbankschema heraufbeschwören, nur weil wir einen neuen Computer kaufen. Was tun in so einer Situation? Wir nehmen die Daten aus der Tabelle “Employee” heraus und stellen sie in ihre eigene Tabelle. Hier kommen dann die Beziehungen ins Spiel. Wir richten eine eins-zu-viele- Beziehung zwischen “Employee” und dieser neuen Computertabelle ein. Wenn Sie wollen, können Sie die Tabelle auch “Asset" Tabelle nennen oder einen anderen sinnvollen Namen wählen. Und die Tabelle erhält einen Fremdschlüssel der zurück auf die "Employee" Tabelle verweist. Ich kann eine ‘EmployeeID”, wie zum Beispiel hier die 551, auswählen, ihr zur Tabelle “Computer” folgen und dort die beiden zugeordneten Computer finden. Oder ich nehme die 553 und finde die zugewiesenen drei Computer. Es gibt in keiner Tabelle Wiederholungswerte oder Wiederholungsgruppen. Und damit haben wir den Entwurf in die erste Normalform überführt. Es kommt häufig vor, dass die Lösung für ein Normalisierungsproblem darin besteht eine neue Tabelle anzulegen. Manchmal ist es eine eins-zu-viele Beziehung wie diese. Ein andermal könnte eine viele-zu-viele-Beziehung mit einer Verknüpfungstabelle erforderlich sein.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!