PostgreSQL andmebaasis on loodud tabelid järgmiste lausetega.

CREATE TABLE Isik (
isikukood d_eesti_isikukood,
kasutajanimi d_kasutajanimi,
e_mail d_e_mail,
eesnimi d_isiku_nime_osa,
perenimi d_isiku_nime_osa,
parool d_parool,
elukoht d_elukoht,
CONSTRAINT Isik_isikukood_on_unikaalne UNIQUE(isikukood),
CONSTRAINT Isik_e_mail_on_unikaalne UNIQUE(e_mail),
CONSTRAINT Isik_kasutajanimi_on_unikaalne UNIQUE(kasutajanimi),
CONSTRAINT Kas_isik_eesnimi_voi_perenimi_voi_molemad_maaratud CHECK((eesnimi IS NOT NULL) OR (perenimi IS NOT NULL))
) WITH (fillfactor=90);

CREATE TABLE Yliopilane (
matrikli_nr d_matrikli_nr,
yliopilase_seisundi_liik_R_id SMALLINT NOT NULL DEFAULT 1,
pilt BYTEA,
CONSTRAINT Matrikli_nr_on_primaarvoti PRIMARY KEY (matrikli_nr),
CONSTRAINT Yliopilane_isikukood_on_unikaalne UNIQUE(isikukood),
CONSTRAINT Yliopilane_e_mail_on_unikaalne UNIQUE(e_mail),
CONSTRAINT Yliopilane_kasutajanimi_on_unikaalne UNIQUE(kasutajanimi),
CONSTRAINT Yliopilane_on_mingis_seisundis FOREIGN KEY (yliopilase_seisundi_liik_R_id) REFERENCES Yliopilase_seisundi_liik_R(yliopilase_seisundi_liik_R_id) ON UPDATE CASCADE
) INHERITS (Isik) WITH (fillfactor=90);

CREATE TABLE Tootaja (
tootaja_id SERIAL, 
amet_R_id SMALLINT NOT NULL,
tootaja_seisundi_liik_R_id SMALLINT NOT NULL DEFAULT 1,
CONSTRAINT Tootaja_id_on_primaarvoti PRIMARY KEY (tootaja_id),
CONSTRAINT Tootaja_isikukood_on_unikaalne UNIQUE(isikukood),
CONSTRAINT Tootaja_e_mail_on_unikaalne UNIQUE(e_mail),
CONSTRAINT Tootaja_kasutajanimi_on_unikaalne UNIQUE(kasutajanimi),
CONSTRAINT Tootajal_on_amet FOREIGN KEY (amet_R_id) REFERENCES Amet_R(amet_R_id) ON UPDATE CASCADE,
CONSTRAINT Tootaja_on_mingis_seisundis FOREIGN KEY (tootaja_seisundi_liik_R_id) REFERENCES Tootaja_seisundi_liik_R(tootaja_seisundi_liik_R_id) ON UPDATE CASCADE
) INHERITS (Isik) WITH (fillfactor=90);

CREATE TABLE Hoone (
hoone_kood d_hoone_kood,
nimi d_nimetus,
CONSTRAINT Hoone_kood_on_primaarvoti PRIMARY KEY (hoone_kood),
CONSTRAINT Hoone_nimi_on_unikaalne UNIQUE (nimi)
);

CREATE TABLE Ruum (
ruum_id SERIAL,
hoone_kood d_hoone_kood,
ruum_kood d_ruum_kood,
korrus SMALLINT NOT NULL,
CONSTRAINT Ruum_id_on_primaarvoti PRIMARY KEY (ruum_id),
CONSTRAINT Hoone_koodi_ruumi_koodi_korruse_kombinatsioon_on_unikaalne UNIQUE (hoone_kood, ruum_kood),
CONSTRAINT Ruum_asub_hoones FOREIGN KEY (hoone_kood) REFERENCES Hoone (hoone_kood) ON UPDATE CASCADE,
CONSTRAINT Korrus_peab_olema_vahemikus_miinus_5_ja_10 CHECK (korrus BETWEEN -5 AND 10)
);

CREATE TABLE Vastuvott (
vastuvott_id SERIAL,
ruum_id INTEGER,
vastuvotja_id INTEGER NOT NULL,
toimumise_kuupaev d_kuupaev_kohustuslik,
kommentaar d_kirjeldus,
CONSTRAINT Vastuvott_id_on_primaarvoti PRIMARY KEY (vastuvott_id),
CONSTRAINT Vastuvott_toimub_ruumis FOREIGN KEY (ruum_id) REFERENCES Ruum (ruum_id),
CONSTRAINT Tootaja_votab_vastu FOREIGN KEY (vastuvotja_id) REFERENCES Tootaja (tootaja_id) ,
CONSTRAINT Kas_vastuvott_ruum_voi_kommentaar_voi_molemad_maaratud CHECK (ruum_id IS NOT NULL OR kommentaar IS NOT NULL)
) WITH (fillfactor=90);

CREATE TABLE Vastuvotuaeg (
vastuvott_id INTEGER NOT NULL,
alguse_kellaaeg TIME NOT NULL,
CONSTRAINT Vastuvott_id_alguse_kellaaeg_kombinatsioon_on_primaarvoti PRIMARY KEY (vastuvott_id, alguse_kellaaeg),
CONSTRAINT Vastuvotuaeg_on_seotud_vastuvotuga FOREIGN KEY (vastuvott_id) REFERENCES Vastuvott (vastuvott_id) ON DELETE CASCADE
);

CREATE TABLE Vastuvotule_tulek (
vastuvott_id INTEGER NOT NULL,
alguse_kellaaeg TIME NOT NULL,
matrikli_nr d_matrikli_nr,
kommentaar d_kirjeldus,
CONSTRAINT Vastuvott_id_algus_kellaaeg_kombinatsioon_on_tuleku_primaarvoti PRIMARY KEY (vastuvott_id, alguse_kellaaeg),
CONSTRAINT Vastuvotule_tulek_on_seotud_vastuvotuga FOREIGN KEY (vastuvott_id, alguse_kellaaeg) REFERENCES Vastuvotuaeg (vastuvott_id, alguse_kellaaeg) ON DELETE CASCADE,
CONSTRAINT Vastuvotule_tulek_on_seotud_yliopilasega FOREIGN KEY (matrikli_nr) REFERENCES Yliopilane (matrikli_nr) ON UPDATE CASCADE
) WITH (fillfactor=90);

Palun loo nende tabelite põhjal vaade, mis realiseerib järgnevas kasutusjuhus oleva operatsiooni 8.1.
Kuna üliõpilasega seotud vastuvõtule tulekud leitakse tema kasutajanime järgi, siis vaates peab olema üliõpilase kasutajanimi.
Palun kasuta CREATE OR REPLACE lauset. 
Vaate nimi peab olema mitteaktiivsed_vastuvotule_tulekud
Vaatel peab olema security_barrier omadus.
Palun loo ka vaate kommenteerimise lause. Kommentaaris tuleb muuhulgas öelda, et vaade on tehisintellekti genereeritud.
Palun loo ka lause, millega antakse vaate lugemise õigus kasutajale yliopilane_vastuvotud
Palun loo ka vaate kustutamise lause.

Kasutusjuht: Üliõpilane, vaata oma vastuvõtuaegu
Primaarne tegutseja: Üliõpilane
Osapooled ja nende huvid:
Üliõpilane: Soovib teada, millistele vastuvõtuaegadele ta on ennast registreerinud, et jõuda õigeks ajaks kohale.
Õppejõud: Soovib, et üliõpilased teaksid, millistele vastuvõtuaegadele nad on registreerinud ning tuleksid kohale õigeks ajaks.
Käivitav sündmus: Üliõpilane soovib teada, millistele vastuvõtuaegadele ta on registreerinud.
Eeltingimused: Üliõpilane on autenditud ja autoriseeritud. Üliõpilasega seotud vastuvõtule tulek ning sellega seotud vastuvõtuaeg ja vastuvõtt on registreeritud.
Järeltingimused: On leitud kõik üliõpilasega seotud vastuvõtule tulekud.
Stsenaarium (tüüpiline sündmuste järjestus):
1. Üliõpilane avaldab soovi vaadata enda aktiivseid vastuvõtule tulekuid.
2. Käivitub kasutusjuht "Otsi enda aktiivseid vastuvõtule tulekuid".
Laiendused  (või alternatiivne sündmuste käik):
3. Üliõpilane avaldab soovi vaadata enda mitteaktiivseid vastuvõtule tulekuid. Need tulekud on seotud vastuvõtuaegadega, mille algus on minevikus.
4. Süsteem kuvab nimekirja üliõpilase mitteaktiivsetest vastuvõtule tulekutest. Süsteem kuvab iga vastuvõtule tuleku kohta vastuvõtu kuupäeva, vastuvõtuaja kellaaja, õppejõu ees- ja perenime, õppejõu e-posti aadressi, hoone ja ruumi, kus vastuvõtt toimub, üliõpilase lisatud kommentaari ning vastuvõtuga seotud kommentaari. Vastuvõtule tulekud on sorteeritud kuupäeva alusel kahanevalt ning selle sees kellaaja alusel kahanevalt (OP8.1).
4a – Kui üliõpilasel ei ole ühtegi seotud mitteaktiivset vastuvõtule tulekut, siis ei kuva süsteem vastuvõtule tulekute andmeid.