Händler-Datenbank (SQL-Beispiel)/Projektion: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Kowa (Diskussion | Beiträge)
Zeile 11: Zeile 11:


== Die Projektionsfunktion==
== Die Projektionsfunktion==
[[File:Relational Algebra Single Table Projection.svg|mini|200px|Die Projektionsfunktion entfernt Spalten einer Tabelle]]
[[File:Relational Algebra Single Table Projection Extended.svg|mini|200px|Eine Projektionsfunktion berechnet für jedes Tupel einer Tabelle ein neues Tupel; Duplikatzeilen werden üblicherweise entfernt]]
 
[[File:Relational Algebra Single Table Projection Extended.svg|mini|200px|Allgemeiner: Spalten wie <code>b1</code> können aus anderen Spalten berechnet werden; Duplikatzeilen werden üblicherweise entfernt]]


Eine Projektionsfunktion  
Eine Projektionsfunktion  
<div class="formula">
<math>π_{c_1, \ldots, c_k}: R \rightarrow R</math><br />
</div>
dient dazu, bestimmte Spalten aus einer beliebigen ({{dh}} gespeicherten oder berechneten Tabelle) zu selektieren.
Wenn $r(a_1, \ldots, a_n)$ eine Relation ist und $\{c_1, \ldots, c_k\}$ eine Teilmenge der Attribute $\{a_1, \ldots, a_n\}$,
dann ist $π_{c_1, \ldots, c_k}(r)$ diejenige Tabelle, die aus $r$ entsteht, wenn man alle übrigen Spalten aus $r$
entfernt.
Man beachte: Dabei entstehende Duplikate müssen ebenfalls entfernt werden (sofern die realtionale Algebra nicht
multimengenbasiert, sondern mengenbasiert ist).
Heutzutage werden ({{zB}} in SQL) Projektionsfunktionen allgemeiner definiert:
<div class="formula">
<div class="formula">
<math>π_{f_1 \,\text{as}\, b_1, \ldots, f_k \,\text{as}\, b_k}: R \rightarrow R</math><br />
<math>π_{f_1 \,\text{as}\, b_1, \ldots, f_k \,\text{as}\, b_k}: R \rightarrow R</math><br />
</div>
</div>
$f_i$ ist dabei eine Funktion, die für jedes Tupel
berechnet für jedes Tupel einer Relation ein neues Tupel: $f_i$ ist dabei eine Funktion, die für jedes Tupel
$(v_1:a_1, \ldots, v_n:a_n) \in r$ jeweils einen Wert $f_i((v_1:a_1, \ldots, v_n:a_n))$ berechnet,
$(v_1:a_1, \ldots, v_n:a_n) \in r$ jeweils einen Wert $f_i((v_1:a_1, \ldots, v_n:a_n))$ berechnet,
der in das Ergebnistupel unter dem Namen $b_i$ eingefügt wird.
der in das Ergebnistupel unter dem Namen $b_i$ eingefügt wird.


Die erste Definitionist dabei ein Spezialfall der zweiten Definition,
Man beachte: Dabei entstehende Duplikate müssen ebenfalls entfernt werden (sofern die realtionale Algebra nicht
wenn man $c_i$ sowohl als Attributnamen also auch als Funktion auffasst:
multimengenbasiert, sondern mengenbasiert ist).
$c_i$  entspricht $c_i \,\text{as}\, c_i$, wobei die Funktion $c_i$ folgendermaßen definiert wird:
$c_i((v_1:a_1, \ldots, v_n:a_n)) = v_j$, falls der Attributename $c_i$ gleich $a_j$ ist.


==Quellen==
==Quellen==

Version vom 1. April 2019, 08:06 Uhr

Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen:

Korrektheit: 4
(großteils überprüft)
Umfang: 4
(unwichtige Fakten fehlen)
Quellenangaben: 4
(fast vollständig vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 5
(ausgezeichnet)

Die nachfolgenden Beispiele können beispielsweise mit SQLite oder PostgreSQL getestet werden. Installieren Sie dazu die zugehörige Händler-Datenbank.

Die Projektionsfunktion

Fehler beim Erstellen des Vorschaubildes:
Eine Projektionsfunktion berechnet für jedes Tupel einer Tabelle ein neues Tupel; Duplikatzeilen werden üblicherweise entfernt

Eine Projektionsfunktion

$ π_{f_1 \,\text{as}\, b_1, \ldots, f_k \,\text{as}\, b_k}: R \rightarrow R $

berechnet für jedes Tupel einer Relation ein neues Tupel: $f_i$ ist dabei eine Funktion, die für jedes Tupel $(v_1:a_1, \ldots, v_n:a_n) \in r$ jeweils einen Wert $f_i((v_1:a_1, \ldots, v_n:a_n))$ berechnet, der in das Ergebnistupel unter dem Namen $b_i$ eingefügt wird.

Man beachte: Dabei entstehende Duplikate müssen ebenfalls entfernt werden (sofern die realtionale Algebra nicht multimengenbasiert, sondern mengenbasiert ist).

Quellen

  1. Kowarschick (MMDB-Skript): Wolfgang Kowarschick; Vorlesung Multimedia-Datenbanksysteme – Sommersemester 2018; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 4 (Skript)
  2. Kowarschick (MMDB): Wolfgang Kowarschick; Vorlesung „Multimedia-Datenbanksysteme“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2016; Quellengüte: 3 (Vorlesung), http://mmdb.hs-augsburg.de/beispiel/haendler/

Siehe auch