Die Implementierung einer Stücklistenverwaltung erfolgt am besten mit einer Datenbank unter Beachtung existierender Datenbank-Standards. Ein weit verbreiteter Standard sind relationale Datenbanken. Für ein gutes Verständis relationaler Datenbanken ist allerdings auch ein Verständnis des zu Grunde liegenden Datenmodells -- der Relationen -- notwendig. Das Relationenmodell geht auf Codd zurück und wurde in [Codd70] zum ersten Mal vorgestellt
.
Im relationalen Datenmodell hat man Domänen als benannte Mengen von atomaren (= skalaren, elementaren, nicht strukturierten) Werten. Domänen entsprechen also im wesentlichen den Datentypen höherer Programmiersprachen mit impliziter Festlegung der auf diesen Datentypen erlaubten Operationen. Eine Relation ist eine Untermenge des kartesischen Produkts von einer oder mehreren Domänen. Die einzelnen Elemente einer Relation werden Tupel genannt, die selbst wieder aus Attributen bestehen. Relationen haben folgende Eigenschaften:
Wegen der Definition einer Relation als Menge muß jedes Tupel dieser Menge eindeutig identifizierbar sein. Man kann deswegen einen Schlüsselkandidaten wie folgt definieren:
Sei R eine Relation mit den Attributen
. Die Menge
,
, heißt Schlüsselkandidat von R genau dann, wenn unabhängig vom Zeitpunkt (also für die gesamte Lebensdauer der Relation) gilt:
, demselben Wert für
... und demselben Wert für
).
kann weggelassen werden, ohne die Eindeutigkeit von K zu verlieren.
Ein Fremdschlüssel ist eine (möglicherweise nur einelementige) Menge von Attributen einer Relation R, die in einer anderen Relation
als Primärschlüssel auftritt. R und
sind nicht notwendigerweise voneinander verschieden.
Primärschlüssel kann man im Relationenmodell als symbolische Tupeladressen auffassen. Entsprechend ist ein Fremdschlüssel ein symbolischer Zeiger auf ein bestimmtes Tupel einer Relation.
Im Relationenmodell können Beziehungen zwischen Relationen nur durch Fremdschlüssel dargestellt werden. Mit den folgenden Beziehungen zwischen Relationen kann man Bedingungen für die Integrität der Datenbank aufstellen:
Entitätsintegrität (entity integrity): Für jede definierte Relation muß ein Primärschlüssel festgelegt sein. Kein Attribut, das zum Primärschlüssel einer Relation gehört, darf Nullwerte annehmen. Dabei versteht man unter einem Nullwert eine spezielle Markierung für unbekannte Werte. Diese Markierung darf nicht zum Wertevorrat der entsprechenden Domäne gehören.
Referentielle Integrität (referential integrity): Sei
eine Relation, die mit einem Fremdschlüssel F auf eine Relation
mit Primärschlüssel P zeigt. Für jeden in
auftretenden Wert von F (= symbolischer Zeiger) muß dann gelten:
ein Tupel existieren, das diesen Wert als P-Wert aufweist (keine dangling pointers).
In der Relationenalgebra sind die folgenden fünf Grundoperationen [Ull88] definiert:
, ist die Menge der Tupel, die in R oder in S oder in beiden Relationen enthalten sind.
und
Attributen. Dann ist
, das kartesische Produkt der Relationen R und S, die Menge aller möglichen (
)-Tupel, wobei die ersten
Attribute von einem Tupel der Relation R stammen und die letzten
Attribute von einem Tupel der Relation S.
mit paarweise unterschiedlichen
(j im Bereich 1 bis m) die Projektion der Relation R auf die Komponenten
, das heißt die Menge der m-Tupel
, sodaß es ein k-Tupel
in der Relation R gibt, für das
für
und
gilt.
ist die Menge der Tupel der Relation R, die die Bedingung F erfüllen.