Baze podataka 1/Lab 2 semestralni 2020
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.
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