Logische Datenmodelle



Ähnliche Dokumente
9. Einführung in Datenbanken

3. Das Relationale Datenmodell

4. BEZIEHUNGEN ZWISCHEN TABELLEN

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Datenbanken: Relationales Datenbankmodell RDM

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Anzeige von eingescannten Rechnungen

Lehrer: Einschreibemethoden

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Universität Augsburg, Institut für Informatik Wintersemester 2011/2012 Prof. Dr. W. Kießling 03. Feb Semesterklausur

Sonderrundschreiben. Arbeitshilfe zu den Pflichtangaben in Immobilienanzeigen bei alten Energieausweisen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Abfragen: Grundbausteine

Anleitung über den Umgang mit Schildern

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Grundlagen der Theoretischen Informatik, SoSe 2008

Erste Schritte ANLEITUNG Deutsche Sportausweis Vereinsverwaltung Schnittstelle zum Portal des Deutschen Sportausweises unter

Allgemeines zu Datenbanken

Anleitung für den Elektronischen Lesesaal der Martin-Opitz Bibliothek

Aufgabe 1: [Logische Modellierung]

Erstellen von x-y-diagrammen in OpenOffice.calc

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Leitfaden zur Moduleinschreibung

Einführung in die Algebra

5. Übung: PHP-Grundlagen

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Im Original veränderbare Word-Dateien

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

1 topologisches Sortieren

Word 2010 Schnellbausteine

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Fallbeispiel: Eintragen einer Behandlung

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

multisign Signatur-Prüfwerkzeug Handbuch Security Networks AG Stand:

Datenbank LAP - Chefexperten Detailhandel

Algorithmische Mathematik

QTrade GmbH Landshuter Allee München Seite 1

Internet online Update (Mozilla Firefox)

Aus Knoten und Kanten, die Bezeichnungen haben können. Ein Graph, bei dem die Kanten Richtungen haben.

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

IT-Kompaktkurs. Datenbanken Skript zur Folge 5. Prof. Dr. Georg Herde Fachhochschule Deggendorf

Welches Übersetzungsbüro passt zu mir?

Inhaltsverzeichnis. 1. Fragestellung

Nutzerhandbuch Zentrale Klassenverwaltung

Zahlen auf einen Blick

Dokumentation für Lehrstühle

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

1 Mathematische Grundlagen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Österreichische Trachtenjugend

Einführung in. Logische Schaltungen

Wirtschaftsinformatik 2. Tutorium im WS 11/12

DAS HALLENBUCHUNGSPROGRAMM EBUSY

Anleitung zur Verwendung der VVW-Word-Vorlagen

Senioren ans Netz. schreiben kurze Texte. Lektion 9 in Themen aktuell 2, nach Übung 7

Umzug der abfallwirtschaftlichen Nummern /Kündigung

Waimea Phone Monitor. Handbuch. Anzeige von eingehenden Anrufen auf Telefonanlagen mit TAPI-Interface

ER-Diagramme. eine Modellierung. Beziehungen der Elternschaft:

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Nutzung von GiS BasePac 8 im Netzwerk

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Statuten in leichter Sprache

Informatik 12 Datenbanken SQL-Einführung

I Serverkalender in Thunderbird einrichten

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Staatssekretär Dr. Günther Horzetzky

Arbeiten mit UMLed und Delphi

2) Geben Sie in der Anmeldemaske Ihren Zugangsnamen und Ihr Passwort ein

Der Jazz Veranstaltungskalender für Deutschland, Österreich und die Schweiz

Kapitel 8: Physischer Datenbankentwurf

Zwischenablage (Bilder, Texte,...)

Pfötchenhoffung e.v. Tier Manager

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Datenbanksysteme 2 Frühjahr-/Sommersemester Mai 2014

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

Hilfedatei der Oden$-Börse Stand Juni 2014

teamsync Kurzanleitung

Bedienungsanleitung GYMplus

ZVT TA7.0 Protokoll beim ICT250 aktivieren

Programmierkurs Java

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Produktionsplanung und steuerung (SS 2011)

Mandant in den einzelnen Anwendungen löschen

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Das Entity-Relationship-Modell

Übungsaufgaben Tilgungsrechnung

Transkript:

Kapitel 3 Logische atenmodelle In Abhängigkeit von dem zu verwendenden atenbanksystem wählt man zur computergerechten Umsetzung des Entity-Relationship-Modells das hierarchische, das netzwerkorientierte, das relationale oder das objektorientierte atenmodell. 3.1 as Hierarchische atenmodell atenbanksysteme, die auf dem hierarchischen atenmodell basieren, haben (nach heutigen Standards) nur eine eingeschränkte Modellierfähigkeit und verlangen vom Anwender Kenntnisse der interne Ebene. Trotzdem sind sie noch sehr verbreitet (z.b. IMS von IBM), da sie sich aus ateiverwaltungssystemen für die konventionelle atenverarbeitung entwickelt haben. ie zugrunde liegende Speicherstruktur waren Magnetbänder, welche nur sequentiellen Zugriff erlaubten. Im Hierarchischen atenmodell können nur baumartige Beziehungen modelliert werden. Eine Hierarchie besteht aus einem Wurzel-Entity-Typ, dem beliebig viele Entity-Typen unmittelbar untergeordnet sind; jedem dieser Entity-Typen können wiederum Entity-Typen untergeordnet sein usw. Alle Entity- Typen eines Baumes sind verschieden. Abbildung 3.1 zeigt ein hierarchisches Schema sowie eine mögliche Ausprägung anhand der bereits bekannten Universitätswelt. er konstruierte Baum ordnet jedem Studenten alle Vorlesungen zu, die er besucht, sowie alle Professoren, bei denen er geprüft wird. In dem gezeigten Baum ließen sich weitere Teilbäume unterhalb der Vorlesung einhängen, z.b. die Räumlichkeiten, in denen Vorlesungen stattfinden. Obacht: es wird keine Beziehung zwischen den Vorlesungen und ozenten hergestellt! ie ozenten sind den Studenten ausschließlich in ihrer Eigenschaft als Prüfer zugeordnet. Grundsätzlich sind einer Vater-Ausprägung (z.b. Erika Mustermann) für jeden ihrer Sohn-Typen jeweils mehrere Sohnausprägungen zugeordnet (z.b. könnte der Sohn-Typ Vorlesung 5 konkrete Vorlesungen enthalten). adurch entsprechen dem Baum auf Typ-Ebene mehrere Bäume auf Entity- Ebene. iese Entities sind in Preorder-Reihenfolge zu erreichen, d.h. vom Vater zunächst seine Söhne und Enkel und dann dessen Brüder. ieser Baumdurchlauf ist die einzige Operation auf einer Hierarchie; jedes atum kann daher nur über den Einstiegspunkt Wurzel und von dort durch Überlesen nichtrelevanter atensätze gemäß der Preorder-Reihenfolge erreicht werden. ie typische Operation besteht aus dem Traversieren der Hierarchie unter Berücksichtigung der jeweiligen Vaterschaft, d. h. der Befehl GNP VORLESUNG (gesprochen: GET NEXT VORLESUNG 31

32 KAPITEL 3. LOGISCHE ATENMOELLE Student MatNr Vorname Nachname Vorlesung VorNr Titel Umfang ozent PersNr Vorname Nachname Rang S Mustermann V Stochastik V Java Stadje Vogt Schreiner S Wacker V Zahlentheorie Vogt Abbildung 3.1: Hierarchisches Schema und eine Ausprägung. er Recordtyp sei erkennbar an den Zeichen S (Studenten), V (Vorlesungen) und (ozenten) WITHIN PARENT) durchläuft sequentiell ab der aktuellen Position die Preorder-Sequenz solange vorwärts, bis ein dem aktuellen Vater zugeordneter atensatz vom Typ Vorlesung gefunden wird. Um zu vermeiden, daß alle Angaben zu den ozenten mehrfach gespeichert werden, kann eine eigene Hierarchie für die ozenten angelegt und in diese dann aus dem Studentenbaum heraus verwiesen werden. Es folgt ein umfangreicheres Beispiel, entnommen dem Buch von C.J. ate. Abbildung 3.2 zeigt das hierarchische Schema, Abbildung 3.3 eine Ausprägung. ie Query Welche Studenten besuchen den Kurs M23 am 13.08.1973? wird unter Verwendung der ML (ata Manipulation Language) derart formuliert, daß zunächst nach Einstieg über die Wurzel der Zugriff auf den gesuchten Kurs stattfindet und ihn als momentanen Vater fixiert. Von dort werden dann genau solche Records vom Typ Student durchlaufen, welche den soeben fixierten Kursus als Vater haben: GU COURSE (COURSE#= M23 ) (ATE= 730813 ); if gefunden then GNP STUENT; while gefunden do write (STUENT.NAME); GNP STUENT end end;

3.1. AS HIERARCHISCHE ATENMOELL 33 COURSE COURSE# TITLE ESCRIPN PREREQ COURSE# TITLE ATE LOCATION FORMAT TEACHER STUENT EMP# NAME EMP# NAME GRAE Abbildung 3.2: Beispiel für ein hierarchisches Schema COURSE M23 ynamics PREREQ M19 Calculus PREREQ M16 Trigonometry 730813 741104 750106 Madrid ublin Oslo F3 F3 F2 TEACHER 421633 Sharp, R. 102141 183009 761620 Tallis, T. Gibbons, O. Byrd, W. B A B STUENT STUENT STUENT Abbildung 3.3: Beispiel für eine Ausprägung des hierarchischen Schemas

34 KAPITEL 3. LOGISCHE ATENMOELLE 3.2 as Netzwerk-atenmodell Im Netzwerk-atenmodell können nur binäre many-one- (bzw. one-many)-beziehungen dargestellt werden. Ein E-R-iagramm mit dieser Einschränkung heißt Netzwerk. Zur Formulierung der manyone-beziehungen gibt es sogenannte Set-Typen, die zwei Entity-Typen in Beziehung setzen. Ein Entity-Typ übernimmt mittels eines Set-Typs die Rolle des owner bzgl. eines weiteren Entity-Typs, genannt member. Im Netzwerk werden die Beziehungen als gerichtete Kanten gezeichnet vom Rechteck für member zum Rechteck für owner (funktionale Abhängigkeit). In einer Ausprägung führt ein gerichteter Ring von einer owner-ausprägung über alle seine member-ausprägungen (Abbildung 3.4). owner - Typ Autor Mustermann set - Typ schreibt member - Typ Buch Schneller beten Selber atmen Richtig streiken Abbildung 3.4: Netzwerkschema und eine Ausprägung Bei nicht binären Beziehungen oder nicht many-one-beziehungen hilft man sich durch Einführung von künstlichen Kett-Records. Abbildung 3.5 zeigt ein entsprechendes Netzwerkschema und eine Ausprägung, bei der zwei Studenten jeweils zwei Vorlesungen hören. Student Mustermann Wacker ss SV vs Vorlesung Java Stochastik Zahlentheorie Abbildung 3.5: Netzwerkschema mit Kett-Record und eine Ausprägung ie typische Operation auf einem Netzwerk besteht in der Navigation durch die verzeigerten Entities. Mit den Befehlen FIN NEXT Student FIN NEXT sv WITHIN ss FIN OWNER WITHIN vs

3.3. AS RELATIONALE ATENMOELL 35 lassen sich für einen konkreten Studenten alle seine Kett-Records vom Typ sv durchlaufen und dann jeweils der owner bzgl. des Sets vs ermitteln. STUENT.NAME := Mustermann ; FIN ANY STUENT USING NAME; if gefunden then FIN FIRST SV WITHIN SS; while gefunden do FIN OWNER WITHIN VS; GET VORLESUNG; WRITE(VORLESUNG.TITEL); FIN NEXT VORLESUNG WITHIN VS; end end; 3.3 as Relationale atenmodell Seien 1, 2,..., k Wertebereiche. R 1 2... k heißt Relation. Wir stellen uns eine Relation als Tabelle vor, in der jede Zeile einem Tupel entspricht und jede Spalte einem bestimmten Wertebereich. ie Folge der Spaltenidentifizierungen heißt Relationenschema. Eine Menge von Relationenschemata heißt relationales atenbankschema, die aktuellen Werte der einzelnen Relationen ergeben eine Ausprägung der relationalen atenbank. pro Entity-Typ gibt es ein Relationenschema mit Spalten benannt nach den Attributen. pro Relationshiptyp gibt es ein Relationenschema mit Spalten für die Schlüssel der beteiligten Entity-Typen und ggf. weitere Spalten. Abbildung 3.6 zeigt ein Schema zum Vorlesungsbetrieb und eine Ausprägung. Hierbei wurden die über ihre Tabellengrenzen hinausgehenden und zueinander passenden Attribute jeweils gleich genannt, um zu verdeutlichen, daß sie aten mit derselben Bedeutung speichern. Student Hoert Vorlesung MatNr Vorname Nachname 653467 Erika Mustermann 875462 Willi Wacker 432788 Peter Pan MatNr VorNr 653467 6.718 875462 6.718 432788 6.718 875462 6.108 VorNr Titel Umfang 6.718 Java 4 6.174 Stochastik 2 6.108 Zahlentheorie 4 Abbildung 3.6: Relationales Schema und eine Ausprägung

36 KAPITEL 3. LOGISCHE ATENMOELLE ie typischen Operationen auf einer relationaler atenbank lauten: Selektion: Suche alle Tupel einer Relation mit gewissen Attributeigenschaften Projektion: filtere gewisse Spalten heraus Verbund: Finde Tupel in mehreren Relationen, die bzgl. gewisser Spalten übereinstimmen. Beispiel-Query: Welche Studenten hören die Vorlesung Zahlentheorie? SELECT Student.Name from Student, Hoert, Vorlesung WHERE Student.MatrNr = Hoert.MatNr AN Hoert.VorlNr = Vorlesung.VorNr AN Vorlesung.Titel = "Zahlentheorie" 3.4 as Objektorientierte Modell Eine Klasse repräsentiert einen Entity-Typ zusammen mit einer Struktur- und Verhaltensbeschreibung, welche ggf. an Unterklassen vererbt werden können. Binäre Beziehungen können durch mengenwertige Attribute modelliert werden: class Studenten { attribute long Matrnr; attribute String Name; relationship set <Vorlesungen> hoert inverse Vorlesungen::Hoerer } class Professoren { attribute long PersNr; attribute String Name; relationship set <Vorlesungen> liest inverse Vorlesungen::gelesenVon } class Vorlesungen { attribute long VorlNr; attribute String Titel; relationship Professoren gelesenvon inverse Professoren::liest relationship set <Studenten> Hoerer inverse Studenten::hoert } Beispiel-Query: Welche Studenten besuchen Vorlesungen von Sokrates? select s.name from s in AlleStudenten, v in s.hoert where v.gelesenvon.name = "Sokrates"