Bazy danych. Lista 3.

Transkrypt

Bazy danych. Lista 3.
Bazy danych. Lista 3.
Zadania wykorzystują baza danych smakoszy składających się z relacji :









lokal(nazwa, miasto, adres)
osoba(osoba : int, nazwisko, plec : numeric(1,0), adres),
zjadl(osoba, lokal, danie, data : date),
rachunek(lokal, data, numer, osoba, kwota); -- dla uproszczenia zakładamy, ze dana
osoba bierze rachunek co najwyżej raz dziennie w tym samym lokalu;
podaje(lokal, danie, data, cena : numeric(6,2)), -- cena może zmieniać się w kolejnych
dniach!
lubi(osoba, danie),
wegetariańskie(danie) -- czy danie jest wegetariańskie
danie(lokal, danie, waga :int, kalorie: int) -- informacja o daniu, waga w gramach
skladnik(danie, skladnik, ilosc, rodzaj) -- informacja o składnikach, rodzaj = "mięso",
"ryba", "owoce","nabiał",...itp.
Rozwiąż w SQL i algebrze relacji (1 pkt.):
1. Osoby bywające w co najmniej 4 różnych lokalach w co najmniej 3 różnych miastach.
2. Osoby, które lubią dania wegetariańskie, ale zjadły w ostatnim roku przynajmniej dwa
danie niewegetariańskie.
3. Osoby, które zjadły w poprzednim roku codziennie jakieś danie o ilości kalorii >
3000. Dla uproszczenia można założyć, że każdy rok ma zawsze 365 dni.
4. Osoby, które zjadły największe (najcięższe) danie w poszczególnych latach . Schemat
wynikowy to (osoba,rok).
5. Osoby, które zapłaciły najwięcej w poszczególnych lokalach w poszczególnych
dniach. Wyświetl tylko takie wyniki, których suma rachunków była większa od 50zł.
6. Dla każdego lokalu wyświetl dania, które mają maksymalną ilość składników, które
były podawane w ostatnim miesiącu.
7. Osoby bywające w lokalach gdzie nie podaje się ich ulubione danie.
8. Podaj osoby, które w danym lokalu zjadły największą ilość kalorii w ostatnim roku.
Wynik posortuj malejąco.
9. Osoby, które lubią wszystkie dania wegetariańskie podawane we wrocławskich
lokalach.

Podobne dokumenty