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.