next up previous index
Weiter: 2 Datenbanken in Base Hoch: 1 Basiswissen zum Datenbankentwurf Zurück: 6 Fünfte Normalform


5 Beispiel für einen Datenbankentwurf

\begin{figure}\htmlimage
\spfigl{0.25}{Bld19_37.eps}{Datenbank zur Verwaltung eines Warenhandels}{_Ref63146136}
\end{figure}

Hier der Entwurf einer sehr einfachen Datenbank zur Abbildung eines kleinen Obsthandels (Abb. 2.8), um im folgenden Kapitel die Datenbankfunktionen nutzen zu können.

Die Tabellenentwürfe ermöglichen es bisher, Bestellungen als Geschäftsvorgänge abzuwickeln. Hierzu müssen die Kundendaten, Anschriften von Lieferanten und Produktdaten gespeichert werden. Zudem gibt es noch eine Tabelle, in der die Bestellungen einlaufen, und eine weitere Tabelle mit den einzelnen Bestellpositionen. Im Praxiseinsatz wird man die betreffenden Tabellen erweitern müssen. So ist momentan zum Beispiel nur ein Lieferant pro Produkt möglich - aus Aufwandsgründen wurde auf die Normalisierung der Struktur mit Verlagerung in eine weitere Tabelle verzichtet.

\begin{figure}\htmlimage
\spfigl{0,93}{Bld19_36.eps}{Entwurf für die Tabelle
\textit{ Produkt} und Beispieldaten}{_Ref63146951}
\vspace{-11pt}
\end{figure}

\begin{figure}\htmlimage
\vspace{-11pt}
\spfigl{1}{Bld19_38.eps}{Lieferantendaten der
Beispieldatenbank}{_Ref63147973}
\vspace{-11pt}
\end{figure}

In der Tabelle Produkt sind die Informationen zu den angebotenen Produkten hinterlegt. Abb. 2.9 zeigt im oberen Bereich den Tabellenentwurf, wobei die Produktnummer als Primärindex benutzt wird. Im unteren Teil sind die Beispielwerte zu sehen, die in der Tabelle hinterlegt wurden.

\begin{figure}\htmlimage
\spfigl{1}{Bld19_39.eps}{Struktur der Tabelle \textit{ Kunde} mit
Beispieldaten}{_Ref63148647}
\vspace{-11pt}
\end{figure}

Die Tabelle Lieferant enthält die als Primärindex benutzte Lieferantennummer sowie Felder mit den Adressdaten (Abb. 2.10). Die Lieferantennummer wird bei jedem Produkt hinterlegt, so dass bei Anwahl eines Produkts ein Verweis auf die jeweiligen Lieferantendaten möglich ist. Die Tabelle Kunde besitzt eine ähnliche Struktur (Abb. 2.11), wobei dort die Kundennummer als Primärindex benutzt wird. Über die in der Bestellung hinterlegte Kundennummer lassen sich die Stammdaten des Kunden abrufen.

\begin{figure}\htmlimage
\spfigl{0.52}{Bld19_40.eps}{Struktur und Beispieldaten der Tabelle \textit{ Bestellung}}{_Ref63148765}
\end{figure}

In der Tabelle Bestellung (Abb. 2.12) wird das Feld mit der Bestellnummer als Primärindex benutzt. Jeder Datensatz weist zudem die Kundennummer (zur Identifizierung der Kundenstammdaten) sowie ein Lieferdatum und ein Rechnungsdatum auf. In der Praxis würde man weitere Felder wie Auslieferungsstatus etc. in einer solchen Tabelle hinterlegen. Auch der Fall, dass mit Teilauslieferungen gearbeitet wird, bleibt hier unberücksichtigt. Die Einzelposten der Bestellung werden in einer separaten Tabelle Bestelldetails verwaltet (Abb. 2.13). Bei der Struktur gibt es aber ein Problem:

\begin{figure}\htmlimage
\spfigl{0.4}{Bld19_41.eps}{Struktur der Tabelle \textit{ Bestelldetails} und Beispieldaten}{_Ref63148894}
\end{figure}

Die in Base benutzte Datenbank erlaubt nur dann Eingaben in Tabellen, wenn diese mit einem Primärindex versehen sind. Andererseits darf das Feld BestellNr nur als normaler Index ausgelegt werden, da für jede Bestellung mehrere Datensätze auftreten können. Das Problem wurde dergestalt gelöst, dass ein Hilfsfeld ID für den Primärindex eingeführt wurde. Der Datensatz weist noch die bestellte Menge sowie die Produktnummer auf. Anhand der Produktnummer lassen sich die Produktstammdaten (Gewicht, Name etc.) aus der Tabelle Produkt ermitteln.


next up previous index
Next: 2 Datenbanken in Base Up: 1 Basiswissen zum Datenbankentwurf Previous: 6 Fünfte Normalform
Nicolaus Millin
2007-08-11