Baze podataka 2/K1 2024

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu
Ovaj rok nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Prvi kolokvijum 2024. godine je održan 31. marta i trajao je sat vremena. Bilo je dozvoljeno korišćenje alata Relax.

Postavka

U sistemu bolničkog lečenja prate se informacije o lekarima koji rade u bolnici i pregledima koji su ti lekari obavili. Svaki pacijent može imati najviše jedan karton u svakoj od bolnica. Svaki karton se povremeno overava kada se upisuje naziv poslodavca preko koga je pacijent osiguran. U slučajevima kada je to potrebno pacijenti mogu biti hospitalizovani, tj. primljeni na bolničko lečenje (datum otpuštanja se popunjava tek nakon što se lečenje završi, a do tada je NULL).
Odgovarajuća šema baze je:

Mesto(IDMes, Naziv)
Bolnica (IDBol, Naziv, Kapacitet, Iskoriscenost, IDMes)
Pacijent(IDPac, Ime, JMBG, GodineStarosti, IDMes)
Lekar(IDLek, Ime, JMBG, Specijalizacija)
Karton(IdKar, IDPac, IDBol)
Pregled(IdPre, Datum, ObjektivniNalaz, DIjagnoza, IDKar, IdLek)
Hospitalizacija(IDHos, DatumPri, DatumOtp, Dijagnoza, KlinickaSlika, IDPac, IDBol)
Overa(IDKar, RedBr, DatumOd, NazivPoslodavca)
Radi(IDLek, IDBol)
Iskoriscenost: N- Niska, S - Srednja, V - Visoka

1. zadatak

Napisati iskaz relacione algebre koji daje šifre pacijenata koji je lečio isti lekar, ali u različitim bolnicama.[1]

Rešenje

2. zadatak

Napisati iskaz relacione algebre koji daje šifre pacijenata koji su tačno dva puta bili hospitalozovani zbog iste dijagnoze, bez obzira u kojoj bolnici. Dozvoljeno je korišćenje operator za preimenovanje, ali ne i za grupisanje.

Rešenje

3. zadatak

Za dati SQL upit dati ekvivalentan iskaz relacione algebre.[2]

SELECT IDPac
FROM Pacijent P
WHERE P.GodineStarosti>40 AND NOT EXISTS(
	SELECT IDBol
    FROM Bolnica B
    WHERE B.IDBol NOT IN(
    	SELECT K.IDBol
        FROM Knjizica K
        WHERE K.IDPac = P.IDPac
    )
)

Rešenje

Dati upit dohvata sve pacijente starije od 40 godina koji imaju karton u svakoj od bolnica. Moguće rešenje u relacionoj algrebi je dato ispod:

Napomene

  1. Pri obilaksu profesor je napomenuo da se upit odnosi na istog pacijenta.
  2. Ovde je bilo moguće koristiti sve operatore.