Базе података 1/Лаб 2 семестрални 2020
Поставка
Посматра се део система продаје на бензинским станицама. Овај део система прати бензинске станице као и њихове координате, оцену и информације у регионима где се налазе. На бензинским станицама се продају производи које прати тип и назив. Ако се неки прозивод продаје на бензиској станици онда постоји активни ценовник за тај производ. Том приликом се прати и датум ценовника. Производ се продаје на бензинској станици по цени на основу активног ценовника за тај производ на тој бензинској станици. У једном тренутку максимално један ценовник је активан за производ на бензинској станици. Приликом продаје прате се ценовник по којем је продат производ, као и количина и датум продаје. У систему сви датуми се памте као целобројне величине у формату yyyymmdd (yyyy - година, mm - месец, dd - дан).
У наставку је дата релациона шема посматраног дела базе података.
Није дозвољено коришћење погледа.
Првих пет задатака носи један бод, осталих пет носе два бода (макс 15).
Задаци
Задатак 1
Направити SQL упит који исписује сву продају за 2021. годину при чему је количина већа од 10.
Сортирати по Datum растуће, па по Kolicina опадајуће.
Резултат дати у форми: Datum, Kolicina, IdPro
Задатак 2
Направити SQL скрипту која брише сву продају која је старија од 01.01.2021. (датуми пре 2021. године), а затим исписује сву преосталу продају.
Резутате сортирати по IdPro растуће.
Резултат дати у форми: IdPro, Kolicina, Datum, IdCen
Задатак 3
Направити SQL скрипту која уводи нов производ у базу података, а затим исписује све производе. Производ за додавање је типа Gorivo са називом EuroDizel. Узети да идентификатор производа има вредност 1000.
Резултат сортирати по IdPro опадајуће.
Резултат дати у форми: IdPro, Tip, Naziv
Задатак 4
Направити SQL скрипту која ажурира вредност свих ценовника тако што увећа вредност за 10% уколико је ценовник активан или поставља на вредност 0 уколико је ценовник неактиван, а затим је потребно исписати све ценовнике.
Резултат сортирати по IdCen растуће.
Резултат дати у форми: IdCen, Datum, IdBS, IdPro, Vrednost, Aktivan
Задатак 5
Направити SQL скрипту која ако постоји табела BenStanica избацује табелу BenStanica из шеме, а затим формира нову табелу BenStanica која треба да има одговарајућу структуру и ограничења.
Задатак 6
Направити SQL упит који проналази све актуелне цене (вредност) свих производа који се продају на бензинској станици са идентификатором 1 за дан 11.01.2021.
Резултат сортирати по IdPro растуће.
Резултат дати у форми: IdPro, Naziv, Cena
Задатак 7
Направити SQL упит који проналази бензиску станицу (или станице ако их има више) која је најпрофитабиллнија у 2021. години. Профит бензинске станице се рачуна као укупна вредност продаје на тој бензинској станици, при чему се вредност продаје рачуна као производ количине и вредности са ценовника.
Резултат сортирати по IdBS растуће.
Резултат дати у форми: IdBS, Ocena, X, Y
Задатак 8
Направити SQL упит који проналази најмању раздаљину две бензинске станице. За рачунање раздаљине користити Декартов координатни систем. Резултат дати у једном реду са конкретном вредности. Сматрати да у систему увек постоји барем две бензинске станице.
Резултат дати у форми: Razdaljina
Задатак 9
Направити SQL упит који исписује за сваки регион колико има бензинских станица.
Резултат сортирати по IdReg растуће.
Резултат дати у форми: IdReg, Naziv, Broj benzinskih stanica
Задатак 10
Направити SQL упит који приказује бензинске станице које тренутно продају више од 3 различите врсте горвиа (Tip производа је Gorivo).
Резултат сортирати по IdBS растуће.
Резултат дати у форми: IdBS, Ocena, X, Y