21.08.2013 Aufrufe

Datenbank - WINFOR

Datenbank - WINFOR

Datenbank - WINFOR

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2 <strong>Datenbank</strong>systeme<br />

Im Folgenden werden wir einige grundlegende<br />

Eigenschaften von <strong>Datenbank</strong>systemen kennen lernen<br />

<strong>Datenbank</strong>en sind Bestandteil vieler<br />

Anwendungssysteme; sie stellen die dort benötigten<br />

Daten bereit<br />

Aufbau des Abschnitts<br />

Definition grundlegender Begriffe<br />

Datenmodelle<br />

Relationale Datenmodelle<br />

Entwurf einer <strong>Datenbank</strong><br />

Wirtschaftsinformatik und Operations Research 40<br />

2.1 Grundlegende Begriffe<br />

Eine <strong>Datenbank</strong> ist eine Ansammlung verwandter<br />

Fakten, die Bedeutung haben und gespeichert werden<br />

können; dies sind die Daten<br />

Die Daten sind zusammenhängend und haben<br />

anhaltend Bedeutung<br />

Die Daten werden angelegt, gepflegt und in einer<br />

speziellen Struktur gehalten<br />

Die Daten dienen bestimmten Anwendungen und<br />

besitzen so eine Gruppe von gezielten Benutzern<br />

Dies ist allerdings keine eindeutige Definition sondern<br />

lediglich eine charakterisierende Beschreibung von<br />

bestimmten Eigenschaften<br />

Wirtschaftsinformatik und Operations Research 41


Schemata und Instanzen<br />

Unter einem Schema (oder auch Meta Daten) einer<br />

<strong>Datenbank</strong> versteht man die Beschreibung der<br />

Struktur der dort zu speichernden Daten<br />

Unter den Ausprägungen dieser <strong>Datenbank</strong> versteht<br />

man die konkreten Datenbestände, die in der<br />

<strong>Datenbank</strong> gespeichert sind<br />

Die konkreten Datenbestände werden auch Zustand<br />

einer <strong>Datenbank</strong> genannt<br />

Somit führen offensichtlich Veränderungen dieser<br />

Datenbestände zu neuen Zuständen der <strong>Datenbank</strong><br />

Wirtschaftsinformatik und Operations Research 42<br />

<strong>Datenbank</strong> Management System<br />

Sammlung von Programmen, die es ermöglichen eine <strong>Datenbank</strong> zu erstellen und<br />

aufrecht zu erhalten<br />

DB Sprache für Operationen auf Datenbeständen<br />

Universell und anwendungsunabhängig<br />

Sichert Konsistenz der Daten<br />

Sichert Synchronisation<br />

Bietet standardisierte Schnittstelle<br />

Dabei wird unterstützt<br />

Definition der <strong>Datenbank</strong><br />

Festlegung der Datenstrukturen und<br />

Bedingungen der Datenspeicherung<br />

Manipulation der <strong>Datenbank</strong><br />

Auslesen und<br />

Veränderung der Datenbestände<br />

Konstruktion der <strong>Datenbank</strong><br />

Abspeicherung der Datenbestände<br />

Allgemein dienliche und einsetzbare Software<br />

Sie ist nicht erforderlich, um eine <strong>Datenbank</strong> zu verwalten, sondern man kann auch<br />

eigen entwickelte Software benutzen<br />

Wirtschaftsinformatik und Operations Research 43


<strong>Datenbank</strong><br />

Die <strong>Datenbank</strong> besteht aus<br />

Datenausprägungen (den eigentlichen Daten)<br />

und Datenbeschreibungen (den Meta Daten, d.h. dem<br />

<strong>Datenbank</strong> Schema)<br />

Sie stellt den integrierten Datenbestand anhand eines<br />

einheitlichen Datenmodells geordnet dar<br />

Das heißt man unterscheidet<br />

Die <strong>Datenbank</strong> Definition<br />

und die dort gespeicherten eigentlichen Daten<br />

Wirtschaftsinformatik und Operations Research 44<br />

<strong>Datenbank</strong>system<br />

Besteht aus einem <strong>Datenbank</strong>managementsystem und der <strong>Datenbank</strong><br />

Schematisch<br />

<strong>Datenbank</strong>system<br />

Benutzer / Programmierer<br />

Programme<br />

/ Anfragen<br />

DBMS<br />

Verwaltet Programme und Anfragen und greift auf Daten zu<br />

Dazu unterscheidet man Software zur Anfragebearbeitung und zum<br />

eigentlichen Zugriff auf die Daten<br />

<strong>Datenbank</strong><br />

Daten und Meta Daten<br />

Wirtschaftsinformatik und Operations Research 45


Warum gibt es <strong>Datenbank</strong>systeme?<br />

Für die Beantwortung dieser wichtigen zentralen<br />

Frage wollen wir im Folgenden einen kurzen Einblick<br />

in die Entwicklungsgeschichte von<br />

<strong>Datenbank</strong>systemen erarbeiten<br />

Hieraus wird schnell deutlich,<br />

welche Vorteile <strong>Datenbank</strong>systeme dem Nutzer<br />

bereitstellen<br />

und welche Nachteile vorangegangener Systeme zu<br />

ihrer Entwicklung geführt haben<br />

Wirtschaftsinformatik und Operations Research 46<br />

2.1.1 Entwicklungsgeschichte I<br />

Stufe 1: Elementare Dateien<br />

Datenhaltung um 1960<br />

Anwendungen halten eigene Daten in Dateiform mit individueller<br />

Struktur<br />

Anwendungssysteme führen den Datenzugriff bis ins kleinste<br />

Detail selbst durch<br />

(Schwacher) Vorteil<br />

Schnelle Speziallösungen sind möglich<br />

Nachteile<br />

Inkonsistenz der Datenbestände kann durch unterschiedliche<br />

Dateien und ihrer Modifikation entstehen<br />

Redundanz<br />

Geräteabhängigkeit der Anwendungssysteme<br />

„Extreme Expertenmacht“ kann entstehen<br />

Wirtschaftsinformatik und Operations Research 47


Entwicklungsgeschichte II<br />

Stufe 2: Dateiverwaltungssysteme<br />

Datenhaltung um 1965<br />

Anwendungen halten auch hier eigene Daten in Dateien mit individueller<br />

Struktur<br />

Anwendungssysteme führen den Datenzugriff einheitlich mit Hilfe bestehender<br />

Betriebssystemroutinen durch<br />

Erreichter Vorteil<br />

Geräteunabhängigkeit wird nun erreicht<br />

Nachteile<br />

Abhängigkeit von den Speicherstrukturen<br />

Betriebssystem liefert lediglich unspezifizierte Sätze zurück<br />

Genaue Formatierung der Sätze muss das Anwendungssystem, d.h. der<br />

Anwender/Programmierer übernehmen<br />

Inkonsistenz der Datenbestände kann durch unterschiedliche Dateien und ihrer<br />

Modifikation entstehen<br />

Redundanz<br />

Alle Update Operationen muss das Anwendungssystem in ihrem<br />

Funktionsumfang und zeitlichen Verhalten selbst individuell festlegen<br />

Bei Strukturanpassungen sind diese Operationen mit zu ändern<br />

Wirtschaftsinformatik und Operations Research 48<br />

Entwicklungsgeschichte III<br />

Stufe 3: <strong>Datenbank</strong>systeme<br />

Datenhaltung ab 1975<br />

Anwendungssysteme führen den Datenzugriff über <strong>Datenbank</strong>systeme<br />

durch<br />

Dabei entsteht eine einheitliche Benutzungsschnittstelle zwischen<br />

Anwendung und dem <strong>Datenbank</strong>managementsystem<br />

Erreichter Vorteil<br />

Keine oder nur gewollte Redundanz<br />

Zentrale Kontrolle der Benutzung und Art der Veränderung<br />

Anwendung arbeitet Datenunabhängigkeit, d.h. es erfolgt kein direkter<br />

Zugriff mehr auf untere Schichten (direkt auf die Daten und ihre<br />

Strukturen)<br />

Nachteile<br />

Durch zentrale Datenhaltung rückt das Thema „Datenschutz“ als neues<br />

Problem in den Mittelpunkt der Betrachtung<br />

Durch zentrale Datenhaltung sind spezielle Probleme bei erforderlichen<br />

Zugriffsgeschwindigkeiten zu berücksichtigen<br />

Wirtschaftsinformatik und Operations Research 49


Leistungen von <strong>Datenbank</strong>systemen<br />

Integration der Datenbestände<br />

Alle Daten werden zentral an einer Stelle einheitlich abgelegt und<br />

verwaltet<br />

Angebot an vordefinierten standardisierten Operationen zur<br />

Datenvisualisierung und ‐verarbeitung<br />

Beschreibung von Datenbeständen (Definition der<br />

Datenbestände sind ebenfalls veränderbar)<br />

Benutzersichten<br />

Jeder Benutzer kann eine eigene Sicht auf Daten erhalten<br />

D.h. er erhält als Mitglied einer Gruppe Zugriff auf bestimmte<br />

Teile der gesamten <strong>Datenbank</strong><br />

Konsistenz und Integritätsüberwachung<br />

Korrekte <strong>Datenbank</strong> Inhalte und Veränderungen werden<br />

ermöglicht<br />

Keine Überprüfung durch Anwendungen notwendig<br />

Wirtschaftsinformatik und Operations Research 50<br />

Leistungen von <strong>Datenbank</strong>systemen<br />

Datenschutz durch die Verwaltung von Zugriffsrechten<br />

Transaktionsmanagement<br />

Zusammenfassung von zusammengehörigen Aktionen zu einer<br />

unteilbaren Einheit<br />

Ermöglicht eindeutige Ergebnisse von Update Operationen<br />

Synchronisation<br />

Koordination von konkurrierenden Zugriffen<br />

D.h. Verwaltung gleichzeitiger Transaktionen mehrerer Benutzer<br />

auf die vorhandenen Datenbestände<br />

Datensicherung<br />

Laufende Datensicherung<br />

Wiederherstellung der Datenbestände nach Systemfehlern<br />

Unabhängigkeit zwischen Daten und Programmen (Bei OO<br />

<strong>Datenbank</strong>en zudem Programm und Methoden)<br />

Wirtschaftsinformatik und Operations Research 51


2.1.2 <strong>Datenbank</strong>benutzer<br />

<strong>Datenbank</strong> Administrator (DBA)<br />

Verantwortlich für Entwurf, Überwachung und Anpassung eines<br />

<strong>Datenbank</strong>systems<br />

Damit ergeben sich die grundlegenden Aufgaben<br />

Definition der konzeptionellen / externen / internen Schemata<br />

(siehe unten)<br />

Datenschutz<br />

Leistungsüberwachung (ggf. Änderungen des internen Schemas)<br />

Überwachung der Anforderungen (ggf. Änderungen des externen<br />

Schemas)<br />

Betreuung/Verwaltung von Benutzern<br />

<strong>Datenbank</strong> Designer (DBD)<br />

Sammelt bei der Entwicklung der erforderlichen Schemata<br />

Informationen<br />

Unterstützt den <strong>Datenbank</strong> Administrator<br />

Wirtschaftsinformatik und Operations Research 52<br />

<strong>Datenbank</strong>benutzer – Fortsetzung<br />

System Analyst<br />

Analyse von Anforderungen der Anwendungsseite<br />

Bereitet Spezifikation für Anwendungsprogramme vor<br />

Anwendungsprogrammierer<br />

Entwickeln Anwendungsprogramme mit <strong>Datenbank</strong> Zugriffen<br />

Nutzt Spezifikation der System Analysten<br />

Hardware/Software Spezialisten<br />

Sorgen für lauffähige Gesamtsysteme<br />

Haben aber keine direkten <strong>Datenbank</strong>aufgaben<br />

End Benutzer<br />

Gehobene<br />

<strong>Datenbank</strong> Anfragen auf der Basis prozeduraler Sprachen<br />

Ggf. mit Sonderrechten<br />

Einfache Benutzer<br />

Tätigen meist Standardanfragen<br />

Nutzen ggf. als valide eingestufte Standardprogramme<br />

Wirtschaftsinformatik und Operations Research 53


2.1.3 Drei Schemata Architektur<br />

Ziel: Strikte Trennung der Anforderungen und<br />

Anwendungen der Benutzer von der physikalischen<br />

<strong>Datenbank</strong><br />

Daher finden sich Schemata auf insgesamt drei<br />

verschiedenen Ebenen<br />

Man unterscheidet<br />

Das interne Level (mit dem internen Schema)<br />

Das konzeptionelle Level (mit dem konzeptionellen<br />

Schema)<br />

Das externe Level (mit den externen Schemata (auch<br />

externe Sichten Views genannt))<br />

Endbenutzer<br />

Externes Level<br />

Konzeptionelles<br />

Level<br />

Internes Level<br />

Physische<br />

Hardwareebene<br />

Benutzergruppe 1<br />

Externe Sicht 1<br />

Bei Anfragen<br />

erfolgt durch<br />

das DBMS eine<br />

schrittweise<br />

Umsetzung<br />

in das jeweils<br />

tiefere Schema<br />

Wirtschaftsinformatik und Operations Research 54<br />

Gesamtaufbau<br />

Konzeptionelles<br />

Schema<br />

Internes<br />

Schema<br />

<strong>Datenbank</strong><br />

Benutzergruppe n<br />

Externe Sicht n<br />

Bei Antworten<br />

erfolgt durch<br />

das DBMS eine<br />

schrittweise<br />

Umsetzung<br />

in das jeweils<br />

höhere Schema<br />

Wirtschaftsinformatik und Operations Research 55


Datenunabhängigkeit<br />

Prinzip besteht darin, jeden Benutzer bei Veränderungen nur<br />

minimale Auswirkungen spüren zu lassen, d.h., Auswirkungen<br />

tieferer Ebenen, die ihn/sie im Prinzip auch betreffen würden,<br />

sollen nicht weitergegeben werden<br />

Wir unterscheiden im Folgenden<br />

Physische Datenunabhängigkeit<br />

Stabilität der konzeptionellen Ebene gegenüber Änderungen der<br />

Dateiorganisation oder der angewendeten Zugriffsverfahren,<br />

d.h. eine Veränderung im internen Schema hat keine Auswirkungen<br />

auf die konzeptionelle Ebene<br />

Logische Datenunabhängigkeit<br />

Stabilität der Benutzungsschnittstelle gegenüber Veränderungen<br />

der Datenstrukturen auf der konzeptionellen Ebene<br />

D.h. eine Veränderung im konzeptionellen Schema hat keine<br />

Auswirkungen auf die externen Sichten (Ausnahme sind allerdings<br />

z.B. Löschungen)<br />

Wirtschaftsinformatik und Operations Research 56<br />

<strong>Datenbank</strong> Sprachen<br />

DDL=Data Definition Language<br />

Konzeptionelles Schema wird hierdurch festgelegt<br />

Schnittstellen zum Internen Level<br />

SDL=Storage Definition Language<br />

Definiert internes Level<br />

VDL=View Definition Language<br />

Definiert externe Sichten für bestimmte Benutzergruppen<br />

Schnittstellen zum konzeptionellen Level<br />

DML=Data Manipulation Language<br />

Dient zur Formulierung von Benutzeranfragen<br />

Man unterscheidet<br />

Low level prozedural<br />

– Diese Sprachen greifen nur einzeln auf Einträge in der <strong>Datenbank</strong> zu (record at a time)<br />

– Müssen für aufwändigere Operationen in Hochsprachen eingebunden werden<br />

High level prozedural<br />

– Können bereits komplexere Auswertungen (set at a time) (z.B. SQL)<br />

– Brauchen nicht eingebunden zu werden<br />

Wirtschaftsinformatik und Operations Research 57


Folgerung<br />

<strong>Datenbank</strong> Administratoren nutzen spezielle Arten<br />

von<br />

DDL<br />

SDL<br />

VDL<br />

End Benutzer nutzen spezielle Arten von<br />

DML<br />

Wirtschaftsinformatik und Operations Research 58<br />

2.1.4 Design Prozess der <strong>Datenbank</strong><br />

Phase 1<br />

Anforderungsanalyse<br />

Hieraus entstehen Anforderungen an die Daten und ihren Aufbau<br />

Anforderungen hinsichtlich der Zugriffe<br />

Phase 2<br />

Entwicklung des konzeptionellen Designs mit Hilfe eines Meta<br />

Datenmodells<br />

Dieses ist DBMS unabhängig<br />

Zudem gilt, dass das konzeptionelle Design ungleich dem<br />

konzeptionellen Schema ist<br />

DBMS unabhängige Beschreibung der Zugriffe der<br />

Anwendungsprogramme<br />

Phase 3<br />

Wahl des <strong>Datenbank</strong>systems (DBMS+DB)<br />

D.h. <strong>Datenbank</strong>typ (Relational, OO, …), Wahl der Query Language, Wahl<br />

der zusätzlichen Software<br />

Beachte: Alle bisherigen Schritte (1‐3) waren DBMS unabhängig<br />

Wirtschaftsinformatik und Operations Research 59


DBMS abhängige Phasen<br />

Phase 4<br />

Entwicklung des logischen Designs<br />

Bestimmung des konzeptionellen und des externen Schemas<br />

Phase 5<br />

Festlegung des physikalischen Designs<br />

Ermittlung des internen Schemas<br />

Phase 6<br />

Implementierung des Systems<br />

SDL+VDL+DDL Statements für die Festlegung des konzeptionellen, des externen<br />

und des internen Schemas<br />

Für die Anwendungssysteme werden zur Ausgestaltung der Anfrageroutinen<br />

Hilfsprogramme in DML + Host Language implementiert<br />

Phase 7<br />

Laufender Betrieb<br />

Überwachung & Anpassung<br />

Performancemessungen & Befragungen von Mitarbeitern<br />

Diese Schritte sind nun abhängig von einem gewählten <strong>Datenbank</strong>system<br />

Wirtschaftsinformatik und Operations Research 60<br />

2.2 Datenmodelle<br />

Dienen zur Beschreibung von Daten und ihrer Strukturen<br />

Sie bestimmen<br />

Die Syntax (d.h. den Aufbau) und<br />

Die Semantik (d.h. die Interpretation)<br />

von <strong>Datenbank</strong> Schemata<br />

Wir vereinbaren<br />

μ:<br />

Menge aller möglichen Objekte und Wertebereiche, die die<br />

im Schema angegebenen Objekte und Datentypen annehmen<br />

können<br />

Σ:<br />

Menge von passenden DB Zuständen (d.h. gültigen Ausprägungen)<br />

σ∈Σ ist ein passender<br />

DB Zustand<br />

Wirtschaftsinformatik und Operations Research 61


2.2.1 Ein Meta Modell: Das ER Modell<br />

Das ER heißt Entity Relationship Model<br />

Modellierungskonzepte<br />

Entitäten<br />

Das ER Modell geht von Entitäten aus, die die Basis des Modells<br />

darstellen<br />

Entitäten besitzen Eigenschaften (Attribute), die es beschreiben<br />

Attribute<br />

Eigenschaften die Entitäten beschreiben<br />

Eine einzelne Entität hat eine bestimmte Ausprägung für alle<br />

diese Attribute<br />

Man unterscheidet<br />

Einfache/zusammengesetzte Attribute<br />

Einwertige/mehrwertige Attribute<br />

Gespeicherte/ableitbare Attribute<br />

Wirtschaftsinformatik und Operations Research 62<br />

Objekttypen<br />

Ist ein Schema für Entitäten, d.h. es legt die Struktur von einer<br />

Gruppe von Entitäten fest<br />

D.h. die Entitäten haben dann eine bestimmte Struktur in Form<br />

von identischen Attributen (d.h. natürlich nicht, dass die Werte<br />

identisch sind)<br />

Für einen Objekttyp E gilt dann allgemein<br />

μ(E): Menge aller möglichen Objekte vom Typ E<br />

σ(E): Menge der aktuellen Objekte vom Typ E im Zustand σ<br />

⊆<br />

(d.h. σ(E) μ(E))<br />

Falls also e ein Objekt vom Typ E im Zustand σ ist, dann gilt<br />

e ist Element von σ(E)<br />

Ein Objekttyp E kann ein Schlüsselattribut besitzen,<br />

welches einen unterschiedlichen Wert für alle Entities<br />

vom Typ E besitzt und somit das einzelne Objekt<br />

eindeutig identifiziert<br />

Es können auch mehrere Schlüsselattribute sein<br />

Wirtschaftsinformatik und Operations Research 63


Attributstypen<br />

Ein Attributstyp A ist eine Abbildung von einem dazugehörigen<br />

Entitätstyp E in einen dazugehörigen Datentyp D (bei<br />

mehrwertigen in die Potenzmenge von D)<br />

Beispiel:<br />

Entitätstyp: Angestellter<br />

Attributstyp: Name<br />

Abbildung für jede zugehörige Entität in den Datentyp D<br />

Wertebereich ist damit der Datentyp String<br />

Statt A 1:E→D 1, …, A n:E→D n<br />

schreiben wir einfach E(A 1 ,…,A n )<br />

Die Datentypen D 1 ,…,D n sind dabei entweder<br />

Mengen<br />

Potenzmengen oder<br />

Kartesische Produkte von Mengen und/oder Potenzmengen<br />

Wirtschaftsinformatik und Operations Research 64<br />

n stelliger Beziehungstyp<br />

Ein n stelliger Beziehungstyp R von n Objekttypen E 1,…,E n ist eine Relation<br />

über E 1,…,E n<br />

Es gilt somit<br />

( )<br />

R E ,...,E ⊆ E × E × ... × E<br />

1 n 1 2<br />

n<br />

d.h. für einen konkreten Zustand σ<br />

( R) ( E ) ( E ) ... ( E )<br />

σ ⊆σ ×σ × ×σ<br />

1 2<br />

Gibt es innerhalb eines Beziehungstyps Entitäten, die mehrfach<br />

vorkommen, nennt man diesen Beziehungstyp rekursiv<br />

Die Kardinalität eines Objekttyps innerhalb eines Beziehungstyps ist die<br />

Anzahl von Beziehungen dieses Beziehungstyps in der ein Objekt des<br />

betrachteten Objekttyps stehen kann<br />

Man unterscheidet<br />

1: Kann nur in einer Beziehung dieses Typs stehen<br />

N: Kann in mehreren Beziehungen dieses Typs stehen<br />

n<br />

Wirtschaftsinformatik und Operations Research 65


Beispiel<br />

Miniwelt: Schule<br />

Objekttyp 1: Schulklasse<br />

Objekttyp 2: Schüler<br />

Beziehungstyp B: „Ist_in_Klasse“<br />

Offensichtlich gilt<br />

Objekttyp 2 (Schüler) hat beim Beziehungstyp B die Kardinalität<br />

1<br />

Dies wird daraus deutlich, dass ein Schüler jeweils eindeutig<br />

einer Klasse zugeordnet ist<br />

Damit gilt, dass für den Beziehungstyp „Ist_in_Klasse“ jedes<br />

Element des Objekttyps 2 in maximal einem Element des<br />

Beziehungstyps B steht<br />

Wirtschaftsinformatik und Operations Research 66<br />

Weitere Vereinbarungen<br />

Sei B Beziehungstyp über die Objekttypen E 1 ,…,E n<br />

Dann heißt die Partizipation von E i in B<br />

total, falls alle Objekte vom Typ E i in B auftauchen, sonst<br />

partial<br />

Schwache Entitätstypen<br />

Sind Objekttypen ohne Schlüsselattribut<br />

Sie sind somit nicht identifizierbar<br />

Es existiert eine totale Partizipation dieses Objekttyps über einen<br />

anderen Entitätstyp<br />

Dieser andere Entitätstyp wird als Besitzer charakterisiert<br />

Zwei nicht unterscheidbare Objekte des schwachen Objekttyps<br />

können nicht dem gleichen Entitätstyp zugeordnet werden<br />

Hier gibt es eine 1:X Beziehung<br />

Wirtschaftsinformatik und Operations Research 67


1:N<br />

Person<br />

Darstellungen<br />

Entitätstyp<br />

Schwacher Entitätstyp<br />

Relationstyp<br />

Identifizierender Relationstyp<br />

Attribut<br />

Schlüsselattribut<br />

Mehrwertiges Attribut<br />

Zusammengesetztes Attribut<br />

Totalität<br />

Kardinalität<br />

Name Adresse<br />

Ort Straße<br />

Wirtschaftsinformatik und Operations Research 68<br />

Am Beispiel<br />

besitzt<br />

N 1<br />

PKW<br />

Seriennummer Typ<br />

Leistung<br />

Wirtschaftsinformatik und Operations Research 69


2.2.2 Erweitertes Meta Modell: EER Modell<br />

Das ER Modell leistet wertvolle Dienste für die Entwicklung von<br />

konzeptionellen <strong>Datenbank</strong>modellen<br />

Es ist leicht verständlich und sehr anschaulich<br />

Allerdings sind die einzelnen Konstrukte nicht sehr mächtig<br />

Hierdurch werden entsprechende Entwürfe sehr schnell sehr<br />

groß<br />

Dies widerspricht der Grundidee des Meta Modells<br />

So soll durch dessen Einsatz ja gerade die Anschaulichkeit des<br />

Entwurfs gesichert werden<br />

Anschließend ist dann eine Umsetzung in das Datenmodell des<br />

<strong>Datenbank</strong>systems vorzunehmen<br />

Daher betrachten wir nun ein erweitertes Meta Modell<br />

Wirtschaftsinformatik und Operations Research 70<br />

EER Modell<br />

EER = „Enhanced Entity Relationship Model“<br />

Beinhaltet erweiterte Konzepte<br />

Es gibt nicht das EER Modell sondern viele<br />

unterschiedliche Standards<br />

Im Folgenden wird daraus das Modell nach RONDO<br />

exemplarisch vorgestellt<br />

Es gibt keine Attribute oder Werte<br />

Man kennt nur noch Entitätstypen<br />

Man unterscheidet allerdings zwischen<br />

Atomaren Entitätstypen<br />

Abstrakten Entitätstypen<br />

Wirtschaftsinformatik und Operations Research 71


Atomare Entitätstypen<br />

2.2.2.1 Entitätstypen<br />

Werden nicht definiert, sondern lediglich verwendet<br />

Können nur auf der untersten Ebene auftreten<br />

Gehen somit nicht aus einem Abstraktionsmechanismus hervor<br />

Abstrakte Entitätstypen<br />

Diese werden gesondert definiert und gehen aus den<br />

Abstraktionsmechanismen<br />

Attributsaggregation<br />

Beziehungsaggregation<br />

Generalisierung<br />

Gruppierung<br />

hervor<br />

Hierzu definiert man<br />

Definitionsebene<br />

Wirtschaftsinformatik und Operations Research 72<br />

Abstrakter Entitätstyp<br />

Hier wird der abstrakte Entitätstyp durch andere<br />

Entitätstypen (die so genannten Konstituenten)<br />

festgelegt<br />

Hierdurch entsteht die Struktur des Entitätstyps<br />

Verwendungsebene<br />

Auf dieser Ebene wird der Entitätstyp eingesetzt, d.h.<br />

verwendet<br />

Wirtschaftsinformatik und Operations Research 73


Abstrakter Entitätstyp<br />

Atomarer Entitätstyp<br />

Schematische Darstellung<br />

Name<br />

Name<br />

Wirtschaftsinformatik und Operations Research 74<br />

2.2.2.2 Abstraktionsmechanismen<br />

Attribut‐Aggregation<br />

Beziehungsaggregation<br />

Generalisierung<br />

Gruppierung<br />

Wirtschaftsinformatik und Operations Research 75


Attribut‐Aggregation<br />

Fasst eine Menge von abstrakten und/oder atomaren<br />

Entitätstypen zu einem neuen abstrakten<br />

Entitätstypen zusammen<br />

Gegenüber standardisierten ER Modellen ist die<br />

Verknüpfung über abstrakte Entitätstypen möglich,<br />

d.h. hierdurch sind rekursive Strukturen abbildbar<br />

Wirtschaftsinformatik und Operations Research 76<br />

Attribut‐Aggregation –Beispiel<br />

Postfach Straße<br />

Anschrift<br />

Ort<br />

PLZ Stadtname<br />

Wirtschaftsinformatik und Operations Research 77


Eigenschaften der Konstituenten<br />

NICHT NULL<br />

Für jede Konstituente kann angegeben werden, ob dieser<br />

Bestandteil obligatorisch oder optional ist<br />

Eine NICHT NULL Markierung zeigt eine totale Beziehung seitens<br />

der Konstituente auf<br />

Gemeinsames Objekt<br />

Für jede Konstituente kann angegeben werden, ob eine Entität<br />

gemeinsam von mehreren Entitäten des aggregierten Typs<br />

verwendet werden kann<br />

Die Markierung „gemeinsames Objekt“ legt fest, dass die<br />

Beziehung zwischen aggregierten abstrakten Entität und ihren<br />

Konstituenten auf der Seite der aggregierten Entität eine „zu n“<br />

Kardinalität hat<br />

Schlüsseleigenschaft<br />

Zusätzlich kann angegeben werden, welche Konstituenten den<br />

Schlüssel der aggregierten Entität bilden. Schlüssel müssen<br />

obligatorisch sein, d.h. die NICHT NULL Eigenschaften besitzen<br />

Wirtschaftsinformatik und Operations Research 78<br />

Beziehungsaggregation<br />

Die Beziehungsaggregation hebt eine Beziehung<br />

zwischen zwei Entitätstypen in den Stand eines<br />

Entitätstyps<br />

Dieser Entitätstyp wird als beziehungsaggregierter Typ<br />

bezeichnet<br />

Beziehungen können zwischen zwei abstrakten<br />

Entitätstypen definiert werden<br />

Wirtschaftsinformatik und Operations Research 79


Beziehungsaggregation –Beispiel<br />

Vermietung<br />

Dauer<br />

Verleihobjekt Mietvertrag<br />

Wenn gemeinsames Objekt<br />

NICHT NULL Eigenschaft<br />

Wirtschaftsinformatik und Operations Research 80<br />

Zum Beispiel<br />

Eine Vermietung besteht aus einem Verleihobjekt und<br />

einem Mietvertrag<br />

Jede Vermietung geht über eine festgelegte Anzahl<br />

von Tagen<br />

Nicht jedes Verleihobjekt muss aber an einer<br />

Vermietung beteiligt sein<br />

Ein Verleihobjekt kann an verschiedenen<br />

Vermietungen beteiligt sein<br />

Wirtschaftsinformatik und Operations Research 81


Unterschiede zur Attribut‐Aggregation<br />

Bei einer Attribut‐Aggregation oder kurz Aggregation<br />

ist die Beziehung von der Seite der Konstituente<br />

immer total, d.h. es ist eine „ist Teil von“‐Aussage<br />

Allgemein gilt, dass die Beziehungen zwischen dem<br />

neuen, beziehungsaggregierten Typ und seinen<br />

Konstituenten durch deren Beziehungen<br />

untereinander determiniert wird<br />

Das heißt die Eigenschaften NICHT NULL,<br />

gemeinsames Objekt und Schlüsseleigenschaft sind<br />

somit für den Beziehungstyp nicht mehr frei wählbar,<br />

sondern leiten sich strikt aus der Beziehung ab<br />

Wirtschaftsinformatik und Operations Research 82<br />

Konsequenzen für den beziehungsaggregierten Typ<br />

NICHT NULL<br />

Konstituenten an einer Beziehungsaggregation haben grundsätzlich die<br />

NICHT NULL Eigenschaft, da an einer Beziehung immer zwei Partner<br />

beteiligt sind. Also ist immer eine totale Beziehung auf der Seite des<br />

beziehungsaggregierten Typs gegeben<br />

Gemeinsames Objekt<br />

Die Eigenschaft gemeinsames Objekt wird durch die Kardinalität der<br />

Beziehung bestimmt, über welche aggregiert wurde. Wenn zu dem<br />

Partner in der Beziehung eine „zu n“ Beziehung besteht, muss diese<br />

Konstituente die Eigenschaft gemeinsames Objekt besitzen<br />

Schlüsseleigenschaft<br />

Der Schlüssel für den beziehungsaggregierten Typ ergibt sich ebenfalls<br />

aus der Art der aggregierten Beziehung. Im Fall „n zu m“ Beziehung<br />

müssen beide Konstituenten gemeinsam Schlüssel sein. Ansonsten<br />

reicht die Konstituente aus, auf deren Seite die „zu n“ Beziehung<br />

besteht<br />

Wirtschaftsinformatik und Operations Research 83


Am Beispiel Vermietung<br />

Da ein Mietvertrag über mindestens ein Verleihobjekt<br />

gehen muss, muss jeder Mietvertrag auch Teil einer<br />

Vermietung sein<br />

Da in einem Mietvertrag mehrere Objekte auftauchen<br />

können („zu n“ Beziehung) ist der Mietvertrag ein<br />

gemeinsames Objekt<br />

Wirtschaftsinformatik und Operations Research 84<br />

Für unser Beispiel gilt somit<br />

Vermietung<br />

gilt immer<br />

Verleihobjekt Mietvertrag<br />

Wirtschaftsinformatik und Operations Research 85


Generalisierung<br />

Objektorientierte Modellierungstechnik<br />

Es werden gleiche Eigenschaften ähnlicher Entitätstypen zu<br />

einem neuen Typ zusammengefasst<br />

Es entsteht hierdurch ein generalisierter neuer Entitätstyp<br />

Die ursprünglichen Entitätstypen werden als spezialisierte<br />

Entitätstypen bezeichnet<br />

Die Generalisierung wird oft auch als eine „ist ein“ ‐ Beziehung<br />

bezeichnet<br />

Ein Beispiel für eine Generalisierung findet sich auf der<br />

nächsten Folie<br />

Hier haben wir die Entitätstypen CD und DVD, die viele<br />

Eigenschaften gemein haben<br />

Diese Eigenschaften finden sich im generalisierten Entitätstypen<br />

Verleihobjekt wieder und werden entsprechend vererbt<br />

Wirtschaftsinformatik und Operations Research 86<br />

Generalisierung<br />

Jeder generalisierte Entitätstyp erhält zusätzlich ein<br />

obligatorisches Klassifizierungsattribut<br />

Dieses Attribut gibt an, von welchem speziellen Typ<br />

eine Entität ist<br />

Im folgenden Fall gibt ObjektArt für jedes<br />

Verleihobjekt an, ob es sich um eine DVD oder um<br />

eine CD handelt<br />

Die Generalisierung führt zu einer 1:1 Beziehung<br />

Totale Beziehung auf der Seite des spezialisierten Typs<br />

Exklusiver Charakter auf der Seite des generalisierten<br />

Typs<br />

Wirtschaftsinformatik und Operations Research 87


ObjektArt<br />

CD<br />

CD<br />

Generalisierung –Beispiel<br />

Verleihobjekt<br />

ID Nummer<br />

DVD<br />

Wirtschaftsinformatik und Operations Research 88<br />

Generalisierung –Semantik<br />

Verleihobjekt<br />

exklusiv total,<br />

d.h. entweder oder<br />

DVD<br />

Wirtschaftsinformatik und Operations Research 89


Gruppierung<br />

Der Abstraktionsmechanismus Gruppierung<br />

beschreibt eine Entität als Menge von Entitäten eines<br />

zweiten Entitätstypen<br />

In jedem Fall kann nur genau über einen abstrakten<br />

Entitätstypen gruppiert werden<br />

So kann etwa die Entität „Vereinmitglieder“ als<br />

Gruppierung über die Entität „Person“ definiert<br />

werden<br />

Ein Beispiel hierzu findet sich auf der folgenden Folie<br />

Wirtschaftsinformatik und Operations Research 90<br />

Gruppierung –Beispiel<br />

{ }<br />

Anschriften<br />

Anschrift<br />

Wirtschaftsinformatik und Operations Research 91


Gruppierung –Semantik<br />

Aufbau einer einseitigen totalen „zu n“ Beziehung zwischen<br />

dem gruppierten Entitätstypen und seinen Konstituenten<br />

Dies bedeutet, dass alle Konstituenten mindestens einer<br />

Menge angehören müssen<br />

Bei der Menge selbst ist immer die Bezeichnung gemeinsames<br />

Objekt einzutragen, da es Mengen geben kann, die mehr als<br />

ein Element besitzen<br />

Falls NICHT NULL auf Seiten der Gruppierung gewählt wurde,<br />

kann es keine leeren Mengen geben<br />

Falls bei der Gruppierung die Option „gemeinsames Objekt“<br />

gewählt wurde, gibt es die Möglichkeit, dass eine Konstituente<br />

in verschiedenen Gruppen auftaucht<br />

Bei Wahl „gemeinsames Objekt“<br />

Gilt immer, da eine Gruppe immer<br />

mehr als ein Element beinhalten kann<br />

Wirtschaftsinformatik und Operations Research 92<br />

Gruppierung –Semantik<br />

{ }<br />

Anschriften<br />

Anschrift<br />

Bei Wahl „NICHT NULL“<br />

Immer eine totale Beziehung<br />

Wirtschaftsinformatik und Operations Research 93


Abstrakter<br />

Entitätstyp<br />

Konstituente<br />

Zusammenfassung –Semantik<br />

Zu n<br />

Total<br />

Zu n<br />

Total<br />

Aggregation<br />

Wahlfrei<br />

Wahlfrei<br />

Nein<br />

Ja<br />

Beziehungs‐<br />

aggregation<br />

Vorbestimmt<br />

Ja<br />

Nein<br />

Vorbestimmt<br />

Generali‐<br />

sierung<br />

Nein<br />

Ja (aber<br />

exklusiv)<br />

Nein<br />

Wirtschaftsinformatik und Operations Research 94<br />

2.2.2.3 Verwendungen und Rollen<br />

Ja<br />

Gruppierung<br />

Wahlfrei<br />

Wahlfrei<br />

In einem Schema gibt es unter Umständen unterschiedliche<br />

Verwendungen von Entitätstypen<br />

So erfolgt an einer Stelle zunächst die Definition dieses Typs<br />

Dies wird als dominierendes Auftreten bezeichnet<br />

Hier erfolgt die genaue Festlegung der Struktur dieses<br />

Entitätstyps, d.h. es wird definiert, welche elementaren<br />

Entitätstypen hierfür verwendet werden<br />

Allerdings kann ein Entitätstyp auch nur einfach verwendet<br />

werden, d.h. es erfolgt die Nutzung dieses Typs an einer<br />

bestimmten Stelle der Struktur<br />

Verbessert die Übersichtlichkeit der Darstellung<br />

Diese Verwendung kann gedanklich durch die eigentliche<br />

Definition durch das dominierende Auftreten ersetzt werden<br />

Wirtschaftsinformatik und Operations Research 95<br />

Ja<br />

Ja


Verwendungen und Rollen<br />

Durch Rollen kann auch Teilen von<br />

Entitätsausprägungen etwas zuordnen<br />

D.h. man definiert Teilmengen eines Entitätstypen als<br />

Rolle, die eine bestimmte Verwendung findet<br />

Wirtschaftsinformatik und Operations Research 96

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!