Базе података 2/К1 2024 — разлика између измена
Нема описа измене |
(→Решење) |
||
Ред 21: | Ред 21: | ||
Написати исказ релационе алгебре који даје шифре пацијената који је лечио исти лекар, али у различитим болницама.<ref>При обилаксу професор је напоменуо да се упит односи на истог пацијента.</ref> | Написати исказ релационе алгебре који даје шифре пацијената који је лечио исти лекар, али у различитим болницама.<ref>При обилаксу професор је напоменуо да се упит односи на истог пацијента.</ref> | ||
=== Решење === | === Решење === | ||
<math> | |||
\begin{align*} | |||
& \Pi_{IDLek, IDPac, IDBol} (Pregled~\infty~Karton) \rightarrow Pomocna \\ | |||
& \Pi_{IDPac} ( (\rho \, P1(Pomocna)) \, \infty_{P1.IDPac =P2.IDPac,\: P1.IDBol \neq P2.IDBol, \: P1.IDLek = P2.IDLek} \, (\rho \, P2(Pomocna))) \rightarrow Resenje \\ | |||
\end{align*} | |||
</math> | |||
== 2. задатак == | == 2. задатак == |
Верзија на датум 31. март 2024. у 12:14
- Овај рок није решен. Помозите SI Wiki тако што ћете га решити.
Први колоквијум 2024. године је одржан 31. марта и трајао је сат времена. Било је дозвољено коришћење алата Relax.
Поставка
У систему болничког лечења прате се информације о лекарима који раде у болници и прегледима који су ти лекари обавили. Сваки пацијент може имати највише један картон у свакој од болница. Сваки картон се повремено оверава када се уписује назив послодавца преко кога је пацијент осигуран. У случајевима када је то потребно пацијенти могу бити хоспитализовани, тј. примљени на болничко лечење (датум отпуштања се попуњава тек након што се лечење заврши, а до тада је NULL).
Одговарајућа шема базе је:
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. задатак
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Написати исказ релационе алгебре који даје шифре пацијената који је лечио исти лекар, али у различитим болницама.[1]
Решење
2. задатак
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Написати исказ релационе алгебре који даје шифре пацијената који су тачно два пута били хоспиталозовани због исте дијагнозе, без обзира у којој болници. Дозвољено је коришћење оператор за преименовање, али не и за груписање.
Решење
3. задатак
За дати SQL упит дати еквивалентан исказ релационе алгебре.[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
)
)
Решење
Дати упит дохвата све пацијенте старије од 40 година који имају картон у свакој од болница. Могуће решење у релационој алгреби је дато испод: