26.01.2006

Werbung
Kein Titel
1/4
Grundlagen der Informations- und
Kommunikationstechnologie
(13. Vorlesung, letzte Änderung: 25.01.2006)
Weitere Datenbankmodelle
Neben den relationalen Datenbankmodell, in dem die Daten in Tabellen (Relationen)
strukturiert und geordnet werden, gibt es noch weitere Datenbankmodelle:
das hierarchische Datenbankmodell;
das netzartige Datenbankmodell;
das objektorientierte Datenbankmodell und
das objektrelationale Datenbankmodell.
Das hierarchische Datenbankmodell
Im hierarchischen Datenbankmodell werden die Informationen in Datensätzen, die nach einer
Baumstruktur geordnet werden, abgelegt. Jeder Datensatz hat genau einen Vorgänger (Elternsatz) und
es gibt genau einen Datensatz (an der Wurzel), der keinen Vorgänger besitzt.
Jedes Kästchen steht hier für einen Datensatz. Jeder ausgefüllte Datensatz, beim relationalen
Datenmodell ist es eine ausgefüllte Zeile, nennt man hier Instanz eines Datensatzes. Eine Instanz eines
Datensatzes kann nun auf eine oder mehrere Instanzen eines Kind-(Child) Datensatzes verweisen.
Dies wird über in die Eltern-Kind-Beziehungenen (Parent Child Relationships) festgelegt. Diese
Bezeihungen sind nur zwischen benachbarten Ebenen möglich. Beziehungen über zwei und mehr
Ebenen der Hierarchie sind damit nicht realisierbar. Damit ist dieses Datenmodell sehr starr und man
muss vorher genau wissen, welche Fragen man an eine Datenbank stellen möchte, um den Zugriff auf
die entsprechenden Daten über die Organisation der Baumstruktur zu ermöglichen.
Dieses Modell ist bereits vor ca. 50 Jahren entstanden und wurde lange Zeit kaum noch benutzt. Es hat
aber durch die verbreitete Nutzung von XML zur Stukturierung von Informationen in Dateien wieder
an Bedeutung gewonnen. Eine XML Datei besitzt, wie wir schon gesehen haben, auch immer eine
Baumstruktur.
v13.htm
26.01.2006 / 02:30
Kein Titel
2/4
Das netzartige Datenbankmodell
Dieses Modell wurde nach dem hierarchischen entwickelt und versucht die relativ starre hierarchische
Struktur zwischen den Datensätzen aufzubrechen. Auch hier haben wir es wieder mit Datensätzen zu
tun. Diese entsprechen den Tabellenstrukturen bei relationalen Datenbanken und bestehen aus Feldern
(wie immer). Die Datensätze sind in der Abbildung als Kästchen gekennzeichnet.
Die Beziehungen zwischen den einzelnen Instanzen der Relationen werden hier durch sogenannte
Datasets definiert. Dabei werden zwei Datensätze miteinander verbunden. Aus der ersten Datensatzart
wird eine Instanz ausgewählt und aus dem zweiten Datensatz können keine Instanz, eine Insatnz bzw.
mehrere Instanzen ausgewählt werden. Hier kann man also bereits etwas kompliziertere Strukturen als
Bäume realisieren. Dieses Datenbankmodell wurde von der Conference on Data Systems Language
(CODASYL) entwickelt. Es ist eng mit den Anforderungen der Wirtschaftsdatenbanken verbunden.
Das objektorientierte Datenbankmodell
Das objektorientierte Datenbankmodell ist eine Anpassung der Datenbankmodelle an die
objektorientierten Programmiersprachen. Die Daten werden hier als Attribute von Objekten
strukturiert. Es liegt eine objektbezogene Organisation der Daten vor. Ein Objekt ist hier eine Instanz
einer Objektklasse und die Attribute der Objektklasse vererben sich auf alle Objekte dieser Klasse.
Zwischen Objektklassen kann es hierrchische Beziehungen geben. Zum Beispiel ist die Objektklasse
Medium eine Oberklasse von der Objektklasse Buch und die Objektklasse Kinderbuch ist eine
Unterklasse der Objektklassse Buch etc. Die Attribute einer Klasse vererben sich immer auf die
Unterklassen. Diese können aber weitere Attribute haben. Bei Kinderbüchern gibt so auch Titel und
Autor, wie bei den Büchern. Die Kinderbücher haben aber eventuell zusätzlich das Attribut
Altersempfehlung. Bei relationalen Datenbanken wurden die Informationen zu einem Objekt in
verschiedene Dateien (Tabellen) aufgeteilt. Bei objektorientierten Datenbanken bleiben die Daten zu
einer Objektinstanz. zusammen. Außerdem werden für den Umgang mit den Objekten Methoden
(kleine Programme) bereitgestellt, die zugeschnitten auf die Objektklasse mit den Objekten etwas
machen (z.B. sie auf verschiedene Art und Weisen anzeigt). Dieses Datenbankmodell ist
ausdrucksstärker in Bezug auf die Repräsentation von semantischen Beziehungen zwischen den
Objekten als die bisher beschriebenen Modelle.
v13.htm
26.01.2006 / 02:30
Kein Titel
3/4
Das objektrelationale Datenbankmodell
Dieses Modell versucht die Vorteile beider Ansätze relational und objektorientiert miteinander zu
verbinden. Die Entwicklungen werden insbesondere von den großen Produzenten der relationalen
Datenbanken betrieben. Die relationalen Datenbanken sind heute noch die verbreitesten Datenbanken
in der Welt. Mit der Hinzunahme von objektorientierten Mechanismen zu den relationalen möchte
man insbesondere die Abbildung von Beziehungen zwischen Objektmengen in den Datenbanken
sichtbarer und besser bearbeitbarer machen.
Organisation des Zugriffs auf Datensätze in Dateien
In diesem Abschnitt wollen wir uns mit der Frage beschäftigen wie man möglichst schnell auf
Datensätze in einer Datei zugreifen kann bzw. sie finden kann. Diese Frage ist natürlich von der
Situation in der Datei abhängig.
Sequentieller Zugriff
Dies bedeutet, man greift nacheinander auf die Datensätze zu und überprüft jeden Datensatz, ob er der
Suchbedingung entspricht. Wenn die Datensätze nicht geordnet sind, benötigt man für die Suche eines
bestimmten Datensatzes bei n Datensätzen im Mittel n/2 Suchschritte. Die Suche hat also eine
Zeitkomplexität von O(n).
Suche in Sprüngen (Binäre Suche)
ist anwendbar, wenn die Datei bzgl. der Suchinformation geordnet ist. Dann Springe ich in die Mitte
(physisch) der Datei und überprüfe welcher Satz dort steht und stelle fest, ob man in der ersten Hälfte
oder in der zweiten Hälfte weitersuchen muss. So wird bei jedem Schritt der Suchraum halbiert. Die
Suche hat eine Zeitkomplexität von O(log(n)). Bei 16 Millionen Datensätzen muss ich nur 24
24
Suchschritte (Halbierungen des Suchraumes) durchführen, denn 2 ≈ 16Millionen, um den
Datensatz zu finden. Anstelle der Datei selbst wird häufig eine Indexdatei für die Suche benutzt. Diese
muss natürlich vorher produziert werden und enthält nur einen Vertreter jedes Datensatzes, z.B. den
Autor, und verweist von diesem auf den Datensatz durch eine Adressangabe oder einen Schlüssel. Der
Vorteil besteht darin, dass diese Indexdatei natürlich viel kleiner ist und dadurch schneller gesucht
werden kann. Derartige Indizes zu einer Datendatei kann es natürlich viele geben, z.B. zu jedem Feld
einen Index.
Suche über einen binären Suchbaum
Ein binärer Suchbaum wird parallel zum Einfügen von Datensätzen in eine Datei aufgebaut. Von der
Wurzel an wird der Suchbaum gefüllt. Der Schlüssel des ersten Satzes wird eingetragen (hier Paul)
und dahinter wird die Adresse des Datensatzes geschrieben. Diese verweist auf den zu dem Schlüssel
gehörenden Datensatz. Dann wird der Schlüssel des zweiten Datensatzes (hier Kai), weil dieser
alphabetisch vor dem Schlüssel des ersten Datensatzes steht in den linken leeren Kind-Knoten des
Wurzelknotens eingetragen und die Adresse des zweiten Datensatzes dahinter geschrieben. Dieser
Prozess wird analog fortgesetzt. Bei einem neued Datensatz sucht man den ersten freien Knoten des
Baumes. Dabei geht immer bei einem besetzten Knoten nach links, wenn der Schlüssel des neuen
Datensatzes alphabetisch vor dem Schlüssel stehen müsste und sonst nach rechts. Nach einer gewissen
Zeit muss man sich den Baum ansehen, ob er auch möglichst gleichmäßig besetzt ist. Wenn das nicht
der Fall ist. Organisiert man den Suchbaum durch Hilfsprogramme so um, das er gleichmäßig besetzt
ist. Dadurch bekommt die Suche eine Zeitkomplexität von O(log(n)).
v13.htm
26.01.2006 / 02:30
Kein Titel
4/4
Suche über invertierte Dateien
Diese Dateien werden beim Information Retrieval (also einem Teilgebiet der Bibliotheks- und
Informationswissenschaft) sehr häufig benutzt. In diesen werden alle Sinntragenden Wörter einer
Literaturdatenbank eingetragen mit den jeweiligen Informationen ihres Auftretens:
in welchem Dokument → Dokumentnummer
in welchem Feld des Dokuments → Feldnummer
in welchem Satz des Feldes → Satznummer
das wievielte Wort des Satzes → Wortnummer
Mit Hilfe dieser invertierten Datei werden dann die Booleschen Verknüpfungen der Anfragen und die
Kontextoperatoren in den Anfragen abgearbeitet und die recherchierte Dokumentmenge bestimmt.
v13.htm
26.01.2006 / 02:30
Herunterladen