Add prev exams and ov8
This commit is contained in:
parent
bb35fdcdd7
commit
17d7ee1aed
BIN
ov8/ing_db_ov8_egendb(2).docx
Normal file
BIN
ov8/ing_db_ov8_egendb(2).docx
Normal file
Binary file not shown.
BIN
ov8/ing_db_ov8_egendb(2).docx.pdf
Normal file
BIN
ov8/ing_db_ov8_egendb(2).docx.pdf
Normal file
Binary file not shown.
BIN
ov8/solution.pdf
Normal file
BIN
ov8/solution.pdf
Normal file
Binary file not shown.
41
prev_exams/ex17/oppg1b.md
Normal file
41
prev_exams/ex17/oppg1b.md
Normal file
@ -0,0 +1,41 @@
|
||||
PERSON(__person_id__, navn, epost, telefon)
|
||||
|
||||
ANSATT(__person_id__\*, timelønn, ansettelsesår)
|
||||
|
||||
LEDER(__ansatt_id__\*)
|
||||
|
||||
PROSJEKTLEDER(__leder_id__\*)
|
||||
|
||||
INGENIØR(__ansatt_id__\*)
|
||||
|
||||
ADMINISTRATIV(__ansatt_id__\*)
|
||||
|
||||
EKSTERN(__person_id__\*, rolle, tekst)
|
||||
|
||||
KUNDE(__kundenr__\*, navn, addresse, epost, telefon)
|
||||
|
||||
|
||||
PROSJEKT(__prosjektnr__, kunde\_id*, styringskomite\_id\*, referansegruppe\_id\*, kontrollgruppe\_id\*, effektmål_id\*, navn)
|
||||
|
||||
DELPROSJEKT(__prosjektnr__*, __delprosjektnr__, forutsetter\_delprosjektnr\*, budsjett, sluttdato\_plan, sluttdato\_faktisk)
|
||||
|
||||
FASE(__fasenr__, (prosjektnr, delprosjektnr)\*, budsjett, startdato\_plan, startdato\_faktisk)
|
||||
|
||||
AKTIVITET(__aktivitetsnr__, forutsetter\_aktivitetsid\*, beskrivelse, budsjett\_ing, budsjett\_adm)
|
||||
|
||||
|
||||
GRUPPE(__gruppe_id__)
|
||||
|
||||
STYRINGSKOMITE(__gruppe_id__\*)
|
||||
REFERANSEGRUPPE(__gruppe_id__\*)
|
||||
KONTROLLGRUPPE(__gruppe_id__\*)
|
||||
|
||||
GRUPPEMEDLEMSKAP(__gruppe_id__\*, __person_id*__)
|
||||
|
||||
ARBEIDSTIMER(__ukenr__, __aktivitetsnr__\*, __ansatt_id__\*, timer)
|
||||
|
||||
MÅL(__målnr__, formulering, status)
|
||||
EFFEKTMÅL(__målnr__\*)
|
||||
RESULTATDELMÅL(__målnr__\*)
|
||||
|
||||
RESULTATDELMÅLTILHØRIGHET(__resultatdelmål__\*, __prosjektnr__\*, __delprosjektnr__\*)
|
90
prev_exams/ex18/oppg1.rel
Normal file
90
prev_exams/ex18/oppg1.rel
Normal file
@ -0,0 +1,90 @@
|
||||
kunde (
|
||||
__kundenr__
|
||||
navn,
|
||||
adresse,
|
||||
telefon,
|
||||
epost
|
||||
)
|
||||
|
||||
dyreart (
|
||||
__art_id__,
|
||||
navn,
|
||||
)
|
||||
rase (
|
||||
__rase_id__,
|
||||
art_id*,
|
||||
navn,
|
||||
)
|
||||
|
||||
vaksine(
|
||||
__vaksine_id__,
|
||||
navn
|
||||
)
|
||||
|
||||
vaksine_krav (
|
||||
__vaksine_krav_id__,
|
||||
vaksine_id*,
|
||||
art_id*,
|
||||
rase_id*,
|
||||
alder,
|
||||
)
|
||||
|
||||
vaksine_utfort (
|
||||
__vaksine_utf_id__,
|
||||
vaksine_krav_id*,
|
||||
dyr_id*,
|
||||
dato,
|
||||
)
|
||||
|
||||
dyr (
|
||||
__dyr_id__,
|
||||
rase_id*
|
||||
eier_id*
|
||||
fode_aar,
|
||||
bur_alene,
|
||||
bur_husstand
|
||||
)
|
||||
|
||||
dyr_kunde_henting (
|
||||
__dyr_id__*
|
||||
__kundenr__*
|
||||
)
|
||||
|
||||
opphold (
|
||||
__dyr_id__,
|
||||
dato_fra,
|
||||
dato_til,
|
||||
)
|
||||
|
||||
bhageavtale (
|
||||
__bhageavtale_id__,
|
||||
dyr_id*,
|
||||
dato_fra,
|
||||
avtaletype, -- 0=fast med prosent, 1=klippekort (klipp=antall gjenværende), 2=dropin
|
||||
prosent,
|
||||
klipp,
|
||||
)
|
||||
bhageopphold (
|
||||
__bhageopphold_id__, -- Denne ID-en er nok til å fastslå klippekort/avtale-id
|
||||
bhageavtale_id*,
|
||||
dato,
|
||||
)
|
||||
|
||||
arrangement (
|
||||
__arrangement_id__,
|
||||
navn,
|
||||
beskrivelse,
|
||||
dato_fra,
|
||||
dato_til,
|
||||
tid_fra,
|
||||
tid_til,
|
||||
pris
|
||||
)
|
||||
|
||||
arrangement_paamelding (
|
||||
__paamelding_id__,
|
||||
arragenement_id*,
|
||||
dyr_id*,
|
||||
mottatt_diplom,
|
||||
)
|
||||
|
44
prev_exams/ex18/oppg2.sql
Normal file
44
prev_exams/ex18/oppg2.sql
Normal file
@ -0,0 +1,44 @@
|
||||
-- Oppgave 2 a (forslag 1)
|
||||
SELECT DISTINCT STED.stedsnavn FROM ETAPPE
|
||||
LEFT JOIN STED ON STED.sted_id = ETAPPE.til_stedid OR STED.sted_id = ETAPPE.fra_stedid
|
||||
LEFT JOIN LØP_ETAPPE ON LØP_ETAPPE.enr = ETAPPE.enr
|
||||
LEFT JOIN LØP ON LØP.lnr = LØP_ETAPPE.lnr
|
||||
WHERE LØP.lnr = 1 AND LØP.aar = 2018
|
||||
ORDER BY STED.stedsnavn;
|
||||
|
||||
-- Oppgave 2 a (forslag 2)
|
||||
SELECT DISTINCT S.stedsnavn
|
||||
FROM STED S, ETAPPE E, LØP_ETAPPE LE, LØP L
|
||||
WHERE S.sted_id = E.til_stedid OR S.sted_id = E.fra_stedid
|
||||
AND E.enr = LE.enr
|
||||
AND LE.lnr = L.lnr
|
||||
AND L.lnr = 1 AND LE.aar = 2018
|
||||
ORDER BY S.stedsnavn;
|
||||
|
||||
-- Oppgave 2 b
|
||||
SELECT e.distanse, s_f.stedsnavn AS fra, s_t.stedsnavn AS til FROM ETAPPE e
|
||||
LEFT JOIN STED s_t ON s_t.sted_id = e.til_stedid
|
||||
LEFT JOIN STED s_f ON s_f.sted_id = e.fra_stedid
|
||||
LEFT JOIN LØP_ETAPPE le ON le.enr = e.enr
|
||||
LEFT JOIN LØP l ON l.lnr = le.lnr
|
||||
WHERE l.lnr = 1 AND l.aar = 2018
|
||||
ORDER BY le.løpenr;
|
||||
|
||||
-- Oppgave 2 c
|
||||
SELECT DISTINCT d.deltnr, d.navn FROM DELTAKER d
|
||||
WHERE d.deltnr IN
|
||||
(SELECT d.deltnr, COUNT(*) AS antall FROM DELTAKER d
|
||||
LEFT JOIN TIDTAKING t ON t.deltnr = d.deltnr
|
||||
WHERE t.lnr = 1 AND t.aar = 2018 AND t.fullført = 1
|
||||
GROUP BY d.deltnr
|
||||
HAVING antall = 4);
|
||||
|
||||
-- Oppgave 2 d
|
||||
CREATE VIEW finnmark_deltaker AS
|
||||
SELECT d.deltnr, COUNT(e.enr) AS etapper, SUM(t.tid) AS tot_tid FROM DELTAKER d
|
||||
LEFT JOIN TIDTAKING t ON t.deltnr = d.deltnr
|
||||
LEFT JOIN LØP l ON l.lnr = t.lnr
|
||||
LEFT JOIN LØP_ETAPPE le ON le.lnr = l.lnr
|
||||
LEFT JOIN ETAPPE e ON e.enr = le.enr
|
||||
WHERE l.løpsnavn = "Finnmarksløpet" AND l.aar = 2018 AND t.fullført = 1
|
||||
GROUP BY d.delntr;
|
135
prev_exams/ex19/oppg1.puml
Normal file
135
prev_exams/ex19/oppg1.puml
Normal file
@ -0,0 +1,135 @@
|
||||
@startuml
|
||||
|
||||
|
||||
Entity sykehus {
|
||||
* sykehusnr
|
||||
--
|
||||
* navn
|
||||
* adresse
|
||||
* telefon
|
||||
}
|
||||
|
||||
Entity bygning {
|
||||
* bygningbokstav {PPK}
|
||||
--
|
||||
* areal
|
||||
}
|
||||
|
||||
Entity avdeling {
|
||||
* avdelingsnr
|
||||
--
|
||||
* navn
|
||||
* forkortelse
|
||||
* resepsjon_etasje
|
||||
}
|
||||
|
||||
Entity avdeling_poliklinisk {
|
||||
}
|
||||
|
||||
Entity avdeling_senger {
|
||||
* sengeplasser
|
||||
}
|
||||
|
||||
Entity avdeling_labratorium {
|
||||
* tilbud
|
||||
}
|
||||
|
||||
Entity person {
|
||||
* personnr
|
||||
--
|
||||
* fornavn
|
||||
* etternavn
|
||||
* adresse
|
||||
* telefon
|
||||
}
|
||||
|
||||
Entity ansatt {
|
||||
* ansettelsesår
|
||||
* lisensår
|
||||
* kompetanse
|
||||
}
|
||||
|
||||
Entity sykepleier {
|
||||
}
|
||||
Entity lege {
|
||||
}
|
||||
Entity fastlege {
|
||||
}
|
||||
|
||||
ansatt -|> person
|
||||
sykepleier --|> ansatt
|
||||
lege --|> ansatt
|
||||
fastlege --|> lege
|
||||
|
||||
Entity fastlegeforhold {
|
||||
* dato
|
||||
--
|
||||
* personnr
|
||||
* fastlegenr
|
||||
}
|
||||
|
||||
fastlegeforhold "1..*" -- "0..1" person
|
||||
fastlegeforhold "1..*" -- "1..1" fastlege
|
||||
|
||||
|
||||
ansatt "0..*" - "1..1" avdeling : jobber i
|
||||
|
||||
avdeling_labratorium --|> avdeling
|
||||
avdeling_senger --|> avdeling
|
||||
avdeling_poliklinisk --|> avdeling
|
||||
|
||||
avdeling "0..*" - "1..1" bygning : er i
|
||||
|
||||
/' avdeling "0..*" -- "1..1" sykehus '/
|
||||
bygning "0..*" - "1..1" sykehus : er del av
|
||||
|
||||
|
||||
|
||||
/' PASIENT '/
|
||||
|
||||
Entity pasient {
|
||||
}
|
||||
|
||||
pasient --|> person
|
||||
|
||||
Entity henvisning {
|
||||
* henvisningsnr
|
||||
--
|
||||
* tekst
|
||||
* dato
|
||||
}
|
||||
|
||||
diamond henvisningsdiamond
|
||||
|
||||
henvisningsdiamond .. henvisning
|
||||
henvisningsdiamond "0..*" -- "1..1" avdeling : henviser til
|
||||
henvisningsdiamond "0..*" -- "1..1" fastlege : henvist av
|
||||
henvisningsdiamond "0..*" -- "1..1" pasient
|
||||
|
||||
Entity innkalling {
|
||||
* innkallingsnr
|
||||
--
|
||||
* dato
|
||||
}
|
||||
innkalling "0..1" -- "0..1" henvisning : som følge av
|
||||
innkalling "0..*" -- "1..1" avdeling : til
|
||||
innkalling "0..*" -- "1..1" pasient
|
||||
|
||||
|
||||
Entity opphold {
|
||||
* oppholdnr
|
||||
--
|
||||
* dato
|
||||
* avslutningsdato
|
||||
* notattekst
|
||||
}
|
||||
opphold "0..*" -- "1..1" avdeling : til
|
||||
opphold "0..*" -- "0..1" pasient
|
||||
opphold "0..1" -- "0..1" innkalling : som følge av
|
||||
innkalling "0..1" -- "0..1" opphold : som følge av
|
||||
opphold "0..*" -- "1..*" ansatt
|
||||
opphold "0..*" -- "1..1" lege : ansvarlig
|
||||
|
||||
|
||||
|
||||
@enduml
|
29
prev_exams/ex19/oppg1.rel
Normal file
29
prev_exams/ex19/oppg1.rel
Normal file
@ -0,0 +1,29 @@
|
||||
SYKEHUS(__sykehusnr__, navn, adresse, telefon)
|
||||
BYGNING(__sykehusnr__*, __bygningbokstav__, areal)
|
||||
|
||||
AVDELING(__avdelingsnr__, (sykehusnr, bygningbokstav)*, navn, forkortelse, resepsjon_etasje)
|
||||
|
||||
AVDELINGPOLIKLINISK(__poliavdelingsnr__*)
|
||||
AVDELINGSENGER(__sengeavdelingsnr__*, sengeplasser)
|
||||
AVDELINGLABRATORIUM(__labavdelingsnr__*, tilbud)
|
||||
|
||||
|
||||
PERSON(__personnr__, fornavn, etternavn, adresse, telefon)
|
||||
PASIENT(__pasientpersonnr__*)
|
||||
ANSATT(__ansattpersonnr__*, ansettelsesår, lisensår, kompetanse)
|
||||
LEGE(__legepersonnr__*)
|
||||
FASTLEGE(__fastlegepersonnr__*)
|
||||
SYKEPLEIER(__sykepleierpersonnr__*)
|
||||
|
||||
FASTLEGEFORHOLD(__fastlegepersonnr__*, __personnr__*, __dato_start__)
|
||||
|
||||
HENVISNING(__henvisningsnr__, fastlegepersonnr*, avdelingsnr*, pasientpersonnr*, tekst, dato)
|
||||
|
||||
INNKALLING(__innkallingsnr__, pasientpersonnr*, avdelingsnr*, resultatav_henvisningsnr*, dato)
|
||||
|
||||
OPPHOLD(__oppholdsnr__, ansvarlig_legepersonnr*, pasientpersonnr*, avdelingsnr*, resultatav_innkallingsnr*, dato_start, dato_slutt, notat)
|
||||
|
||||
(På disse tre (henvisning, innkalling, opphold) kunne vi kanskje laget primærnøkler av flere attributter (avdeling, pasient, lege, dato, etc.), men vi har ingen garanti for at disse er unike. Samme lege kan for eksempel henvise en pasient til samme avdeling av flere årsaker til samme tid.)
|
||||
|
||||
|
||||
OPPHOLDTILHØRIGHET(__oppholdsnr__*, __ansattpersonnr__*)
|
Loading…
Reference in New Issue
Block a user