Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt Kapitel 4: Historische DB-Modelle Relationales Datenmodell (RDM) Netzwerk- und Hierarchisches Datenmodell (NDM, HDM) Objektorientierte Datenmodelle (OODM) Objektrelationale Datenmodelle 5.1 5.1 6.1 6.1 5.2 5.2 ODMG ODMG 6.2, 6.2,6.3 6.3 Überblick über die Konzepte Darstellung von Assoziationen Datendefinition 3.1 3.1 Anfragen 4.1 4.1 4.2 4.2 Aktualisierungsoperationen Spezifika 3.2 3.2 SQL SQL Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.1 HDM: Überblick über die Konzepte (1) Analogie zum HDM: Hierarchische Strukturierungen und Benennungsschemata in vielen Bereichen (z.B. Organigramme, Klassifikationsschemata, ...) =→= Ausrichtung des Hierarchischen Datenmodells speziell auf hierarchisch organisierte Informationsstrukturen ❏ In vielen Aspekten bestehen Ähnlichkeiten zum Netzwerkdatenmodell, aber „multiple Subsumption“. Grundstruktur des HDM: ❏ HDM-Bäume: Rekords, die durch Referenzen miteinander verknüpft sind (hier: nur Baumstrukturen, also hierarchische Strukturen, zulässig) ❏ Eine hierarchische Datenbank besteht aus einer Menge von HDM-Bäumen (hier: inhomogene Strukturen, s. unten). Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.2 1 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Überblick über die Konzepte (2) Beispiel: Hierarchische Datenbank FirmenDB Abteilungen Mitarbeiter Produkte Teile FirmenDB Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.3 HDM: Überblick über die Konzepte (2 - Alternative) Beispiel: Hierarchische Datenbank FirmenDB Abteilungen Mitarbeiter Produkte Teile FirmenDB Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.4 2 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Grundstruktur (1) Rekords: ❏ Durch Referenzen miteinander verbunden (vgl. Strukturierungsprimitive des NDM) ❏ Flache Struktur; keine assoziative Identifikation Projekt Projekt == record record Nr Nr :integer :integer Titel Titel :char :char (30) (30) Budget Budget :float :float end; end; Abteilung Abteilung == record record Kurz Kurz :char :char (4) (4) Name Name :char :char (30) (30) Oberabt Oberabt :char :char (4) (4) end; end; Projektdurchfuehrung Projektdurchfuehrung == record record Nr Nr :integer :integer Kurz Kurz :char :char (4) (4) end; end; ❏ Hierarchie in DDL festgelegt, z.B. Abteilung unterhalb von Projekt Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.5 HDM: Grundstruktur (2) HDM-Bäume: ❏ Inhomogene Struktur: Auf jeder Ebene treten neue Rekordtypen für die Knoten auf. ❏ Im Rahmen der Schemadefinition wird ein HDM-Baumtyp spezifiziert, von dem alle Bäume, aus denen sich eine Datenbank zusammensetzt, Ausprägungen darstellen. ❏ Beginnend mit der Wurzel legt der HDM-Baumtyp die Rekordtypen für die Knoten jeder Ebene fest. ❏ Es ist nicht zulässig, den gleichen Rekordtyp auf mehreren Ebenen zu verwenden (→ rekursive Beziehungen nicht direkt modellierbar). ❏ Eine Datenbank besteht aus einer benannten Kollektion von Rekords, den Wurzelelementen der Bäume. ❏ Jeder dieser Rekords besitzt Verweise auf eine oder mehrere Kollektionen von Rekords (für jeden Nachfolgerknotentyp eine Kollektion), die die Nachfolgerknoten bilden usw.. ❏ Kollektionen sind in der Regel Listen, so daß eine Reihenfolge auf den Elementen der Kollektion definiert ist. Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.6 3 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Assoziationen (1) ❏ HDM nur für die Modellierung von Assoziationen für binäre 1:1 und 1:NBeziehungen geeignet. ❏ Direkte Unterstützung von binären 1:N-Beziehungen, da in den Baumstrukturen N Nachfolgerknoten einem Elternknoten zugeordnet werden. ❏ Binäre 1:1-Beziehungen lassen sich durch Beschränkung auf einen Nachfolgerknoten darstellen. ❏ Schwierigkeiten treten bei der Modellierung von N:M-Beziehungen, von allgemeinen n-ären Beziehungen und dann auf, wenn ein Knotentyp als Nachfolgerknoten verschiedener Knotentypen auftritt. ❏ Für die Darstellung einer N-M-Beziehung muß zwischen alternativen Modellierungsvarianten gewählt werden, die sich aus einer relativen Anordnung der beteiligten Rekordtypen in der Baumstruktur ergeben. ❏ Anwendungsabhängige Wahl der Modellierungsvariante unter erforderlicher Kenntnis der bevorzugten Zugriffsarten. (s. 4.2.8) Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.7 HDM: Assoziationen (2) Schemadiagramme für drei Modellierungsvarianten einer N:M-Beziehung zwischen Projekten und Abteilungen: Schema-Alternative A Schema-Alternative B Projekt Nr Titel Abteilung Kurz Name Budget Nr Titel Budget Projekt Kurz Name Abteilung FirmenDB FirmenDB Schema-Alternative C Projekt Nr Titel Budget Abteilungen ProjektDB Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Abteilung Kurz Name Projekte AbteilungsDB Das hierarchische Datenmodell 4.2.8 4 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Assoziationen (3) Schemaalternative A (ohne Abteilungshierarchie): Kollektionen von Nachfolgerknoten ❏ Abteilung ist Nachfolgerknoten von Projekt FirmenDB Projekt Abteilung Nr Titel 100 DB Fahrpläne Budget 300.000 Kurz Name MFSW Mainframe SW Kurz Name UXSW Unix SW Wurzeln der Bäume Nr Titel 200 ADAC Kundenstamm Budget 100.000 Kurz Name LTSW Leitung SW ! Kurz Name UXSW Unix SW Kurz Name PERS Personal Nr Titel 300 Telekom Statistik Budget 200.000 Kurz Name MFSW Mainframe SW Kurz Name PCSW PC SW Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.9 HDM: Assoziationen (4) Schemaalternative A: Fortsetzung ❏ Einfacher Zugriff auf alle Abteilungen, die an einem Projekt arbeiten ❏ Beim Zugriff auf alle Projekte, an denen eine Abteilung arbeitet, muß die gesamte Baumebene (alle Projekte mit den dazugehörigen Abteilungen) durchsucht werden. ❏ Die Darstellung von N:M-Beziehungen erfordert die Duplizierung von Information, da jeder Rekord nur höchstens einen Elternknoten besitzen darf (im Beispiel auf der nächsten Folie kommen die Informationen zu den Abteilungen Unix SW und Mainframe SW jeweils doppelt in der Datenbank vor, da jede dieser Abteilungen an zwei Projekten arbeitet). ❏ Problem: Die Abteilung PC Software, die aktuell nicht an einem Projekt arbeitet, kann nicht in der Datenbank dargestellt werden, obwohl sie in der Realität weiterhin existiert. Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.10 5 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Assoziationen (5) Schemaalternative B: ❏ Projekt ist Nachfolgerknoten von Abteilung FirmenDB Abteilung Projekt Kurz Name MFSW Mainframe SW Nr Titel 100 DB Fahrpläne Budget 300.000 Nr Titel 300 Telekom Statistik Budget 200.000 Nr Titel 100 DB Fahrpläne Budget 300.000 Nr Titel 200 ADAC Kundenstamm Budget 100.000 Kurz Name LTSW Leitung SW Nr Titel 100 DB Fahrpläne Budget 300.000 Kurz Name PERS Personal Nr Titel 200 ADAC Kundenstamm Budget 100.000 Kurz Name UXSW Unix SW ! Kurz Name PCSW PC SW ! Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.11 HDM: Assoziationen (6) Probleme bei den Modellierungsalternativen A und B: ❏ Duplizierung von Information in der Datenbank erhöht sowohl den Speicherbedarf als auch die Gefahr von Inkonsistenzen ❏ Bei Aktualisierungsoperationen ist sicherzustellen, daß mit einem Datenobjekt zugleich auch alle evtl. existierenden Kopien geändert werden. ❏ Willkürliche Asymmetrie Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.12 6 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Assoziationen (7) Schemaalternative C (Konzept des Virtuellen Rekords): ❏ Ziel: Umgehung der Probleme der Informationsduplizierung und der Asymmetrie bei der Darstellung von Beziehungen. ❏ Mehr als ein hierarchisches Schema für eine Datenbank wird unterstützt: d.h., daß der gleiche Datenbestand scheinbar gleichzeitig gemäß verschiedener HDMBaumtypen organisiert wird (s. nächste Folie: Baumtypen ProjektDB und AbteilungsDB in den Modellierungsvarianten A und B innerhalb der Modellierungsvariante C). ❏ Zusätzliche Indirektion: • Anstatt einen Rekord r zu duplizieren wird ein virtueller Rekord eingeführt, der einen Verweis auf den Rekord r enthält. • Der tatsächliche Rekord tritt nur einmal in einem Baum auf. An den anderen Stellen werden nur die virtuellen Rekords verwendet, von denen auch mehrere auf dasselbe Datenobjekt verweisen können. • Jeder virtuelle Rekord kommt wiederum nur einmal in der Datenbank vor. Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.13 HDM: Assoziationen (8) Zustand der Firmendatenbank (HDM-Modellierungsvariante C): ProjektDB Virtuelle Rekords AbteilungsDB Kurz Name MFSW Mainframe SW W Nr Titel 100 DB Fahrpläne Budget 300.000 Nr Titel 200 ADAC Kundenstamm Budget 100.000 Nr Titel 300 Telekom Statistik Budget 200.000 Kurz Name UXSW Unix SW Kurz Name PCSW PC SW Kurz Name LTSW Leitung SW Kurz Name PERS Personal Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.14 7 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Datendefinition (1) Beispiel: Ausbildungsdatenbank KURS KURS# TITEL BESCHRBG ANGEBOT VORAUS KURS# TITEL DATUM ORT FORMAT STUDENT LEHRER MITARB# NAME MITARB# Datenbanken und Informationssysteme NAME GRAD Das hierarchische Datenmodell 4.2.15 HDM: Datendefinition (2) Datenbankbeschreibung (DBD) der Ausbildungsdatenbank (AUSBPDB): ❏ Hier: "Konzeptuelle DDL" für IBM's Information Management System (IMS) ❏ Vgl. C.J. Date. An Introduction to Database Systems. 3. Auflage. Addison-Wesley, Reading, Massachusetts, 1981. 11 DBD DBD NAME=AUSBPDBD NAME=AUSBPDBD 22 33 44 55 NAME=KURS,BYTES=256 NAME=KURS,BYTES=256 NAME=(KURS#,SEQ),BYTES=3,START=1 NAME=(KURS#,SEQ),BYTES=3,START=1 NAME=TITEL,BYTES=33,START=4 NAME=TITEL,BYTES=33,START=4 NAME=BESCHRBG,BYTES=220,START=37 NAME=BESCHRBG,BYTES=220,START=37 SEGM SEGM FIELD FIELD FIELD FIELD FILED FILED 66 SEGM SEGM NAME=VORAUS,PARENT=KURS,BYTES=36 NAME=VORAUS,PARENT=KURS,BYTES=36 77 FIELD FIELD NAME=(KURS#,SEQ),BYTES=3,START=1 NAME=(KURS#,SEQ),BYTES=3,START=1 88 FIELD NAME=TITEL,BYTES=33,START=4 FIELD NAME=TITEL,BYTES=33,START=4 99 SEGM SEGM 10 10 FIELD FIELD 11 11 FIELD FIELD 12 FIELD 12 FIELD 13 13 SEGM SEGM NAME=LEHRER,PARENT=ANGEBOT,BYTES=24 NAME=LEHRER,PARENT=ANGEBOT,BYTES=24 14 14 FIELD FIELD NAME=(MITARB#,SEQ),BYTES=6,START=1 NAME=(MITARB#,SEQ),BYTES=6,START=1 15 15 FIELD FIELD NAME=NAME,BYTES=18,START=7 NAME=NAME,BYTES=18,START=7 16 16 SEGM SEGM 17 17 FIELD FIELD 18 18 FIELD FIELD 19 19 FIELD FIELD Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell NAME=ANGEBOT,PARENT=KURS,BYTES=20 NAME=ANGEBOT,PARENT=KURS,BYTES=20 NAME=(DATE,SEQ,M),BYTES=6,START=1 NAME=(DATE,SEQ,M),BYTES=6,START=1 NAME=ORT,BYTES=12,START=7 NAME=ORT,BYTES=12,START=7 NAME=FORMAT,BYTES=2,START=19 NAME=FORMAT,BYTES=2,START=19 NAME=STUDENT,PARENT=ANGEBOT,BYTES=25 NAME=STUDENT,PARENT=ANGEBOT,BYTES=25 NAME=(MITARB#,SEQ),BYTES=6,START=1 NAME=(MITARB#,SEQ),BYTES=6,START=1 NAME=NAME,BYTES=18,START=7 NAME=NAME,BYTES=18,START=7 NAME=GRAD,BYTES=1,START=25 NAME=GRAD,BYTES=1,START=25 Das hierarchische Datenmodell 4.2.16 8 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Anfragen ❏ Die Formulierung von Anfragen geschieht im HDM satzorientiert und prozedural wie im NDM. ❏ Die Operationen werden in einer Gastsprache eingebettet. ❏ Die Kommunikation zwischen der Datenbank und einer Applikation findet ebenfalls wie im Netzwerkdatenmodell über eine UWA (User Work Area) statt. ❏ Die NDM-Operationen find und get sind in der get-Funktion im HDM zusammengefaßt. ❏ Operationen zum Durchsuchen von Teilbäumen werden unterstützt. ❏ Suchoperationen können Prädikate als Parameter enthalten, die den Suchraum einschränken. ❏ Navigation immer von der Wurzel aus abwärts Datenbanken und Informationssysteme Das hierarchische Datenmodell 4.2.17 HDM: Aktualisierungsoperationen ❏ Operationen zum Einfügen, Löschen und Modifizieren der Datenbank ❏ Neue Bäume werden durch Einfügen eines neuen Rekords des Wurzelknotentyps erzeugt. ❏ Beim Einfügen eines neuen Rekords in eine Hierarchie wird dessen Position durch Umsetzen der entsprechenden Aktualitätszeiger festgelegt. ❏ Das Löschen und Modifizieren von Elementen der Datenbank geschieht in zwei Schritten: 1. Lokalisierung des betreffenden Rekords: Benutzung einer Variante der o.g. get-Operation 2. Ausführung der Lösch- oder Modifikationsoperation auf dem aufgefundenen Rekord: Gelöscht wird dabei der gesamte Teilbaum, dessen Wurzel dieses Rekord ist. Die Modifikation von Attributwerten geschieht wie beim NDM im Kommunikationsrekord durch eine geeignete Zuweisungsoperation der Gastsprache und nachfolgendes Einbringen der Änderung in die Datenbank. Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.18 9 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt HDM: Bewertung ❏ Das HDM übernimmt alle Nachteile des NDM ❏ Zusätzliche Probleme bei der Modellierung von Zusammenhängen, die von einer streng hierarchischen Ordnung abweichen ❏ Sehr effizient bei eindeutig hierarchischer Problemstellung Datenbanken und Informationssysteme 4.2 Das hierarchische Datenmodell Das hierarchische Datenmodell 4.2.19 10