FHNW: edbs

Notizen aus dem edbs (Block-)Modul (FHNW)

Notizen aus dem edbs (Block-)Modul (FHNW)


K. L.
Diese Karteikarten bieten einen umfassenden Überblick über die Grundlagen von Datenbanken und Entity-Relationship-Modellen auf Universitätsniveau. Sie konzentrieren sich auf zentrale Konzepte wie Entitäten, Beziehungstypen, Attribute und Kardinalitäten, sowie auf verschiedene Analyse-Muster wie hierarchische und netzwerkförmige Beziehungen. Die Karteikarten sind besonders nützlich für Studierende der Informatik, die sich auf Datenbankdesign und -modellierung vorbereiten, da sie komplexe Themen verständlich erklären und praktische Beispiele liefern.
Karten
34
Lernende
2
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
09.05.2016 / 14.10.2020

Lernkarten

Was ist mit Entität gemeint?

Eine Entität ist ein individuelles und wohlunterscheidbares Exemplar von Dingen, Personen oder Begriffen der realen oder Vorstellungswelt, für welches betriebsbezogene Informationen von Bedeutung sind.

Kurz ausgedrückt: Konkrete Objekte eines Entitätstyp.

Was ist ein Entitätstyp?

Ein Entitätstyp beschreibt den Aufbau, die Struktur aller zulässigen Entitäten dieses Typs.

Was ist eine Entitätsmenge?

Eine Entitätsmenge ist ein Behälter für ihre aktuell vorhandenen Entitäten, die durch den Entitätstyp beschrieben werden.

Was bedeuten die Begriffe Eigenschaft, Eigenschaftswert und Wertebereich?

Die spezielle, betriebsbezogene Information über Entitäten, die von Bedeutung ist und die wir deshalb festhalten wollen, erkennen wir als Eigenschaftswert für eine bestimmte Eigenschaft. Mit dem Wertebereich, häufig Domäne bezeichnet, werden alle (relevanten) Eigenschaftswerte einer Eigenschaft zusammengefasst.

Eigenschaft: Name, Telefon, etc.
Eigenschaftswerte: Konkrete Daten "Umut Demiriz" oder 054 233 23 23
Wertebereich: Alle Kundennamen (String mit der maximalen Länge 30)

Was Bedeutet der Begriff Faktum?

Als Faktum bezeichnen wir die Zuordnung einer Entität zu einem Eigenschaftswert einer Eigenschaft (siehe Bild).

Was ist ein Attribut?

Ein Attribut ist eine Abbildung der Elemente einer Entitätsmenge in die Elemente einer Domäne. Genauer ist es sogar eine Funktion, indem einer Entität höchstens ein Wert einer Domäne zugeordnet wird.

Attribute sind die besonderen Informationen, die über die Entitäten festgehalten werden müssen. Attribute beschreiben Entitätstypen. 

Notation von Attributen im ERM

Die Multiplizität wird direkt nach dem Attributsnamen notiert.

Bedeutung der Begriffe Beziehung, Beziehungsmenge und Beziehungstyp

  • Beziehung: Zwischen Entitäten können Beziehungen existieren. 
  • Beziehungsmenge: Die Zusammenfassung aller gleichartigen Beziehungen zwischen Entitäten.
  • Beziehungstyp: Die Charakterisierung der gleichartigen Beziehungen bzw. der Beziehungsmenge. In UML wird es Association genannt.

Beziehungstyp

Ein Beziehungstyp beschreibt eine gegenseitige Zuordnung zwischen Entitätstypen und für beide Richtungen müssen die Multiplizitäten angegeben werden. Die Beschreibung umfasst einen Namen (Verb).

Beispiele:

  • Jede Abteilung kann ein oder mehrere Mitarbeiten beschäftigen.
  • Jeder Mitarbeiter muss in einer Abteilung beschäftigt sein.

Wie können Entitäten voneinander unterschieden werden?

Merkmale zur Unterscheidung können Attribute, Kombination von Attributen, aber auch eine Kombination von Attributen und Beziehungen sein.

Wenn zur Unterscheidung von Entitäten eine oder mehrere Beziehungen herangezoggen werden müssen, nennen wir diese Entitäten Weak Entities.

Was ist ein Unique Identifier (UID)?

Ein Unique Identifier ist jede Kombination von Attributen un oder Beziehung, die eine Entität von allen anderen Entitäten derselben Entitätsmenge unterscheidet und deshalb die Entität eindeutig identifiziert.

Beispiele:

  • Der UID für den Entitätstyp Abteilung ist das Attribut Nummer.
  • Der UID für den Entitätstyp Ticket ist die Kombination der Attribute Zeitpunkt und Sitznummer.
  • Der UID für den Entitätstyp Konto besteht aus dem Attribut Nummer und der Beziehung zur Bank, zu dem es gehört.

Multiplizität (Beziehung)

Sie besagt mit wie vielen Exemplaren die der Entitätsmenge B jedes Exemplar der Entitätsmenge A minimal und maximal assoziiert ist.

Optionalität, Modalität oder fakultative Beziehung: 0
Obligatorisch: 1
Unbeschränkt (nur bei maximal): *

Maximal kann nur 1 oder * sein. Maximale Anzahl wird auch als Kardinalität bezeichnet.

Mehrwertige Attribute

Jedes Attribut darf einer Entität höchstens einen einzigen Wert zuordnen. Mehrwertige Attribute oder sog. repeating groups sind nicht erlaubt. Die Grenze für die Multiplizität eines Attributs ist 1.

Mehrwertige Attribute müssen in eigene Entitätstypen ausgelagert werden. Der ausgelagerte Entitätstyp ist dabei häufig ein Weak Entitity Type.

Sub- und Supertypen

Die Idee ist es, einen Entitätstypen X in sog. Subtypen zu unterteilten. Dies kann der Fall sein, wenn eine Gruppe von Entitäten spezielle Merkmale, Regeln, Funktionalitäten usw. hat, welche nur für diese Gruppe existieren. Eine solche Gruppe nennt man Subtyp des Entitätstyps X (Supertyp). In den übergeordneten Supertypen befinden sich gemeinsame Merkmale, Regeln etc.

Subtypen erben alle Merkmale wie Attribute und Beziehungen des Supertypen und beinhalten meistens zusätzliche Merkmale. Die Beziehung zwischen Subtyp und Supertyp wird häufig als "is a" Beziehung bezeichnet.

Jede Entität eines Subtyps ist gleichzeitig eine (spezialisierte) Entität des Supertyps.

Spezialisierung oder Generalisierung von Sub und Supertypen,

Pro Dimension wird zwischen zwei Werten unterschieden:

  • Participation Constraint:
    Bestimmt ob jede Entität eines Superentitätstypen eine Entität eines Subentitätstypen sein muss oder nicht:
    • Total: Jede Entiät eines Supertyps ist gleichzeitig die allgemeinere Entität einer der Subtypen. {mandatory}
    • Partiell: Es gibt Entitäten, die zu keinem der Subtypen gehören. {optional}
       
  • Disjoint Constraint:
    Bestimmt ob Entitäten gleichzeitig mehr als einem Subentitätstypen angehören dürfen oder nicht.
    • Disjunkt: Jede Entität eines Supertyps ist gleichzeitig die (allgemeinere) Entität eines einzigen Subtypen. {disjoint}
    • Überlappend: Entitäten die gleichzeitig zu mehr als einem Subtypen gehören. {nondisjoint}

Arten von Beziehungstypen

Beziehungen werden durch ihre Optionalität (kann und muss) und ihrer Kardinalität (eins oder mehrere) beschrieben. Diese 16 mögliche Beziehungen können auf 10 Echte reduziert werden.

Man unterscheidet hier 3 Arten von Beziehungstypen, die aufgrund der Kardinalität in beiden Richtungen gruppiert werden:

  • hierarchische Beziehungstypen
  • netzwerkförmige Beziehungstypen
  • 1-1 Beziehungstypen

Hierarchische Beziehung

In eine Richtung die Kardinalität unbegrenzt (*) und in der anderen Richtiung die Kardinalität 1.

Beispiel:

Der Beziehungstyp zwischen Abteilung und Mitarbeiter ist hier ein hierarchischer Beziehungstyp. Mitarbeiter ist ein abhängiger Entitätstyp, Abteilung ist ein unabhängiger Entitätstyp.

Netzwerkförmige Beziehung

In beiden Richtungen wird die unbegrenzte Kardinalität verwendet.

Attribute, die einen netzwerkförmigen Beziehungstyp näher beschreiben, können in keinem der beiden Entitätstypen platziert werden. Der netzwerkförmige Beziehungstyp muss aufgelöst werden. Dafür wird ein eigener Entitätstyp generiert mit je zwei Beiziehungstypen zu den bestehenden Entitätstypen. Dieser neue Entitätstyp, in dem wir das Beziehungsattribut setzen, ist ein weak entity type. Der UID ist eine Kombination der beiden bestehenden Entitätstypen.

Die Beziehungstypen vom neuen Entitätstyp zu den Bestehenden sind immer obligatorisch (minimale Anzahl 1) und haben die Kardinalität eins.

1-1 Beziehungen

In beiden Richtungen die maximale Kardinalität von 1.

Diese Typen müssen sorgfältig hinterfragt werden. Es könnte sich bei den Entitätstypen um ein und denselben Entitätstyp handeln oder der eine ist ein Subtyp des anderen.

Rekursive Beziehungstypen

Ein rekursiver Beziehungstyp kann ebenfalls in den Varianten hierarchisch, netzwerkförmig und 1-1 auftreten. Die Optionalität bei rekursiven Beziehungstypen muss aber in beiden Richtungen fakultativ sein, da sonst die Rekursion nicht aufhört.

Hierarchische rekursive Beziehungen

Hierarchische rekursive Beziehungstypen stellen Baumstrukturen dar. Die Entitäten sind die Knoten des Baumes.

Beispiel:

  • Ein Angestellter ist höchstens einem anderen Angestellten unterstellt.
  • Ein Angestellter ist beliebig vielen anderen Angestellten vorgesetzt.

Netzwerkförmige rekursive Beziehungstypen

Stellen Graphen oder Netze dar. Diese Beziehungstypen sind ywar direkt darstellbar, wir müssen aus schon besprochenen Gründen auch hier den netzwerkförmigen Beziehungstyp auflösen.

Gegenseitig ausschliessende Beziehungstypen

In gewissen Situationen können zwischen einem Entitätstyp A und mehreren anderen Entitätstypen B und C Beziehungstypen festgestellt werden, die sich gegenseitig ausschliessen. Eine Entität des Typs A hat entweder eine Beziehung zu Entitäten des Typs B oder C.

Sich gegenseitig ausschliessende Beziehungstypen sind in engem Zusammenhang zu Subtypen.

Beispiel:

Eine Bestellung wird entweder von einer Organisation oder von einer Person aufgegeben.

dies könnte allerdings auch folgendermassen umgeformt werden:

Wir fassen Organisationen und Personen zum Supertyp Geschäftspartner zusammen von dem ein Beziehungstyp zu Bestellung beschrieben wird.

Analyse Muster: Ganzes und seine Teile

„Das Ganze und seine Teile“, häufig auch als „Master Detail“ benannt, tritt in verschiedenen Varianten auf:

  • Baugruppe und Bauteil
  • Behälter und Inhalt
  • Menge und Element
  • Formular und Formularposition

Um Redundanz beim Entitätstyp „Teil“ zu vermeiden, es können verschiedene „Ganze“ gleichartige „Teile“ enthalten, ergänzen wir die reine Hierarchie mit einem Entitätstyp, der die Teile beschreibt.

Analyse Muster: Warenkorb

Ähnlich zu "Ganzes und seine Teile", jedoch mit eigenen Entitätstypen. Sinnvoll wenn die Typen verschiedenartig sind und unterschiedlich beschrieben werden müssen.

Analyse Muster: Klassifizierung

Eine Klassifizierung, Typisierung oder Gruppierung von Entitäten eines Entitätstyps können wir einfach durch ein entsprechendes Attribut vornehmen. Die Domäne des Attributs gibt mit ihren Werten die möglichen Klassen, Typen oder Grupppen an.

Müssen diese Klassen, Typen oder Gruppen selbst mit eigenen Merkmalen beschrieben werden, lagern wir diese Merkmale in einen eigenen Entitätstyp aus. In dieser Form erscheint das Muster als hierarchischer Beziehungstyp, wobei nur die zu klassierenden Entitäten existenzabhängig sind.

Analyse Muster: Baumstruktur

Baumstrukturen entstehen wenn wir einen rekursiven hierarchischen Beziehungstyp modellieren. Wenn in diesen „Bäumen“ speziell die „Wurzeln“ oder speziell die „Blätter“ eigene Merkmale aufweisen, ist eine Unterteilung des Entitätstyps in Subtypen angebracht.

Beispiel:

Unter allen Ordnern sind die „obersten“ mit dem Subtyp Top ausgezeichnet. Diese sind in keinem anderen Ordner enthalten. Jeder Ordner kann mehrere untergeordnete Ordner enthalten, ausser einen Top-Ordner. Jeder Ordner kann mehrere Dateien enthalten.

Was bedeuten die folgenden Begriffe/Definitionen?

  • Domäne
  • Attribut
  • Relationsschema
  • Tupel
  • Relation
  • Grad einer Relation
  • Attribut Kombination

  • Domäne: Eine Menge von atomarenn Elemente (Wertebereich).
  • Attribut: Die aktive Teilmenge der Relation einer Domäne (Spalte).
  • Relationsschema: \(R(A_1,A_2,...,A_n)\)
    Jedem Attribut A_i ist ein Domain D_j zugeordnet. D_j ist der Domain von A_i und wird durch die Wertebereichsfunktion dom zugeordnet: D_j = dom(A_i). R ist der Name des Relationenschemas.
  • Tupel: Ein n-Tupel t ist eine geordnete Liste von n Werten. Die Ordnung ist nicht wichtig. Jeder Wert w_i ist ein Element von dom(A_i) oder NULL.
  • Relation: Eine Relation r zum Relationenschema R(A_1,A_2,...,A_n) ist eine Menge von n-Tupeln: r = {t_1, t_2,...,,t_n}. 
  • Grad einer Relation
  • Attribut Kombination

Kombination von Selektion und Projektion

\(\pi_{A_1}(\sigma_{A_2=value}(r))\)

  • \(A_1 \text{ und } A_2\) sind Attribute
  • \(r\) = Relation
  • \(\pi\)= Projektion
  • \(\sigma\)= Selektion

Das Resultat des Ausdrucks ist wieder eine Relation. Das Resultat des inneren Ausdrucks gibt auch eine Relation zurück. Deswegen können diese Operationen ineinander verschachtelt werden.

Selektion

\(\sigma_Br = \{t|t \in r \text{und B trifft zu}\}\)

B ist eine Bedinung das folgendermassen aufgebaut ist:

  • <Attribut> <Vergleichsoperator> <Wert>
  • <Attribut> <Vergleichsoperator> <Attribut>

WHERE Statements in SQL

Verbund (JOIN)

\(r\space{\bowtie}_B\space s = \{t_r \text{~} t_s | t_r \in r, t_s \in s \space \text{und B trifft zu}\}\)

  • \(r \text{ and } s\) sind Relationen
  • \(\bowtie\)  ist der Join Operator
  • \(_B\) ist die Bedingung

Beispiel:

\(\text{Mitglieder}\space{\bowtie}_{\text{Mitglieder.mnr =Registrierungen.mnr}}\space \text{Registrierungen}\)

SELECT * FROM Mitglieder INNER JOIN Registrierungen ON Mitglieder.mnr = Registrierungen.mnr

Das Bowtie funktioniert als INNER JOIN und ON ... als Bedingung.

DB-Schema / Relationen-Schema ist gut wenn...

  • Anforderungen erfüllt [(Regeln, Einschränkungen) = Constraints]
    • Primärschlüssel
    • Keine (unnötige) Redundanz
    • Regeln werden nicht verletzt 

Verschiedene Arten von Constraints

  • NULL / NOT NULL
  • Key Constraint
    • Unique
    • Primary
  • Domain Constraint
  • Foreign Key Constraint (Referential ...) Inklusion kann damit geprüft werden: \(\subseteq\)

Domain Key Normal Form

tbd

Lernen