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 Netzwerkdatenmodell 4.1.1 NDM: Überblick über die Konzepte ❏ Eine Netzwerkdatenbank besteht aus einer Menge von Rekords, die durch Verweise (Zeiger) miteinander verbunden sind. ❏ Die Rekords sind mit den Tupeln des relationalen Datenmodells vergleichbar. Als Attributwerte sind jedoch auch strukturierte Werte und Wiederholgruppen zur Darstellung mengenwertiger Attribute möglich. ❏ Die Rekords sind in sogenannten DBTG-Mengen organisiert. Eine DBTG-Menge enthält ein ausgezeichnetes Element, das als Eigner (owner) der Menge bezeichnet wird, und beliebig viele Mitglieder (member). ❏ Die Definition eines DBTG-Mengentyps legt einen Rekordtyp A für den Eigner der Menge und einen Rekordtyp B für die Mitglieder der DBTG-Menge fest. ❏ In allen DBTG-Mengen, die den gleichen DBTG-Mengentyp besitzen, kann ein Rekord nur maximal einmal vorkommen. Ein Rekord kann jedoch in DBTG-Mengen verschiedenen Typs vertreten sein. ❏ DBTG-Mengen werden sowohl zur Darstellung von Objektmengen als auch zur Assoziation von Datenobjekten benutzt. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.2 1 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: DBTG-Mengen (1) Zustand der Projektdatenbank: FirmenDB / System Projekte Nr Titel 100 DB Fahrpläne Budget 300.000 ProjAbt AbtProj Abteilungen Kurz Name MFSW Mainframe SW Kurz Name UXSW Unix SW Nr Titel Budget 200 ADAC Kundenst. 100.000 Kurz Name PCSW PC SW Nr Titel Budget 300 Telekom Statistik 200.000 Kurz Name LTSW Leitung SW Projekt Projektdurchführung Kurz Name PERS Personal Datenbanken und Informationssysteme Abteilung Das Netzwerkdatenmodell 4.1.3 NDM: DBTG-Mengen (2) Eine DBTG-Menge besteht aus einem Verweis auf den Eigner der DBTG-Menge und einer Kollektion, die eine beliebige Anzahl von Verweisen auf Mitglieder enthält. DBTG-Mengen unterscheiden sich von mathematischen Mengen in folgenden Punkten: ❏ Eine DBTG-Menge ist nicht homogen, sie enthält Elemente von zwei verschiedenen Typen. ❏ Es gibt ein ausgezeichnetes Element, den Eigner der DBTG-Menge. ❏ Die Mitglieder einer DBTG-Menge sind geordnet. Spezielle DBTG-Mengen (system owned sets) haben als Eigner das System (DBMS Software): ❏ Es gibt jeweils nur eine Ausprägung dieser Mengen. ❏ Sie ermöglichen die Angabe einer Sortierreihenfolge. ❏ Sie dienen als Einstiegspunkt für Anfrageoperationen. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Beispiel: Beispiel: Projekte Projekte Abteilungen Abteilungen Das Netzwerkdatenmodell 4.1.4 2 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: DBTG-Mengen (3) Es gelten folgende Einschränkungen: ❏ Ein Rekord kann innerhalb einer DBTG-Menge nur einmal als Mitglied oder Eigner auftreten. Derselbe Rekord kann jedoch in verschiedenen DBTG-Mengen des gleichen Mengentyps vertreten sein, und zwar sowohl als Eigner als auch als Mitglied. ❏ Ein Rekordtyp kann nicht zugleich Eigner- und Mitgliedstyp derselben DBTGMenge sein. Dies erschwert die Definition rekursiver Beziehungen. →DBTG-Mengen →DBTG-Mengenkönnen könnendurch durchihren ihrenEigner Eignerund undauch auchdurch durcheines eines ihrer ihrerMitglieder Mitgliederidentifiziert identifiziertwerden. werden. Rekursive Rekursiveund undN:M N:MBeziehungen Beziehungen erfordern erforderndie dieEinführung Einführungspezieller speziellerVerbindungsrekords Verbindungsrekords. . Datenbanken und Informationssysteme Das Netzwerkdatenmodell 4.1.5 NDM: Assoziationen (1) Assoziationen zwischen Datenobjekten werden durch die Definition von geeigneten DBTG-Mengen modelliert: ❏ 1:N-Beziehungen (insbesondere binäre) werden durch die Zuordnung einer Menge von Rekords zu einem einzelnen Rekord (dem Eigner), wie dies in DBTG-Mengen geschieht, optimal unterstützt. ❏ Binäre 1:1-Beziehungen lassen sich durch DBTG-Mengen modellieren, die neben dem Eigner jeweils ein Mitglied besitzen. ❏ N:M-Beziehungen werden durch Einführung von Verbindungsrekords dargestellt. Beispiel: Beispiel: Projektdurchfuehrung Projektdurchfuehrung →Die →DieDarstellung Darstellungvon von1:1 1:1und undN:M-Beziehungen N:M-Beziehungenentspricht entsprichtweitgehend weitgehend der derdes desODMG-Objektmodells, ODMG-Objektmodells,mit mitdem demUnterschied, Unterschied,daß daßdie dieDefinition Definition einer einerBeziehung Beziehungim imobjektorientierten objektorientiertenAnsatz Ansatzals alsTeil Teildes desTyps Typseines eines Objektes Objektesgeschieht. geschieht. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.6 3 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: Assoziationen (2) Vgl. Darstellung einer N:M-Beziehung mit Verbindungsrekords im NDM und einer relationalen Tabelle im RDM: Nr. Kurz 100 MFSW FirmenDB / System Projekte Nr Titel 100 DB Fahrpläne Budget 300.000 ProjAbt AbtProj Nr. Kurz 100 UXSW Abteilungen Kurz Name MFSW Mainframe SW Nr. Kurz 100 LTSW Kurz Name UXSW Unix SW Nr Titel Budget 200 ADAC Kundenst. 100.000 Nr. Kurz 200 UXSW Kurz Name PCSW PC SW Nr Titel Budget 300 Telekom Statistik 200.000 Nr. Kurz 200 PERS Kurz Name LTSW Leitung SW Projekt Projektdurchführung Nr. Kurz 300 MFSW Kurz Name PERS Personal Projektdurchführung Abteilung NDM RDM Datenbanken und Informationssysteme Das Netzwerkdatenmodell 4.1.7 NDM: Datendefinition (1) ❏ Die Notation der Datendefinitionssprache orientiert sich an der Datendefinitionssprache des netzwerkmodellbasierten Datenbanksystems IDMS, das auf dem DBTG-Vorschlag beruht. ❏ Ein wichtige Rolle spielen die Optionen, die bei der Definition von Rekord- und DBTG-Mengentypen angegeben werden können. Sie umfassen • Sortierordnungen, • Eindeutigkeitsbedingungen, • Optionen für das Vorgehen beim Einfügen und Löschen, order order is is sorted, sorted, ascending ascending duplicates duplicates not not allowed allowed optional, optional, automatic automatic • Optionen, die Auswirkungen auf den Effekt bestimmter Aktualisierungsoperationen haben, • Optionen, die das Auffinden von Datenobjekten im Speicher steuern. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell location location mode mode Das Netzwerkdatenmodell 4.1.8 4 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: Datendefinition (2) Schemadefinition der Projektdatenbank: schema schema name name is is ProjektDB ProjektDB record record name name is is Projekt. Projekt. location location mode mode is is calc calc using using Nr Nr duplicates duplicates not not allowed. allowed. 02 02 Nr Nr pic pic x(5). x(5). 02 02 titel titel pic pic x(30). x(30). 02 Budget pic 02 Budget pic 9999999.99. 9999999.99. record record name name is is Abteilung. Abteilung. location location mode mode is is calc calc using using Kurz Kurz duplicates duplicates not not allowed. allowed. 02 Kurz pic x(4). 02 Kurz pic x(4). 02 02 name name pic pic x(30). x(30). record record name name is is Projektdurchfuehrung. Projektdurchfuehrung. set set name name is is Projekte. Projekte. order order is is sorted. sorted. owner is system. owner is system. member member is is Projekt Projekt mandatory mandatory automatic automatic ascending ascending key key is is Nr. Nr. set set name name is is Abteilungen. Abteilungen. order order is is sorted. sorted. owner owner is is system. system. member member is is Abteilung Abteilung mandatory mandatory automatic automatic ascending ascending key key is is Kurz. Kurz. set set name name is is ProjAbt. ProjAbt. order order is is next next owner owner is is Projekt Projekt member member is is Projektdurchfuehrung Projektdurchfuehrung optional optional manual manual set set name name is is AbtProj. AbtProj. order order is is next next owner owner is is Abteilung Abteilung member member is is Projektdurchfuehrung Projektdurchfuehrung optional optional manual manual Datenbanken und Informationssysteme Das Netzwerkdatenmodell 4.1.9 NDM: Anfragen (1) Anfragen werden über eine satzorientierte, prozedurale Sprache realisiert. Die entsprechenden Kommandos sind in eine Gastsprache (host language) eingebettet. Die Kommunikation zwischen Anwendung und Datenbanksystem geschieht über die user work area (UWA), auf die beide Zugriff haben. Es enthält die folgenden Strukturen: ❏ Kommunikationsrekords sind zu jedem im Schema definierten Rekordtyp vorhanden. Über sie werden die Daten zwischen Anwendungsprogramm und Datenbanksystem bidirektional ausgetauscht. ❏ Aktualitätszeiger verweisen auf ausgezeichnete Rekords, die etwa mit Hilfszeigern beim Durchlaufen einer Liste vergleichbar sind. Sie dienen der Kennzeichnung der beim Navigieren erreichten Position, die als Ausgangspunkt für Folgeoperationen benutzt wird. Aktualitätszeiger existieren für jeden Rekordtyp und zu jedem im Schema definierten DBTG-Mengentyp. Eine wichtige Rolle bei Aktualisierungsoperationen spielt der aktuelle Rekord, der zu jedem Zeitpunkt genau einen Rekord der gesamten Datenbank auszeichnet. ❏ Statusvariablen übermitteln dem Anwendungsprogramm z.B. Informationen über den Erfolg von Datenbankoperationen. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.10 5 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: Anfragen (2) Programmvariablen: i, j DB-status UWA Projekt get Projektdurchfuehrung get Abteilung get Datenbanken und Informationssysteme Das Netzwerkdatenmodell 4.1.11 NDM: Anfragen (3) Eine Anfrage setzt sich konzeptuell aus zwei Schritten zusammen: ❏ Auffinden der Information: Eine oder mehrere find-Operationen dienen dazu, den Aktualitätszeiger so zu positionieren, daß ein Element des Anfrageergebnisses zum aktuellen Rekord wird. Zwei Gruppen von find-Operationen stehen zur Verfügung: • Suchen innerhalb aller Ausprägungen eines Rekordtyps (find any, find duplicate) • Navigieren innerhalb von DBTG-Mengen z.B. für den Zugriff auf den Eigner (find owner within) oder auf die Mitglieder (find first within) ❏ Kopieren des Inhalts des aktuellen Rekords in das entsprechende Kommunikationsrekord: Diesem Zweck dient die get-Operation. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.12 6 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: Anfragen (4) Beispiel einer Anfrage: Ermittlung der Titel aller Projekte, an denen die Abteilung Mainframe SW arbeitet. Abteilung.Name Abteilung.Name := := 'Mainframe 'Mainframe SW' SW' find find any any Abteilung Abteilung using using Name Name find find first first Projektdurchfuehrung Projektdurchfuehrung within within AbtProj AbtProj while while DB-status DB-status == 00 do do begin begin find find owner owner within within ProjAbt ProjAbt get get Projekt Projekt print(Projekt.Titel) print(Projekt.Titel) find find next next Projektdurchfuehrung Projektdurchfuehrung within within AbtProj AbtProj end; end; Datenbanken und Informationssysteme Das Netzwerkdatenmodell 4.1.13 NDM: Aktualisierungsoperationen (1) Aktualisierungsoperationen bauen auf Operationen zum Auffinden von Informationen auf. Man unterschiedet sie in ❏ Operationen auf Rekordebene, ❏ Operationen auf DBTG-Mengen. Zur Aktualisierung von Datenobjekten (Rekords) gibt es Operationen zum : ❏ Einfügen: Das einzufügende Rekord wird im entsprechenden Kommunikationsbereich zusammengestellt und durch die store-Operation eingefügt. ❏ Löschen: Der Rekord wird aufgesucht und zum aktuellen Rekord gemacht. Die erase-Operation entfernt den Rekord aus der Datenbank. ❏ Modifizieren: Der Rekord wird durch spezielle Suchoperationen (find for update) aufgesucht und zum aktuellen Rekord gemacht (get). Durch Zuweisungsoperationen der Gastsprache wird der Rekord modifiziert und anschließend durch die Operation modify zurückgeschrieben. Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.14 7 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: Aktualisierungsoperationen (2) Operationen auf DBTG-Mengen: ❏ Einhängen eines Rekords (connect) ❏ Aushängen eines Rekords (disconnect) ❏ Umhängen eines Rekords (reconnect) in eine DBTG-Menge gleichen Typs Vor Ausführung dieser Operationen werden die Aktualitätszeiger durch geeignete findOperationen auf die entsprechenden Rekords und DBTG-Mengen positioniert. Optionen, die bei der Definition von DBTG-Mengen angegeben werden können, spielen bei diesen Operationen eine wichtige Rolle. Z.B.: ❏ automatic gibt an, daß Rekords des Mitgliedstyps automatisch in eine DBTGMenge des definierten Typs eingehängt werden. ❏ fixed verbietet das Aus- und Umhängen. ❏ mandatory erlaubt nur das Umhängen innerhalb des gleichen DBTGMengentyps. Datenbanken und Informationssysteme Das Netzwerkdatenmodell 4.1.15 NDM: Aktualisierungsoperationen (3) Beispiel: Abteilung UNIX SW führt das Projekt Telekom Statistik durch. store store Projektdurchfuehrung Projektdurchfuehrung abteilung.Name abteilung.Name := := "Unix "Unix SW" SW" find find any any Abteilung Abteilung using using Name Name connect connect Projektdurchfuehrung Projektdurchfuehrung to to AbtProj AbtProj projekt.Titel projekt.Titel := := "Telekom "Telekom Statistik" Statistik" find find any any projekt projekt using using Titel Titel connect Projektdurchfuehrung connect Projektdurchfuehrung to to ProjAbt ProjAbt Programmiersprache (Cobol) Code Programmvariablen UWA find, get DBTG-Mengen, Rekords DBMS Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.16 8 Vorlesung "Datenbanken und Informationssysteme“ WS 98/99 © F. Matthes, J.W. Schmidt NDM: Bewertung ❏ Eingeschränkte Datenmodellierung: Member/Owner Mengen repräsentieren Aggregation, Assoziation und Klassifikation, nicht aber Generalisierung. ❏ Komplexe Programmiersprachenanbindung ❏ Keine deklarativen Anfragen ❏ Keine mengenwertigen Operationen ❏ Referentielle Integrität, Schlüsselintegrität, Ordnung Datenbanken und Informationssysteme 4.1 Das Netzwerkdatenmodell Das Netzwerkdatenmodell 4.1.17 9