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)
Keine Bearbeitungszusammenfassung
Zeile 35: Zeile 35:
  !  h_id !! h_name !! h_adresse
  !  h_id !! h_name !! h_adresse
  |-  
  |-  
  | 1 || Maier || Königsbrunn
  | 1 || Maier || Königsbrunn
  |-
  |-
  | 2 || Müller || Königsbrunn
  | 2 || Müller || Königsbrunn
  |-
  |-
  | 3 || Maier || Augsburg
  | 3 || Maier || Augsburg
  |-
  |-
  | 4 || Huber  || NULL
  | 4 || Huber  || NULL
  |-
  |-
  | 5 || Schmidt || Hamburg
  | 5 || Schmidt || Hamburg
|}
|}
<br/>
<br/>
Zeile 51: Zeile 51:
FROM  haendler
FROM  haendler
</source>
</source>
{| class="datatable-sql"
! h_name !! h_adresse !! h_id
|-
| Maier || Königsbrunn || 1
|-
| Müller || Königsbrunn || 2
|-
| Maier || Augsburg || 3
|-
| Huber  || NULL || 4
|-
| Schmidt || Hamburg || 5
|}
<br/>
<br/>
Entfernen einer Spalte:
Entfernen einer Spalte:

Version vom 3. April 2019, 09:58 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 einer Relationalen Algebra

$ π_{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 relationale Algebra nicht multimengenbasiert, sondern mengenbasiert ist).

Beispiele bezüglich der Händler-Datenbank

(Diese Beispiele wurden mit PostgreSQL und SQLite getestet.)

Selektion aller Attribute der Tabelle haendler ([Händler-Datenbank (SQL-Beispiel)/Identität|Identität]]):

SELECT h_id, h_name, h_adresse
FROM   haendler
h_id h_name h_adresse
1 Maier Königsbrunn
2 Müller Königsbrunn
3 Maier Augsburg
4 Huber NULL
5 Schmidt Hamburg


Änderung der Position der Attribute:

SELECT h_name, h_adresse, h_id
FROM   haendler
h_name h_adresse h_id
Maier Königsbrunn 1
Müller Königsbrunn 2
Maier Augsburg 3
Huber NULL 4
Schmidt Hamburg 5


Entfernen einer Spalte:

SELECT h_name, h_adresse
FROM   haendler

Das Ergebnis enthält keine Duplikate, da die Attribute (h_name, h_adresse) gemäß Datenmodell einen Schlüsselkandidat (key candidate, unique key) bilden.
Entfernen zweier Spalten:

SELECT h_name
FROM   haendler

Das Ergebnis enthält den namen Maier doppelt, da es zwei Händler mit dem gleichen Namen git.

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), https://kowa.hs-augsburg.de/mmdb/mmdb-beispiele/haendler-datenbank/

Siehe auch