Händler-Datenbank (SQL-Beispiel)/Identität: Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 12: | Zeile 12: | ||
Sie bildet eine Relation (Tabelle) auf sich selbst ab: | Sie bildet eine Relation (Tabelle) auf sich selbst ab: | ||
<div class=" | <div class="formula"> | ||
<math>id: R \rightarrow R</math><br /> | |||
<math>id(r) = r</math> | |||
</div> | </div> | ||
Es gilt folgendes triviales Gesetz: | Es gilt folgendes triviales Gesetz: | ||
<div class=" | <div class="formula"> | ||
<math>id(id(r)) = id(r) = r</math> | |||
</div> | </div> | ||
Version vom 5. Juli 2012, 07:29 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: 5 (vollständig überprüft) |
Umfang: 4 (unwichtige Fakten fehlen) |
Quellenangaben: 5 (vollständig vorhanden) |
Quellenarten: 5 (ausgezeichnet) |
Konformität: 5 (ausgezeichnet) |
Die Identität
Die Identitätsfunktion der Realtionalen Algebra ist eine triviale Funktion: Sie bildet eine Relation (Tabelle) auf sich selbst ab:
$ id: R \rightarrow R $
$ id(r) = r $
Es gilt folgendes triviales Gesetz:
$ id(id(r)) = id(r) = r $
In SQL gibt es die Identitätsfunktion nicht. Es gibt aber mehrere Möglichkeiten den Inhalt einer gesamten Tabelle zu ermitteln:
Die erste der beiden folgenden Lösungen ist, gerade im Web-Bereich, im Hinsicht auf Sicherheit
und Performanz deutlich schlechter, als die zweite. Die gilt vor
allem, wenn zur Tabelle später weitere Attribute hinzugefügt werden.
(Ausnahmen: COUNT(*), EXISTS(SELECT * ...))
SELECT * FROM haendler;
SELECT hnr, name, adresse FROM haendler;
/*
* Die folgenden Befehle sind korrekte SQL92-Befehle, jedoch keine SQL99-Befehle. * Das Ergebnis ist ebenfalls jeweils die ganze Tabelle. * Diese Befehle werden von PostgreSQL nicht unterstützt. */
-- TABLE haendler; -- SELECT * FROM TABLE haendler;
/*
* Als Tabelle dürfen auch komplexe SQL-Ausdrücke verwendet werden. * Allerdings entfernt SQL Duplikate nicht automatisch. * Um dies zu erzwingen, muss "SELECT DISTINCT" verwendet werden: * * SELECT DISTINCT * FROM <komplexer Ausdruck>;
- /
/* Standard-SQL, aber PostgreSQL-Fehler */
-- SELECT DISTINCT * FROM (SELECT typ FROM ware); i
SELECT DISTINCT * FROM (SELECT typ FROM ware) AS ware_typ; SELECT * FROM (SELECT typ FROM ware) AS ware_typ; /* Duplikate */
Quellen
- Kowarschick (MMDB): Wolfgang Kowarschick; Vorlesung „Multimedia-Datenbanksysteme“; Hochschule: Hochschule Augsburg; Adresse: Augsburg; Web-Link; 2016; Quellengüte: 3 (Vorlesung)
