Konzeptuelles Schema (oder auch konzeptuelles Datenmodell)
Das konzeptuelle Schema beschreibt die wesentlichen Eigenschaften des Datenbestandes, den das DBMS verwalten soll (Mini-Welt), unabhängig vom eingesetzten Datenbanksystem in einerfür den Anwender verständlichen Form.
Schaffung einer gemeinsamen Kommunikationsbasis durch
eindeutige Definition der verwendeten Begriffe
Darstellung der einzelnen Informationsobjekte und ihrer Beziehungen untereinander
Modellierungssprachen
Entity-Relationship-Diagramm (ERD)
Erweitertes ER-Diagramm (EERD)
UML Klassendiagramm (ähnlich EERD)
Thesen (gültig für die meisten Anwendungen)
Im Mittelpunkt der Datenverarbeitung stehen die Daten und ihre Handhabung.
Die Daten eines Unternehmens existieren unabhängig von ihrer Nutzung.
Die in einem Unternehmen vorhandenen Datentypen ändern sich im Zeitablauf in ihrer Struktur nur sehr wenig.
Das bedeutet:
Daten sind stabiler als Funktionen
Die Strukturen der Daten sind mit Vorrang zu beschreiben.
Fehler
Unvollständige Kenntnis der Anforderungen führt zu unvollständiger oder ungenauer Modellierung des konzeptuellen Schemas
Fehler im Datenmodell sind besonders problematisch!
Datenbank, die sich aufgrund Fehlannahmen als nicht praxisgerecht erweist
Aufwändige Korrektur (des Fachkonzeptes!)
Konzeptuelle Modellierung (Ebene: Fachentwurf)
Semantisches Modell der Objekttypen und deren Beziehungen
unabhängig von späterer Implementierung
Ergebnis: Konzeptuelles Schema, d.h. ERD, UML-Klassenmodell, ...
Logischer DB-Entwurf
Abbildung konzeptuelles Schema auf konkretes, logisches Datenmodell, z.B. relational, OO, hierarchisch, XML, ...
Ergebnis: Logisches Schema, d.h. Relationenschema, XML-Schema, ...
Physischer DB-Entwurf
Abbildung der (logischen) Relationen auf Tabellen, Indizes und sonstige Speicherstrukturen in konkretem Datenbanksystem
Ergebnis: Physisches Schema, d.h. Definitionen konkreter DB-Objekte für in einem DBS MySQL, Oracle, ... (CREATE TABLE/INDEX, ...)
Definition: Entität
Eine Entität ist ein Objekt der realen oder der Vorstellungswelt, über das Informationen gespeichert werden sollen. Es ist im Sinne der Anwendung eindeutig beschreibbar und von anderen unterscheidbar.
Gleichartige Entitäten werden zu Entitätstypen (Entitätsmengen) zusammenfasst.
Anmerkung
Welche Entitäten zusammengehören, ist von Semantik der Anwendung abhängig
Voraussetzung alle Entitäten haben (in Bezug auf die Anwendung) gleiche Merkmale
Merkmale von Entitätstypen
nur für die Anwendung relevante Merkmale werden modelliert
Schlüssel
Attribut bzw. Kombination von Attributen, über welche eine Entität eindeutig identifiziert werden kann Primärschlüssel wird unterstrichen
Beziehung (Relationship)
Zwischen Entitäten kann es eine oder mehrere Beziehungen (dt. für relationships) geben
Beziehung ist „an association among entities“
Beziehungstyp
abstrakte Typisierung gleichartiger Beziehungen zwischen Entitäten
Beziehungstypen können Attribute besitzen
Beschreibende Attribute
können bei verschiedenen Entitäten einer Entitätsmenge gleiche Werte annehmen
Beispiele: Wohnort, Name
Optionale Attribute
Nicht jede Entität muss einen Wert haben
in relationalem Modell: NULL-Wert
Beispiele: Zweiter Vorname, Adresszusatz, Homepage
Einfache (atomare) Attribute
unzerlegbare Werte
Zusammengesetzte Attribute
Lassen sich in kleinere Teile zerlegen, die Attribute mit unabhängigen Bedeutungen repräsentieren
Werden meist schon im konzeptuellen Schema in einfache Attribute aufgelöst (notwendig für relationales Modell)
Mehrwertige Attribute
Für eine Entität sind gleichzeitig mehrere verschiedene Werte des Attributs möglich
"Liste" von Werten
Dargestellt durch doppelte Linie
versteckte 1:n bezie
Abgeleitete Attribute
Wert des Attributes lässt sich aus anderen ableiten (ist redundant)
Dargestellt durch gestrichelte Linie
Definition: Superschlüssel
Eine Attribut oder eine Kombination von Attributen heißt Superschlüssel, falls sie eindeutig eine Entität identifiziert.
Definition: Schlüsselkandidat
Eine Attribut oder eine Kombination von Attributen heißt Schlüsselkandidat, falls sie
Superschlüssel und
minimal (irreduzibel) ist.
Definition: Primärschlüssel
Der Schlüsselkandidat einer Entitätsmenge mit einer führenden Rolle wird Primärschlüssel genannt.
Anmerkungen
Der Primärschlüssel ist nicht über Eigenschaften mathematisch bestimmt, sondern er wird anwendungsbezogen ausgewählt.
Primärschlüsselattribute werden unterstrichen dargestellt.
Konzeptuelles Schema beschreibt wesentliche Eigenschaften des Datenbestandes unabhängig vom eingesetzten Datenbanksystem in einer für den Anwender verständlichen Form.
Modellierung von Beziehungen
Beziehungen repräsentieren Verben
Mitarbeitet arbeitet in Firma
Kunde kauft Artikel
Student studiert Studiengang
Zwischen zwei Entitätstypen kann es mehr als eine Beziehung geben
Kunde kauft Wagen, Kunde verkauft Wagen
Person ist Geschäftsführer von Firma, Person ist Mitarbeiter von Firma
Problem
bisher nicht erkennbar, ob jeder Student in einem Studiengang studiert oder ob er sogar mehrere Studiengänge belegen darf
Beziehungen müssen in beiden Richtungen gelesen werden, um die richtige Modellierung zu finden!
Beispiel
Student "studiert" in Studiengang
Studiengang wird "studiert" von Studenten
Kardinalitätsverhältnis (auch Beziehungsart)
Strukturelle Einschränkung, die angibt, in welchen Mengen die Entitäten der beiden Typen miteinander in Beziehung stehen können.
1:1-Beziehung
Einer Entität aus A kann zu einem Zeitpunkt genau eine Entität aus B zugeordnet sein.
1:N-Beziehung
Einer Entität aus A können zu einem Zeitpunkt genau eine Entität oder mehrere Entitäten zugeordnet sein; einer Entität aus B kann nur eine Entität aus A zugewiesen sein.
N:M-Beziehung
Einer Entität aus A können zu einem Zeitpunkt genau eine oder mehrere Entitäten aus B, einer Entität aus B können ebenfalls eine oder mehrere Entitäten aus A zugeordnet sein.
Krähenfuß-Notation (Crow's Foot Notation, Martin-Notation)
Vereinfachte Notation für Beziehungstypen
Üblicherweise in Modellierungswerkzeugen eingesetzt
N-Seite der Beziehung wird zum Krähenfuß
Partizipation eines Beziehungstyps (Optionalität, Teilnahme)
Strukturelle Einschränkung, die angibt, wie oft eine Entität in einer Beziehung partizipieren kann bzw. muss.
Motivation
Kardinalitätsverhältnisse legen nicht fest, ob eine Entität mit einer anderen in Beziehung stehen muss oder ob diese Beziehung optional ist
Konkretisierung der Kardinalität
Arten der Partizipation
Totale (=verbindliche) Teilnahme: jede Entität hat diese Beziehung
Partielle (=optionale) Teilnahme: eine Entität kann diese Beziehung haben, muss aber nicht (bsp. Zweitervorname)
(strikte) 1:1-Beziehung
Totale Partizipation beider Entitätstypen
Jeder Ehemann muss eine Ehefrau haben und umgekehrt
1:cn = 1 : (0...n)
Jeder Entität auf der linken Seite können 0...n Entitäten auf der rechten Seite zugeordnet sein und jede rechte Entität hat genau einen Partner links
Jede Student muss einen Studiengang belegen, jeder Studiengang wird von 0...n Studenten studiert
Mögliche Beziehungstypen
Interpretation
1: genau ein
c: ein oder kein ("choice", visualisiert durch ein "o" für optional)
n: ein (mindestens) oder mehrere
cn: kein, ein oder mehrere
Das ist eine Design-Entscheidung!
Beachte
Totale Partitzipation heißt, dass gleichzeitig (in einer Transaktion) mit dem Datensatz die Beziehung angelegt werden muss!
Partielle Partizipation ist meist flexibler
Beispiele
Bestellposition "gehört zu" Bestellung: totale Partizipation ist notwendig
Kunde "gibt auf" Bestellung: partielle Partizipation ist besser, Kunden dürfen auch ohne Bestellungen existieren
Definition: Schwache (abhängige) und starke Entität
Eine Entität, deren Existenz von der einer anderen Entität abhängig ist und die keinen eigenständigen Primärschlüssel hat, heißt schwache Entität.
Entitäten, von denen schwache Entitäten abhängen, werden starke oder identifizierende Entitäten genannt.
Die Entitätstypen heißen entsprechend starke und schwache Entitätstypen.
Die Beziehung zwischen einem starken und einem schwachen Entitätstyp heißt identifizierende Beziehung.
Merke:
Existenzielle Abhängigkeit allein führt nicht zwangsläufig zu schwachem Entitätstyp
Entscheidend ist, ob ein eigenständiger Primärschlüssel existiert
Problemstellung
Beziehungen können Attribute haben
sind im vereinfachten ERModell nicht direkt abbildbar
im relationalen Datenmodell ebenfalls nicht
Umwandlung erforderlich
Vorgehensweise
Attribut wird auf die n-Seite geschoben
m:n Beziehungstyp wird durch Einführung eines künstlichen schwachen Entitätstyps mit zusammengesetzem Primärschlüssel ersetzt
Eine Beziehung kann mehr als zwei Teilnehmer enthalten!
sind im vereinfachten ERD (und relationalen Modell) nicht direkt darstellbar
Grad eines Beziehungstypen
Anzahl der Entitäten, die an der Beziehung teilhaben
Beispiel: Ternärer Beziehungstyp (Grad = 3)
Überführung in binäre Beziehungstypen
Beschränkungen des klassischen ER-Modells
nur einfach strukturierte (flache) Datenobjekte mit Standard-Datentypen
Bestimmte Beziehungen schlecht abbildbar
Erweitertes ER-Modell
Berücksichtigung objektorientierte Konzepte, wie Generalisierung/Spezialisierung und Aggregation
Weiterhin keine Methoden
Keine standardisierte Notation
Fachentwurf und IT-Entwurf
Konzeptueller DB-Entwurf (fachliche Anforderungen an Datenstrukturen).
Logischer DB-Entwurf (Entscheidung für logisches (Implementierungs-)Modell).
Physischer DB-Entwurf (Umsetzung in konkretem System).
Ein Superschlüssel: ist ein Attribut oder eine Kombination von Attributen, falls sie eindeutig eine Entität identifizieren. (identifizierend)
Ein Schlüsselkandidat: ist ein minimaler Superschlüssel (irreduzibel). Ein Primärschlüssel ist ein Schlüsselkandidat einer Entitätsmenge mit einer <== führenden Rolle. (Wird unterstrichen dargestellt) (einzigartig).
Eine Entität ist ein Objekt der realen-/Vorstellungswelt über das Informationen gespeichert werden sollen. Gleichartige Entitäten werden zu Entitätstypen (Entitätsmengen) zusammengefasst. Eine oder mehrere Beziehungen entstehen zwischen Entitäten. Ein Beziehungstyp ist eine abstrakte Typisierung gleichartiger Beziehungen zwischen Entitäten und können auch Attribute besitzen. <==
Bei einem optionalen Attribut muss nicht jede Entität einen Wert haben, wie zum Beispiel ein zweiter Vorname. Im relationalen Modell wäre dies ein NULL-Wert. Ein atomares Attribut sind unzerlegbare Werte. Für mehrwertige Attribute sind gleichzeitig verschiedene Werte eines Attributs möglich. (Dargestellt durch doppelten Kreis / Beispiel: Email-Adressen) Zusammengesetzte Attribute lassen sich in kleinere Teile zerlegen, die Attribute mit unabhängigen Bedeutungen repräsentieren. (Adresse = PLZ / Ort / Straße)
Beziehungen müssen in beiden Richtungen gelesen werden, um die richtige Modellierung zu finden. Beispiel: Student "studiert" in Studiengang / Studiengang wird "studiert" von Studenten.
Eine Partizipation ist die strukturelle Einschränkung, die angibt, wie oft eine Entität in einer Beziehung partizipieren kann bzw. muss.
Totale Partizipation heißt, dass gleichzeitig mit dem Datensatz die Beziehung angelegt werden muss, eine partielle Partizipation ist flexibler. Beispiele:
Bestellposition "gehört zu" Bestellung: totale Partizipation ist also notwendig
Kunde "gibt auf" Bestellung: partielle Partizipation ist besser, Kunden dürfen auch ohne Bestellung existieren
Eine schwache Entität ist eine Entität, deren Existenz von der einer anderen Entität abhängig ist und die keinen eigenständigen Prim.rschlüssel hat.
Starke oder identifizierende Entitäten sind Entitäten von denen schwache Entitäten abhängen.
Eine identifizierende Beziehung besteht zwischen einem starken und einem schwachen Entitätstyp.
Da sie keinen eigenständigen Prim.rschlüssel haben.
Üblicherweise haben Beziehungstypen keine Attribute, da sie lediglich die beteiligten Entitätstypen miteinander verbinden. Sind jedoch zusätzlich Attribute erforderlich, so kann aus dem Beziehungstyp - wie bei höhergradigen Beziehungen - ein eigenständiger Entitätstyp mit Beziehungstypen zu den ursprünglich beteiligten Entitätstypen geschaffen werden. Dem neuen (schwachen) Entitätstyp wird dann das Attribut zugeordnet (zum Beispiel Projektbeteiligungsgrad beim Beziehungstyp Angestellter arbeitet am Projekt).
Ein ternärer Beziehungstyp ist ein Beziehungstyp vom Grad 3, also drei Entitäten teilen sich eine Beziehung.
-Es berücksichtigt objektorientierte Konzepte, wie Generalisierung/Spezialisierung und Aggregation.
Es besitzt weiterhin keine Methoden und keine standardisierte Notation.
Variable Hierarchie:
Abbildung einer hierarchischen (Baum-) Struktur von Entitäten gleichen Typs. Lösung hierbei ist ein rekursiver Beziehungstyp
Feste Hierarchie:
Abbildung einer hierarchischen (Baum-) Struktur fest definierter Tiefe. Lösung hierbei sind hintereinander geschachtelte 1:n-Beziehungen.
Stückliste Anwendungsfall:
Das Bauteil besteht aus Bauteilen(Stückliste). Eine Web-Seite ist verlinkt mit Web-Seiten. Lösung hierbei ist ein rekursiver Beziehungstyp mit m:n-Beziehung.
Geschäftsvorfall:
Abbildung eines komplexen Geschäftsvorfalls bestehend aus Kopfsatz und Einzelpositionen. Lösung hierbei ist eine 1:n-Beziehung mit schwachem Entitätstyp.
Zuletzt geändertvor 9 Monaten