Baze podataka 1/Lab 2 semestralni 2020

Izvor: SI Wiki
< Базе података 1
Datum izmene: 15. januar 2021. u 05:46; autor: Renatus (razgovor | doprinosi) (Нова страница: {{tocright}} == Поставка == Посматра се део система продаје на бензинским станицама. Овај део систе…)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Postavka

Posmatra se deo sistema prodaje na benzinskim stanicama. Ovaj deo sistema prati benzinske stanice kao i njihove koordinate, ocenu i informacije u regionima gde se nalaze. Na benzinskim stanicama se prodaju proizvodi koje prati tip i naziv. Ako se neki prozivod prodaje na benziskoj stanici onda postoji aktivni cenovnik za taj proizvod. Tom prilikom se prati i datum cenovnika. Proizvod se prodaje na benzinskoj stanici po ceni na osnovu aktivnog cenovnika za taj proizvod na toj benzinskoj stanici. U jednom trenutku maksimalno jedan cenovnik je aktivan za proizvod na benzinskoj stanici. Prilikom prodaje prate se cenovnik po kojem je prodat proizvod, kao i količina i datum prodaje. U sistemu svi datumi se pamte kao celobrojne veličine u formatu yyyymmdd (yyyy - godina, mm - mesec, dd - dan).

U nastavku je data relaciona šema posmatranog dela baze podataka.

Relaciona šema

Nije dozvoljeno korišćenje pogleda.

Prvih pet zadataka nosi jedan bod, ostalih pet nose dva boda (maks 15).

Zadaci

Zadatak 1

Napraviti SQL upit koji ispisuje svu prodaju za 2021. godinu pri čemu je količina veća od 10.

Sortirati po Datum rastuće, pa po Kolicina opadajuće.


Rezultat dati u formi: Datum, Kolicina, IdPro

Zadatak 2

Napraviti SQL skriptu koja briše svu prodaju koja je starija od 01.01.2021. (datumi pre 2021. godine), a zatim ispisuje svu preostalu prodaju.

Rezutate sortirati po IdPro rastuće.


Rezultat dati u formi: IdPro, Kolicina, Datum, IdCen

Zadatak 3

Napraviti SQL skriptu koja uvodi nov proizvod u bazu podataka, a zatim ispisuje sve proizvode. Proizvod za dodavanje je tipa Gorivo sa nazivom EuroDizel. Uzeti da identifikator proizvoda ima vrednost 1000.

Rezultat sortirati po IdPro opadajuće.


Rezultat dati u formi: IdPro, Tip, Naziv

Zadatak 4

Napraviti SQL skriptu koja ažurira vrednost svih cenovnika tako što uveća vrednost za 10% ukoliko je cenovnik aktivan ili postavlja na vrednost 0 ukoliko je cenovnik neaktivan, a zatim je potrebno ispisati sve cenovnike.

Rezultat sortirati po IdCen rastuće.


Rezultat dati u formi: IdCen, Datum, IdBS, IdPro, Vrednost, Aktivan

Zadatak 5

Napraviti SQL skriptu koja ako postoji tabela BenStanica izbacuje tabelu BenStanica iz šeme, a zatim formira novu tabelu BenStanica koja treba da ima odgovarajuću strukturu i ograničenja.

Zadatak 6

Napraviti SQL upit koji pronalazi sve aktuelne cene (vrednost) svih proizvoda koji se prodaju na benzinskoj stanici sa identifikatorom 1 za dan 11.01.2021.

Rezultat sortirati po IdPro rastuće.


Rezultat dati u formi: IdPro, Naziv, Cena

Zadatak 7

Napraviti SQL upit koji pronalazi benzisku stanicu (ili stanice ako ih ima više) koja je najprofitabillnija u 2021. godini. Profit benzinske stanice se računa kao ukupna vrednost prodaje na toj benzinskoj stanici, pri čemu se vrednost prodaje računa kao proizvod količine i vrednosti sa cenovnika.

Rezultat sortirati po IdBS rastuće.


Rezultat dati u formi: IdBS, Ocena, X, Y

Zadatak 8

Napraviti SQL upit koji pronalazi najmanju razdaljinu dve benzinske stanice. Za računanje razdaljine koristiti Dekartov koordinatni sistem. Rezultat dati u jednom redu sa konkretnom vrednosti. Smatrati da u sistemu uvek postoji barem dve benzinske stanice.


Rezultat dati u formi: Razdaljina

Zadatak 9

Napraviti SQL upit koji ispisuje za svaki region koliko ima benzinskih stanica.

Rezultat sortirati po IdReg rastuće.


Rezultat dati u formi: IdReg, Naziv, Broj benzinskih stanica

Zadatak 10

Napraviti SQL upit koji prikazuje benzinske stanice koje trenutno prodaju više od 3 različite vrste gorvia (Tip proizvoda je Gorivo).

Rezultat sortirati po IdBS rastuće.


Rezultat dati u formi: IdBS, Ocena, X, Y