Databases Reference
In-Depth Information
Alle verwendeten Tabellen gehören jetzt implizit zum Schema
information_schema . Wollen wir mit Tabellen aus unserem Standardschema
public arbeiten, so müssen wir den Namen explizit angeben.
select *
from tables;
select *
from public.personen
5.14 null - die unbekannte Dimension
In der Praxis kommt es immer wieder vor, dass man den Wert eines Attributs
für einzelne Datensätze nicht kennt. Beim Erfassen von Personendaten kann es
beispielsweise passieren, dass
der Vorname noch unbekannt ist;
das Todesdatum naturgemäß noch nicht feststeht, wenn es sich um lebende
Personen handelt;
der Name des Ehegatten bei ledigen Personen nicht aufgenommen werden
kann.
Diese drei Beispiele von unvollständigen Informationen haben verschiedene Qua-
litäten. Weitere Szenarien werden etwa in [Dat90] aufgezählt.
Es gibt für das praktische Problem der unvollständigen Information keine befrie-
digende Lösung. Wir stellen zunächst zwei einfache Lösungen vor und diskutie-
ren dann die Probleme der Lösung, die SQL anbietet.
1. Lösung (Datenverteilung): Für die Vornamen von Personen könnten wir ei-
ne eigene Tabelle vornamen anlegen, die die zugehörigen Personen über einen
Fremdschlüssel referenziert. Für Personen, zu denen der Vorname unbekannt ist,
gibt es dann in vornamen keinen Eintrag:
create table personen(
id int primary key,
name varchar(20),
);
create table vornamen(
pid int primary key references personen
vorname varchar(20);
)
Indem wir die Daten über zwei Tabellen verteilen, stellen wir sicher, dass es zu
jeder Person nur maximal einen Vornamen gibt.
 
Search WWH ::




Custom Search