1 / 23

Databázové systémy

Databázové systémy. Přednáška č. 5. Relační algebra - příklad. STUDENT. Relační algebra - příklad. Jaké specializace studenti studují?  spec (STUDENT). Relační algebra - příklad. Kteří studenti nastoupili na fakultu v roce 1996?  rok_nást= ‘ 1996 ’ (STUDENT). Relační algebra - příklad.

syshe
Download Presentation

Databázové systémy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Databázové systémy Přednáška č. 5

  2. Relační algebra - příklad STUDENT

  3. Relační algebra - příklad • Jaké specializace studenti studují? spec(STUDENT)

  4. Relační algebra - příklad • Kteří studenti nastoupili na fakultu v roce 1996? rok_nást=‘1996’(STUDENT)

  5. Relační algebra - příklad • Jaké příjmení mají studenti, kteří nastoupili na fakultu v roce 1996? příjmenírok_nást=‘1996’(STUDENT)

  6. Relační algebra - příklad KREDITY

  7. Relační algebra - příklad • Jaké jsou studijní výsledky jednotlivých studentů? STUDENT natural join KREDITY

  8. Relační algebra - příklad • Kteří studenti si zapsali předmět „PSY1“? příjmení,jméno,speczkratka=‘PSY1’(STUDENT natural join KREDITY)

  9. Relační kalkul • Formální neprocedurální jazyk • Dotaz v relačním kalkulu specifikuje co se má zjistit a ne jak to zjistit • Založený na druhu symbolické logiky zvané predikátový kalkul • V databázovém prostředí má dvě formy: • n-ticově-orientovaný • doménově-orientovaný

  10. Relační kalkul Predikát • Pravdivostní funkce s argumenty • P je predikát, pak {x | P(x)} je množina všech x, pro které P dává pravdivou hodnotu • Spojení pomocí operátorů:  (AND)  (OR)  (NOT)

  11. Relační kalkul • N-ticově orientovaný relační kalkul • Hledá n-tice, pro které je predikát pravdivý • Založen na použití n-ticových proměnných (ta nabývá hodnot z dané relace – tj. proměnná, která má jako přípustné hodnoty n-tice relace) • Obor hodnot n-ticové proměnné specifikujeme následovně: RANGE OF Z IS Zaměstnanec {Z | P(Z)} – určuje všechny Z, pro které platí P(Z)

  12. Zaměstnanec N 1 N kontroluje Pracuje v Garantuje N N viděl N 1 N Nemovitost Klient N Má pronajatu Pobočka 1 N N Vlastní 1 Nabízí 1 Vlastník

  13. Relační kalkul • Najdi všechny údaje o zaměstnancích s platem vyšším než 15 000,- Kč: RANGE OF Z IS Zamestnanec {Z| Z.plat > 15000} • Z.plat znamená hodnotu atributu plat pro n-tici Z

  14. Relační kalkul • Na určení toho, kolika instancí se predikát týká, se používají dva kvantifikátory: • Existenční kvantifikátor  („there exists“) • Univerzální kvantifikátor  („for all“)

  15. Relační kalkul • RANGE OF P IS Pobočka  P (P.č_pob=Z.č_pob   P_mesto=‘London’ ) znemená: Existuje n-tice pobočky, která má totéž č_pob jako č_pob aktuální n-tice Z a má sídlo v Londýně

  16. Relační kalkul •  P (P.mesto =‘Paris’) tj. pro všechny n-tice pobočky, adresa není v Paříži •  P (P.mesto =‘Paris’) tj. neexistuje pobočka v Paříži

  17. Relační kalkul • N-ticové proměnné se nazývají volné proměnné. Když jsou kvalifikovány pomocí  nebo  nazývají se vázané proměnné.

  18. Relační kalkul • Vyjmenujte managery, kteří mají plat vyšší než 25 000,- Kč. RANGE OF Z IS Zaměstnanec {Z.prijmeni,Z.jmeno | Z.prac_zar = ‘Manager’ Z.plat > 25000}

  19. Relační kalkul • Vyber zaměstnance, kteří se starají o nemovitost v Praze RANGE OF Z IS Zamestnanec RANGE OF N IS Nemovitost {Z | N (N.c_zam=Z.c_zam  N.mesto=‘Praha’}

  20. Relační kalkul • Najdi jména zaměstnanců, kteří se nestarají o žádnou nemovitost RANGE OF Z IS Zamestnanec RANGE OF N IS Nemovitost {Z.prijmeni,Z.jmeno | ( N (Z.c-zam=N.c_zam))} nebo: {Z.prijmeni,Z.jmeno | N ((Z.c-zam=N.c_zam))}

  21. Relační kalkul • Zobraz jména a komentáře všech nájemců, kteří si prohlédli nemovitost v Praze RANGE OF K IS Klient RANGE OF P IS Prohlidka RANGE OF N IS Nemovitost {K.prijmeni,K.jmeno,P.pozn | P (K.c-k=P.c_k)  N (P.c_nem = N.c_nem  N.mesto=‘Praha’)}

  22. Relační kalkul • Doménově-orientovaný relační kalkul • Používá proměnné, které nabývají hodnoty z domén • Když P(d1, d2, … dn) je predikát s proměnnými d1, d2, … dn, potom {d1, d2, … dn | P(d1, d2, … dn)} vyjadřuje množinu všech doménových proměnných d1, d2, … dn, pro které je pravdivý predikát P(d1, d2, … dn)

  23. Relační kalkul • Najdi jména managerů, kteří mají plat vyšší než 25 000,- Kč {prijmeni, jmeno | prac-zar,  plat (Zamestnanec(prijmeni,prac_zar,plat)  prac-zar=‘Manager’  plat > 25000}

More Related