• Keine Ergebnisse gefunden

Prof. Dr. T. Kudraß 1 Relationenkalkül

N/A
N/A
Protected

Academic year: 2022

Aktie "Prof. Dr. T. Kudraß 1 Relationenkalkül"

Copied!
9
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof. Dr. T. Kudraß 1

Relationenkalkül

(2)

Prof. Dr. T. Kudraß 2

Relationenkalkül

• Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül (DRK).

• Kalkül hat Variablen, Konstanten, Vergleichsoperatoren, logische Verknüpfungen und Quantoren.

TRK: Variablen bezeichnen Tupel (d.h., werden daran gebunden).

DRK: Variables bezeichnen Domänenelemente (= Wertebereiche von Attributen).

TRK and DRK sind einfache Teilmengen von First-Order-Logik.

• Ausdrücke im Kalkül werden Formeln genannt. Ein Antwort- Tupel ist im wesentlichen eine Zuweisung von Konstanten zu Variablen, so daß die Formel true lautet.

(3)

Prof. Dr. T. Kudraß 3

Tupelrelationenkalkül

Query hat die Form: {T | p(T) } Mit T = Tupelvariable

p(T) = Formel, die T beschreibt

Resultat umfaßt die Menge der Tupel t, für die die Formel p(T) = TRUE ist

Formel ist rekursiv definiert, beginnt mit atomaren Formeln

(Auswahl von Tupeln aus Relationen oder Wertvergleiche) und Konstruktion größerer und besserer Formeln durch Verwendung von logischen Verknüfungen

(4)

Prof. Dr. T. Kudraß 4

TRK-Formeln

Atomare Formel:

R Rname ,

oder R.a op S.b, or R.a op constant (R, S Tupelvariablen)

op ist aus <, >, =, , , 

Formel:

Eine atomare Formel, oder

p, p  q, p  q , wobei p und q Formeln sind, oder

R (p(R)) , wobei Variable X frei in p(X), oder

R (p(R)) , wobei Variable X frei in p(X)

• Die Verwendung von Quantoren X und X geschieht, um X zu binden.

Eine Variable, die ungebunden ist, ist frei.

• In einer Query { T | p(T) } ist T die einzige freie Variable in der Formel p.

(5)

Prof. Dr. T. Kudraß 5

TRK: Beispiele

Finde die Namen und Alter aller Segler mit einem Rating größer 7.

sname S

sname P

rating S

Sailors S

P |   ( .  7  .  .





P . age s . age

Finde die Namen der Segler, die ein rotes Boot reserviert haben.

Finde die Namen der Segler, die mindestens zwei Boote reserviert haben.





) .

. .

2 .

1 .

2 .

1

. 1 .

( 2

1

|

sname S

sname P

bid R

bid R

sid R

sid R

sid R

sid S

Reserves R

Reserves R

Sailors S

P





) .

. ' '

. .

. .

. (

|

sname S

sname P

red color

B bid

R bid

B sid

S sid R

Boats B

Reserves R

Sailors S

P

(6)

Prof. Dr. T. Kudraß 6

TRK: Beispiele (2)

Finde die Namen der Segler, die alle Boote reserviert haben.

Finde die Segler, die alle roten Boote reserviert haben.





)) .

. .

. .

. (

(

|

sname S

sname P

bid B

bid R

sid R sid

S

Reserves R

Boats B

Sailors S

P





) )) .

. .

. ( (

' '

. (

|

bid B

bid R

sid R

sid S

Reserves R

red color

B

Boats B

Sailors S

P

Andere Schreibweise:

p q ist logisch äquivalent to pq





) )) .

. .

. ( (

' '

. (

|

bid B

bid R

sid R

sid S

Reserves R

red color

B

Boats B

Sailors S

P

(7)

Prof. Dr. T. Kudraß 7

Domänenrelationenkalkül

Query hat die Form: {x1,x2, ..., xn | p(x1,x2, ..., xn) } Mit xi = Domänenvariable oder Konstante

p(x1,x2, ..., xn) = Formel im DRK, dessen freie Variable xi sind mit 1 i n

Resultat umfaßt die Menge der Tupel x1,x2, ..., xn, für die die Formel = TRUE ist

Formel ist rekursiv definiert, beginnt mit atomaren Formeln

(Auswahl von Tupeln aus Relationen oder Wertvergleiche) und Konstruktion größerer und besserer Formeln durch Verwendung von logischen Verknüpfungen

• Konstruktion der Formeln analog zum TRK, wobei gilt:

Tupelvariable R = x1,x2, ..., xn

(8)

Prof. Dr. T. Kudraß 8

DRK: Beispiele

Finde die Namen und Alter aller Segler mit einem Rating größer 7.

Finde die Namen der Segler mit einem Rating > 7, die das Boot

#103 reserviert haben.

• Die Bedingung I,N,T,A Sailors sichert, daß die Domain- Variablen I, N, T und A an die Felder des Tupels der Relation Sailors gebunden werden.

• Der Term I,N,T,A links vom ` | ’ (lies “so daß“) besagt, daß jedes Tupel I,N,T,A, das die Bedingung T>7erfüllt, zur Ergebnis-

relation gehört.

} 103 Re

, ,

,

,





      

Ir Br D Ir Br D serves Ir I Br

I , N , T , A  |  I , N , T , A   SailorsT  7

 , , , | , , , 7

{ I N T A I N T A Sailors T

(9)

Prof. Dr. T. Kudraß 9

Unsichere Queries, Ausdrucksmächtigkeit

Es ist möglich, syntaktisch korrekte Anfragen im Kalkül zu formulieren, die eine unendliche Anzahl von Ergebnissen produzieren! Solche Anfragen heißen unsicher.

z.B.

Es ist bekannt, daß jede Query, die in der Relationenalgebra ausgedrückt werden kann, als eine sichere Query im TRK/DRK ausgedrückt werden kann; die Umkehrung gilt ebenso.

Relationale Vollständigkeit: Eine Query Language (z.B. SQL) kann jede Anfrage ausdrücken, die sich in Relationenalgebra /

Relationenkalkül ausdrücken läßt.

S | 

SSailors

• Relationenkalkül ist nicht-prozedural, Nutzer formulieren Anfragen, indem sie das Ergebnis beschreiben (WHAT - not HOW), d.h. deklarativ

• Algebra und sicheres Kalkül haben dieselbe Ausdruckskraft (führt zum Begriff relationale Vollständigkeit).

Referenzen

ÄHNLICHE DOKUMENTE

WHERE salary &gt; (SELECT AVG(salary) FROM Employee) without aggregates in the inner query. SELECT ssnum

1 Query Tuning Query Processing Problematic Queries Minimizing DISTINCTs Rewriting of Nested Queries.. Augsten (Univ. Salzburg) DBT – Query Tuning Sommersemester 2019 2

1 Index Tuning Query Types Index Types Data Structures Composite Indexes Indexes and Joins Index Tuning Examples.. Augsten (Univ. Salzburg) DBT – Index Tuning Sommersemester 2019 2

– Das DBMS “versteht“ nicht die Semantik der Daten  Benutzer ist für den korrekten Ablauf einer Transaktionen verantwortlich. – DBMS garantiert, daß die

• Relationale Algebra ist eher prozedural; nützlich für die interne Darstellung von Ausführungs-Plänen für Anfragen. • Es gibt unterschiedliche Möglichkeiten,

• Kosten: Selektion der Tupel in Reserves (10 I/Os); für jedes dieser Tupel Suche nach matchenden Tupeln in Sailors (1000*1.2) 1.2 = Retrieval- Kosten über Hash-Index, insgesamt

• Wir könnten entscheiden, Contracts zu modifizieren, wenn die Anfrage hinreichend wichtig und die Performance anderweitig nicht gesteigert werden kann (d.h. durch Anlegen

– Beim Zurücksetzen einer Transaktion (UNDO) müssen Aktionen rückgängig gemacht werden; geschieht durch das Schreiben eines CLR.. Andere Datenstrukturen