diff --git a/ov6/demodata.sql b/ov6/demodata.sql
new file mode 100644
index 0000000..ce98cae
--- /dev/null
+++ b/ov6/demodata.sql
@@ -0,0 +1,27 @@
+INSERT INTO bedrift(orgnummer, navn, epost, telefon) VALUES (100, "Bjarnes Butikk", "bb@gmail.com", "12345670");
+INSERT INTO bedrift(orgnummer, navn, epost, telefon) VALUES (200, "Vidars Verksted", "vv@gmail.com", "12345671");
+INSERT INTO bedrift(orgnummer, navn, epost, telefon) VALUES (300, "Arnes Arkivtjenester", "aa@gmail.com", "12345672");
+
+INSERT INTO kandidat(telefon, epost, fornavn, etternavn) VALUES ("12345678", "k_a@gmail.com", "Kari", "Aas");
+INSERT INTO kandidat(telefon, epost, fornavn, etternavn) VALUES ("12345679", "a_b@gmail.com", "Anne", "Berg");
+INSERT INTO kandidat(telefon, epost, fornavn, etternavn) VALUES ("12345680", "g_s@gmail.com", "Gunnar", "Svendsen");
+INSERT INTO kandidat(telefon, epost, fornavn, etternavn) VALUES ("12345681", "s_w@gmail.com", "Svein", "Wold");
+INSERT INTO kandidat(telefon, epost, fornavn, etternavn) VALUES ("12345682", "h_j@gmail.com", "Hans", "Jensen");
+
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345678", "Kundeservice");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345678", "Kasse");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345679", "Kundeservice");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345679", "Kasse");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345680", "Excel");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345680", "Word");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345681", "Excel");
+INSERT INTO kandidatkvalifikasjon(telefon, kvalifikasjon) VALUES ("12345681", "Word");
+
+INSERT INTO oppdrag(orgnummer, kvalifikasjon, starttid, slutttid) VALUES (100, "Kundeservice", DATE("2023-01-01"), DATE("2023-01-31"));
+INSERT INTO oppdrag(orgnummer, kvalifikasjon, starttid, slutttid) VALUES (300, "Kasse", DATE("2023-02-01"), DATE("2023-02-28"));
+INSERT INTO oppdrag(orgnummer, kvalifikasjon, starttid, slutttid) VALUES (300, "Excel", DATE("2023-03-01"), DATE("2023-03-31"));
+INSERT INTO oppdrag(orgnummer, kvalifikasjon, starttid, slutttid) VALUES (300, "Word", DATE("2023-04-01"), DATE("2023-04-30"));
+
+INSERT INTO jobbhistorikk(oppdrag_id, kandidat_tlf, starttid, slutttid, arbeidstimer) VALUES (1, "12345678", DATE("2022-01-01"), DATE("2022-01-31"), 160);
+INSERT INTO jobbhistorikk(oppdrag_id, kandidat_tlf, starttid, slutttid, arbeidstimer) VALUES (2, "12345679", DATE("2022-02-01"), DATE("2022-02-24"), 140);
+INSERT INTO jobbhistorikk(oppdrag_id, kandidat_tlf, starttid, slutttid, arbeidstimer) VALUES (3, "12345680", DATE("2022-03-01"), DATE("2022-03-16"), 160);
diff --git a/ov6/er_modell.png b/ov6/er_modell.png
index 4746aae..99164be 100644
Binary files a/ov6/er_modell.png and b/ov6/er_modell.png differ
diff --git a/ov6/er_modell.puml b/ov6/er_modell.puml
index 1e70d69..2fa36d6 100644
--- a/ov6/er_modell.puml
+++ b/ov6/er_modell.puml
@@ -13,7 +13,7 @@ entity "Kandidat" as k {
entity "KandidatKvalifikasjon" as kk {
kandidat_id {PK} : Integer
--
- kvalifikasjon : String
+ kvalifikasjon {PK} : String
}
entity "Bedrift" as b {
diff --git a/ov6/losning.md b/ov6/losning.md
index f20005e..355ac13 100644
--- a/ov6/losning.md
+++ b/ov6/losning.md
@@ -3,5 +3,156 @@ geometry: margin=30mm
author: Felix Albrigtsen
...
-# Øving
+# Øving 6
+
+## Oppgave a
+### Lag en datamodell (ER-modell der dere bruker UML-notasjon)
+ ![ER-Modell](er_modell.png)
+
+## Oppgave b
+### Oversett til relasjonsmodellen
+
+> kandidat(telefon\*, fornavn, etternavn, epost)
+
+> kandidatkvalifikasjon(kandidat\_id*,kvalifikasjon*)
+
+> bedrift(orgnummer\*, navn, epost, telefon)
+
+> oppdrag(oppdrag\_id\*, orgnummer, kvalifikasjon, starttid, sluttid)
+
+> jobbhistorikk(oppdrag\_id\*, kandidat tlf, starttid, sluttid, arbeidstimer)
+
+> sluttatest(oppdrag_id\*, attest)
+
+### Er det rimelig at noen av fremmednøklene kan være NULL? Hva betyr det i tilfelle?
+
+Jeg bruker fire fremmednøkler i besvarelsen.
+- oppdrag.orgnummer kan ikke være NULL, da alle jobber må høre til en bedrift.
+- jobbhistorikk.oppdrag\_id kan ikke være NULL, da man ikke kan ha jobbet om det ikke fantes et oppdrag.
+- jobbhistorikk.kandidat\_tlf kan ikke være NULL, da et oppdrag ikke kan være utført om det ikke gjøres av en kandidat.
+- sluttatest.oppdrag\_id kan ikke være NULL, da man ikke kan skrive attest til en jobb som ikke er utført.
+
+## Oppgave c
+### Opprett databasetabellene med primær-og fremmednøkleri MySQL, dvs. lag CREATE TABLE og evt. ALTER TABLE-setninger. (Prøv å) bruk datatypen DATE for dato.
+
+SQL-setningene finnes i [vikar.sql](./vikar.sql)
+
+## Oppgave d
+
+### Lag en liste over alle bedriftene. Navn, telefon og epost til bedriften skal skrives ut.
+
+```sql
+SELECT navn, epost, telefon
+FROM bedrift;
+```
+
+```sql
+MariaDB [idatt2103_ov6]> SELECT navn, epost, telefon FROM bedrift;
++----------------------+--------------+----------+
+| navn | epost | telefon |
++----------------------+--------------+----------+
+| Bjarnes Butikk | bb@gmail.com | 12345670 |
+| Vidars Verksted | vv@gmail.com | 12345671 |
+| Arnes Arkivtjenester | aa@gmail.com | 12345672 |
++----------------------+--------------+----------+
+```
+
+### Lag en liste over alle oppdragene. Om hvert oppdrag skal du skrive ut oppdragets nummer samt navn og telefonnummer til bedriften som tilbyr oppdraget.
+
+```sql
+SELECT oppdrag_id, navn, telefon, epost
+FROM oppdrag
+LEFT JOIN bedrift
+ON oppdrag.orgnummer = bedrift.orgnummer;
+```
+```sql
+MariaDB [idatt2103_ov6]> SELECT oppdrag_id, navn, telefon, epost FROM oppdrag LEFT JOIN bedrift ON oppdrag.orgnummer = bedrift.orgnummer;
++------------+----------------------+----------+--------------+
+| oppdrag_id | navn | telefon | epost |
++------------+----------------------+----------+--------------+
+| 1 | Bjarnes Butikk | 12345670 | bb@gmail.com |
+| 2 | Arnes Arkivtjenester | 12345672 | aa@gmail.com |
+| 3 | Arnes Arkivtjenester | 12345672 | aa@gmail.com |
+| 4 | Arnes Arkivtjenester | 12345672 | aa@gmail.com |
++------------+----------------------+----------+--------------+
+```
+
+### Lag en liste over kandidater og kvalifikasjoner. Kandidatnavn og kvalifikasjonsbeskrivelse skal med i utskriften i tillegg til løpenumrene som identifiserer kandidat og kvalifikasjon.
+
+Jeg har ikke brukt noen løpenummer, da ingen kandidater kan ha samme telefonnummer, og telefon+kvalifikasjon er tilstrekkelig primærnøkkel.
+
+```sql
+SELECT k.telefon, CONCAT (k.fornavn, ' ', k.etternavn) AS navn, kvalifikasjon
+FROM kandidat k
+RIGHT JOIN kandidatkvalifikasjon kk
+ON k.telefon = kk.telefon;
+```
+
+```sql
+MariaDB [idatt2103_ov6]> SELECT k.telefon, CONCAT (k.fornavn, ' ', k.etternavn) AS navn, kvalifikasjon FROM kandidat k RIGHT JOIN kandidatkvalifikasjon kk ON k.telefon = kk.telefon;
++----------+-----------------+---------------+
+| telefon | navn | kvalifikasjon |
++----------+-----------------+---------------+
+| 12345678 | Kari Aas | Kasse |
+| 12345678 | Kari Aas | Kundeservice |
+| 12345679 | Anne Berg | Kasse |
+| 12345679 | Anne Berg | Kundeservice |
+| 12345680 | Gunnar Svendsen | Excel |
+| 12345680 | Gunnar Svendsen | Word |
+| 12345681 | Svein Wold | Excel |
+| 12345681 | Svein Wold | Word |
++----------+-----------------+---------------+
+
+```
+
+### Som oppgave 3d), men få med de kandidatene som ikke er registrert med kvalifikasjoner.
+
+```sql
+SELECT k.telefon, CONCAT (k.fornavn, ' ', k.etternavn) AS navn, kvalifikasjon
+FROM kandidat k
+LEFT JOIN kandidatkvalifikasjon kk
+ON k.telefon = kk.telefon;
+```
+
+```sql
+MariaDB [idatt2103_ov6]> SELECT k.telefon, CONCAT (k.fornavn, ' ', k.etternavn) AS navn, kvalifikasjon FROM kandidat k LEFT JOIN kandidatkvalifikasjon kk ON k.telefon = kk.telefon;
++----------+-----------------+---------------+
+| telefon | navn | kvalifikasjon |
++----------+-----------------+---------------+
+| 12345678 | Kari Aas | Kasse |
+| 12345678 | Kari Aas | Kundeservice |
+| 12345679 | Anne Berg | Kasse |
+| 12345679 | Anne Berg | Kundeservice |
+| 12345680 | Gunnar Svendsen | Excel |
+| 12345680 | Gunnar Svendsen | Word |
+| 12345681 | Svein Wold | Excel |
+| 12345681 | Svein Wold | Word |
+| 12345682 | Hans Jensen | NULL |
++----------+-----------------+---------------+
+
+```
+
+
+### Skriv ut jobbhistorikken til en bestemt vikar, gitt kandidatnr. Vikarnavn, sluttdato, oppdragsnr og bedriftsnavn skal med.
+
+```sql
+SELECT k.telefon, CONCAT(k.fornavn, ' ', k.etternavn) as kandidatnavn, j.slutttid, j.oppdrag_id, b.navn
+FROM jobbhistorikk j
+LEFT JOIN oppdrag o
+ ON j.oppdrag_id = o.oppdrag_id
+LEFT JOIN bedrift b
+ ON o.orgnummer = b.orgnummer
+LEFT JOIN kandidat k
+ ON j.kandidat_tlf = k.telefon
+WHERE kandidat_tlf = 12345678;
+```
+
+```sql
+MariaDB [idatt2103_ov6]> SELECT k.telefon, CONCAT(k.fornavn, ' ', k.etternavn) as kandidatnavn, j.slutttid, j.oppdrag_id, b.navn FROM jobbhistorikk j LEFT JOIN oppdrag o ON j.oppdrag_id = o.oppdrag_id LEFT JOIN bedrift b ON o.orgnummer = b.orgnummer LEFT JOIN kandidat k ON j.kandidat_tlf = k.telefon WHERE kandidat_tlf = 12345678;
++----------+--------------+------------+------------+----------------+
+| telefon | kandidatnavn | slutttid | oppdrag_id | navn |
++----------+--------------+------------+------------+----------------+
+| 12345678 | Kari Aas | 2022-01-31 | 1 | Bjarnes Butikk |
++----------+--------------+------------+------------+----------------+
+```
diff --git a/ov6/losning.pdf b/ov6/losning.pdf
new file mode 100644
index 0000000..d9b65e8
Binary files /dev/null and b/ov6/losning.pdf differ
diff --git a/ov6/oppg_a.png b/ov6/oppg_a.png
deleted file mode 120000
index 5c00560..0000000
--- a/ov6/oppg_a.png
+++ /dev/null
@@ -1 +0,0 @@
-er_modell.png
\ No newline at end of file
diff --git a/ov6/vikar.sql b/ov6/vikar.sql
new file mode 100644
index 0000000..a15143c
--- /dev/null
+++ b/ov6/vikar.sql
@@ -0,0 +1,63 @@
+DROP TABLE IF EXISTS sluttatest;
+DROP TABLE IF EXISTS jobbhistorikk;
+DROP TABLE IF EXISTS oppdrag;
+DROP TABLE IF EXISTS kandidatkvalifikasjon;
+DROP TABLE IF EXISTS kandidat;
+DROP TABLE IF EXISTS bedrift;
+
+CREATE TABLE bedrift
+(
+orgnummer INT UNSIGNED NOT NULL AUTO_INCREMENT,
+navn VARCHAR(30),
+epost VARCHAR(100),
+telefon CHAR(15),
+PRIMARY KEY(orgnummer)
+);
+
+CREATE TABLE kandidat
+(
+telefon CHAR(15) NOT NULL,
+epost VARCHAR(100),
+fornavn VARCHAR(30),
+etternavn VARCHAR(30),
+PRIMARY KEY(telefon)
+);
+
+CREATE TABLE kandidatkvalifikasjon
+(
+telefon CHAR(15) NOT NULL,
+kvalifikasjon VARCHAR(100),
+PRIMARY KEY(telefon, kvalifikasjon),
+FOREIGN KEY(telefon) REFERENCES kandidat(telefon)
+);
+
+CREATE TABLE oppdrag
+(
+oppdrag_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
+orgnummer INT UNSIGNED,
+kvalifikasjon VARCHAR(30),
+starttid DATE,
+slutttid DATE,
+PRIMARY KEY(oppdrag_id),
+FOREIGN KEY(orgnummer) REFERENCES bedrift(orgnummer)
+);
+
+CREATE TABLE jobbhistorikk
+(
+oppdrag_id INT UNSIGNED NOT NULL,
+kandidat_tlf CHAR(15) NOT NULL,
+starttid DATE,
+slutttid DATE,
+arbeidstimer INT UNSIGNED,
+PRIMARY KEY(oppdrag_id),
+FOREIGN KEY(oppdrag_id) REFERENCES oppdrag(oppdrag_id),
+FOREIGN KEY(kandidat_tlf) REFERENCES kandidat(telefon)
+);
+
+CREATE TABLE sluttatest
+(
+oppdrag_id INT UNSIGNED NOT NULL,
+attest TEXT,
+PRIMARY KEY(oppdrag_id),
+FOREIGN KEY(oppdrag_id) REFERENCES jobbhistorikk(oppdrag_id)
+);