Relationale Algebra: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
* <math>\cup: R, R \rightharpoonup R</math> ermittelt die Vereinigung zweier (strukturgleicher) Relationen.
* <math>\cup: R, R \rightharpoonup R</math> ermittelt die Vereinigung zweier (strukturgleicher) Relationen.
* <math>\cap: R, R \rightharpoonup R</math> ermittelt den Durchschnitt zweier (strukturgleicher) Relationen.
* <math>\cap: R, R \rightharpoonup R</math> ermittelt den Durchschnitt zweier (strukturgleicher) Relationen.
* <math>\cap: R, R \rightharpoonup R</math> ermittelt die Differenz zweier (strukturgleicher) Relationen.
* <math>\setminus: R, R \rightharpoonup R</math> ermittelt die Differenz zweier (strukturgleicher) Relationen.


==Anmerkung==
==Anmerkung==

Version vom 16. Mai 2018, 15:01 Uhr

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

Korrektheit: 2
(teilweise überprüft)
Umfang: 1
(zu gering)
Quellenangaben: 3
(wichtige Quellen vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 5
(ausgezeichnet)

Definition (Kowarschick (2018))

Eine Algebra $ \mathcal{R} = (R, id, \pi, \sigma, \times, \div, \cup, \cap, \setminus) $ heißt Relationale Algebra wenn die Trägermenge oder -klasse $ R $ eine Menge bzw. Klasse von Relationen mit benannten Attributen ist.

  • $ id: R \rightarrow R $ ist die so genannte Identitätsfunktion: Es gilt stets $ id(r) = r $
  • $ \pi_{f_1 \rm{\;as\;} a_1, \ldots, f_n \rm{\;as\;} a_n}: R \rightharpoonup R $ sind die so genannten Projektionsfunktionen, die mit Hilfe der Funktionen $f_i$ für jedes Tupel $n$ neue Attribute berechnen. Die neuen Attribute haben die Namen $a_i$.
  • $ \sigma_b: R \rightharpoonup R $ sind die so genannte Selektionsfunktionen: Mit ihrer Hilfe werden aus einer Relation diejenigen Tupel selektiert, die die Bedingung $b$ erfüllen.
  • $ \times: R, R \rightharpoonup R $ ist das kartesische Produkt, das zwei Relationen zu einer Relation verknüpft. Für jede mögliche Kombination von zwei Tupeln der Urbildrelationen ist die Konkatenation der beiden Tupel Element der Bildrelation.
  • $ \div: R, R \rightharpoonup R $ ist die Division. Im Prinzip ist dies die Umkehrfunktion des kartesischen Produktes.
  • $ \cup: R, R \rightharpoonup R $ ermittelt die Vereinigung zweier (strukturgleicher) Relationen.
  • $ \cap: R, R \rightharpoonup R $ ermittelt den Durchschnitt zweier (strukturgleicher) Relationen.
  • $ \setminus: R, R \rightharpoonup R $ ermittelt die Differenz zweier (strukturgleicher) Relationen.

Anmerkung

Die ersten Elemente der Relationale Algebra (Projektion und Join) wurde 1969/1970 von Edgar Frank Codd eingeführt, um große Datenbanken (“large data banks”) zu verwalten[1][2]. Im ersten Satz des Abstract seines internen Reports „Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks“ mach Codd eine geradezu prophetische Aussage:

The large, integrated data banks of the future will contain many relations of various degrees in stored form. (Codd (1969)[1])

Übersetzung (von Kowarschick):

Die großen, integrierten Datenbanken der Zukunft werden viele Relationen unterschiedlichsten Grades in gespeicherter Form enthalten.

Ende 1970, d. h. im selben Jahr, in dem Codds Arbeit publik wurde, stellen Rudolf Bayer und Ed McCreight den B-Baum vor, eine Datenstruktur, die es ermöglicht, Relationen mit einer großen Anzahl von Tupel so auf einer Festplatte zu speichern, das der lesende Zugriff auf Tupel sowie die Modifikation von Tupeln hocheffizient erfolgen kann.[3][4]

In den 70er Jahren begann auf Basis dieser beiden Arbeiten die Erfolgsgeschichte der Relationalen Datenbanken einschließlich der zugehörigen Sprache SQL.

Relationale Operationen

Identität

Die Identitätsfunktion verändert eine Tabelle nicht.

Die Identiätsfunktion liefert als Ergebnis stets die Urbildrelation zurück. Das heißt, sie verändert eine Relation nicht.

In SQL wird eine derartige Funktion benötigt, um den gesamten Inhalt einer Relation zu erfragen, da in jeder Anweisung zum Lesen von Dateninhalten mindestens eine relationale Operation enthalten sein muss.

In SQL 92[5] wurde zu diesem Zweck der Befehl table eingeführt, dessen einzige Aufgabe es war, die ihm übergebene Tabelle (Relation) vollständig auszugeben. Dieser Befehl hat sich jedoch nicht durchgesetzt (auch wenn PostgreSQL ihn unterstützt, ohne ihn allerdings in der Dokumentation zu erwähnen).

So ist es kein Wunder, diese Identitätsfunktion in SQL 99[6] nicht mehr enthalten ist. Das ist auch nicht notwendig, da eine Projektion, die alle Attribute einer Relation unverändert zurück gibt, ebenfalls als Identitätsfunktion verwendet werden kann (siehe nachfolgenden Abschnitt).

Beispiel

R $id$(R)
a1 a2 a3
a b c
a d b
c f g
a1 a2 a3
a b c
a d b
c f g

Projektion

Die Projektionsfunktion entfernt Spalten aus einer Tabelle.
Genauer: Die Projektionsfunktion berechnet neue Spalteninhalte aus den alten Spalteninhalten. Dabei entstehende Duplikattupel werden ebenfalls entfernt.

Quellen

  1. 1,0 1,1 Codd (1969): Edgar Frank Codd; Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks; in: ACM SIGMOD Record; Band: 38; Nummer: 1; Seite(n): 17–36; Verlag: Association for Computing Machinery; Adresse: New York; Web-Link; 2009; Quellengüte: 5 (Artikel)
  2. Codd (1970): Edgar Frank Codd; A Relational Model of Data for Large Shared Data Banks; in: Communications of the ACM; Band: 13; Nummer: 6; Seite(n): 377-387; Verlag: Association for Computing Machinery; Adresse: New York; Web-Link; 1970; Quellengüte: 5 (Artikel)
  3. Bayer, McCreight (1972): Rudolf Bayer und Edward M. McCreight; Organization and Maintenance of Large Ordered Indexes; in: Acta Informatica; Band: 1; Nummer: 3; Seite(n): 173-189; Verlag: Springer-Verlag; Web-Link; 1972; Quellengüte: 5 (Artikel)
  4. Date, Darwen (1993): Christopher J. Date und Hugh Darwen; A Guide to the SQL Standard – A user's guid to the standard relational language SQL; Auflage: 3; Verlag: Addison-Wesley; Adresse: Reading, Massachusetts, USA; 1993; Quellengüte: 5 (Buch)
  5. Gulutzan, Pelzer (1999): Peter Gulutzan und Trudy Pelzer; SQL-99 complete, Really – An Example-Based Reference Manual of the New Standard; Verlag: R&D Books; ISBN: 0-87930-568-1; 1999; Quellengüte: 5 (Buch)
  1. Ullman (1988): Jeffrey D. Ullman; Principles of Database and Knowledge-Base Systems – Volume I: Classical Database Systems; Verlag: Computer Science Press; Adresse: New York, Oxford; ISBN: 0-7167-8158-1; Web-Link; 1988; Quellengüte: 5 (Buch)
  2. Ullman (1989): Jeffrey D. Ullman; Principles of Database and Knowledge-Base Systems – Volume II: The New Technologies; Verlag: Computer Science Press; Adresse: New York, Oxford; ISBN: 0-7167-8069-O, 0-7167-8182-X; Web-Link; 1989; Quellengüte: 5 (Buch)
  3. Garcia-Molina, Ullman, Widom (2002): Hector Garcia-Molina, Jeffrey D. Ullman und Jennifer Widom; Database Systems: The Complete Book; Verlag: Prentice Hall; Adresse: New Jersey, Upper Saddle River; ISBN: 0-13-031995-3; Web-Link; 2002; Quellengüte: 5 (Buch)
  4. Elmasri, Navathe (2011): Ramez Elmasri und Shamkant B. Navathe; Fundamentals of Database Systems; Auflage: 3; Verlag: Pearson Studium; ISBN: 978-0-136-08620-8; 2011; Quellengüte: 5 (Buch)

TO BE DONE

$⨝$, $ ⟕ $, $ ⟖ $, $ ⟗ $, $\triangle$