Uvod u relacione baze podataka

Similar documents
Grupisanje podataka. Klauzula GROUP BY <lista_obeležja>

1. Smjer: Informatika

Razvoj Android aplikacija M. Sc. Ivan Panić

Sonja Krasić, Biserka Marković. Faculty of Civil Engineering and Architecture, University of Niš

CHARACTER RECOGNITION BASED ON REGION PIXEL CONCENTRATION FOR LICENSE PLATE IDENTIFICATION

4.3. Measuring Bridges

Digital chess clock. Model AM1401/1401 c. User manual

CLASSIFICATION OF LATIN SQUARES. Dr Nada Lakić

Test za učenike sa posebnim obrazovnim potrebama (Examination paper for English learners with special educational needs)

NOVI TRENDOVI NAUČNE METRIKE

POLINOMSKE KONGRUENCIJE. Bernadin Ibrahimpašić 1

A TOOL FOR ALL ASTRO SENSOR RECORDINGS FUSION INTO COLOR COMPOSITE IMAGES

FORENZIKA U BANKARSTVU I OSIGURANJU

THE INFLUENCE OF STRUCTURAL VARIATIONS ON WOOL FABRICS AIR PERMEABILITY

NAPREDNI FIZIČKI PRAKTIKUM 1 SMJER: ISTRAŽIVAČKI STUDIJ FIZIKE ELEKTRIČNI TITRAJNI KRUG

Objektno-orijentisana analiza informacionih sistema

Metoda promenljivih okolina Variable Neighborhood Search (VNS)

LIM-MONT d.o.o. MB: p o d u z e c e z a p r o i z v o d n j u l i m e n i h p r o i z v o d a, t r g o v i n u i u s l u g e

PSEUDOPROSTI BROJEVI. Ključne riječi: prosti brojevi, pseudoprosti brojevi, Mali Fermatov teorem.

SOLID SOLID. of today, keeping however, their classical and eternal values.

Jesenska škola sepse. Simpozij s međunarodnim sudjelovanjem 30. studenoga 2017.

Riber Hansson Facıng the Clımate. Exhıbıtıon brıef. Place for partner logo

Long-term accessibility of e-books: challenges, obstacles, responsibilities

Komunikacijska i informacijska tehnologija. Sveučilište u Splitu Fakultet elektrotehnike strojarstva i brodogradnje

Razlika. Razlika. nove i stare MPC za Razlika nove i stare MPC po paketiću (u kn) Ukupna zaliha (u 1000 komada) obračunate trošarine za 1000

NERMIN PLOSKIĆ PROF. MUZIČKIH PREDMETA FREELANCER DIZAJNER & RETUŠER ITACADEMY WEB DESIGNER

Mašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv

ENGLESKI JEZIK EKSTERNA PROVJERA ZNANJA UČENIKA NA KRAJU III CIKLUSA OSNOVNE ŠKOLE JUN, ŠKOLSKE 2016/2017. GODINE UPUTSTVO

Optimized Second- and Fourth- Order LP and BP Filters

GEANIUM INTERACTIVE CHRONOLOGICAL VISUALIZATION SYSTEM

CHARACTERIZATION OF THE RADIOFREQUENCY RADIATION POTENTIAL OF ALAKAHIA AND CHOBA COMMUNITIES, NIGERIA UDC :613.62(662.

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

Laser Technology Inc.

Innovation capacity in traditional food SMEs in Croatia

Osnovne informacije o kolegiju: Predavanja, seminari i vježbe se održavaju u terminu od do

SF6 GIS za kv SF6 GIS for kv. tel: , fax:

MEASURING POVERTY USING PARAMETERIZED LORENZ CURVE THE CASE OF MACEDONIA

Informacije o Arduino Servo bibilioteci:

Automatika i sustavi. Sveučilište u Splitu Fakultet elektrotehnike strojarstva i brodogradnje IZVEDBENI PLAN NASTAVE DIPLOMSKOG STUDIJSKOG PROGRAMA

Ulazni portovi (analogni i digitalni) i PWM portovi

Industrija poluprovodnika svetski tržišni trendovi i položaj GlobalFoundries

KARAKTERIZACIJA SINGLE- PHOTON AVALANCHE DIODA (SPAD)

MODELS OF DISTRIBUTION OF GDP AT THE GLOBAL LEVEL 1 UDC /.87(100) Zoran Tomić*, Ognjen Radović

ATV12H018M3 frekv.pretvarač promj.brzine ATV12 0,18 KW 0,25 ks V 3 faze

Moj voljeni Beograd. My beloved Belgrade

JPEG format (.jpg,.jpeg) Izabela Gucunski. Seminarski rad u okviru predmeta Računalna forenzika 2016/2017

MOBILNE AD-HOC MREŽE (MANET)

IS THE SCIENTIFIC VALUE OF A BIOLOGICAL COLLECTION MEASURABLE?

Presenter SNP6000. Register your product and get support at HR Korisnički priručnik

THE IMPORTANCE OF THE RESISTANCE TO WEAR IN THE CHOICE OF FABRICS FOR PROTECTIVE GARMENTS

Kongruencije višeg reda

Šifra Naziv Opis SP BM 6MM TUŠ KABINA POLUKRUŽNA 80 TUŠ KABINA POLKROŽNA 80 SP KP 6MM TUŠ KABINA POLUKRUŽNA 80 TUŠ KABINA POLKROŽNA 80

Tehnička škola Kutina Ime i prezime: Laboratorijska vježba 2. POJAČALO U SPOJU ZAJEDNIČKOG EMITERA

REFERENTNI MATERIJALI, SLJEDIVOST I NESIGURNOST

THE ANALYTIC DESCRIPTION AND DESIGN OF WORKPIECE GEOMETRY FOR MECHANICAL ENGINEERING

() 3. Recent Advances in PCS Antenna Design and Measurement

UPRAVLJANJE INFORMATIČKIM PROJEKTIMA

KONAN ROĐEN NA BOJNOM POLJU po likovima Roberta Ervina Hauarda DARKWOOD, 2018.

RASPORED AKADEMSKE GODINE

PROŠIRENJE FUNKCIONALNOSTI NS-3 SIMULATORA ZA RUTIRANJE U AD HOC BEŽIČNIM MREŽAMA

Project ON "Advanced Methods in Cryptology and Information Processing"

A SURVEY OF MARINERS OPINIONS ON USING ELECTRONIC CHARTS ISTRAŽIVANJE PROVEDENO MEÐU POMORCIMA O KORIŠTENJU ELEKTRONIČKIH NAVIGACIJSKIH KARATA

TRAJNOSTNI PAPIR IN KARTON PP1

Ivana R. MIJI] studentkiwa doktorskih studija Univerzitet u Novom Sadu Filozofski fakultet Republika Srbija

Osnovne informacije o kolegiju: Predavanja, seminari i vježbe se održavaju u terminu od do

Stručni rad / UDK :8(4), (4):303 / Primljeno: Paolo Celot. EAVI studies, European Union, media literacy and methodology

SVEUČILIŠTE U RIJECI FILOZOFSKI FAKULTET U RIJECI. Studijski program: KULTUROLOGIJA jednopredmetni diplomski studij. Odsjek za kulturalne studije

E- and H-Plane Coupled Power Combining Arrays of Active Patches with Line Transformer and Transistor Oscillator

ЗАВРШНИ (BACHELOR) РАД

ESTIMATION OF ABSORBED ELECTROMAGNETIC ENERGY ON SERVICE TECHNICIANS FROM BASE STATION ANTENNA SYSTEMS

RAČUNARSKI SISTEM ZA TERMALNU ANALIZU MATERIJALA COMPUTER CONTROLLED SYSTEM FOR THERMAL ANALYSIS OF MATERIALS

19.2 Permutations and Probability Combinations and Probability.

ARDUINO KROZ JEDNOSTAVNE PRIMJERE - pripreme za natjecanja -

Sustavi za praćenje i vođenje procesa IEEE n

SVEUČILIŠTE U DUBROVNIKU ODJEL ZA ELEKTROTEHNIKU I RAČUNARSTVO STUDIJ POSLOVNO RAČUNARSTVO DIPLOMSKI RAD

The Importance of Information and Communication Technologies in the Development of Women Entrepreneurship

SELECTION AND OPTIMAL DISPOSITION OF EQUIPMENT IN A INVESTMENT PROCESS UDC: 669.3: Drago Soldat

CONCEPT AND FEATURES OF AN ULTRA WIDEBAND RADAR SYSTEM FOR MAPPING SUGAR BEET YIELD

12/20/2011. Infrared termografija i njena primena u urbanim sredinama

Image enhancement and performance evaluation using various filters for IRS-P6 Satellite Liss IV remotely sensed data

ANALYSIS OF LASER CUTTING PROCESS BY DEVELOPMENT OF PERFORMANCE DIAGRAMS

Curriculum Vitae. Personal information. Education and training. Social /Organizational /managerial skills

IZVEDBENI PLAN - AKADEMSKA GODINA 2017/2018

Key things for parents to be aware of

FORMING OF SCIENCE AND TECHNOLOGY PARK AS AN ASPECT OF CIVIL ENGINEERING UDC :624+69(45)

OŠ STJEPAN RADIĆ OPRISAVCI

Datum izdavanja kataloga: Mart Grafičko oblikovanje: Grape Tiraž: 2000 komada

S V E U Č I L I Š T E U S P L I T U

HOLISTIČKO MJERENJE ŽIVOTNOG NIVOA: INDEKS HUMANOG RAZVOJA HOLISTIC MEASUREMENT OF QUALITY OF LIFE: HUMAN DEVELOPMENT INDEX

Električna merenja

henrique luz alex flemming

Atlas of Kekulé Valence Structures of Buckminsterfullerene*

USING UNCONVENTIONAL TECHNOLOGY IN STAMPING SHOP

VEN, SALVADOR. œ œ. œ œ œ. œ œ. œ # œ œ œ

TEME ZA ZAVRŠNE DODIPLOMSKE I DIPLOMSKE RADOVE NA ODSJEKU ZA ANGLISTIKU U AK. GODINI 2014/2015.

4. MEĐUNARODNI ŠAHOVSKI TURNIR ''TRAVNIK OPEN 2018.'' ( ) (english version below)

SVEUČILIŠTE U ZADRU ODJEL ZA LINGVISTIKU

Fleksibilni Internet servisi na bazi kontrole kašnjenja i propusnosti

Relational Algebra Symbols

HORIZON 2020 Radni program Svemir

Transcription:

Uvod u relacione baze podataka Ana Spasić 7. čas 1 Relaciona algebra i račun (vežbanje) 1. Izdvojiti nazive predmeta koji nose najviše bodova. DEFINE ALIAS p1 FOR predmet DEFINE ALIAS p2 FOR predmet ( p1[id_predmeta,naziv] (p1 times p2 where p1.bodovi < p2.bodovi) [p1.id_predmeta,p1.naziv] )[naziv] RANGE OF py IS predmet px.naziv where not exists py (py.bodovi > px.bodovi) Drugo rešenje RANGE OF py IS predmet px.naziv where forall py (py.bodovi <= px.bodovi) 2. Izdvojiti ispitne rokove u kojima je predmet Programiranje 1 polagao neki student, ali nisu svi studenti. ((predmet where naziv = Programiranje 1 )[id_predmeta] join ispit)[oznaka_roka, godina_roka] (((predmet where naziv = Programiranje 1 )[id_predmeta] join ispit)[oznaka_roka, godina_roka, indeks] divideby dosije[indeks]) 1

RANGE OF irx IS ispitni_rok RANGE OF dx IS dosije irx.oznaka_roka, irx.godina_roka where exists ix (ix.oznaka_roka = irx.oznaka_roka and ix.godina_roka = irx.godina_roka and exists px (px.id_predmeta = ix.id_predmeta and px.naziv = Programiranje 1 )) and exists dx (not exists ix (ix.indeks = dx.indeks and ix.oznaka_roka = irx.oznaka_roka and ix.godina_roka = irx.godina_roka and exists px (px.id_predmeta = ix.id_predmeta and px.naziv = Programiranje 1 ))) 3. Izdvojiti trojke oblika (oznaka roka, godina roka, id predmeta) takve da ni u jednom drugom ispitnom roku nije polagan ovaj predmet, osim u izdvojenom. DEFINE ALIAS ispit1 FOR ispit DEFINE ALIAS ispit2 FOR ispit ispit[oznaka_roka, godina_roka, id_predmeta] (ispit1 times ispit2 where ispit1.id_predmeta = ispit2.id_predmeta and (ispit1.oznaka_roka<>ispit2.oznaka_roka or ispit1.godina_roka<>ispit2.godina_roka)) [ispit1.oznaka_roka,ispit1.godina_roka,ispit1.id_predmeta] RANGE OF iy IS ispit ix.oznaka_roka, ix.godina_roka, ix.id_predmeta where not exists iy (iy.id_predmeta = ix.id_predmeta and (ix.oznaka_roka<>iy.oznaka_roka or ix.godina_roka<>iy.godina_roka)) 4. Izdvojiti imena i prezimena studenata koji su u svakom ispitnom roku pali neki ispit. (((ispit where ocena = 5)[indeks,oznaka_roka,godina_roka] divideby ispitni_rok[oznaka_roka,godina_roka] ) join dosije)[ime,prezime] RANGE OF irx IS ispitni_rok 2

dx.ime,dx.prezime where not exists irx (not exists ix (ix.indeks = dx.indeks and ix.oznaka_roka = irx.oznaka_roka and ix.ocena = 5 and ix.godina_roka = irx.godina_roka )) 5. Izdvojiti imena i prezimena studenata koji su u januarskom roku 2015. godine položili tačno dva predmeta. DEFINE ALIAS ispit1 FOR ispit DEFINE ALIAS ispit2 FOR ispit DEFINE ALIAS ispit3 FOR ispit (( ((ispit1 where ocena>5 and oznaka_roka = jan and godina_roka = 2015)[ispit1.indeks, ispit1.id_predmeta] times (ispit2 where ocena>5 and oznaka_roka = jan and godina_roka = 2015)[ispit2.indeks, ispit2.id_predmeta] where ispit1.indeks = ispit2.indeks and ispit1.id_predmeta <> ispit2.id_predmeta )[ispit1.indeks] ((ispit1 where ocena>5 and oznaka_roka = jan and godina_roka = 2015)[ispit1.indeks, ispit1.id_predmeta] times (ispit2 where ocena > 5 and oznaka_roka = jan and godina_roka = 2015)[ispit2.indeks, ispit2.id_predmeta] times (ispit3 where ocena > 5 and oznaka_roka = jan and godina_roka = 2015)[ispit3.indeks, ispit3.id_predmeta] where ispit1.indeks = ispit2.indeks and ispit1.indeks = ispit3.indeks and ispit1.id_predmeta <> ispit2.id_predmeta and ispit1.id_predmeta <> ispit3.id_predmeta and ispit2.id_predmeta <> ispit3.id_predmeta )[ispit1.indeks] ) join dosije)[ime,prezime] RANGE OF iy IS ispit RANGE OF iz IS ispit dx.ime, dx.prezime where exists ix(ix.indeks = dx.indeks and ix.oznaka_roka = jan and ix.godina_roka = 2015 and exists iy (iy.indeks = dx.indeks and iy.oznaka_roka = jan and iy.godina_roka = 2015 and iy.id_predmeta <> ix.id_predmeta 3

and not exists iz(iz.indeks = dx.indeks and iz.oznaka_roka = jan and iz.godina_roka = 2015 and iz.id_predmeta <> ix.id_predmeta and iz.id_predmeta <> iy.id_predmeta))) 6. Izdvojiti nazive ispitnih rokova u kojima je student sa brojem indeksa 21/2014 položio sve one predmete koje je ikada i polagao. (((ispit where indeks = 20140021 and ocena>5) [oznaka_roka,godina_roka,id_predmeta] divideby (ispit where indeks = 20140021)[id_predmeta] ) join ispitni_rok)[naziv] RANGE OF irx IS ispitni_rok RANGE OF iy IS ispit irx.naziv where not exists ix (ix.indeks = 20140021 and (irx.oznaka_roka <> ix.oznaka_roka or irx.godina_roka <> ix.godina_roka) and not exists iy(iy.oznaka_roka = irx.oznaka_roka and iy.godina_roka = irx.godina_roka and iy.id_predmeta = ix.id_predmeta and iy.indeks = 20140021 and iy.ocena > 5)) 7. * Izdvojiti nazive ispitnih rokova u kojima su studenti iz Kraljeva pali sve ispite koje su polagali. (( ((dosije where mesto_rodjenja = Kraljevo ) join ispit)[godina_roka,oznaka_roka] ((dosije where mesto_rodjenja = Kraljevo ) join (ispit where ocena > 5) )[godina_roka,oznaka_roka] ) join ispitni_rok)[naziv] RANGE OF dx IS dosije RANGE OF irx IS ispitni_rok irx.naziv where exists ix (ix.oznaka_roka = irx.oznaka_roka and ix.godina_roka = irx.godina_roka and exists dx (dx.indeks = ix.indeks and dx.mesto_rodjenja = Kraljevo )) and not exists ix (ix.oznaka_roka = irx.oznaka_roka 4

and ix.godina_roka = irx.godina_roka and ix.ocena > 5 and exists dx (dx.indeks = ix.indeks and dx.mesto_rodjenja = Kraljevo )) 8. * Izdvojiti identifikatore predmeta koje je položio samo student sa brojem indeksa 21/2014. (ispit where indeks = 20140021 and ocena>5)[id_predmeta] (ispit where indeks <> 20140021 and ocena>5)[id_predmeta] px.id_predmeta where exists ix (ix.id_predmeta = px.id_predmeta and ix.indeks=20140021 and ix.ocena > 5) and not exists ix (ix.id_predmeta = px.id_predmeta and ix.indeks<>20140021 and ix.ocena > 5) 9. * Izdvojiti nazive predmeta koje su polagali svi studenti iz Beograda. ((ispit[id_predmeta,indeks] divideby (dosije where grad = Beograd )[indeks] )join predmet)[naziv] px.naziv where not exists dx (dx.grad= Beograd and not exists ix(ix.indeks=dx.indeks and ix.id_predmeta=px.id_predmeta) 10. * Izdvojiti ispitne rokove u kojima nisu polagani svi predmeti. ispitni_rok[oznaka_roka,godina_roka] (ispit[oznaka_roka,godina_roka,id_predmeta] divideby predmet[id_predmeta]) RANGE OF irx IS ispitni_rok irx.oznaka_roka,irx.godina_roka where exists px(not exists ix(ix.id_predmeta = px.id_predmeta 5

and ix.oznaka_roka = irx.oznaka_roka and ix.godina_roka = irx.godina_roka)) 11. * Izdvojiti predmete koje su polagali različiti studenti iz istog grada. Izdvojiti i grad studenata. DEFINE ALIAS dosije1 FOR dosije DEFINE ALIAS dosije2 FOR dosije DEFINE ALIAS ispit1 FOR ispit DEFINE ALIAS ispit2 FOR ispit ((dosije1 join ispit1)[indeks,mesto_rodjenja,id_predmeta] times (dosije2 join ispit2)[indeks,mesto_rodjenja,id_predmeta] where dosije1.indeks <> dosije2.indeks and dosije1.mesto_rodjenja = dosije2.mesto_rodjenja and ispit1.id_predmeta = ispit2.id_predmeta )[ispit1.id_predmeta,dosije1.indeks]) RANGE OF dy IS dosije RANGE OF iy IS ispit dx.mesto_rodjenja,px.id_predmeta where exists ix(ix.id_predmeta=px.id_predmeta and dx.indeks=ix.indeks and exists iy(iy.id_predmeta = ix.id_predmeta and iy.indeks <> ix.indeks and exists dy (dy.indeks = iy.indeks and dy.mesto_rodjenja = dx.mesto_rodjenja))) 12. * Izdvojiti imena studenata koji su iz grada koji je prvi na alfabetskoj listi gradova u kojima su rodeni studenti. DEFINE ALIAS dosije1 FOR dosije DEFINE ALIAS dosije2 FOR dosije dosije1[indeks,ime,prezime] ((dosije1 times dosije2 where dosije1.mesto_rodjenja > dosije2.mesto_rodjenja) [dosije1.indeks,dosije1.ime,dosije1.prezime]) RANGE OF dy IS dosije dx.ime, dx.prezime 6

where forall dy (dy.mesto_rodjenja >= dx.mesto_rodjenja) 13. * Izdvojiti imena i prezimena studenata koji su se upisali na fakultet u poslednjoj generaciji. DEFINE ALIAS dosije1 FOR dosije DEFINE ALIAS dosije2 FOR dosije (dosije1[indeks,ime,prezime] (dosije1 times dosije2 where dosije1.indeks/10000 < dosije1.indeks/10000 )[dosije1.indeks,dosije1.ime,dosije1.prezime] )[ime,prezime] RANGE OF dy IS dosije dx.ime, dx.prezime where not exists dy (dy.indeks/10000 > dx.indeks/10000) 2 SQL (vežbanje) 1. Izdvojiti indekse studenata koji su rodenji u istom gradu kao oni studenti koji su upisani na Matematički fakultet pre 2014.godine. select indeks from dosije where mesto_rodjenja in (select mesto_rodjenja from dosije where year(datum_upisa) < 2014) Obratiti pažnju na izostanak studenata sa nepoznatim mestom rodenja. NULL vrednosti iz spoljašnjeg upita se nikada neće poklopiti sa NULL vrednostima izdvojenih podupitom. Pogledati šta se izdvaja podupitom. 2. Napisati upit u SQL-u kojim se izdvajaju nazivi ispitnih rokova u kojima nijedan student nije pao na ispitu iz predmeta koji nosi 8 bodova ili za taj rok postoji neki drugi rok održan u istoj godini u kome je barem jedan student pao neki predmet od 8 bodova. Rezultat urediti opadajuće prema nazivu roka. select naziv from ispitni_rok ir where not exists (select * from ispit where id_predmeta in (select id_predmeta from predmet where bodovi = 8) 7

and godina_roka = ir.godina_roka and oznaka_roka = ir.oznaka_roka and ocena = 5) and exists (select * from ispit where and godina_roka = ir.godina_roka and oznaka_roka <> ir.oznaka_roka and ocena = 5 and id_predmeta in (select id_predmeta from predmet where bodovi = 8) ) 3. Izdvojiti indeks, ime, prezime i gradove iz kojih dolaze studenti sa manjim brojem indeksa studentkinja Marijani Savkovic. U slučaju da je grad nepoznat, ispisati nisku Nepoznato. select indeks, ime, prezime, coalesce(mesto_rodjenja, Nepoznato ) as mesto_rodjenja from dosije d where indeks < any (select indeks from dosije where ime = Marjana and prezime = Savkovic ) 4. Izdvojiti indeks, ime, prezime i mesto rodenja za svakog studenta. Ako je mesto rodjenja Beograd, prikazati NULL. select indeks, ime, prezime, nullif(mesto_rodjenja, Beograd ) as mesto_rodjenja from dosije d 5. Izdvojiti sve podatke o predmetima koje su položila bar dva studenta iz istog grada. select distinct p.* from predmet p join ispit i1 on i1.id_predmeta = p.id_predmeta join dosije d1 on d1.indeks = i1.indeks join ispit i2 on i2.id_predmeta = p.id_predmeta and i2.indeks <> i1.indeks join dosije d2 on d2.indeks = i2.indeks where d1.mesto_rodjenja = d2.mesto_rodjenja and i1.ocena > 5 and i2.ocena > 5 select distinct p.* from predmet p where exists (select * from ispit i1 join dosije d1 on d1.indeks = i1.indeks where i1.id_predmeta = p.id_predmeta and i1.ocena > 5 and exists (select * from ispit i2 join dosije d2 8

) on d2.indeks = i2.indeks where i2.id_predmeta = p.id_predmeta and i2.indeks <> i1.indeks and i2.ocena > 5 and d1.mesto_rodjenja = d2.mesto_rodjenja) 6. Pronaći koji studenti su jedini dobili 10 iz nekog predmeta. Za studenta sa brojem indeksa GGGGBBBB izdvojiti indeks u formatu BBBB/GGGG. select substr(char(indeks),5,4) / substr(char(indeks),1,4) from ispit i where ocena = 10 and not exists (select * from ispit where id_predmeta = i.id_predmeta and ocena = 10 and indeks <> i.indeks) 7. Izdvojiti u jednoj koloni ime i prezime studenata koji su dobili 8 ili 9 na ispitu iz nekog predmeta tačno 25. u mesecu. Uz ime i prezime studenta izdvojiti i broj meseci koji je protekao od tog polaganja do današnjeg dana kolonu imenovati kao broj godina. select ime prezime, month(current date - datum_ispita) broj_godina from ispit i join dosije d on i.indeks = d.indeks where ocena in (8,9) and day(datum_ispita) = 25 8. Prikazati parove naziva različitih predmeta za koje važi da ih nisu dva različita studenta položila u razmaku manjem od 15 dana. Prvi predmet u paru treba da ima manji identifikator od drugog predmeta u paru. select p1.naziv, p2.naziv from predmet p1, predmet p2 where not exists (select * from ispit i1 where id_predmeta = p1.id_predmeta and ocena > 5 and exists(select * from ispit i2 where id_predmeta = p2.id_predmeta and ocena > 5 and indeks <> i1.indeks and abs(days(datum_ispita) - days(i1.datum_ispita)) < 15) ) and p1.id_predmeta < p2.id_predmeta select p1.naziv, p2.naziv from predmet p1, predmet p2 where p1.id_predmeta < p2.id_predmeta and not exists (select * from ispit i1 join ispit i2 9

on i1.indeks <> i2.indeks where i1.id_predmeta = p1.id_predmeta and i1.ocena > 5 and i2.id_predmeta = p2.id_predmeta and i2.ocena > 5 and abs(days(i2.datum_ispita) - days(i1.datum_ispita)) < 15 ) 9. Izdvojiti parove student-ispitni rok takve da je student roden u godini kada je održan ispitni rok. Izdvojiti indeks studenta, godinu rodenja studenta i naziv ispitnog roka. Prikazati i studente i ispitne rokove koji nemaju odgovarajućeg para i za njih umesto podataka o paru ispisati NULL vrednosti. select indeks, year(datum_rodjenja) godina, naziv from dosije d full outer join ispitni_rok ir on year(datum_rodjenja) = ir.godina_roka 10