Relačný kalkul Flashcards

1
Q

Aké operácie vieme robiť v relačnom kalkule na reláciach?

A

môžeme mať konštanty, premenné, predikáty (true, false), s nimi robiť konjunkcie a vš. možné logické operácie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Ako fungujú predikáty v rel. kalkule? Ako generujú tabuľku?

A

Všetky hodnoty, pre ktoré vracajú TRUE,

uložíme do tabuliek (relácií).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Čo je datalog?

A

Rozumné zúženie rel. kalkulu, na potrebné operácie, nech nepíšeme napr. furt kvantifikátory, tie tam sú implicitne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Sú sql, rel. kalkul, datalog deklaratívne alebo imperatívne?

A

deklaratívne, píšeme ČO nie AKO.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vieme určiť, ktorý SQL dotaz je najefektívnejší?

A

Nie, na pozadí ajtak spraví svoje.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Čo je relácia?

A

Definícia: relácia je podmnožina kartézskeho súčinu množín. Množinám D1, D2, …, Dn sa hovorí domény (typy) atribútov relácie r

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Čo sú prvky relácie?

A

Prvkami relácie sú usporiadané n-tice (hovorí sa im tiež n-tuples,
tuples, záznamy).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Môžeme v ľubovoľnom poradí miešať atribúty?

A

Nie, ale v SQL áno, tam sú pomenované a nezáleží na poradí.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Čo je predikát?

A

k r(a,b,c) prislúcha predikát p: AxBxC -> bool, kde p(x,y,z)=true práve vtedy keď [x,y,z] in r.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Čo píšeme malými a čo veľkými písmenami?

A

Konštanty a predikáty malými

Premenné veľkými.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Čo sú dotazy v relačnom kalkule?

A

Dotazy v relačnom kalkule sú formuly logiky 1.rádu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Čo je výsledok dotazu v relačnom kalkule?

A

Výsledok dotazu je usporiadaná množina hodnôt voľných

premenných, po ktorých dosadení tá formula platí.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Čo sú doménovo nezávislé formuly?

A

Ak sa ich výsledok nemení pri zmene domény, na základe ktorej je výraz vyhodnotený. (ich výsledok závisí nie od domény, ale len od obsahu databázy)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Čo sú ohraničené premenné formuly?

A

(range-restricted), ak vieme algoritmicky vypočítať konečnú množinu hodnôt Ri takú, že po dosadení
ľubovoľnej hodnoty v not in Ri za Vi formula nie je splniteľná

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Čo sú bezpečné formuly? V rel. kalkule

A

Formula je bezpečná (safe), ak každá jej premenná je ohraničená.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Ako píšeme v datalogu fakty?

A

napr. r(1,2). r(2,3). (s bodkou).

17
Q

Kedy je datalog program bezpečný?

A

Program je bezpečný, ak každé jeho pravidlo je bezpečné

18
Q

Kedy je v datalogu pravidlo bezpečné?

A

Pravidlo je bezpečné, ak každá premenná použitá kdekoľvek v tom
pravidle je použitá aj v nejakom pozitívnom relačnom podcieli

19
Q

Aký je rozdiel medzi prologom a datalogom?

A

Datalog je podmnožina prologu, povoľuje len bezpečné operácie.

20
Q

Prečo stačí na definícu v datalogu implikácia?

A

Nech platí len krat(1,1,1), teda krat(1, 1, 1) :- true. Chceme vyjadriť že true => krat(1,1,1), to ale nevylučuje že neplatí krat(2,3,4). V Datalogu ale platí len to, čo „platiť musí“ (dá sa odvodiť, t.j. dokázať z programu).

21
Q

čo je russelov paradox?

A

“Holič holí všetkých mužov v meste, ktorí neholia sami seba“. Holí potom holič holiča?

22
Q

Ako vyjadriť disjunkciu v datalogu?

A

dvoma pravidlami.