Excel 2.0

| Back to Overview

Begriffe

  • Domäne DD: Wertebereich einer Spalte z.B. INTEGER.
  • Relation: ist einfach dann gegeben D1,...,Dk:rD1×...×DkD_1, ..., D_k: r \subseteq D_1 \times ... \times D_k: Also eine Tabelle wow.
  • Tupel: Eine Zeile der Tabelle, bzw. ein Element der Relation
  • geordnetes Relationenschema: Hierbei haben die Zeilen eine feste Ordnung

Relationen

Beispiel ist folgende Tabelle:

NameEinwohnenLand
München1.472.000Bayern
Bremen569.352Bremen
Aachen245.885NRW

Als geordnetes Schema wäre das:

  • Schema: Städte(Name, Einwohner, Land)
  • dom(Name) = STRING, dom(Einwohner) = INTEGER, dom(Land) = STRING
  • Ausprägung (Muenchen,1.472.000,Bayern),(Bremen,569.352,Bremen),(Aachen,245.885,NRW){(Muenchen, 1.472.000, Bayern), (Bremen, 569.352, Bremen), (Aachen, 245.885, NRW)}
  • t1t_1(Name) = München. t2t_2(Einwohner) = 569.352

Schlüsselattribute

Definition Schlüsselkandidat:

  • Eindeutigkeit: In keinen zwei Tupeln gleichen sich alle Schlüsselattribute
  • Minimalität: Du kannst nicht eins wegnehmen und es ist immer noch ein Schlüsselattribut. (Keine echte Teilmenge erfüllt Eindeutigkeit)

Formell:

  • RR Relation, SR.t[S]S \subseteq R. t[S] ist eine Projektion(Einschränkung) vom Tupel auf die Attribute SS.
    • t1,t2r:t1t2    t1[S]t2[S]t_1, t_2 \in r: t_1 \neq t_2 \implies t_1[S] \neq t_2[S]
    • Für alle Attributmengen TT die Eindeutigkeit erfüllen gilt: TS    T=ST \subseteq S \implies T = S

Relationale Modell

Alle Entities und Beziehungen werden als Relationen dargestellt.

  • Intrarelationale Abhängigkeit: Aussagen über die Konsistenz einer Relation. Z.B.Schlüssel einer Relation
    • Wird durch σ\sigma ausgedrückt. σ:Rel(X){true,false}\sigma: Rel(X) \to \{true, false\}. Wobei XX eine Menge von Attributen, Rel(X)Rel(X) die Menge aller Relationen über XX und Tup(X)Tup(X) wäre das gleiche nur mit Tupeln
    • Man erweitert also das Relationenschema: R=(R,ΣX)R'' = (R', \Sigma_X) wobei ΣX\Sigma_X die Menge der Intra-Relationen-Abhängigkeiten ist und RR' ein geordnetes Relationenschema.
  • Interrelationale Abhängigkeit: Aussagen über die Konsistenz einer Datenbank. Also zum Beispiel Fremdschlüssel müssen existieren.
    • Dat(R)Dat(R) ist die Menge aller Datenbanken über RR. Eine Datenbank ist eine Menge von Relationen
    • Eine Interrelationale Abhängigkeit wird durch σ:Dat(R){true,false}\sigma: Dat(R) \to \{true, false\} spezifiziert.
    • Z.B: σRi[V]Rj[W]=\sigma_{R_i[V] \cap R_j[W] = \emptyset} true wenn die Bedingung stimmt, sonst false

Somit ist ein Datenbankschema: D=(R,ΣR)D= (R, \Sigma_R) Eine Datenbank ist konsistent/gültig wenn alle Intra- und Interrelationalen Abhängigkeiten erfüllt sind.

Fremdschlüssel

Man nutzt um Beziehung zu anderen Entitäten herzustellen deren Schlüssel. Das heißt dann Fremdschlüssel. Also σR1[F]R2[K]ΣR\sigma_{R_1[F] \subseteq R_2[K]} \in \Sigma_R wobei FF die Fremdschlüsselattribute und KK die Schlüsselattribute sind.

Von ER-Diagrammen zu Relationen

  • Entity: Relation
  • Attribut: Attribut der Relation
  • Mehrwertiges Attribut: Neue Relation mit zusammengesetzten Schlüssel aus dem Schlüssel der Entity und dem Attribut

Ein Student wäre dann Student(MatrNr, Name, Semester)

  • n-m-Beziehung: Relation mit Schlüssel aus den Schlüsseln der Entities. Z.B. Hört(MatrNr, VorlesungsNr) Dabei gibt es natürlich interrelationale Abhängigkeiten.
  • 1-n-Beziehung: Die Beziehung wird als Attribut der n-Entität gespeichert: z.B. Vorlesung(Nummer, Titel, SWS, Prof)
  • 1-1-Beziehung: Die Beziehung wird als Attribut einer der beiden Entitäten gespeichert
  • Rekursive Beziehung: Laufen halt rekursiv...

Generalisierungen 4 Möglichkeiten:

  • partiell: Tabelle für jeden Entity-Typ

  • total: Tabelle für alle Sub-Entities

  • disjunkt: eine Tabelle für alle Attribute enthält und ein Typ-Attribut

  • überlappend: eine Tabelle für alle Attribute enthält und ein boolsches Attribut für jeden Typ

  • Schwache Entities werden als Relation mit Schlüssel aus dem Schlüssel der starken Entity und dem schwachen Attribut gespeichert.

  • n-stellige Beziehungen werden als Relation mit Schlüssel aus den Schlüsseln der Entities und den Attributen gespeichert.

Relationale Algebra

Hiermit macht man Operationen auf Relationen. Bissle wie SQL nur in "mathematisch".

Operationen:

  • Vereinigung: rs={trts}r \cup s = \{t \in r \lor t \in s\}
  • Differenz: rs={trts}r - s = \{t \in r \land t \notin s\}
  • Kreuzprodukt: r×s={t1t2t1rt2s}r \times s = \{t_1 \cup t_2 | t_1 \in r \land t_2 \in s\}
  • Selektion: σϕ(r)={trϕ(t)=true}\sigma_{\phi}(r) = \{t \in r | \phi(t) = true\} wobei ϕ\phi eine Formel ist die auf die Attribute von rr definiert ist.
  • Projektion: πA1,...,An(r)={t[A1,...,An]tr}\pi_{A_1, ..., A_n}(r) = \{t[A_1, ..., A_n] | t \in r\} wobei A1,...,AnA_1, ..., A_n Attribute von rr sind. Also Auswahl von Spalten aus einer Relation wie vorher.
  • Umbenennung: ρS(R)\rho_S(R) oder ρAB(R)\rho_{A \to B}(R) Also Umbenennung einer Relation oder eines Attributs.
  • Durchschnitt: rs=r(rs)r \cap s = r - (r - s)
  • Natural Join: RSR \bowtie S Selektierung aus dem Kreuzprodukt von RR und SS mit der Bedingung, dass die Attribute die gleichen Werte haben.
  • Theta Join: RϕSR \bowtie_{\phi} S Selektierung aus dem Kreuzprodukt von RR und SS mit der Bedingung, dass die Formel ϕ\phi gilt.
  • Outer Join: Hier bleiben nicht nur die Tupel die gleiche Werte haben übrig. Bei left / right bleiben alle der linken / rechten Relation übrig. Bei full bleiben alle übrig.

Kalkül

Aus der Algebra baut man dann logischer weise ein Kalkül nach MALO Style auf.

Hierbei sind die Atome:

  • tRt \in R
  • t.Aθs.Bt.A \theta s.B wobei θ\theta ein Vergleichsoperator ist.
  • t.Aθct.A \theta c wobei cc ein Konstante ist. Verknüpfungen:
  • ,,¬,,,,\land, \lor, \lnot, \exists, \forall, \to, \leftrightarrow

Ja ist glaube ich nicht so spannend

Vielleicht guck ich mirs später nochmal an

Oder mit ihren eigenen Worten:

"Wozu zur Hölle ist das Tupelkalkül zu gebrauchen?"

Back to Overview | Vorheriges: Hello-World | Nächstes: Seekuell