Databases Reference
In-Depth Information
komplexes Regelwerk verzichten und durch sorgfältige Analyse einen geeigneten
Tabellenentwurf finden.
22.3.2
Dokumentenzentriertes XML
Die Grenzen für Verfahren, wie wir sie im vorhergehenden Abschnitt kennenge-
lernt haben, sind für dokumentenzentriertes XML erreicht, das möglicherweise
noch Mixed Content enthält. Grundsätzlich können wir Hierarchien aber auch
durch Rekursion realisieren. In Abschnitt 6.5 haben wir schon gesehen, wie wir
durch Selbstbezüge eine Hierarchie modellieren. Wir diskutieren jetzt, wie wir
uns diese Vorgehensweise für XML nutzbar machen.
Mit Hilfe der folgenden Tabellen können wir die Daten aus jedem beliebigen
XML-Dokument abspeichern, das dem Teil der XML-Syntax genügt, den wir uns
in diesem Kapitel erarbeitet haben. Der Einfachheit halber haben wir dabei auf
Attribute verzichtet.
Listing 22.6: Tabellen für eine relationale XML-Datenbank
create table elementnames(
id int generated always as identity primary key,
name varchar(20) not null unique
);
create table elements(
id int generated always as identity primary key,
element int references elementnames,
parent int references elements,
ord int not null,
unique(parent, ord)
);
create table textcontent(
id int generated always as identity primary key,
name varchar(20) not null,
parent int not null references elements,
ord int not null
);
Für die Elementnamen ist die einfache Lookup-Tabelle elementnames vorgese-
hen. Ihr Inhalt ist entsprechend einfach gehalten. Wenn wir die Tabelle mit den
Elementnamen der DTD aus Listing 22.4 füllen, ergibt sich Tabelle 22.1.
Etwas komplexer ist dagegen die Tabelle elements . Für jedes Element aus dem
Beispieldokument in Listing 22.2 gibt es einen Eintrag in dieser Tabelle. Die Spalte
Search WWH ::




Custom Search