Händler-Datenbank (SQL-Beispiel)/Projektion: Unterschied zwischen den Versionen
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
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
- Kowarschick (MMDB-Skript): Wolfgang Kowarschick; Vorlesung Multimedia-Datenbanksysteme – Sommersemester 2018; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2018; Quellengüte: 4 (Skript)
- 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/
