Datenbank - WINFOR
Datenbank - WINFOR
Datenbank - WINFOR
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