Базе података 1/Лаб 2 семестрални 2020

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Поставка

Посматра се део система продаје на бензинским станицама. Овај део система прати бензинске станице као и њихове координате, оцену и информације у регионима где се налазе. На бензинским станицама се продају производи које прати тип и назив. Ако се неки прозивод продаје на бензиској станици онда постоји активни ценовник за тај производ. Том приликом се прати и датум ценовника. Производ се продаје на бензинској станици по цени на основу активног ценовника за тај производ на тој бензинској станици. У једном тренутку максимално један ценовник је активан за производ на бензинској станици. Приликом продаје прате се ценовник по којем је продат производ, као и количина и датум продаје. У систему сви датуми се памте као целобројне величине у формату yyyymmdd (yyyy - година, mm - месец, dd - дан).

У наставку је дата релациона шема посматраног дела базе података.

Relaciona šema

Није дозвољено коришћење погледа.

Првих пет задатака носи један бод, осталих пет носе два бода (макс 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