• Keine Ergebnisse gefunden

09_8335_102-RDBM-Datenmodellierung-ERD

N/A
N/A
Protected

Academic year: 2022

Aktie "09_8335_102-RDBM-Datenmodellierung-ERD"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung

unter dem Förderkennzeichen 16OH21005 gefördert.

Die Verantwortung für den Inhalt dieser Veröffentlichung liegt

beim Autor/bei der Autorin.

(2)
(3)

In diesem Abschnitt beschäftigen wir uns mit dem Thema „Datenmodellierung“.

Es geht als darum, wie wir die Daten strukturiert beschreiben können. Diese Beschreibung ist aus folgenden Gründen wichtig:

• Damit de Anwendungsentwicklung versteht, welche Daten vorliegen, wie diese Daten zusammenhängen und wozu die Daten notwendig sind

• Ein Datenbank-Management-System bereitgestellt werden kann, welches in der Lage ist, genau diese Strukturierten Daten zu verwalten.

Im Fokus stehen hierbei folgende Fragestellungen:

• Was ist ein Datenmodell ?

• Was ist Gegenstand eines Datenmodells?

• Welche Möglichkeiten der Notation gibt es. Um Datenmodelle zu beschreiben/definieren?

(4)

Datenmodellierungist ein Prozess, um komplexe Zusammenhänge von Daten anhand von Diagrammen zu beschreiben und zu dokumentieren.

Datenmodelle sind daher ein wichtiger Bestandteil der Softwareentwicklung, da sie sehr gut geeignet sind für die Kommunikation mit allen Projektbeteiligen, um die Anforderungen zu bestimmen und festzulegen.

In der Theorie ist immer die Rede von Mengen und Relationen unter Verwendung von mathematischen Schreibweisen / Ausdrücken.

Bei der Datenmodellierung verwendet man dagegen graphische Elemente, um die Daten und deren Zusammenhang zu beschreiben und zu visualisieren.

Die Datenmodelle bestehen im wesentlichen aus Kästchen und Pfeilen.

• Die Kästchen repräsentieren Entity-Typen

• Die Pfeile repräsentieren die Beziehungen

(5)

Während wir Relationen in Form von Tabellen darstellen, redet man bei der Datenmodellierung von Entity-Typen.

Tabellen werden dabei eins zu eins als Entity-Typ aufgefasst.

Definitionen:

• Ein Tabelle ist also ein Entity-Typ

• Eine Zeile einer Tabelle wird als Entity bezeichnet.

Zusätzlich kommt jedoch noch hinzu, dass wir bei der Datenmodellierung jedem Attribut auch einen Datentyp und einen Wertebereich zuordnen.

Sowohl der Datentyp als auch der Wertebereich ergeben sich aus den

Anforderungen; also direkt aus der Problemstellung heraus. Zunächst können wir als Datentyp und Wertbereich alles verwenden, was uns hilft das Problem und die damit verbundenen Daten besser zu verstehen.

Wenn wir uns später mit der Programmiersprache SQL näher beschäftigen, werden wir die möglichen Datentypen und Wertbereiche genauer kennenlernen.

(6)

Hier nun ein Beispiel, um den Unterschied zwischen Entity-Type und Entities zu verdeutlichen.

Auf der linken Seite sehen Sie die Entity-Typen und auf der rechten Seite die Beispiele für die Entities inklusive der Attributwerte.

(7)

Bestehen Beziehungen zwischen Entity-Typen, so werden diese durch Linien dargestellt.

Wird nur eine Linie verwendet, so deutet dies darauf hin, dass die Beziehung in beide Richtungen existieren. Dies ist gleichbedeutend einer Line, an deren beiden Ende ein Pfeil eingetragen ist.

Verwendet man eine Line mit nur einem Pfeil, so ist dies als „gerichtete“

Beziehung zu interpretieren.

Um die Bedeutung einer Beziehung zu definieren, werden den Linien bzw. den Pfeilen ein Text zugeordnet, in dem die Semantik genau hervorgeht.

Beispiel:

Nehmen wir die Beziehung zwischen Entities vom Typ AUTO und Entities vom Type PERSON.

Hierbei können folgende Beziehungen bestehen:

(8)

• Beziehung: HALTER Das Auto x gehört einer Person y

• Beziehung: FAHRER Der Fahrer des Autos y ist die Person z

(9)

Dies Abbildung zeigt zwei wichtige Aspekte :

Auf der linke Seite sehen Sie Beispiele für Arten von Beziehungen. Wie bereits erwähnt, wird die Art der Beziehung durch einen Kurztext zum Ausdruck gebracht, welcher direkt an der Verbindungslinie notiert wird.

Auf der rechten Seite sehen wir Kardinalitäten. Durch Kardinalitäten wird zum Ausdruck gebracht / festgelegt, wieviel Entities bei der Existenz einer Beziehung beteiligt sind.

Mit anderen Worten: Die Angabe der Kardinalitäten bei einer Beziehung definiert also, wie viele Entities des jeweiligen Entity-Typs in dieser Beziehung beteiligt sein können.

Beide Themenbereich werden wir uns als nächstes näher ansehen.

(10)

Wie bereits erwähnt, wird die Art der Beziehung durch einen Kurztext zum Ausdruck gebracht, welcher direkt an der Verbindungslinie notiert wird.

Durch einen Pfeil wird angezeigt, wie die Beziehung zu interpretieren ist.

Schauen wir uns die Beziehungen bei Person und Buch näher an. (linke Seite) Die Beziehung am oberen Ende ist wie folgt zu interpretieren

Einer Person gehört ein Buch

Die Beziehung am unteren Ende ist wie folgt zu lesen:

Das Buch ist ausgeliehen von

Die Beziehungen auf der rechten Seite zeigen eine Besonderheit.

Zunächst würde sich anbieten eine Line direkt zwischen Kunde und Fahrzeug zu notieren und dies mit dem Text HALTER zu versehen.

Die ist nun zunächst korrekt, sofern wir lediglich zum Ausdruck bringen wollen, DASS eine Beziehung besteht.

Wenn es aber notwendig wird sich zu merken,

(11)

• Wann der Halter das Fahrzeugt gekauft hat

• Welchen Preis der Halter für das Fahrzeugt gezahlt hat,

dann sind diese Attribute nicht nur dann sinnvoll, wenn eine Beziehung besteht.

Die Attribute gehören also nicht zur Person und nicht zum Fahrzeug.

In diesem Fall ist es notwendig einen weiteren Entity-Typen einzuführen, wie in der Abbildung dargestellt

(12)

Die Abbildung zeigt die am weitesten verbreiteten Notationen für Datenmodelle im Bereich Datenbanken.

Darüber hinaus gibt es verschiedene Erweiterungen der einzelnen Notationen.

Zum Teil wird in der Praxis die UML-Notation für Klassen verwendet. Hierbei entspricht eine Klasse einem Entity-Typ.

In der Praxis hängt die verwendete Notation im wesentlichen davon ab, welche Daten-Modellierungstools in dem Projekt bzw. in der Firma angewendet wird.

Denn nicht immer unterstützen Datenmodellierungstools immer alle Notationen.

In diesem Lernmodel verwenden die DBDesigner4.

In einem eigenen Abschnitt werden wir uns die Installation und die Handhabung des Programmes näher ansehen. Dies ist sinnvoll, um die Übungen bzgl.

Datenmodellierung einfach und effizient durchführen zu können.

(13)

In dieser Abbildung sind die Namen der gebräuchlichsten Notationen für die Definition von Datenmodellen aufgeführt

Im einzelnen sind dies:

• Notation nach Chen

• Notation nach Martin

• Notation nach Bachmann

• Notation IDEF-1x

Als nächstes werden wir uns die einzelnen Notationen etwas näher ansehen.

(14)

In dieser Abbildung sind die wichtigsten Elemente der Notation nach Chen aufgeführt.

Rechtecke

• Rechtecke repräsentieren Entitätstypen. Ein Entitätstyp bildet Dinge der realen Welt ab (Kunden, Artikel, Gegenstände, Rechnungen, Aufträge usw.). I.d.R.

wird ein Entitätstyp in einer relationalen Datenbank durch eine Tabelle realisiert. Die Objekte der realen Welt, die dadurch modelliert werden, sind Entitäten.

Ellipsen

• Ellipsen repräsentieren Attribute. Attribute sind Eigenschaften von

Entitätstypen (Name, Anzahl, Größe, Farbe, Lagerbestand, laufende Nummer

… ). Attribute, die als Schlüssel zu verwenden sind, werden unterstrichen (z.B.

Primärschlüssel).

Rauten

• Rauten repräsentieren Beziehungstypen. Entitätstypen sind durch Beziehungstypen miteinander verbunden.

• Die Kardinalitäten (Anzahl) werden mit Zahlen bzw. Buchstaben angegeben (1, C, N, M).

(15)

Diese Abbildung zeigt ein Beispiel eines Datenmodells in Chen-Notation.

Das liest sich im Beispiel so:

• Jeder Patient hat die Attribute ‚Medizinische-Vorgeschichte und eine Medikamenten-Vorgeschichte.

• Jeder Patient hat genau ein Patienten-Account

• Jeder Patient unterzieht sich einer Behandlungs-Prozedur

(16)

Dies Abbildung zeigt ein Beispiel eines Datenmodells in der Bachmann Notation.

Rechtecke

• Rechtecke repräsentieren Entity-Typen

Linien

• Die Linien repräsentieren die Beziehungen, wobei die Kardinalitäten durch spezielle Symbole angegeben werden.

(17)

Die Notation nach Martin ist sehr ähnlich der Notation nach Bachmann Notation.

Rechtecke

• Rechtecke repräsentieren Entity-Typen

Linien

• Die Linien repräsentieren die Beziehungen, wobei die Kardinalitäten durch spezielle Symbole angegeben werden.

Aufgrund der Symbole bei den Beziehungen, wird dies auch als Krähenfuß (engl. Crows-Foot) Notation bezeichnet.

(18)

In dieser Abbildung sehen Sie noch einmal die Krähenfuß Notation.

Um sich nicht die ganzen Kombinationen einzeln merken zu müssen, gibt es einen einfachen Trick:

• Lesen Sie die Symbole von innen nach außen.

• Das innerste Symbol gibt dabei an , wieviel Entitys des jeweiligen Entity-Typs MINDESTENS beteiligt sind bei einer Beziehung.

• Das äußere Symbol gibt man, wie viele Entitys des jeweiligen Entity-Typs MAXIMAL an einer Beziehung beteiligt sind.

(19)

Dies Abbildung zeigt ein Beispiel eines Datenmodells in der Martin Notation.

Das Model ist dabei wie folgt zu interpretieren:

• Es gibt ein Entity-Typ Company, welches eine Firma repräsentiert

• Eine Company hat dabei die Attribute :

• idCompany – Nummer, die eine Firma eindeutig identifiziert

• Name – Name der Firma

• Es gibt ein Entity-Typ Product, welches ein Produkt repräsentiert

• Ein Produkt hat dabei folgende Attribute

• idItem – eindeutige Nummer eines Produktes

• Name – Name des Produktes

• Preis – Preis des Produktes

Die restlichen Attribute ignorieren wir hier erst einmal. Deren Bedeutung werden wir uns später noch einmal ansehen, wenn wir uns näher mit Beziehungen beschäftigen.

In der Abbildung sind auch Datentypen für die jeweiligen Attribute angegeben.

(20)

Diese können wir erst einmal ignorieren.

Bei dem verwendeten Tool ist die Angabe eines Datentypen obligatorisch. Wie wir später noch sehen werden, wenn wir uns den Prozess ansehen, wie man Datenmodelle erstellt, werden die Datentypen für Attribute erst im letzten Schritt notwendig.

(21)

Diese Abbildung zeigt die wichtigsten Elemente eines Datenmodells nach der IDEF-1X Notation.

Eine genaue Beschreibung der Notation finden Sie in dem Link http://www.idef.com/idef1x-data-modeling-method/

Wenn Sie unschwer feststellen, ist Notation bzw. sind die Symbole sehr ähnlich der Martin Notation.

Herkunft

IDEF steht für „Integrated Definition Methode (IDEF)“

Und wird von der Firma Knowledge Based Systems, Inc. (KBSI) vorangetrieben.

Diese Notation wird hier erwähnt, weil sie auch oft von Datenbank- Modellierungs-Werkzeugen unterstützt wird.

(22)

In dieser Abbildung sehen Sie ein Beispiel für die IDEF-1X Notation.

Eine Besonderheit ist die Verwendung eines Halbkreises (oben links) für die Darstellung der Beziehungen von „Person“ zu „Teacher” und „Student“.

Der Halbkreis soll zum eine „ist-ein“ ( engl. Is_a) Beziehung zum Ausdruck bringen. In dem Beispiel wird somit zum Ausdruck gebracht, dass ein „Teacher“

auch eine Person ist. Das gleiche gilt für den Entity-Typ „Student“. Auch für Entities des Typs „Student“ gilt, dass diese auch Entities des Typs „Person“ sind.

(23)
(24)

Referenzen

ÄHNLICHE DOKUMENTE

• Die physikalische Datenunabhängigkeit bedeutet, dass Änderungen auf der physikalischen Ebene keine Auswirkungen auf die logische Ebene hat. • Nur diese Ebene hat

Wie wir später noch sehen werden, können wir damit aber auch sicherstellen , dass wir keine Bestellung definieren können, zu denen es keine Kunden

Sofern eine logisches Modell vorliegt, werden in diesem Schritt die notwendigen Änderungen und Erweiterungen – die sich aus der Aufgabenstellung ergeben – in das Modell

Wie Sie in dem Beispiel sehen, wurden alle Attribute, die nur von dem Attribut prüfung abhängen, in eine gesonderte Tabelle ausgelagert... Kommen wir nur zur dritten Normalform

In diesem Fall liefert der jeweilige Hersteller des DBMS sowohl eine API-Beschreibung als auch eine Bibliothek, die zu der Anw Diese Art der Schnittstellen sind optimal auf das

In dieser Abbildung ist zu sehen, was passiert, wenn man aus einer Anwendung heraus einen Datensatz mittels einer SQL UPDATE ode.. Wurde an die Datenbank die UPDATE oder

Eine Zeile aus einer Tabelle kann so groß (Datenmenge), dass sie in mehrere PAGES abgelegt werden muss.. Um die Konsistenz zwischen den Daten im Hauptspeicher und der Festplatte

– Die Kardinalität gibt an, mit wieviel anderen Entitäten eine Entität in einer konkreten Beziehung stehen muss bzw...