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