Relationale Algebra

Von relationalen Datenbanksystemen wird erwartet, dass sie mit einer Abfragesprache ausgestattet sind, die den Benutzern beim Abfragen der Datenbankinstanzen helfen kann. Es gibt zwei Arten von Abfragesprachen - relationale Algebra und relationale Berechnung.

Relationale Algebra

Relationale Algebra ist eine prozedurale Abfragesprache, die Instanzen von Beziehungen als Eingabe verwendet und Instanzen von Beziehungen als Ausgabe liefert. Es verwendet Operatoren, um Abfragen durchzuführen. Ein Operator kann entweder seinunary oder binary. Sie akzeptieren Beziehungen als ihre Eingabe und ergeben Beziehungen als ihre Ausgabe. Die relationale Algebra wird rekursiv für eine Beziehung durchgeführt, und Zwischenergebnisse werden ebenfalls als Beziehungen betrachtet.

Die grundlegenden Operationen der relationalen Algebra sind wie folgt:

  • Select
  • Project
  • Union
  • Anders einstellen
  • kartesisches Produkt
  • Rename

Wir werden alle diese Operationen in den folgenden Abschnitten diskutieren.

Wählen Sie Operation (σ)

Es wählt Tupel aus einer Beziehung aus, die das angegebene Prädikat erfüllen.

Notation- σ p (r)

Wo σ steht für Auswahlprädikat und rsteht für Beziehung. p ist eine Präpositionallogikformel, die Konnektoren wie verwenden kannand, or, und not. Diese Begriffe können relationale Operatoren wie - =, ≠, ≥, <,>, ≤ verwenden.

For example - -

σsubject = "database"(Books)

Output - Wählt Tupel aus Büchern aus, deren Thema "Datenbank" ist.

σsubject = "database" and price = "450"(Books)

Output - Wählt Tupel aus Büchern aus, bei denen das Thema "Datenbank" und "Preis" 450 ist.

σsubject = "database" and price = "450" or year > "2010"(Books)

Output - Wählt Tupel aus Büchern aus, deren Thema "Datenbank" und "Preis" 450 ist, oder aus Büchern, die nach 2010 veröffentlicht wurden.

Projektbetrieb (∏)

Es werden Spalten projiziert, die ein bestimmtes Prädikat erfüllen.

Notation - ∏ A 1 , A 2 , A n (r)

Wobei A 1 , A 2 , A n Attributnamen der Beziehung sindr.

Doppelte Zeilen werden automatisch entfernt, da die Beziehung eine Menge ist.

For example - -

subject, author (Books)

Wählt und projiziert Spalten, die als Betreff und Autor benannt sind, aus der Beziehung Bücher.

Gewerkschaftsbetrieb (∪)

Es führt eine binäre Vereinigung zwischen zwei gegebenen Beziehungen durch und ist definiert als -

r ∪ s = { t | t ∈ r or t ∈ s}

Notation - r U s

Wo r und s sind entweder Datenbankbeziehungen oder Beziehungsergebnismenge (temporäre Beziehung).

Damit eine Gewerkschaftsoperation gültig ist, müssen die folgenden Bedingungen erfüllt sein:

  • r, und s muss die gleiche Anzahl von Attributen haben.
  • Attributdomänen müssen kompatibel sein.
  • Doppelte Tupel werden automatisch entfernt.
author (Books) ∪ ∏ author (Articles)

Output - Projiziert die Namen der Autoren, die entweder ein Buch oder einen Artikel oder beides geschrieben haben.

Differenz einstellen (-)

Das Ergebnis der eingestellten Differenzoperation sind Tupel, die in einer Beziehung vorhanden sind, aber nicht in der zweiten Beziehung.

Notation - - r - - s

Findet alle Tupel, die in vorhanden sind r aber nicht in s.

author (Books) − ∏ author (Articles)

Output - Gibt den Namen der Autoren an, die Bücher, aber keine Artikel geschrieben haben.

Kartesisches Produkt (Χ)

Kombiniert Informationen aus zwei verschiedenen Beziehungen zu einer.

Notation - r Χ s

Wo r und s sind Beziehungen und ihre Ausgabe wird definiert als -

r Χ s = {qt | q ∈ r und t ∈ s}

σauthor = 'tutorialspoint'(Books Χ Articles)

Output - Ergibt eine Beziehung, die alle Bücher und Artikel zeigt, die von tutorialspoint geschrieben wurden.

Operation umbenennen (ρ)

Die Ergebnisse der relationalen Algebra sind ebenfalls Beziehungen, jedoch ohne Namen. Mit der Umbenennungsoperation können wir die Ausgabebeziehung umbenennen. Die Operation 'Umbenennen' wird mit einem kleinen griechischen Buchstaben bezeichnetrho ρ .

Notation- ρ x (E)

Wo das Ergebnis des Ausdrucks E wird mit dem Namen von gespeichert x.

Zusätzliche Operationen sind -

  • Schnittpunkt einstellen
  • Assignment
  • Natürliche Verbindung

Beziehungsrechnung

Im Gegensatz zur relationalen Algebra ist der relationale Kalkül eine nicht prozedurale Abfragesprache, dh er sagt, was zu tun ist, erklärt jedoch nie, wie es zu tun ist.

Beziehungsrechnung existiert in zwei Formen -

Tupel-Beziehungsrechnung (TRC)

Das Filtern von Variablenbereichen über Tupel

Notation- {T | Bedingung}

Gibt alle Tupel T zurück, die eine Bedingung erfüllen.

For example - -

{ T.name |  Author(T) AND T.article = 'database' }

Output - Gibt Tupel mit 'Name' vom Autor zurück, der einen Artikel über 'Datenbank' geschrieben hat.

TRC kann quantifiziert werden. Wir können existentielle (∃) und universelle Quantifizierer (∀) verwenden.

For example - -

{ R| ∃T   ∈ Authors(T.article='database' AND R.name=T.name)}

Output - Die obige Abfrage liefert das gleiche Ergebnis wie die vorherige.

Domain Relational Calculus (DRC)

In DRC verwendet die Filtervariable die Domäne der Attribute anstelle ganzer Tupelwerte (wie in TRC, wie oben erwähnt).

Notation - -

{a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n )}

Wobei a1, a2 Attribute sind und P steht für Formeln, die durch innere Attribute aufgebaut sind.

For example - -

{< article, page, subject > | 
      
        ∈ TutorialsPoint ∧ subject = 'database'} 
      

Output - Ergibt Artikel, Seite und Betreff aus der Beziehung TutorialsPoint, wobei Betreff eine Datenbank ist.

Genau wie TRC kann DRC auch mit existenziellen und universellen Quantifizierern geschrieben werden. In der Demokratischen Republik Kongo sind auch Vergleichsoperatoren beteiligt.

Die Ausdruckskraft von Tupel-Beziehungsrechnung und Domänen-Beziehungsrechnung entspricht der relationalen Algebra.