Datenmodellierung + ER

Begriffe

Database / Datenbasis

Menge gespeicherter Daten(objekte) in Beziehung zueinander

Database Management System (DBMS)

Datenbank-Verwaltungssystem / Datenbanksystem Alle Programme um auf Datenbasis zuzugreifen und verwalten

Datenmodell

Wie eine Programmiersprache:

  • Beschreibung der Datenobjekte
  • Anwendbare Operationen und ihre Wirkung

besteht aus:

  1. Data definition language DDL
  1. Data manipulation language DML → Bildet Datenbankschema, beinhaltet gleichzeitig auch die Query Language (Anfragen Sprache)

    Beispiel: SQL

Datenbank-Schema

Legt die Struktur der abgespeicherten Datenobjekte fest. Besteht aus Meta-Daten.

Datenbankausprägung

Aktueller Zustand der Datenbasis.

Entspricht der im Schema festgelegten Struktur.

Ändert sich ständig.

Phasen der Datenmodellierung

  1. Ausschnitt aus der realen Welt → konzeptuelles Schema
  1. Konzeptuelles Schema

    reine Beschreibungsmodelle, graphische Notation

    • Entity Relationship ER
    • semantisches Datenmodell
    • UML
  1. Logische (Implementations-)Datenmodelle / Implementations Schema

    Bildet die Struktur der Tables.

    • relationales Datenmodell

    (auch andere möglich)

E ntity Relationship Model (ER Model)

  1. Entities (Rechtecke)
  1. Relationships (Rauten)
  1. Attribute (Kreise oder Ellipsen)

    Werden Entities und Relationships zugeordnet. Schlüssel (IDs) werden unterstrichen - jede Entity braucht minimale Menge an Attributen als ID.

  1. Rollen

    zB in der rekursiven Beziehung voraussetzen werden Rollen zugeordnet ( Vorgänger und Nachfolger )

Beziehungstypen nach Peter Chen

(untere Schranke also immer 0 und die obere Schranke wird dazugeschrieben)

Die (min,max)-Notation

nicht nur die Extremwerte

Anzahl auf der gegenüber liegenden Seite die Kardinalität an und nicht auf der eigenen Seite des Objekte

Im Vergleich:

Existenzabhängige Entitytypen - schwache Entities

Nicht über eigene ID identifizierbar.

  • Existenz von übergeordneter Entity abhängig
  • oft nur in Kombination mit dem Schlüssel des übergeordneten Entities eindeutig identifizierbar.

Beispiel:

Generalisierung (Vererbung) - is a Beziehung

Besondere Art von Beziehung, deshalb Sechseck statt Raute.

  • disjunkte Spezialisierung

    keine Gemeinsamkeiten unter Untertypen

  • vollständige Spezialisierung

    Obertyp existiert nicht (hat selbst keine eigenen Elemenet) sondern ist eigentlich die Menge aller Untertypen

Beispiel:

Aggregation - part of Beziehung

Beispiel:

Das relationale Modell

Mengenorientierte Verarbeitung.

Metaebene (Schema) → Instanzebene (Ausprägung)

Relationsschema Definition

Tabellen sind Relationen:

Spalte Attribute oder Felder

Zeile Hier 3 Tupel deren Attributwerte aus String, String, Integer bestehen

Der Primärschlüssel Telefon# wurde unterstrichen

Relationenschemata spezifiziert durch

Telefonbuch : {[Name : string, Adresse : string, Telefon# : integer]}

Als eine Menge {...} von Tupeln [...] aufzufassen: {[...]}

ER Modell → relationales Schema

Das relationale Modell hat keine Entities wie im ER Modell sondern nur Relationen.

n-Stellige Beziehungen

Beziehung zwischen n Entities:

enthält also alle Schlüsselattribute der Entitytypen (Fremdschlüssel) und zusätzlich die der Beziehung zugeordneten Attribute.

Beispiel

Die 4 Entity Typen:

Die Relationen:

Relationales Schema optimieren

Nur möglich für

  • 1:1
  • 1:N / N:1

Ansonsten würde es zu Anomalien führen.

Regel: Nur Relationen mit gleichem Schlüssel zusammenfassen!

1:N Beziehungen

Beziehung lesen: Eine Vorlesung kann nur von einem einzigen Dozenten gelesen / veranstaltet werden.

lässt sich vereinfachen mit der Hilfe eines neuen Attributes bei Vorlesungen: gelesenVon

1:1 Beziehungen

Pro Raum nur ein Prof

Lässt sich vereinfachen zu:

oder auch zu

wobei dann Null-Werte auftreten würden weil nicht alle Räume von Dozenten besetzt werden. (deshalb erste Methode bevorzugen)