Vorgehensweise der Datenmodellierung
Erstellung des Entity-Relationship-Diagramms.
Optimierung des bisherigen Modells zum Beispiel durch Normalisierung oder Generalisierung.
Überführung in ein relationales Datenmodell, Festlegung der Schlüssel, Umsetzung der Beziehungen.
Optimierung des Datenmodells durch die Festlegung von Indizes, Gewährleistung der referentiellen Integrität.
Maßnahmen zur Absicherung der Datenbank.
Folgende Datenmodell-Abstufungen werden unterschieden:
Das Datenmodell beschreibt die Daten implementierungsunabhängig, zum Beispiel mit einem UML- oder einem ER-Diagramm.
Das Datenbankmodell überträgt das konzeptionelle Modell auf eine konkrete Datenbank, zB in ein relationales Datenmodell.
Das Datenbankschema enthält zusätzlich zweckmäßige Konfigurationen.
Die Begriffe sind nicht scharf abgegerenzt und werden häufig für alle 3 Abstufungen verwendet.
Neben dem Datenmodell gibt es noch
ein Strukturmodell das die Funktionshierarchie und Schnittstellen der Anwendung beschreibt,
ein Verhaltensmodell, das die Abläufe der einzelnen Funktionen beschreibt.
Modellgetriebenen Softwareentwicklung/Model Driven Architecture (MDA)
Bei der Modellgetriebenen Softwareentwicklung/Model Driven Architecture (MDA) wird aus dem Modell der Quellcode einer Anwendung generiert.
ER-Diagramm
Das ER-Modell wurde 1976 von Peter Chen vorgestellt. Die modellierten Daten einer Anwendung werden in Entitäten unterteilt, zu denen Informationen gespeichert werden und die in Beziehungen zueinander stehen.
Das Entity-Relationsship-Diagramm beschreibt basierend auf dem Entity-Relationship-Modell, welche Daten in einer Datenbank abgebildet werden.
ER-Diagramm Vorgehensweise
Folgende Leitfragen helfen bei der Erstellung eines ER-Modells.
Zu was werden Daten gespeichert? (Das sind die Entitäten, die zu Entitätstypen verallgemeinert werden.)
Welche Daten werden zu den Entitätstypen gespeichert? (Das sind die Attribute der Entitätstypen.)
Welche Entitätstypen stehen in Verbindung zueinander? (Das sind die Beziehungstypen zwischen den Entitätstypen.)
Mit wievielen Entitäten des anderen Entitätstyps steht eine Entität in Beziehung? (Das ist die Kardinalität der Beziehungstypen.)
Worum handelt es sich hier? (ER-Diagramm)
Beziehungen
Zwischen den einzelnen Entitäten eines Entitätstyps bestehen Beziehungen. Beziehungen werden zu einem Beziehungstyp zwischen Entitätstypen zusammen gefasst, der durch eine Raute dargestellt wird.
Was sind in den Ellipsen?(ER-Diagramm)
Um was handelt es sich hier?(ER-Diagramm)
Was sind Kardinalitäten
Die Kardinalität einer Beziehung gibt an, wie viele Entitäten aus jedem Entitätstyp an einer Beziehung beteiligt sind. Sie wird an den Enden der Verbindungslinie dargestellt. Es existieren unterschiedliche Notationsformen zur Kardinalität. Verwenden Sie bevorzugt die Chen-Notation.
Typen Kardinalitäten
1:1-Beziehung:
Zu jeder Entität des einen Typs gibt es eine Entsprechung im anderen Typ.
1:n-Beziehung:
Zu jeder Entität des einen Typs gibt es mehrere Entsprechung im anderen Typ.
n:m-Beziehung
Zu jeder Entität des einen Entitätstyps gibt es mehrere Entsprechungen im anderen Entitätstypen.
Relationale und nicht-relationale Datenbanken:
Relationale Datenbanken: Basieren auf dem relationalen Datenmodell und verwenden Tabellen zur Speicherung von Daten. Beziehungen zwischen Daten werden durch Primär- und Fremdschlüssel definiert.
Nicht-relationale Datenbanken (NoSQL): Verwenden alternative Datenmodelle und -strukturen zur Speicherung von Daten, die besser für bestimmte Anwendungsfälle geeignet sein können. Dazu gehören dokumentenorientierte, spaltenorientierte, Key/Value-Store-, objektorientierte und Graphendatenbanken.
Verschiedene Datenbankmodelle relational:
Hierarchisches Modell: Organisiert Daten in einer Baumstruktur mit übergeordneten und untergeordneten Datensätzen.
Entity-Relationship-Modell (ER-Modell): Beschreibt die Struktur von Datenbanken mithilfe von Entitäten, Attributen und Beziehungen.
Semantische Datenmodelle: Beschreiben die Bedeutung und Beziehung zwischen Daten auf einer semantischen Ebene.
Objektorientierte Datenmodelle: Modellieren Daten als Objekte mit Eigenschaften und Methoden.
Verschiedene Datenbankmodelle NoSQL:
Dokumentenorientiert: Speichert Daten in Dokumentenformaten wie JSON oder XML.
Spaltenorientiert: Speichert Daten in Spalten anstatt in Zeilen, was effizientere Abfragen ermöglicht.
Key/Value-Store: Speichert Daten als Schlüssel-Wert-Paare, die schnell abgerufen werden können.
Graphendatenbank: Speichert Daten in Form von Knoten und Kanten, was besonders für netzwerkbasierte Daten geeignet ist.
CAP-Theorem :
(Consistency, Availability, Partition Tolerance)
Das CAP-Theorem besagt, dass es in einem verteilten System unmöglich ist, gleichzeitig Konsistenz (Consistency), Verfügbarkeit (Availability) und Partitionstoleranz (Partition Tolerance) zu gewährleisten. Bei der Entwicklung von Datenbanken müssen Entwickler Kompromisse zwischen diesen drei Eigenschaften treffen.
Map/Reduce:
Ein Programmiermodell zur parallelen Verarbeitung großer Datenmengen über mehrere Rechner in einem verteilten System. Es wird oft für die Verarbeitung von Big Data verwendet.
BASE (Basically Available, Soft State, Eventual Consistency):
Ein alternatives Modell zur Konsistenz von Daten in verteilten Systemen im Gegensatz zum ACID-Prinzip. BASE priorisiert die Verfügbarkeit und die Leistung gegenüber der unmittelbaren Konsistenz der Daten.
Phasen der Datenbankentwicklung:
Externe Phase: Sammeln von Informationen und Anforderungen von Stakeholdern.
Konzeptionelle Phase: Erstellen eines semantischen Modells, das die Bedeutung und Beziehungen zwischen den Daten beschreibt.
Logische Phase: Erstellen eines Datenmodells, das die Struktur und Organisation der Daten in der Datenbank definiert.
Physische Phase: Implementieren des Datenbankschemas auf der zugrunde liegenden Hardware und Softwareplattform.
Zuletzt geändertvor 9 Monaten