Anzeige
Tutorialbeschreibung

Normalisieren einer Datenbank

Normalisieren einer Datenbank

Hi Leute : )

In diesem Tutorial möchte ich euch zeigen wie man eine Datenbank richtig strukturiert um spätere Anomalien zu vermeiden.

Fangen wir mal mit paar Grundkenntnissen an:

Eine Datenbank ist im Grunde eine Ansammlung von Daten, die nach einem bestimmten Muster sortiert und verwaltet werden. Dies ist wichtig, denn man kann nix mit unformatierten Daten anfangen. Somit ist es auch wichtig wie man selbst die Daten einträgt, dazu später mehr.

Ein Beispiel:

Unformatiert Daten:

Unformatierte DatenBilder

Formatierte Daten:

Formatierte DatenBilder

Das Normalisieren

Schon beim erzeugen der Datenbankstruktur sollte man paar Sachen beachten. Dabei ist das normalisieren der Daten das wichtigste um Anomalien zu vermeiden.
Ich erklär euch das anhand eines Beispieles mit einer Freunde- und CD-Datenbank.

Beispiel Freunde- und CD-DatenbankBilder

Die Daten sind schon nach gewissen Grundzügen formatiert, jedoch absolut nicht optimal. z.B. kann in die Spalte Titel nicht unendlich viele Titel eingefügt werden. Man kann auch nur schwer eine Abfrage gestalten die uns zeigt wer eine bestimmte CD besitzt.

Nutzen wir die erste Normalform die besagt, dass pro Feld nur ein Merkmal stehen sollte.
Dann würde unsere Datenbank wie folgt aussehen:

erste NormalformBilder


Diese Form bringt aber immer noch Probleme mit sich.
Zum einen müsste man beim Ändern von z.B. der Telefon-Nummer eines Nutzers das bei jedem Eintrag durchführen.
Beim Löschen würde auch eine Anomalie entstehen, denn wenn man die CDs die jemand besitzt löschen möchte, löscht man gleichzeitig alle andren Daten des Nutzers.
Und man könnte die Einträge nur identifizieren wenn man zusätzlich das Datum und den Titel mit zur Identifikation hinzuzieht.

Nun nutzen wir die zweite Normalform. Wir trennen unabhängige Daten voneinander und schreiben diese in 2 verschiedene Tabellen rein:

zweite NormalformBilder

Die Verknüpfung zwischen den Daten wird ermöglicht indem wir den Nutzer eine ID (hier: FID) zuweisen und diese dann in der Verleihtabelle nutzen um ihnen die CD zuzuweisen.

Nun kommen wir zur dritten und letzten Normalform. Wir gliedern Daten die immer wieder in einer Tabelle erscheinen in eine Extratabelle aus. In unserem Beispiel wär das beim Titel in der Verleihtabelle der Fall. Jetzt sieht unser Beispiel so aus:

dritte NormalformBilder


Wir haben nun die Titel in eine CD-Tabelle ausgegliedert und den CDs eine ID zugewiesen (hier: TID). In der Verleihtabelle werden nun die Nutzer mit den CDs verknüpft.
Eine Datenbank in dieser Form erleichtert nun das Arbeiten mit ihr ungemein. Daten kommen nicht mehrfach vor und müssen nur an einer stelle verändert/gelöscht/hinzugefügt werden und Abfragen werden auch sehr einfach.

The End

Ich hoffe ich konnte euch einen Überblick über die theoretische Grundlagen zum Strukturieren einer Datenbank verschaffen, und das es euch hilft bei euren zukünftigen Projekten den Überblick zu bewahren : )
Als letztes noch gesagt: Die Bilder stammen von einem riesigen SQL-Skript, das ich einmal von unserem Lehrer zur Verfügung gestellt bekommen habe.


DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von DerRio
  • 26.10.2010 - 14:05

Kurz und knapp - aber gut! Das Wesentliche auf den Punkt gebracht!

Portrait von Cokxxie
  • 25.02.2010 - 12:07

Ein sehr gutes Tutorial für Einsteiger in sachen Datenbanken ;D

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 02.12.2009 - 15:24

Gutes Tutorial, schön einfach und doch sehr hilfreich.

Portrait von Destruction929
  • 04.09.2009 - 22:54

Gefällt mir gut, wobei man sich das auch selbst denken kann hehe

Portrait von Ruquei
  • 16.05.2009 - 14:55

Einfach und verständlich - wunderbar

Portrait von WolfHoe
  • 26.02.2009 - 13:01

Sehr knapp, bringt aber das wesentliche gut rüber.

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 21.09.2008 - 14:46

Schön gemacht! Habe ich noch gar nicht drüber nachgedacht. Habe mich zwar bisher auch noch generell eher weniger mit SQL beschäftigt, aber ich glaube ich hätte Tage gebraucht, ein Projekt dann wieder zu kürzen und umzufrickeln. Danke für die Arbeitsersparnis im Vorraus^^

Portrait von easywing
  • 31.03.2008 - 13:54

Ein schöner und vorallem für Einsteiger sehr nützlicher Artikel. Allerdings hätte ich noch 2 kleine Anmerkungen aus der Praxiserfahrung als Webentwickler einer renomierten großen Firma:

1. Postleitzahl-Felder in einer Datenbank niemals als numerisch anlegen, wie es in der handschriftlichen Abbildung erkennbar ist. Es gibt in Deutschland Postleitzahlen mit einer Null am Anfang. Beim Speichern in der Datenbank ist diese dann weg und man hat eine ungültige 4-stellige PLZ.

2. In den DB-Tabellen immer ein ID-Feld mit Primary Key anlegen. In den Tabellen tbFreunde und tbCDs sind sie schon als FID und TID angelegt, jedoch fehlt eine eindeutige ID in tbVerleih.

Alternative Portrait

-versteckt-(Autor hat Seite verlassen)

  • 05.10.2007 - 10:15

Sehr schöner Artikel. An dem Beispiel sind die Normalformen gut zu erkennen. Die Lehrer haben Tage gebraucht um uns das zu erklären.. . Dieser Artikel ist um einiges verständlicher ;-).

Portrait von HoLgAy
  • 04.01.2007 - 11:17

Einfach nur WOW! Perfekt erklärt und veranschaulicht wo der Unterschied zwischen den einzelnen Normalformen liegt. Hervorragend! Brauchte ich zwar jetzt nicht - aber Daumen hoch!

Portrait von Duddle
  • 16.08.2006 - 17:26

Danke! Ich hatte mich nie an das Thema herangewagt, weil mir schon der Name suspekt vorkam. It's that easy :)

x
×
×