MALO 2.0

| Back to Overview

Entwurfstheorie

Abhängigkeiten

Sei XX die Attributenmenge einer Relation RR. Eine Abhängigkeit ist eine Relation αβ,α,βX\alpha \to \beta, \alpha, \beta \subseteq X. Also β\beta ist funktional abhängig von α\alpha. also gdw. r.a=t.a    r.b=t.br.a = t.a \implies r.b = t.b für alle r,tRr,t \in R.

Hier kommt dann die Notation auf

  • {A,B}{C}\{ A,B \} \to \{ C \} bzw. A,BCA,B \to C

Hiermit können wir nun Schlüssel gut definieren:

  • Eindeutigkeit αX\alpha \subseteq X heißt Superschlüssel, falls αX\alpha \to X gilt.

  • Minimalität βX\beta \subseteq X heißt voll funktional abhängig von α\alpha falls:

    • αβ\alpha \to \beta gilt
    • αAβ\alpha - {A} \nrightarrow \beta für alle AαA \in \alpha also α\alpha ist minimal.

Ein Schlüsselkandidat ist dann αX\alpha \subseteq X mit XX voll funktional abhängig von α\alpha. Und der Primärschlüssel ist dann ein Schlüsselkandidat, der minimal ist.

Armstrong-Kalkül

Bestimmung funktionaler Abhängigkeiten: Seien α,β,γX\alpha, \beta, \gamma \subseteq X.

  • Reflexivität: βα    αβ\beta \subseteq \alpha \implies \alpha \to \beta
  • Verstärkung: αβ    αγβγ\alpha \to \beta \implies \alpha \cup \gamma \to \beta \cup \gamma
  • Transitivität: αβ,βγ    αγ\alpha \to \beta, \beta \to \gamma \implies \alpha \to \gamma

Eine Abhängigkeit ist ableitbar, falls es eine Folge gibt von Abhängigkeiten, die mit den obigen Regeln hergeleitet werden kann. FfF \vdash f

Erweiteruingen:

  • Vereinigung: αβ,αγ    αβγ\alpha \to \beta, \alpha \to \gamma \implies \alpha \to \beta \gamma
  • Dekomposition: αβγ    αβ,αγ\alpha \to \beta \gamma \implies \alpha \to \beta, \alpha \to \gamma
  • Pseudotransitivität: αβ,γβδ    αγδ\alpha \to \beta, \gamma \beta \to \delta \implies \alpha \gamma \to \delta

Hieraus bildet man dann die Attributhülle.

Beispiel: F={AC,BA,ABC}F=\{ A \to C, B \to A, AB \to C \}

  • AttrHülle(F, {B})

Anfang: {B}\{B\} Erster Durchlauf: AC    {B}A \to C \implies \{B\} | BA    {B,A}B \to A \implies \{B,A\} | ABC    {B,A,C}AB \to C \implies \{B,A,C\} Zweiter Durchlauf: Keine Änderung

Die Kanonische Überdeckung hat die gleiche Menge von Ableitungen. Also beim Beispiel {AC,BA}\{A \to C, B \to A\}

Normalformen erklärt

Alle Normalformen setzten die vorherige vorraus. Also 2NF setzt 1NF vorraus. 3NF setzt 2NF vorraus. BCNF setzt 3NF vorraus.

  • 0NF: Nicht normalisiert. Alles steht in einer einzigen Tabelle und ist nicht aufgeteilt.
  • 1NF: Alle Attribute haben atomare Werte (String, Integer, etc.). z.B. Name => Vorname, Nachname | Adresse => Straße, Hausnummer, PLZ, Ort
  • 2NF: Alle Attribute sind voll funktional abhängig vom Primärschlüssel. z.B. Menge ist voll funktional abhängig vom Bestellungs Nr. & Artikel Nr.
  • 3NF: Kein Nichtschlüsselattribut hängt transitiv von einem Schlüsselkandidaten ab. Bsp: Ort => PLZ => Kunden Nr. Ort ist transitiv abhängig von Kunden Nr. Somit neue Relation mit PLZ und Ort. (Synthesealgorithmus)
  • BCNF: Jede Information wird genau einmal gespeichert (Dekompositionsalgorithmus)

Im Endeeffekt das hier: https://normalizer.db.in.tum.de/index.py

Back to Overview | Vorheriges: Hello-World | Nächstes: BUS2.0