• Nem Talált Eredményt

Adatbázisok elmélete 7. el ˝oadás

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Adatbázisok elmélete 7. el ˝oadás"

Copied!
94
0
0

Teljes szövegt

(1)

Katona Gyula Y.

Budapesti M ˝uszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz.

I. B. 137/b

kiskat@cs.bme.hu

http://www.cs.bme.hu/˜kiskat

2004

(2)
(3)

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet adni relációkat

(4)

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve),

(5)

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

(6)

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

(7)

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

(8)

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg

(9)

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg t(k): k oszlopos reláció sorainak felel meg

(10)

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg t(k): k oszlopos reláció sorainak felel meg

t(k)[i]: A t sorváltozó i-edik komponense.

(11)

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg t(k): k oszlopos reláció sorainak felel meg

t(k)[i]: A t sorváltozó i-edik komponense.

Pl. egy sor =⇒ (R. M., Budapest, hamburger, 180), akkor t(4)[3] =’hamburger’ és t(4)[ÁR] = 180

(12)
(13)

Sorkalkulus

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

(14)

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

(15)

Sorkalkulus

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

(16)

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

? t(k)[i] θ c

(17)

Sorkalkulus

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

? t(k)[i] θ c

? c θ t(k)[i]

(18)

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

? t(k)[i] θ c

? c θ t(k)[i]

ahol θ∈ {<, >,=,,,≤,≥}, t, s sorváltozók, c konstans érték.

Világos, mikor igaz.

(19)

építkezési szabályok :

• φ, ψ formulák, akkor φ ∨ ψ, φ ∧ ψ,¬φ is formulák.

Világos, hogy mikor igaz.

(20)
(21)

építkezési szabályok :

• φ, ψ formulák, akkor φ ∨ ψ, φ ∧ ψ,¬φ is formulák.

Világos, hogy mikor igaz.

• φ formula, s sorváltozó, akkor ∀sφ,∃sφ is formula.

Világos, hogy mikor igaz.

Kötött változó: ha vonatkozik rá kvantor,

(22)

Szabad változó: ha nem,

(23)

építkezési szabályok :

• φ, ψ formulák, akkor φ ∨ ψ, φ ∧ ψ,¬φ is formulák.

Világos, hogy mikor igaz.

• φ formula, s sorváltozó, akkor ∀sφ,∃sφ is formula.

Világos, hogy mikor igaz.

Kötött változó: ha vonatkozik rá kvantor, Szabad változó: ha nem,

Sorkalkulus által kifejezett reláció (pontosan) :

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon k hosszú t vektorokból áll, amikre φ(t) igaz, ahol φ egy megengedett formula és φ-ben t az egyetlen szabad változó.

(24)
(25)

Példák sorkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

(26)

Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

(27)

Példák sorkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

Az 2004. jan. 15-i bevétel és a befizetett összeg:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

(28)

Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

Az 2004. jan. 15-i bevétel és a befizetett összeg:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

nu(2) | BEFIZ(u) ∧ ∃v(BEVÉTEL(v)v[1] = 2004-01-15 ∧ v[2] = u[1])o

(29)

Példák sorkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

Az 2004. jan. 15-i bevétel és a befizetett összeg:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

nu(2) | BEFIZ(u) ∧ ∃v(BEVÉTEL(v)v[1] = 2004-01-15 ∧ v[2] = u[1])o

Hány darabot adtak el 2004. jan. 15-én az A123 kódú áruból, mi a neve és az ára?

πDB, ÁRUNÉV, EGYSÉGÁR

σÁRUKÓD=’A123’DÁTUM=’2004-01-15’

MENNYISÉGZÁRU

(30)

Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

Az 2004. jan. 15-i bevétel és a befizetett összeg:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

nu(2) | BEFIZ(u) ∧ ∃v(BEVÉTEL(v)v[1] = 2004-01-15 ∧ v[2] = u[1])o

Hány darabot adtak el 2004. jan. 15-én az A123 kódú áruból, mi a neve és az ára?

πDB, ÁRUNÉV, EGYSÉGÁR

σÁRUKÓD=’A123’DÁTUM=’2004-01-15’

MENNYISÉGZÁRU

ns(3) | ∃uv

MENNYISÉG(u) ∧ ÁRU(v) ∧ u[1] = 2004-01-15 ∧ u[2] =0 A1230

v[1] =0 A1230s[1] = u[3]s[2] = v[2]s[3] = v[3]o

(31)

Példák sorkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Mely nev ˝u áruk azok, amelyekkel van azonos egységárú másik áru?

(32)

MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Mely nev ˝u áruk azok, amelyekkel van azonos egységárú másik áru?

ns(1) | ∃uv

ÁRU(v) ∧ ÁRU(u) ∧ s[1] = v[2]v[3] = u[3] ∧ ¬(v[1] = u[1])o

(33)

Sorkalkulus ereje

Mivel lehet több mindent kifejezni?

Relációs algebrával, vagy sorkalkulussal?

Tétel. A sorkalkulus relációsan teljes.

Bizonyítás: Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is. Ehhez azt elég megmutatni, hogy

(34)

Tétel. A sorkalkulus relációsan teljes.

Bizonyítás: Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is. Ehhez azt elég megmutatni, hogy

1. az alaprelációk megadhatók

(35)

Sorkalkulus ereje

Mivel lehet több mindent kifejezni?

Relációs algebrával, vagy sorkalkulussal?

Tétel. A sorkalkulus relációsan teljes.

Bizonyítás: Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is. Ehhez azt elég megmutatni, hogy

1. az alaprelációk megadhatók

2. a relációs algebrai alapm ˝uveletek (unió, különbség, szorzat, vetítés, szelekció) alaprelációkra alkalmazva megvalósíthatók

(36)

Tétel. A sorkalkulus relációsan teljes.

Bizonyítás: Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is. Ehhez azt elég megmutatni, hogy

1. az alaprelációk megadhatók

2. a relációs algebrai alapm ˝uveletek (unió, különbség, szorzat, vetítés, szelekció) alaprelációkra alkalmazva megvalósíthatók

3. ha R és S nem alapreláció és ezekre alkalmazunk valami relációs alapm ˝uveletet, akkor az eredmény kifejezhet ˝o sorkalkulussal

(37)

Bizonyítás

alapreláció: Tegyük fel, hogy R k oszlopos alapreláció R = n

t(k) | R(t)o

(38)

RS = n

t(k) | R(t)S(t)o

(39)

Bizonyítás

alapreláció: Tegyük fel, hogy R k oszlopos alapreláció R = n

t(k) | R(t)o

Unió: Tfh. S is k oszlopos RS = n

t(k) | R(t)S(t)o

különbség:

R \ S = n

t(k) | R(t) ∧ ¬S(t)o

(40)

RS = n

t(k) | R(t)S(t)o

különbség:

R \ S = n

t(k) | R(t) ∧ ¬S(t)o

metszet:

RS = n

t(k) | R(t)S(t)o

(41)

Bizonyítás

alapreláció: Tegyük fel, hogy R k oszlopos alapreláció R = n

t(k) | R(t)o

Unió: Tfh. S is k oszlopos RS = n

t(k) | R(t)S(t)o

különbség:

R \ S = n

t(k) | R(t) ∧ ¬S(t)o

metszet:

RS = n

t(k) | R(t)S(t)o

szorzat: R legyen k oszlopos, S pedig l oszlopos

R × S = n

t(k+l) | ∃r(k)s(l) (R(r)S(s)r[1] = t[1] ∧ . . .

r[k] = t[k]s[1] = t[k + 1] ∧ . . . ∧ s[l] = t[k + l])}

(42)

RS = n

t(k) | R(t)S(t)o

különbség:

R \ S = n

t(k) | R(t) ∧ ¬S(t)o

metszet:

RS = n

t(k) | R(t)S(t)o

szorzat: R legyen k oszlopos, S pedig l oszlopos

R × S = n

t(k+l) | ∃r(k)s(l) (R(r)S(s)r[1] = t[1] ∧ . . .

r[k] = t[k]s[1] = t[k + 1] ∧ . . . ∧ s[l] = t[k + l])}

vetület: Legyen R( A1, . . . , Ad, Ad+1, . . . , Ak) reláció, vetítsük az els ˝o d-re

πA1,...,Ad(R) = n

t(d) | ∃r(k) (R(r)r[1] = t[1] ∧ . . . ∧ r[d] = t[d])o

(43)

kiválasztás:

σF(R) = n

t(k) | R(t)F0o

, ahol F0 átfordítása sorkalkulusra =⇒ az i-edik attribútum helyett t(n)[i]-t írunk.

Pl. (evidenciával történ ˝o meggy ˝ozés) σÁR>’150’TERMÉK=’hamburger’ (TERMEL) =

nt(4) | TERMEL(t) ∧ t[4] > ’150’ ∧ t[3] = ’hamburger’o

(44)

• Nem lényeges, hogy R,S alaprelációk.

Ha R = n

t(k) | φ(t)o

és S = n

t(k) | ψ(t)o

, azaz R és S már valahogy ki van fejezve sorkalkulussal

=⇒ RS = n

t(k) | φ(t) ∨ ψ(t)o

többinél ugyanígy (R(t) és S(t) helyett φ(t)-t és ψ(t)-t írunk).

(45)

Megfordítás

Ki lehet-e fejezni mindet relációs algebrával, amit sorkalkulussal lehet?

(46)

Nem!

(47)

Megfordítás

Ki lehet-e fejezni mindet relációs algebrával, amit sorkalkulussal lehet?

Nem!

Pl. Ha R egy k változós alapreláció =⇒ n

t(k) | ¬R(t)o

nem fejezhet ˝o ki algebrával.

(48)

Nem!

Pl. Ha R egy k változós alapreláció =⇒ n

t(k) | ¬R(t)o

nem fejezhet ˝o ki algebrával.

Bizonyítás: Relációs algebrában minden reláció véges, ha az alaprelációk végesek. Ez viszont lehet végtelen, ha az egyik értékkészlet végtelen.

(49)

Megfordítás

Ki lehet-e fejezni mindet relációs algebrával, amit sorkalkulussal lehet?

Nem!

Pl. Ha R egy k változós alapreláció =⇒ n

t(k) | ¬R(t)o

nem fejezhet ˝o ki algebrával.

Bizonyítás: Relációs algebrában minden reláció véges, ha az alaprelációk végesek. Ez viszont lehet végtelen, ha az egyik értékkészlet végtelen.

Alkalmazásokban, bár elvileg ∀ véges, gyakorlatban azért nagy-nagy véges sem jó. Így ilyen baj tényleg el ˝ofordulhat.

(50)

Nem!

Pl. Ha R egy k változós alapreláció =⇒ n

t(k) | ¬R(t)o

nem fejezhet ˝o ki algebrával.

Bizonyítás: Relációs algebrában minden reláció véges, ha az alaprelációk végesek. Ez viszont lehet végtelen, ha az egyik értékkészlet végtelen.

Alkalmazásokban, bár elvileg ∀ véges, gyakorlatban azért nagy-nagy véges sem jó. Így ilyen baj tényleg el ˝ofordulhat.

S ˝ot részeredményekben sem lehet ilyen =⇒ túl sok munka.

(51)

Megoldás:

(52)
(53)

Megoldás: Nem használunk ilyesmit =⇒ csak biztonságos formulákat (safe expression):

kiértékelhet ˝o úgy, hogy ne kelljen túl nagy halmazt végignézni, csak annyi infó kell hozzá, amit valaki már egyszer korábban beírt

(54)
(55)

Megoldás: Nem használunk ilyesmit =⇒ csak biztonságos formulákat (safe expression):

kiértékelhet ˝o úgy, hogy ne kelljen túl nagy halmazt végignézni, csak annyi infó kell hozzá, amit valaki már egyszer korábban beírt =⇒

lesz ˝ukítjük a szóba jöv ˝o esetek halmazát

Definíció. Dom(φ)= φ-beli alaprelációkattribútumának,értéke ∪ {φ-beli konstansok}

(56)

Pl. SZEMÉLY(NÉV, CÍM) alapreláció φ(t) = SZEMÉLY(t) ∧ t[2] = ’Tokyo’

=⇒ Dom(φ) = πNÉV

SZEMÉLY

∪ πCÍM

SZEMÉLY

∪ {’Tokyo’}

(57)

Megoldás: Nem használunk ilyesmit =⇒ csak biztonságos formulákat (safe expression):

kiértékelhet ˝o úgy, hogy ne kelljen túl nagy halmazt végignézni, csak annyi infó kell hozzá, amit valaki már egyszer korábban beírt =⇒

lesz ˝ukítjük a szóba jöv ˝o esetek halmazát

Definíció. Dom(φ)= φ-beli alaprelációkattribútumának,értéke ∪ {φ-beli konstansok}

Pl. SZEMÉLY(NÉV, CÍM) alapreláció φ(t) = SZEMÉLY(t) ∧ t[2] = ’Tokyo’

=⇒ Dom(φ) = πNÉV

SZEMÉLY

∪ πCÍM

SZEMÉLY

∪ {’Tokyo’} Definíció. Egy R = n

t(k) | φ(t)o

reláció biztonságos, ha i) Minden φ(t)-t kielégít ˝o t minden komponenseDom(φ)

(Ha t kielégíti φ(t)-t, akkor minden komponense Dom(φ)-beli)

(Ez korlátozza keresést! A végeredménybe csak Dom(φ)-b ˝ol lehet kerülni.)

(58)

Pl. SZEMÉLY(NÉV, CÍM) alapreláció φ(t) = SZEMÉLY(t) ∧ t[2] = ’Tokyo’

=⇒ Dom(φ) = πNÉV

SZEMÉLY

∪ πCÍM

SZEMÉLY

∪ {’Tokyo’} Definíció. Egy R = n

t(k) | φ(t)o

reláció biztonságos, ha i) Minden φ(t)-t kielégít ˝o t minden komponenseDom(φ)

(Ha t kielégíti φ(t)-t, akkor minden komponense Dom(φ)-beli)

(Ez korlátozza keresést! A végeredménybe csak Dom(φ)-b ˝ol lehet kerülni.)

ii) φ mindenuψ(u) alakú részformulájára igaz, hogy ha u kielégíti ψ-t a ψ-beli szabad változók valamely értékeire, akkor u minden komponenseDom(ψ)

(részformula is biztonságos:uψ(u) igazsága eldönthet ˝o Dom(ψ) végignézésével)

(59)

Megoldás: Nem használunk ilyesmit =⇒ csak biztonságos formulákat (safe expression):

kiértékelhet ˝o úgy, hogy ne kelljen túl nagy halmazt végignézni, csak annyi infó kell hozzá, amit valaki már egyszer korábban beírt =⇒

lesz ˝ukítjük a szóba jöv ˝o esetek halmazát

Definíció. Dom(φ)= φ-beli alaprelációkattribútumának,értéke ∪ {φ-beli konstansok}

Pl. SZEMÉLY(NÉV, CÍM) alapreláció φ(t) = SZEMÉLY(t) ∧ t[2] = ’Tokyo’

=⇒ Dom(φ) = πNÉV

SZEMÉLY

∪ πCÍM

SZEMÉLY

∪ {’Tokyo’} Definíció. Egy R = n

t(k) | φ(t)o

reláció biztonságos, ha i) Minden φ(t)-t kielégít ˝o t minden komponenseDom(φ)

(Ha t kielégíti φ(t)-t, akkor minden komponense Dom(φ)-beli)

(Ez korlátozza keresést! A végeredménybe csak Dom(φ)-b ˝ol lehet kerülni.)

ii) φ mindenuψ(u) alakú részformulájára igaz, hogy ha u kielégíti ψ-t a ψ-beli szabad változók valamely értékeire, akkor u minden komponenseDom(ψ)

(részformula is biztonságos:uψ(u) igazsága eldönthet ˝o Dom(ψ) végignézésével) Megj.: Auψ(u) alakúakra nem kell, mert ez ugyanaz, mint ¬∃u(¬ψ(u)) és így elég (ii)-t

ellen ˝orizni au(¬ψ(u)) részformulára.

(60)

Pl. SZEMÉLY(NÉV, CÍM) alapreláció φ(t) = SZEMÉLY(t) ∧ t[2] = ’Tokyo’

=⇒ Dom(φ) = πNÉV

SZEMÉLY

∪ πCÍM

SZEMÉLY

∪ {’Tokyo’} Definíció. Egy R = n

t(k) | φ(t)o

reláció biztonságos, ha i) Minden φ(t)-t kielégít ˝o t minden komponenseDom(φ)

(Ha t kielégíti φ(t)-t, akkor minden komponense Dom(φ)-beli)

(Ez korlátozza keresést! A végeredménybe csak Dom(φ)-b ˝ol lehet kerülni.)

ii) φ mindenuψ(u) alakú részformulájára igaz, hogy ha u kielégíti ψ-t a ψ-beli szabad változók valamely értékeire, akkor u minden komponenseDom(ψ)

(részformula is biztonságos:uψ(u) igazsága eldönthet ˝o Dom(ψ) végignézésével) Megj.: Auψ(u) alakúakra nem kell, mert ez ugyanaz, mint ¬∃u(¬ψ(u)) és így elég (ii)-t

ellen ˝orizni au(¬ψ(u)) részformulára.

Nem az a kérdés, hogy pontosan mik a biztonságos formulák, hanem:

(61)

Megoldás: Nem használunk ilyesmit =⇒ csak biztonságos formulákat (safe expression):

kiértékelhet ˝o úgy, hogy ne kelljen túl nagy halmazt végignézni, csak annyi infó kell hozzá, amit valaki már egyszer korábban beírt =⇒

lesz ˝ukítjük a szóba jöv ˝o esetek halmazát

Definíció. Dom(φ)= φ-beli alaprelációkattribútumának,értéke ∪ {φ-beli konstansok}

Pl. SZEMÉLY(NÉV, CÍM) alapreláció φ(t) = SZEMÉLY(t) ∧ t[2] = ’Tokyo’

=⇒ Dom(φ) = πNÉV

SZEMÉLY

∪ πCÍM

SZEMÉLY

∪ {’Tokyo’} Definíció. Egy R = n

t(k) | φ(t)o

reláció biztonságos, ha i) Minden φ(t)-t kielégít ˝o t minden komponenseDom(φ)

(Ha t kielégíti φ(t)-t, akkor minden komponense Dom(φ)-beli)

(Ez korlátozza keresést! A végeredménybe csak Dom(φ)-b ˝ol lehet kerülni.)

ii) φ mindenuψ(u) alakú részformulájára igaz, hogy ha u kielégíti ψ-t a ψ-beli szabad változók valamely értékeire, akkor u minden komponenseDom(ψ)

(részformula is biztonságos:uψ(u) igazsága eldönthet ˝o Dom(ψ) végignézésével) Megj.: Auψ(u) alakúakra nem kell, mert ez ugyanaz, mint ¬∃u(¬ψ(u)) és így elég (ii)-t

ellen ˝orizni au(¬ψ(u)) részformulára.

Nem az a kérdés, hogy pontosan mik a biztonságos formulák, hanem:

Hogyan tudunk biztonságos formulákat, kifejezéseket írni?

Csak ilyeneket szeretnénk használni.

(62)
(63)

Biztonságos formulák

Tipikus technikák a biztonságosság elérésére:

• {t | R(t) ∧ φ(t)} biztonságos, ha φ biztonságos (mert sz ˝ukítés R-re, így (i) teljesül)

(Ha nem lehet egy relációra korlátozni pl:)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

(64)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

(65)

Biztonságos formulák

Tipikus technikák a biztonságosság elérésére:

• {t | R(t) ∧ φ(t)} biztonságos, ha φ biztonságos (mert sz ˝ukítés R-re, így (i) teljesül)

(Ha nem lehet egy relációra korlátozni pl:)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

(66)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .)

(67)

Biztonságos formulák

Tipikus technikák a biztonságosság elérésére:

• {t | R(t) ∧ φ(t)} biztonságos, ha φ biztonságos (mert sz ˝ukítés R-re, így (i) teljesül)

(Ha nem lehet egy relációra korlátozni pl:)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

(68)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával.

(69)

Biztonságos formulák

Tipikus technikák a biztonságosság elérésére:

• {t | R(t) ∧ φ(t)} biztonságos, ha φ biztonságos (mert sz ˝ukítés R-re, így (i) teljesül)

(Ha nem lehet egy relációra korlátozni pl:)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával. Biz. φ felépítése szerinti indukcióval.

(70)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával. Biz. φ felépítése szerinti indukcióval.

Ha R biztonságos, akkor R = RDom(φ)k

(71)

Biztonságos formulák

Tipikus technikák a biztonságosság elérésére:

• {t | R(t) ∧ φ(t)} biztonságos, ha φ biztonságos (mert sz ˝ukítés R-re, így (i) teljesül)

(Ha nem lehet egy relációra korlátozni pl:)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával. Biz. φ felépítése szerinti indukcióval.

Ha R biztonságos, akkor R = RDom(φ)k

Tétel. A relációs algebra és a biztonságos sorkalkulus ekvivalensek.

(72)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával. Biz. φ felépítése szerinti indukcióval.

Ha R biztonságos, akkor R = RDom(φ)k

Tétel. A relációs algebra és a biztonságos sorkalkulus ekvivalensek.

Bizonyítás: Volt: relációs algebrai kifejezésb ˝ol lehet sorkalkulust csinálni, illetve biztonságos sorkalkulusból relációs algebrát.

(73)

Biztonságos formulák

Tipikus technikák a biztonságosság elérésére:

• {t | R(t) ∧ φ(t)} biztonságos, ha φ biztonságos (mert sz ˝ukítés R-re, így (i) teljesül)

(Ha nem lehet egy relációra korlátozni pl:)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával. Biz. φ felépítése szerinti indukcióval.

Ha R biztonságos, akkor R = RDom(φ)k

Tétel. A relációs algebra és a biztonságos sorkalkulus ekvivalensek.

Bizonyítás: Volt: relációs algebrai kifejezésb ˝ol lehet sorkalkulust csinálni, illetve biztonságos sorkalkulusból relációs algebrát.

Kell még: a relációs alg. átírása sorkalkulusra biztonságos.

(74)

{t | (R(t)S(t)) ∧ φ(t)} biztonságos, ha φ biztonságos

• n

t(2) | ∃u1u2 (R(u1)R(u2)t[1] = u2[1]t[2] = u1[1] ∧ φ(t,u1, u2))o

• ∃u(R(u) ∧ . . .) ha itt a hátrább lev ˝o részek biztonságosak (az R-re való sz ˝ukítés miatt (ii) teljesül)

• ∀u(¬R(u) ∨. . .) ha itt a hátrább lev ˝o részek biztonságosak (mert ez átírva ¬∃u(R(u) ∧ . . .) Tétel. Biztonságos kifejezés ˝u sorkalkulus reláció kifejezhet ˝o relációs algebrával is.

Bizonyítás: Ötlet: Ha R = n

t(k) | φ(t)o

megengedett reláció sorkalkulusban, akkor RDom(φ)k kifejezhet ˝o rel. algebrával. Biz. φ felépítése szerinti indukcióval.

Ha R biztonságos, akkor R = RDom(φ)k

Tétel. A relációs algebra és a biztonságos sorkalkulus ekvivalensek.

Bizonyítás: Volt: relációs algebrai kifejezésb ˝ol lehet sorkalkulust csinálni, illetve biztonságos sorkalkulusból relációs algebrát.

Kell még: a relációs alg. átírása sorkalkulusra biztonságos.

De az meg az volt, ahogy csináltuk.

(75)

Példák biztonságos és nem biztonságos kifejezésekre

• Melyik napokon volt a legnagyobb a bevétel?

Nem bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o

(76)

t(1) | ∃u(2) BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

(77)

Példák biztonságos és nem biztonságos kifejezésekre

• Melyik napokon volt a legnagyobb a bevétel?

Nem bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

Bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ∀v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]o

(78)

t(1) | ∃u(2) BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

Bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ∀v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]o Másik bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ¬∃v(2)

BEVÉTEL(v) ∧ v[2] > u[2]o

(79)

Példák biztonságos és nem biztonságos kifejezésekre

• Melyik napokon volt a legnagyobb a bevétel?

Nem bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

Bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ∀v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]o Másik bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ¬∃v(2)

BEVÉTEL(v) ∧ v[2] > u[2]o

• Mely árukból adtak el 100-nál többet egy napon?

(80)

t(1) | ∃u(2) BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

Bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ∀v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]o Másik bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ¬∃v(2)

BEVÉTEL(v) ∧ v[2] > u[2]o

• Mely árukból adtak el 100-nál többet egy napon?

Nem bizt.:

t(3) | ÁRU(t) ∧ ∃v(3)

(v[2] = t[1]v[3] > 100) ∨ MENNYISÉG(v)

(81)

Példák biztonságos és nem biztonságos kifejezésekre

• Melyik napokon volt a legnagyobb a bevétel?

Nem bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

Bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ∀v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]o Másik bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ¬∃v(2)

BEVÉTEL(v) ∧ v[2] > u[2]o

• Mely árukból adtak el 100-nál többet egy napon?

Nem bizt.:

t(3) | ÁRU(t) ∧ ∃v(3)

(v[2] = t[1]v[3] > 100) ∨ MENNYISÉG(v) Elírtuk: nem is azt adja, amit kell, meg nem is biztonságos, mert (ii) sérül

(82)

t(1) | ∃u(2) BEVÉTEL(u) ∧ t[1] = u[2]

v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]

∧ ∃w(1)(w[1] , t[1])o Ez azt fejezi ki, csak nem biztonságos, mert (ii) nem oké, bár (i) az. Az a baj, hogy a végén van egy felesleges dolog.

Bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ∀v(2)

¬BEVÉTEL(v) ∨ v[2]u[2]o Másik bizt.:

nt(1) | ∃u(2)

BEVÉTEL(u) ∧ t[1] = u[1] ∧ ¬∃v(2)

BEVÉTEL(v) ∧ v[2] > u[2]o

• Mely árukból adtak el 100-nál többet egy napon?

Nem bizt.:

t(3) | ÁRU(t) ∧ ∃v(3)

(v[2] = t[1]v[3] > 100) ∨ MENNYISÉG(v) Elírtuk: nem is azt adja, amit kell, meg nem is biztonságos, mert (ii) sérül Bizt.:

t(3) | ÁRU(t) ∧ ∃v(3)

(v[2] = t[1]v[3] > 100) ∧ MENNYISÉG(v)

(83)

Oszlopkalkulus (Domain calculus)

Lényegileg ugyanaz, mint a sorkalkulus, csak másféle változókat használ.

Oszlopváltozó: egy koordinátája a sorváltozónak, mint vektornak Az oszlopváltozó értékkészlete: egy adott attribútum értékkészlete.

(84)

Az oszlopváltozó értékkészlete: egy adott attribútum értékkészlete.

A oszlopkalkulus által kifejezett reláció:

{u1, . . . , uk | φ(u1, . . . , uk)} =⇒ azon u = (u1, . . . ,uk) vektorok, amikre φ(u1, . . . ,uk) igaz, ahol φ egy megengedett formula és csak u1, . . . ,uk szabad változók benne.

(85)

Oszlopkalkulus (Domain calculus)

Lényegileg ugyanaz, mint a sorkalkulus, csak másféle változókat használ.

Oszlopváltozó: egy koordinátája a sorváltozónak, mint vektornak Az oszlopváltozó értékkészlete: egy adott attribútum értékkészlete.

A oszlopkalkulus által kifejezett reláció:

{u1, . . . , uk | φ(u1, . . . , uk)} =⇒ azon u = (u1, . . . ,uk) vektorok, amikre φ(u1, . . . ,uk) igaz, ahol φ egy megengedett formula és csak u1, . . . ,uk szabad változók benne.

Megengedett formulák:

atomok :

R(k)(u1, . . . , uk): akkor igaz, ha (u1, . . . , uk)R, azaz a sor benne van a relációban.

(86)

Az oszlopváltozó értékkészlete: egy adott attribútum értékkészlete.

A oszlopkalkulus által kifejezett reláció:

{u1, . . . , uk | φ(u1, . . . , uk)} =⇒ azon u = (u1, . . . ,uk) vektorok, amikre φ(u1, . . . ,uk) igaz, ahol φ egy megengedett formula és csak u1, . . . ,uk szabad változók benne.

Megengedett formulák:

atomok :

R(k)(u1, . . . , uk): akkor igaz, ha (u1, . . . , uk)R, azaz a sor benne van a relációban.

• ? ui θ uj

? ui θ c

? c θ ui

ahol θ∈ {<, >,=,,,≤,≥}, ui oszlopváltozók, c konstans érték.

Világos, mikor igaz.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. beszúrni nehéz, mert amikor egy sort

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet

Bizonyítás Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is?. Ehhez azt elég

A (legtöbbször) deklaratív kérdésb ˝ol (ahol nem mondjuk meg, hogy milyen úton akarom megkapni az eredményt, csak azt, hogy mit akarok, pl. SQL) procedurális kérdést

Kulcs: mivel a kapcsolat “egy” jelleg ˝u volt, ezért az osztály kulcsa jó lesz kulcsnak a relációsémában is.. Mindkét irányban többérték ˝u kapcsolat: Ugyanaz a

oszlopkalkulus jelleg ˝u, de némi sorkalkulusos beütéssel Termékek, (amik szükségszer ˝uen relációs nyelvet is tartalmaztak):.

1.) Adott R relációs séma és F funkcionális függőségek halmaza. Attribútum halmaz lezártjának kiszámolására tanult. algoritmus felhasználásával

Melyek azok a gyártók, amelyek gyártanak legalább két egymástól különböző, legalább 1,2 gigaherzen működő számítógépet (PC-t vagy laptopot)5. Melyik gyártó