Oblig 2 Databaser vår 2011
|
|
- Thorbjørn Antonsen
- 7 år siden
- Visninger:
Transkript
1 Oblig 2 Databaser vår 2011 Dette arbeidskravet er en videreføring av arbeidskrav 1, og tester primærkunnskaper i normalisering og modellering i tillegg til litt mer avansert SQL. Oppgaven leveres individuelt på Fronter. Får du problemer med innleveringen er det viktig at du søker hjelp med en gang, enten ved å gå til HelpDesk eller ved å snakke med Elin eller Per-Olav (veileder/gruppelærer). For hjelp med Fronter, se: Frist for innlevering: Tirsdag 8/ kl. 14:00 Krav til oppgave: Man skal ha gjort helhjertede forsøk på å løse alle oppgaver. Jobb jevnt og trutt med oppgavene, og spør om hjelp dersom det er noe du lurer på. Det anbefales at man jobber individuelt med denne oppgaven slik at alle studenter får den basiskunnskap man trenger videre. Det er selvfølgelig ikke noe i veien for at man spør andre studenter om hjelp, men da er det viktig at begge parter har utbytte av slik hjelp. Hver student må rette oppgaven til en annen student og levere et anonymt evalueringsskjema for å få sitt arbeidskrav godkjent. Man beholder "rettepar" fra oblig1, men de som ikke ble fordelt den gang, vil bli fordelt av Elin 9/ Hvert par får som sist tilsendt den andres oppgave på epost. Fasit og rettemal som skal brukes under rettingen legges ut på Fronter. På døra til Elin (rom DU1-023) vil det henge en plastmappe med et evalueringsskjema for arbeidskravet. Evalueringen er anonym, og skal ikke merkes med navn eller dato. Retteark leveres i individuell mappe på Fronter (som for oblig 1), mens evalueringsskjema for arbeidskravet leveres i resepsjonen ved hovedinngangen. Resultat av evalueringen bli sendt ut til dere alle straks det foreligger.
2 Oppgave 1 Denne oppgaven handler om normalisering. Først et eksempel: Du er ansatt i et firma som skal lage en database over norske fengsler. Du har fått et datasett med data som skal lagres i databasen, og denne informasjonen har du lagt inn i en tabell i excel slik at du skal få bedre oversikt over dataene: fengsel_id fengsel_navn fengsel_adr fengsel_tlfnr antall_ansatte celle ' ' 'Ula Fengsel' 'Uleborgveien 7, 9287 Uleborg' ' ' 50 'A1-002', 'enkeltrom' - 20 ' ' 'Ula Fengsel' 'Uleborgveien 7, 9287 Uleborg' ' ' 50 'A1-003', 'enkeltrom' - 20 ' ' 'Ula Fengsel' 'Uleborgveien 7, 9287 Uleborg' ' ' 50 'A1-004', 'enkeltrom' - 20 ' ' 'Ula Fengsel' 'Uleborgveien 7, 9287 Uleborg' ' ' 50 'GU1-001', 'glattcelle' - 5 ' ' 'Ula Fengsel' 'Uleborgveien 7, 9287 Uleborg' ' ' 50 'GU1-003', 'glattcelle' - 5 ' ' 'Sola Landsfengsel' 'Flyplassveien 99, 5020 Bergen' ' ' 75 'B1001', 'enkeltrom' - 50 ' ' 'Sola Landsfengsel' 'Flyplassveien 99, 5020 Bergen' ' ' 75 'B3002', 'enkeltrom' - 50 ' ' 'Greikampen fengsel' 'Greikampen, 2090 Grei' ' ' 10 'A3-010', 'enkeltrom' - 10 ' ' 'Greikampen fengsel' 'Greikampen, 2090 Grei' ' ' 10 'A2-001', 'enkeltrom' - 10 ' ' 'Greikampen fengsel' 'Greikampen, 2090 Grei' ' ' 10 'U1-001', 'glattcelle' - 10 Sammen med datasettet fikk du en beskrivelse av hvordan systemet ønskes bygget opp: "Databasen skal lagre informasjon om norske fengsler. Informasjon om fengsel skal inneholde fengselets 8-sifrede id-nummer, fengselets navn, adresse og telefonnummer, antall ansatte, og informasjon om celler i form av en id og hvilke typer og antallet celler som finnes. Et fengsel kan bare ha en adresse og ett telefonnummer." Hvordan skal vi så gripe problemet an? Det første vi må lete etter er data som ikke er udelelige, dvs data som er ikke-atomære, i tillegg til repeterende attributter eller attributtgrupper. Dette jobbet vi litt med i oblig 1. Ser vi på dataene i tabellen over er det noen felter, evt. attributter, som utmerker seg: fengsel_adr inneholder både gateadresse, poststed og postnummer, og er dermed langt fra udelelig. Celle inneholder både celleid, celletype og celleantall og stiller i samme klasse. Dette må vi gjøre noe med, skal vi komme videre i prosessen! Vi deler opp alle disse ikke-atomære verdiene, som det så fint heter, og sitter dermed igjen med følgende tabell:
3 fengsel_id fengsel_navn fengsel_adr fengsel_postnr fengsel_poststed fengsel_tlfnr antall_ansatte celle_id celle_type celle_antall ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' 'Uleborg' ' ' 50 'A1-002' 'enkeltrom' 20 ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' 'Uleborg' ' ' 50 'A1-003' 'enkeltrom' 20 ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' 'Uleborg' ' ' 50 'A1-004' 'enkeltrom' 20 ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' 'Uleborg' ' ' 50 'GU1-001' 'glattcelle' 5 ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' 'Uleborg' ' ' 50 'GU1-003' 'glattcelle' 5 ' ' 'Sola Landsfengsel' 'Flyplassveien 99' '5020' 'Bergen' ' ' 75 'B1001' 'enkeltrom' 50 ' ' 'Sola Landsfengsel' 'Flyplassveien 99' '5020' 'Bergen' ' ' 75 'B3002' 'enkeltrom' 50 ' ' 'Greikampen fengsel' 'Greikampen' '2090' 'Grei' ' ' 10 'A3-010' 'enkeltrom' 10 ' ' 'Greikampen fengsel' 'Greikampen' '2090' 'Grei' ' ' 10 'A2-001' 'enkeltrom' 10 ' ' 'Greikampen fengsel' 'Greikampen' '2090' 'Grei' ' ' 10 'U1-001' 'glattcelle' 10 Denne tabellen sier vi at er i 1. normalform, forkortet 1NF. Det neste vi nå skal gjøre er å se på hvilken nøkkel vi må lage oss for å få rader som kan identifiseres unikt. Målet er å finne den kombinasjonen som inneholder færrest mulig felter, men som likevel er unik. Dette kalles for tabellens kandidatnøkkel, og vi sier at den er en minimalistisk nøkkel. Hvis en tabell har flere kandidatnøkler, må vi velge oss en som kan være primærnøkkel. Mulige kandidatnøkler for tabellen vår er: (fengsel_id, celle_id). Hvorfor det? En kombinasjon av alle feltene vil også gjøre en rad unik, men en nøkkel som består av alle feltene vil ikke være minimalistisk. fengsel_id eller celle_id kan heller ikke være primærnøkkel alene siden et fengsel inneholder flere celler, og siden det kan finnes flere fengsler som bruker samme system for å beskrive celle-id. Steg 3 er å se på hvilke felter som kan knyttes til hele primærnøkkelen og hvilke som bare kan knyttes til deler av primærnøkkelen. Den enkleste måten å gjøre dette på er å tegne en "avhengighetstegning": fengsel_id fengsel_navn fengsel_adr fengsel_postnr fengsel_poststed antall_ansatte celle_id celle_type celle_antall /\ /\ /\ /\ /\ De "avhengighetslinjene" som kun er avhengige av deler av primærnøkkelen (i avhengighetstegningen markert med fet tekst) må vi gjøre noe med. Disse er
4 markert med rødt. Den lyseblå "avhengighetslinjen" skal vi ikke bry oss om nå. Det er neste steg. Løsningen er å splitte ut feltene som er knyttet kun til deler av primærnøkkelen i en egen tabell. fengsel: fengsel_id fengsel_navn fengsel_adr fengsel_postnr fengsel_poststed fengsel_tlfnr antall_ansatte ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' 'Uleborg' ' ' 50 ' ' 'Sola Landsfengsel' 'Flyplassveien 99' '5020' 'Bergen' ' ' 75 ' ' 'Greikampen fengsel' 'Greikampen' '2090' 'Grei' ' ' 10 Fengselscelle: fengselscelletype: fengsel_id celle_id celle_type fengsel_id celle_type celle_antall ' ' 'A1-002' 'enkeltrom' ' ' 'enkeltrom' 20 ' ' 'A1-003' 'enkeltrom' ' ' 'glattcelle' 5 ' ' 'A1-004' 'enkeltrom' ' ' 'enkeltrom' 50 ' ' 'GU1-001' 'glattcelle' ' ' 'enkeltrom' 10 ' ' 'GU1-003' 'glattcelle' ' ' 'glattcelle' 10 ' ' 'B1001' 'enkeltrom' ' ' 'B3002' 'enkeltrom' ' ' 'A3-010' 'enkeltrom' ' ' 'A2-001' 'enkeltrom' ' ' 'U1-001' 'glattcelle' Disse tabellene sier vi at er i 2. normalform, forkortet 2NF. Det er nå bare steg 4 som gjenstår. Steg 4 består i å finne felter som er knyttet til andre felter enn primærnøkkelen. I vårt eksempel er det kun ett slikt tilfelle, nemlig forholdet mellom postnummer og poststed (markert med lyseblå "avhengighetslinje" i Steg 3). Disse er helt opplagt knyttet sammen, og må dermed splittes ut i en egen tabell. Vi ender da opp med følgende tabeller:
5 fengsel: poststed: fengsel_id fengsel_navn fengsel_adr fengsel_postnr fengsel_tlfnr antall_ansatte postnr poststed ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' ' ' 50 '9287' 'Uleborg' ' ' 'Ula Fengsel' 'Uleborgveien 7' '9287' ' ' 50 '5020' 'Bergen' ' ' 'Sola Landsfengsel' 'Flyplassveien 99' '5020' ' ' 75 '2090' 'Grei' ' ' 'Greikampen fengsel' 'Greikampen' '2090' ' ' 10 Fengselscelle: fengselscelletype: fengsel_id celle_id celle_type fengsel_id celle_type celle_antall ' ' 'A1-002' 'enkeltrom' ' ' 'enkeltrom' 20 ' ' 'A1-003' 'enkeltrom' ' ' 'glattcelle' 5 ' ' 'A1-004' 'enkeltrom' ' ' 'enkeltrom' 50 ' ' 'GU1-001' 'glattcelle' ' ' 'enkeltrom' 10 ' ' 'GU1-003' 'glattcelle' ' ' 'glattcelle' 10 ' ' 'B1001' 'enkeltrom' ' ' 'B3002' 'enkeltrom' ' ' 'A3-010' 'enkeltrom' ' ' 'A2-001' 'enkeltrom' ' ' 'U1-001' 'glattcelle' Disse tabellene sier vi at er i 3. normalform, forkortet 3NF. Det finnes også flere normalformer, men dette bekymrer ikke vi oss for. Vi kan glede oss over å være i mål! Nå er det din tur til å prøve! a) Du skal rydde opp i data over hytter med deres hytteeiere i hyttefelt rundt omkring i landet. Du har fått opplyst følgende om dataene og deres forhold til hverandre: et hyttefelt har et navn og en adresse to hyttefelt kan ikke ha samme navn en hytte har en eier og ligger i et hyttefelt der den har et unikt nummer en hytte har et antall sengeplasser og informasjon om den har innlagt vann og strøm eller ikke
6 en eier har et navn, en hjemmeadresse og et mobiltelefonnummer en eier kan eie flere hytter Du har fått tildelt dataene i følgende form: hyttefeltnavn hyttefeltadresse hyttenr hytteinfo eiernavn hjemadresse mobilnr 'Solsiden' 'Kjelleråsen, 1111 Kjeller' 1 'Ant.sengeplasser: 3 Strøm: Nei Vann: Ja' 'Solsiden' 'Kjelleråsen, 1111 Kjeller' 2 'Ant.sengeplasser: 8 Strøm: Ja Vann: Ja' 'Sjøvegen' 'Stavangerstranda, 3333 Stavanger' 'Fjellbygda' 'Gammelsætra, 6666 Alvdal' 1 'Ant.sengeplasser: 6 Strøm: Nei Vann: Nei' 3 'Ant.sengeplasser: 4 Strøm: Nei Vann: Ja' 'Hans Hansen' 'Storgata 10, 9999 Stokkmarknes' ' ' 'Heidi Olsen' 'Parkveien 10, 2222 Oslo' ' ' 'Jon Johnsen' 'Portveien 2, 4444 Barnetv' NULL 'Heidi Olsen' 'Parkveien 10, 2222 Oslo' ' ' Hvorfor kan det være et problem at det ikke finnes noen eierid (evt personnr eller lignende) i dataene du har fått tildelt? Finn alle brudd på 1NF i datasettet du har fått tildelt, og lag den nye tabellen i henhold til 1NF inkludert en unik id for eier. b) Finn kandidatnøkler for den nye tabellen, og lag en avhengighetstegning. Lag nye tabeller i henhold til 2NF c) Finn eventuelle avhengigheter mellom felter som ikke er primærnøkkel-felter. Lag nye tabeller i henhold til 3NF Oppgave 2 Denne oppgaven handler om logikk og operatorrekkefølge. Vi bruker databasen med 24timersløp fra oblig1 som utgangspunkt. I databaser har man, som i matematikken det som kalles for operatorer. For at man skal kunne regne riktig, må man kjenne til hvilken prioritet de ulike operatorene har. Når det gjelder de vanlige matematiske operatorene vi kjenner som pluss, minus, gange, dele, parentes og minus som fortegn, har disse følgende prioritet:
7 1. parenteser 2. minus som fortegn 3. gange og dele 4. pluss og minus Hva betyr så dette? Jo, det betyr at vi må lese et matematisk stykke i riktig rekkefølge for å få riktig svar. Eksempel: (1+2) * (3-1) = 6, fordi parenteser har høyest prioritet og skal leses først. Dermed skal man lese: 3*2 = * 3-1 = 8, fordi * har høyere prioritet enn + og -. Dermed skal man lese: 1 + (2*3) - 1 = 1+6-1=6-1 * 2 + (2+3) = 3, og her har parenteser høyere prioritet enn som fortegn som igjen har høyere prioritet enn *, som igjen har høyere prioritet enn +. Dermed skal man lese: ((-1) * 2 ) + (2+3) = (-2) + 5 = 3 a) Hva er svaret på følgende matematiske stykker? Vis hvordan du kommer fram til svaret! * * (4 + 7) * * / 5 5. (5 + 20) / / 5 10 / * 12 / * 12 / (4-8) Ikke bare har vi slike matematiske operatorer, men vi har også noen logiske. De heter parenteser, ikke, og, eller og eksklusiv eller, og kjennetegnes ved tegnene (, ),,, V og V b) Vi kjenner igjen de logiske operatorene fra SQL, men hva heter de der og hvilken prioritetsrekkefølge har de? Du skal nå bruke databasen med 24timersløp fra oblig1 som utgangspunkt for å skrive litt SQL. I besvarelser skal du legge inn: de 5 første radene av det returnerte svaret på spørringen antall rader som returneres En meget klok mann ved navn demorgan laget en gang to lover. c) Hva sier demorgans lover? Skriv dem både med logisk notasjon og oversatt til SQLsk d) Du trenger bare å hente ut fornavn, etternavn, fodt_aar og nasjonalitet. Skriv følgende utsagn som SQL-setning, forklar hvordan den skal leses og legg ved resultatet som angitt ovenfor:
8 1. fodt_aar = 1977 ELLER fodt_aar = 1968 OG nasjonalitet = NOR 2. (fodt_aar = 1977 ELLER fodt_aar = 1968) OG nasjonalitet = NOR 3. IKKE nasjonalitet = NOR OG fodt_aar = IKKE (nasjonalitet = NOR OG fodt_aar = 1968) e) Gitt følgende SQL-setning: SELECT fornavn, etternavn, nasjonalitet FROM res24timerlop WHERE NOT (nasjonalitet LIKE 'N%' OR nasjonalitet LIKE 'P%'); 1) Hva gjør setningen? 2) Skriv den om i henhold til demorgans lov og sjekk at du får samme svar. Svaret skal gis både med logisk notasjon og som SQL f) Gitt følgende SQL-setning: SELECT DISTINCT fornavn, etternavn, nasjonalitet FROM res24timerlop WHERE nasjonalitet = 'NOR' AND (klasse = 'M45' OR klasse = 'W45'); Oppgave 3 1) Hva gjør setningen? 2) Skriv den om i henhold til den distributive lov og sjekk at du får samme svar. Svaret skal gis både med logisk notasjon og som SQL Denne oppgaven handler om datamodeller. Først tar vi et et eksempel: En oppgave om datamodellering starter ofte med en tekst som man må plukke fra hverandre. Det skal vi også gjøre: " Du skal lage en database med informasjon om innsamlede planter. Plantene samles inn av forskere som registrerer dataene på en nettside. Denne nettsiden sender dataene videre til et program som legger dataene inn i din database. Planter samles inn fra plantefelt. Disse plantefeltene ligger på ulike steder i Norge, og feltene kjennetegnes av et kodenavn bestående av en stor bokstav etterfulgt av fire siffer og deretter en stor bokstav igjen. For å vite hvor et plantefelt er må dette spesifiseres gjennom UTM-koordinater for øverste venstre og nederste høyre hjørne, og feltet er således alltid firkantet. Alle planter skal lagres med botaniske navn både på latin og norsk. Det kan være flere planter av samme type i et plantefelt, og plantens plassering spesifiseres med UTM-koordinater. Man ønsker å ha med informasjon om tidspunkt og litt beskrivende informasjon for observasjon av planten i det enkelte felt."
9 Det første som det kan være lurt å gjøre er å merke seg alle substantiver i teksten, slik: " Du skal lage en database med informasjon om sjeldne planter. Informasjonen samles inn av forskere som registrerer dataene på en nettside. Denne nettsiden sender dataene videre til et program som legger dataene inn i din database. Planteinformasjon samles inn fra plantefelt som forskerne har krabbet rundt i. Disse plantefeltene ligger på ulike steder i Norge, og feltene kjennetegnes av et kodenavn bestående av en stor bokstav etterfulgt av fire siffer og deretter en stor bokstav igjen. For å vite hvor et plantefelt er må dette spesifiseres gjennom UTM-koordinater for øverste venstre og nederste høyre hjørne, og feltet er således alltid firkantet. Alle planter skal lagres med botaniske navn både på latin og norsk, og i tillegg trengs rødlistestatus, altså en tosifret kode for hvor truet planten er. Kodene som finnes er: CR-Akutt truet, EN-Sterkt truet, VU-Sårbar og NT-Nær truet. Det kan være flere planter av samme type i et plantefelt, men de opptrer aldri i grupper og plantens plassering kan dermed spesifiseres med funnpunktets UTM-koordinater. Man ønsker å ha med informasjon om tidspunkt og litt beskrivende informasjon for observasjon av planten i det enkelte felt." Deretter må man luke ut den informasjonen som er viktig, og prøve å gruppere denne. De mest iøynefallende grupperingene er plante, plantefelt og forsker, men vi drister oss også til å ta med funnpunkt, evt. kalt plantefunn. Vi prøve å legge noen av våre substantiver med litt info under hver gruppe: Plante navn latin navn norsk roedllistestatus Plantefelt kodenavn (X####X) sted i Norge (stedsnavn, kommune, fylke) UTMnord øverste venstre hjørne UTMøst øverste venstre hjørne UTMnord nederste høyre hjørne UTMøst nederste høyre hjørne Plantefunn plante dato plantefelt plassering UTMnord plassering UTMøst forsker Forsker navn Neste steg er å se litt nærmere på hver av gruppene vi har funnet, og se om noen av dem har felter med mer enn en type informasjon, evt om noen av dataene må splittes ut i egne grupper. Gruppa plante ser helt fin ut, men det kunne vært nyttig med en id som identifiserer planta. Gruppa Plantefunn ser veldig bra ut. Forsker ser litt snau ut, så der kan det være lurt å være litt kreativ. Vi legger til noen ekstra felter som vi selv synes er relevante, siden det ikke er mer informasjon å hente fra teksten: tilknyttet_institusjon, id (for å identifisere forskeren unikt), i tillegg kan det være lurt å splitte navn i fornavn og etternavn, men det er ikke livsnødvendig. La oss så se på gruppa Plantefelt. Her er det litt å grave i. Hvis vi ser på feltet sted i Norge, så inneholder dette både stedsnavn, kommune og fylke. Felter skal aldri inneholde flere data, så denne må deles opp. Deler vi den opp, så ser vi at det er rom for splittelser. Vi kan splitte ut fylke i en egen gruppe, slik at vi bare trenger en fylkeskobling fra plantefelt-gruppa. Det samme kan vi gjøre med kommune, men vi må huske på at lista over kommuner også må inneholde informasjon om fylke, for det finnes definitivt kommuner med samme navn rundt omkring. Etter dette sitter vi igjen med følgende grupper:
10 Plante planteid navn latin navn norsk rødlistestatus Plantefelt kodenavn (X####X) stedsnavn kommune fylke UTMnord øverste venstre hjørne UTMøst øverste venstre hjørne UTMnord nederste høyre hjørne UTMøst nederste høyre hjørne Plantefunn plante dato plantefelt plassering UTMnord plassering UTMøst forsker Forsker Fylke forskerid fylkesnr fornavn fylkesnavn etternavn tilknyttet_institusjon Kommune kommunenr fylkesnr kommunenavn Nå begynner dette å ligne på tabeller i en database, og det er også meningen. Neste steg er å tegne opp en modell med koblingen mellom gruppene, heretter kalt tabellene. Når vi skal lære oss modellering er det greit å bruke papir, blyant og viskelær. Datamodellene er på dette stadiet ikke så store, og vi vil ikke forstyrres av programmer som prøver å være hjelpsomme, men som i starten mer har en tendens til å forvirre oss (se modellen på neste side) :
11
12 Så kan vi lage CREATE TABLE-setninger for å opprette alle tabeller. Det er viktig å opprette tabellene i riktig rekkefølge, dvs at vi ikke kan opprette en tabell som har en kobling til en annen tabell, før denne andre tabellen er opprettet. CREATE TABLE plante( planteid INT NOT NULL, navn_latin VARCHAR(50), navn_norsk VARCHAR(50), rodlistestatus VARCHAR(2), PRIMARY KEY (planteid) ); CREATE TABLE forsker( forskerid int NOT NULL, fornavn VARCHAR(50), etternavn VARCHAR(50), tilknyttet_institusjon VARCHAR(30), PRIMARY KEY (forskerid) ); CREATE TABLE fylke( fylkesnr VARCHAR(2) NOT NULL, fylkesnavn VARCHAR(50), PRIMARY KEY (fylkesnr) ); CREATE TABLE kommune( kommunenr VARCHAR(2) NOT NULL, fylkesnr VARCHAR(2) NOT NULL, kommunenavn VARCHAR(50), PRIMARY KEY (kommunenr, fylkesnr), FOREIGN KEY (fylkesnr) REFERENCES fylke ); CREATE TABLE plantefelt( kodenavn VARCHAR(6) NOT NULL, stedsnavn VARCHAR(75),
13 kommunenr VARCHAR(2), fylkesnr VARCHAR(2), UTMnord_ovh INT, UTMost_ovh INT, UTMnord_nhh INT, UTMost_nhh INT, PRIMARY KEY (kodenavn), FOREIGN KEY (kommunenr, fylkesnr) REFERENCES kommune ); CREATE TABLE plantefunn( planteid INT NOT NULL, dato DATE NOT NULL, plantefelt VARCHAR(6), plassering_utmnord INT NOT NULL, plassering_utmost INT NOT NULL, forsker INT, PRIMARY KEY (planteid, dato, plassering_utmnord, plassering_utmost), FOREIGN KEY (planteid) REFERENCES plante, FOREIGN KEY (plantefelt) REFERENCES plantefelt, FOREIGN KEY (forsker) REFERENCES forsker ); Oppgaven starter på neste side!
14 a) Vi har kommet over en datamodell som ikke er helt ferdig. Datamodellen vi har fått inneholder informasjon om fugleordener (for eksempel spurvefugler) og fuglearter (for eksempel gråspurv), der en orden består av flere fuglearter, mens en art bare kan tilhøre en orden. Tegn inn en kobling mellom tabellene og legg inn eventuelle dataverdier for å koble dem sammen. Modellen skal tegnes på papir, scannes inn og leveres sammen med resten av besvarelsen. b) Det skal tegnes en datamodell for bussruter. Modellen skal inneholde informasjon om busser og bussruter. Det er en veldig enkel tabell på den måten at en bussrute kun kjøres av en fast buss. En rute har et nummer, et navn og en type. Dette er kun starten på en større modell på den måten at den senere kan bygges ut med informasjon om rutetider osv, men dette trenger vi ikke å bekymre oss over nå. Gitt følgende CREATE TABLE-setninger, skal dere tegne en datamodell. Modellen skal tegnes på papir, scannes inn og leveres sammen med resten av besvarelsen.
15 CREATE TABLE buss( bussid INT NOT NULL, regnr VARCHAR(7), merke VARCHAR(15), modell VARCHAR(20), drivstofftype VARCHAR(1), PRIMARY KEY (bussid) ); CREATE TABLE bussrute( ruteid INT NOT NULL, rutenavn VARCHAR(15), rute_type VARCHAR(25), bussid INT, PRIMARY KEY (ruteid), FOREIGN KEY (bussid) REFERENCES buss ); c) Gitt at en bussrute kan kjøres av flere busser, hva må vi da gjøre med datamodellen og CREATE TABLE-setningene våre? Tegn og fortell. d) Påskeharen skal levere ut påskeegg til alle barn, og trenger hjelp med forberedelsene. Systemet dere skal lage skal inneholde informasjon om innhold i hvert enkelt påskeegg, og hvem som skal ha eggene. Systemet skal ikke lagre historiske data, men kun vise tildeling av egg for et gitt tilfelle. Det skal kun lagres id, navn, alder, gateadresse, husnummer og bynavn for mottagere av påskeeggene. For enkelthets skyld finnes det ikke gater med samme navn innenfor en by, men det kan finnes flere barn i samme hus. Det skal kun lagres en id, et navn og mengde av innholdet. Det skal lagres informasjon om typen innhold et egg kan ha, for eksempel om alt er glutenfritt, sukkerfritt eller uten kunstige tilsetningsstoffer. Lag datamodell og CREATE TABLE som oppfyller kravene i teksten.
16 Oppgave 4 Denne oppgaven inneholder noen oppgaver med grunnleggende SQL i tillegg til oppgaver om JOIN, og vi skal bruke tabellene fra eksempelet i oppgave 3 som utgangspunkt. I besvarelsen skal du legge inn: de 5 første radene av det returnerte svaret på spørringen antall rader som returneres. a) Du skal nå legge inn data i tabellene. Plantenavn, funnsteder, funndatoer og rødlistestatus er hentet fra nettsiden: Andre data er et resultat av egen kreativitet(evt. mangel på dette). Ytterligere forklaring ligger etter dataene, og MÅ leses. Her er data som skal inn: plante 1;Dracocephalum ruyschiana;dragehode;vu 2;Botrychium boreale;fjellmarinøkkel;nt 3;Salix daphnoides;påskepil;vu 4;Lithospermum officinale;legesteinfrø;vu 5;Ophioglossum vulgatum;ormetunge ;VU 6;Botrychium lanceolatum;handmarinøkkel;en 7;Grifola frondosa;korallkjuke;vu 8;Fistulina hepatica;oksetundesopp;nt 9;Herminium monorchis;honningblom;cr forsker 1;Per;Olsen;Universitetet i Stavanger 2;Anne;Jensen;Høgskolen i Lillehammer 3;Kari;Knutsen;Statens Naturoppsyn 4;Jens;Jensen;Universitetet i Tromsø 5;Hanne Merethe;Hansen;Statens Naturoppsyn 6;Ove Petter Andreas Jalmar;Ovesen;Høgskolen i Østfold 7;Line Karoline;Hansen Jensen;Norsk Botanisk Forening 8;Ottar;Zendium;Statens strålevern fylke 05;Oppland 01;Østfold 08;Telemark 06;Buskerud 15;Møre og Romsdal
17 19;Troms 18;Nordland 12;Hordaland 04;Hedmark kommune 04;01;Moss 24;06;Øvre Eiker 63;15;Sunndal 02;19;Tromsø 01;05;Lillehammer 25;06;Nedre Eiker 11;01;Hvaler 20;18;Alstahaug 36;04;Tolga 15;05;Våga 01;01;Halden plantefelt O4455V;Mo;15;05; ;184400; ; Ø3243M;Bile;04;01; ;252700; ; B6534E;Dramdal;24;06; ;214825; ; M4374S;Grøvudalshytta;63;15; ;185450; ; O4456V;Vakkersletta;15;05; ;188100; ; T7645T;Fløya;02;19; ;655875; ; O5364L;Gausa;01;05; ;249650; ; B7539E;Strykåsen;25;06; ;222340; ; Ø2154H;Vadholmen, Asmaløy;11;01; ;267100; ; Ø2178H;Vikerkilen øst;11;01; ;267250; ; N6489A;Bumarka, Blomsøya;20;18; ;376350; ;37550 H6502T;Storøyvollan;36;04; ;281300; ; O1234V;Nordre Strondsætri;15;05; ;186100; ; Ø1122H;Boberg;01;01; ;289400; ; Ø1143H;Os kirkegård;01;01; ;293500; ; plantefunn 1; ;O4455V; ;184402;2
18 1; ;Ø3243M; ;252696;6 1; ;B6534E; ;214841;7 2; ;M4374S; ;185478;1 2; ;O4456V; ;188150;5 2; ;T7645T; ;655900;4 3; ;O5364L; ;249679;2 4; ;B7539E; ;222342;6 5; ;Ø2154H; ;267162;6 5; ;Ø2178H; ;267292;7 5; ;N6489A; ;376440;4 6; ;H6502T; ;281365;5 6; ;O1234V; ;186101;6 7; ;Ø1122H; ;289435;6 8; ;Ø1143H; ;293541;7 Du må selv legge på kode for INSERT-statements. Husk riktig fnutt-bruk til riktig datatype! Slik legger du inn datoer i MySQL: str_to_date(' ', '%d.%m.%y') Slik legger du inn datoer i PostgreSQL: to_date(' ', 'dd.mm.yyyy') Lag en fil som heter plantedata.sql og legg alle insert-statements i denne fila. Lagre fila på ditt hjemmeområde på serveren frigg. Logg på serveren frigg.hiof.no, og kjør følgende kommando: iconv -c -f ISO t UTF-8 -o plantedata-utf8.sql plantedata.sql Legg inn dataene fra fila plantedata-utf8.sql i databasen. b) Skriv ut norsk navn på alle planter med Rødlistestatus VU c) Hvor mange plantefelt er registrert i systemet? d) Skriv ut en liste over alle institusjoner som har ansatte forskere. Hver institusjon skal kun listes ut en gang. e) Skriv ut en liste over institusjoner og hvor mange forskere hver av dem har. Tittel (overskrift) på tellefeltet skal være 'Antall forskere'. f) Finn det kartesiske produktet av tabellene fylke og kommune g) Lag en liste med alle fylkesnr, fylkesnavn og kommunenavn. Fylker som ikke har noen registrerte kommuner skal ikke være med. Bruk JOIN. Du skal vise at du kan skrive setningen både med og uten JOIN-operatoren h) Lag en liste med stedsnavn og kommunenr for plantefelt som er plassert i samme kommune. Hint: SELF JOIN
19 i) Lag en liste med stedsnavn og kommunenavn for plantefelt som er plassert i samme kommune. j) Lag en liste over planter har samme rødlistestatus som en annen plante. Hver plante skal bare listes opp en gang. k) Skriv ut en liste over antallet forskere som har funnet en gitt plante. Plantenavn og 'Antall forskere' skal skrives ut. Lista skal sorteres synkende på antall forskere. Oppgave 5 Denne oppgaven handler om litt videregående SQL, og vi skal bruke databasen med 24timersløp fra oblig1 som utgangspunkt. I besvarelsen skal du legge inn: de 5 første radene av det returnerte svaret på spørringen antall rader som returneres. Noen av spørringene MÅ kjøres i PostgreSQL fordi det er enkelte deler av SQL-språket som ikke støttes av MySQL. Dette vil stå i den enkelte oppgave. a) Finn hele navnet og hvilken klasse de stiller i for de deltagerne som er av samme kjønn som deg selv og som har samme forbokstav som deg i for- og etternavn. Hvert navn med tilhørende klasse skal kun listes opp en gang. b) Hvor mange juniorløpere stilte til start i 2010? Hint: Du må finne ut hvilke klassenavn som brukes om juniorer før du får skrevet spørringen. c) Finn fornavn, etternavn og nasjonalitet for deltagere fra Norden (Norge, Sverige, Finland, Danmark og Island). Bruk ELLER. Hver deltager skal listes opp en gang. d) Finn fornavn, etternavn og nasjonalitet for deltagere fra Norden (Norge, Sverige, Finland, Danmark og Island). Bruk IN (subquery). Hver deltager skal listes opp en gang. e) Finn fornavn og etternavn på kvinner som stilte i klasse 'W35' eller 'W45' i Bruk UNION f) Finn gjennomsnittlig tilbakelagte kilometer for kvinner i g) Finn gjennomsnittlig tilbakelagte kilometer for henholdsvis kvinner og menn i Bruk SUBSTRING og ALIAS for å få ut første bokstav av klassestrengen og for å gi et kallenavn som tittel for dette klasse-feltet. Tittel på "gjennomsnittsfeltet" skal være 'Gjennomsnittlig antall km' h) Denne oppgaven MÅ løses i PostgreSQL! Bruk INTERSECT til å finne fornavn, etternavn og nasjonalitet til deltagere som deltok både i 2007 og 2010.
20 i) Skriv om setningen i forrige oppgave uten bruk av INTERSECT j) For ethvert land som har deltatt med flere enn 10 deltagere i 2010 skal du liste ut landsnavn, antallet deltagere og gjennomsnittlig antall km for disse deltagerne. Bruk ALIAS for å kalle tellefeltet for AntallDeltagere og gjennomsnittsfeltet for DistKm. Lista skal sorteres synkende på distkm. Hint! Les om HAVING i boka deres k) Skriv ut all informasjon om den beste deltageren i herreklassen gjennom tidene. l) Skriv ut fullt navn og nasjonalitet for den beste deltageren gjennom tidene, uavhengig av klasse. Tittel på det returnerte feltet skal være 'Beste deltager gjennom tidene'. Resultatet skal skrives på formen 'Per Olsen fra Norge'. Du må bruke strengkonkatinering for å slå sammen for- og etternavn og land. m) Lag en liste med fornavn, etternavn og nasjonalitet for deltagere som ikke deltar i noen klasse (der klasse ikke er spesifisert). Oppgave 6 Forklar med egne ord hva disse SQL-setningene gjør? Databasen med 24timersløp brukes a) SELECT arrsted, dato, fornavn, COUNT(*) FROM res24timerlop WHERE fornavn = 'Peter' GROUP BY arrsted, dato, fornavn HAVING COUNT(*) > 3 ; b) SELECT fornavn, etternavn, fodt_aar, distanse_km FROM res24timerlop WHERE distanse_km = 200 OR fodt_aar > 1950 AND fodt_aar < 1960; c) SELECT fornavn, etternavn, fodt_aar, distanse_km FROM res24timerlop WHERE fodt_aar > 1950 AND (fodt_aar < 1960 OR distanse_km = 200); d) SELECT fornavn, etternavn, (distanse_km / 10) AS regnefelt FROM res24timerlop WHERE klasse LIKE '%35' ORDER BY regnefelt DESC; e) SELECT DISTINCT fornavn FROM res24timerlop WHERE fornavn LIKE 'P%i_e'; f) SELECT fornavn, MAX(distanse_km) FROM res24timerlop GROUP BY fornavn; Lykke til!
Løsningsforlag for oblig 2, databaser 2010
Løsningsforlag for oblig 2, databaser 2010 Oppgave 1 a) Det kan være flere hytteeiere med samme navn, så dette vil ikke være være noen god identifikator for hytteeiere. Kombinasjon eier og hjemadresse
DetaljerOblig 3 Databaser vår 2011
Oblig 3 Databaser vår 2011 Dette arbeidskravet er en videreføring av arbeidskrav 2, og tester modellering i tillegg til SQL. Oppgaven består av en individuell og en gruppedel. En gruppe skal bestå av 2-3
DetaljerOblig 1 Databaser vår 2011
Oblig 1 Databaser vår 2011 Dette arbeidskravet tester primærkunnskaper i faget, og det er her grunnlaget for videre framgang i kurset legges. Oppgaven leveres individuelt på Fronter. Får du problemer med
DetaljerØvingsoppgave uke 3. Fanger i fengsel
Øvingsoppgave uke 3 Fanger i fengsel I enden av Justisveien i Berg, ikke langt fra svenskegrensa ligger Halden Fengsel. Fengselet har flere celler med plass til fanger. En database er opprettet for å lagre
DetaljerRepetisjon: Normalformer og SQL
IN2090 databaser og datamodellering Repetisjon: Normalformer og SQL Mathias Stang og Stein Michael Storleer 21. november 2018 1 Agenda Normalformer Funksjonelle avhengigheter Nøkler Finne hvilke normalformer
DetaljerLøsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)
Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal
DetaljerSensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)
Sensorveiledning for IN2090 og INF1300 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal du anta at alle begreper har en unik representasjon. Er plasseringen
DetaljerLøsningsforlag for oblig 1, databaser 2010
Løsningsforlag for oblig 1, databaser 2010 Oppgave 1 a) Hvilke supernøkler finnes i de to tabellene? Tabellen klasse har følgende supernøkler: (klasseid, klassebetegnelse) (klasseid) Tabellen renndeltager
DetaljerOppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:
Kjell Toft Hansen 02.10.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgave 1 1. Spørring: SELECT oh.*, delnr, kvantum FROM ordrehode oh, ordredetalj
Detaljer1. SQL datadefinisjon og manipulering
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL datadefinisjon og manipulering Tore Mallaug 7.10.2008 Lærestoffet er utviklet for faget Databaser 1. SQL datadefinisjon og manipulering
DetaljerOppgaver Oppgave a: Sett opp mulige relasjoner
Løsningsforslag til øving 4: Relasjonsmodellen Kjell Toft Hansen 18.09.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgaver Oppgave a: Sett opp
DetaljerDatabaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen
Databaser Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen Tema for dagen Hva er relasjonsalgebra? Seleksjon Projeksjon Produkt Indre forening Ytterforening Settoperasjoner: union, snitt, differanse
DetaljerEKSAMEN 6102 / 6102N DATABASER
EKSAMEN 6102 / 6102N DATABASER 06.12.2016 Tid: 4 timer (10-14) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål / nynorsk 13 (inkludert denne) Ingen Ingen Eksempeltabeller Sensuren finner du
DetaljerDatabaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen
Databaser Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen Tema for dagen Relasjonsmodellen Hvorfor relasjoner? Fra ER diagram til relasjoner 22.09.2008
DetaljerOppgave 1 (Opprett en database og en tabell)
Oppgave 1 (Opprett en database og en tabell) 1) I «Object Explorer» (i «SQL Server Management Studio»), høyreklikk over Databases : 1 2 2) Skriv så databasenavnet og klikk OK: 3) Plasser så kursoren på
Detaljer1. Innføring i bruk av MySQL Query Browser
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innføring i bruk av MySQL Query Browser Kjell Toft Hansen 28.02.2007 Lærestoffet er utviklet for faget LV338D Databaseadministrasjon 1. Innføring
DetaljerSELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 10/11-15 DISTINCT Pregnante navn på kolonner Boolske operatorer: OR, NOT Beregningsfunksjoner og Gruppering NULL-verdier Maria
DetaljerObligatorisk oppgave nr. 3 i INF1300 høsten 2008
Obligatorisk oppgave nr. 3 i INF1300 høsten 2008 Oppgaven er beregnet på å løses og leveres som et samarbeid mellom to studenter, men det er lov for dem som vil seg selv så vondt, å levere en individuell
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG AVDELING FOR TEKNOLOGI Institutt for databehandling Kandidat nr.: Eksamensdato: 09.05.2005 Varighet: 0900-1200 (3 timer) Fagnummer: LO323D Fagnavn: Databaser Klasse(r): NETT 2006V
DetaljerÅ bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter
Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC9D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc9d.php Høgskolen i Sør-Trøndelag,
DetaljerITGK - H2010, Matlab. Dagens tema : Teori - Databaser
1 ITGK - H2010, Matlab Dagens tema : Teori - Databaser 2 I dag Teori: Databaser Bok: 8.1 8.2 (8.1-8.4 i gamle bøker) Læringsmål Lære det grunnleggende om databaser Lære det grunnleggende om databasedesign
DetaljerDatabaser: Relasjonsmodellen, del I
LC238D http://www.aitel.hist.no/fag/_dmdb/ Databaser: Relasjonsmodellen, del I En relasjon er en matematisk mengde side 2 Egenskaper ved relasjoner side 3 Entitetsintegritet side 4-5 Referanseintegritet
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - Kandidatnr: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering
DetaljerSQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data
SQL Structured Query Language Definere tabeller Skranker Fylle tabeller med data Lage en tabell med SQL create table R (A 1 D 1 [S 1 ],... A n D n [S n ], [liste av skranker] R er navnet på relasjonen/tabellen
DetaljerNormalisering. Hva er normalisering?
LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform
DetaljerDatabaser kort intro. Tom Heine Nätt
Databaser kort intro Tom Heine Nätt Agenda Hva er en database? Hva er SQL? Hente ut data fra en database SELECT Behandle data i en database (kort) CREATE TABLE, INSERT, UPDATE, DELETE Databaser med flere
DetaljerEKSAMENSFORSIDE Skriftlig eksamen med tilsyn
EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: Emnenavn: 6102 Databaser Dato: Tid fra / til: 06.06.2017 10:00-14:00 Ansv. faglærer: Bjørn Kristoffersen Campus: Fakultet: Bø Handelshøyskolen Antall
DetaljerInstitutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL
NTNU Norges teknisk-naturvitenskapelige Universitet Institutt for datateknikk og informasjonsvitenskap Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL Side 1
DetaljerEksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995 39 963 Roger Midtstraum: 995 72
DetaljerNormalisering. Hva er normalisering?
LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform
DetaljerMetaspråket for å beskrive grammatikk
1 SQL-syntaks Korrekt språkbruk bygger på et sett av regler. Eksempler: En SQL utvalgsspørring inneholder alltid ordene SELECT og FROM, mens WHERE og tilhørende betingelse er valgfri. Etter SELECT kan
Detaljer1. SQL spørringer mot flere tabeller
1. SQL spørringer mot flere tabeller Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL spørringer mot flere tabeller Tore Mallaug 29.9.2008 Lærestoffet er utviklet for faget Databaser
DetaljerHøgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015. Tid: 10-14. Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1
Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015 Tid: 10-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 13 med forside Ingen Ingen Vedlegg: Eksempeldata til oppgave 1 Eksamensresultater
DetaljerEn lett innføring i foreninger (JOINs) i SQL
En lett innføring i foreninger (JOINs) i SQL Noen ord om forening (JOIN)! 2 JOINs til gjennomgang! 3 1. INNER JOIN! 3 Eksempel på [INNER] JOIN! 4 NATURAL JOIN! 5 Eksempel på NATURAL JOIN! 5 2. LEFT [OUTER]
DetaljerEKSAMEN DATABASER
EKSAMEN 6102 DATABASER 30.05.2016 Tid: 4 timer (9-13) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål 7 (inkludert denne) Ingen Ingen Eksempeldata Sensuren finner du på StudentWeb. Vekting
DetaljerObligatorisk oppgave nr. 3 i INF1300 høsten 2009
Obligatorisk oppgave nr. 3 i INF1300 høsten 2009 Oppgaven er beregnet på å løses og leveres som et samarbeid mellom to studenter, men det er lov for dem som vil seg selv så vondt, å levere en individuell
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 6.desember 2010 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasse(r): LC238D Datamodellering og databaser HING2009HA
DetaljerEKSAMENSFORSIDE Skriftlig eksamen med tilsyn
EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: Emnenavn: DAT1000 Database 1 Dato: Tid fra / til: 13.05.2019 10.00 14.00 Ansvarlig faglærer: Bjørn Kristoffersen Campus: Fakultet: Bø Handelshøyskolen
DetaljerEn liten rekap. Spørrespråk. I dag SELECT
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 06/11-15 Databaser høsten 2015 En liten rekap ER-diagram - vi modellerer dataene våre til danne best mulig grunnlag for informasjonen
DetaljerDatabaser. - Normalisering -
Databaser - Normalisering - Innholdsfortegnelse 1. Normalisering... 2 1.1. Redundans... 2 1.2. Anomalier (uregelmessigheter etter oppdateringer i databasen)... 2 1.2.1. Innsettingsanomalier (Insertion
DetaljerDatamodellering 101 En tenkt høgskoledatabase
Datamodellering 101 En tenkt høgskoledatabase Spesifikasjoner for databasen vi skal modellere: Oversikt over studenter med: Fullt navn Klasse Studium Avdeling Brukernavn Fødselsdag Adresse Telefonnummer
DetaljerIntegritetsregler i SQL. Primærnøkler
Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler skranker på attributter og tupler Interrelasjonsskranker assertions Triggere INF212
DetaljerDagens program. Kunnskapsorganisasjon og gjenfinning 1. Spørring mot databaser: SQL 2 - Spørring mot flere tabeller 12.11.2014
Kunnskapsorganisasjon og gjenfinning 1 Spørring mot databaser: SQL 2 - Spørring mot flere tabeller SQL 2 - flere tabeller 12.11.2014 Dagens program SQL oppgave 2 - løsningsforslag Spørring mot flere tabeller
DetaljerEKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid: 09.00-13.00
EKSAMEN Emnekode: ITM20606 ITF10208 Dato: Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid: 09.00-13.00 05/06-2009 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater
DetaljerINF3100 V2018 Obligatorisk oppgave nr. 2
INF3100 V2018 Obligatorisk oppgave nr. 2 Oppgavesettet skal løses og leveres individuelt. Gjennomføring og innlevering av oppgaven skal skje i henhold til gjeldende retningslinjer ved Institutt for informatikk,
DetaljerAlle attributter har NULL som mulig verdi. mulige verdier for integer: NULL, 0, 1, 2, 3...
NULL verdier Alle attributter har NULL som mulig verdi mulige verdier for integer: NULL, 0, 1, 2, 3... Dog mulig å lage tabeller med attributter som forbyr NULL Ulik bruk: manglende informasjon («vet ikke
DetaljerVerden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide
Verden Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Velkommen
DetaljerUniversitetet i Bergen Det matematisk-naturvitenskapelige fakultet. Løsningsforslag
1 Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Løsningsforslag Eksamen i emne INF115 Databaser og modellering Tirsdag 31. mai 2016 Tid: 9:00 12:00 Tillatte hjelpemidler: Ingen Oppgavesette
DetaljerMySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Helge Hafting 16.10.2007 Lærestoffet er utviklet for faget LV476D/LN476D Linux systemdrift Innhold 8 1 8.1 Databasen MySQL.............................
DetaljerDet du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.
Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å
DetaljerVerden. Steg 1: Vinduet. Introduksjon
Verden Introduksjon Processing Introduksjon Velkommen til verdensspillet! Her skal vi lage begynnelsen av et spill hvor man skal gjette hvilke verdensdeler som er hvor. Så kan du utvide oppgava til å heller
Detaljer1. Normalisering Kommentarer til læreboka
Tore Mallaug 6.11.2007 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Resymé: Denne leksjonen viser et eksempel på normalisering av en liten database.
DetaljerTetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!
Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett
DetaljerIntegritetsregler i SQL
UNIVERSITETET I OSLO Integritetsregler i SQL INF3100 8.2.2005 Ragnar Normann 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler
DetaljerDatamodellering og databaser SQL, del 2
http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side
DetaljerKunnskapsorganisasjon og gjenfinning 1
Kunnskapsorganisasjon og gjenfinning 1 Normalisering Tine Lodberg Frost Normalisering 14.10.2014 Dagens forelesning Pensum Berget, G. (2010). Relasjonsdatabaser og datamodellering (3. utg.). Oslo: Høgskolen
DetaljerMiniverden og ER- modell
TDT4145 Datamodellering og databasesystemer SQL- oppgave 1 Miniverden og ER- modell Vi tar utgangspunkt i en enkel modell for en pizza- restaurant, der følgende ER- diagram beskriver databasen: Relasjonsdatabase-
DetaljerHer skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.
PXT: Stein, saks, papir Skrevet av: Bjørn Hamre Kurs: Microbit Introduksjon Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. Steg 1: Velge tilfeldig
DetaljerRepetisjon: (nesten) alt du trenger å kunne om ORM og realisering
INF1300 Introduksjon til databaser Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 21. november 2016 Agenda Hensikten med ORM-modellering Hva er lov
DetaljerDatamodellering med UML (forts.)
Datamodellering med UML (forts.) jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2- Modellenes to formål Interesseområdet
DetaljerRepetisjon: (nesten) alt du trenger å kunne om ORM og realisering
INF1300 Introduksjon til databaser Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 21. november 2017 Agenda Hensikten med ORM-modellering Hva er lov
DetaljerDatamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2
http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side
DetaljerHvordan hente ut listen over et hagelags medlemmer fra Hageselskapets nye portal
Hvordan hente ut listen over et hagelags medlemmer fra Hageselskapets nye portal Av Ole Petter Vik, Asker Versjon 2.3 20.03.2012 Beskrivelsene for hvert enkelt skritt er over hvert skjermbilde. Via Hageselskapets
DetaljerDatamodellering og databaser SQL, del 2
http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side
DetaljerHøgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1
Høgskolen i Telemark EKSAMEN 6102 DATABASER 02.12.2014 Tid: 10-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 13 med forside Ingen Ingen Vedlegg: Eksempeldata til oppgave 1 Eksamensresultater
DetaljerLøsningsforslag eksamen i IN
Løsningsslag eksamen i IN112 14.12.1992 1 A Symbolene σ, π og betegn henholdsvis seleksjon, projeksjon og naturlig join. Akt-utlån σ ER-NULL(Returdato) IDAG - Lånedato > 28 (Utlån) Svar1 Lån Akt-utlån
DetaljerNormalisering. Hva er normalisering?
LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform
DetaljerSQL 3: Opprette tabeller, datainnsetting og utsnitt
SQL 3: Opprette tabeller, datainnsetting og utsnitt Læreboka kap. 4 03.11.2008 Kjell Toft Hansen 1 Datainnsetting Legg til en ny leverandor i tabellen leverandor INSERT INTO leverandor (lev_nr, lev_navn,
DetaljerEksamen i IBE102 Webutvikling Våren 2017.
Avdeling for Logistikk Eksamen i IBE102 Webutvikling Våren 2017. Eksamensdag: 5. mai 2017 Tid: 9-13. Faglærer/tlf: Ketil Danielsen, 90619434 Hjelpemidler: Ingen. Antall sider, inkl. forsiden: 6 Målform:
DetaljerEksamen i Internetteknologi Fagkode: IVA1379
Høgskolen i Narvik Side 1 av 5 Eksamen i Internetteknologi Fagkode: IVA1379 Tid: Mandag, 07.06.04, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 4 oppgaver
DetaljerLøsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 12. august 2013 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte
DetaljerD: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.
Side 1 av 7 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL KONTINUASJONSEKSAMEN I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER
Detaljer1. Relasjonsmodellen. 1.1. Kommentarer til læreboka
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Relasjonsmodellen Tore Mallaug 2.9.2013 Lærestoffet er utviklet for faget Databaser 1. Relasjonsmodellen Resymé: Denne leksjonen gir en kort
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1300 Introduksjon til databaser Eksamensdag: 30. november 2012 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:
DetaljerLøsningsforslag maskindatabasen på Ifi SQL og normalisering
Løsningsforslag maskindatabasen på Ifi SQL og normalisering Oppgave 1 select prosjektid, ansattid, dato, timer from Prosjekttimer where status = 'merknad' order by prosjektid, ansattid; Oppgave 2 Fra primærnøkkelen
DetaljerLøsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informatikk Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF3100/INF4100 Databasesystemer Eksamensdag : Tirsdag 8. juni 2004 Tid for eksamen : 09.00-12.00 Oppgavesettet er på : 5 sider
DetaljerLøsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 12. august 2013 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte
DetaljerNorge tekst 2. Oppgaver. Arbeid med ord læremidler A/S, 2012. Astrid Brennhagen www.arbeidmedord.no
Norge tekst 2 Oppgaver Arbeid med ord læremidler A/S, 2012 1 Hvor mange fylker er det i Norge? 16? 19 21 19 2 Hvilket ord skal ut? Trøndelag Akershus Østlandet Sørlandet Vestlandet 3 Hvilket ord skal ut??
DetaljerSteg 1: Piler og knappetrykk
PXT: Er du rask nok? Skrevet av: Julie Christina Revdahl Kurs: Microbit Tema: Blokkbasert, Spill, Elektronikk Fag: Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1300 Introduksjon til databaser Eksamensdag: 1. desember 2014 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:
DetaljerEkvivalente stier (Equivalence of Path, EOP) i storm
Ekvivalente stier (Equivalence of Path, EOP) i storm Dette er ikke rett fram, derfor denne beskrivelsen. Vi tar utgangspunkt i følgende modell for kinoer og kinoforestillinger: Bilde 1 ORM2 modell I bildet
DetaljerEmnenavn: Ny/utsatt eksamen. Eksamenstid: Faglærer: Edgar Bostrøm. Erik Åsberg. Davide Roverso
Høgskolen i østfold EKSAMEN Emnekode: Emnenavn: ITF301415 Store datamengder: analyse og prosessering Ny/utsatt eksamen Dato: Eksamenstid: 20.05.2016 09:00-12:00 Hjelpemidler: Ingen Faglærer: Edgar Bostrøm
DetaljerIntroduksjon til fagfeltet
LC238D http://www.aitel.hist.no/fag/_dmdb/ Introduksjon til fagfeltet Datafiler side 2 Databasesystemer side 3-5 Databasearkitektur ANSI/SPARC side 6-7 Datamodeller side 8 Flerbruker databasesystem side
DetaljerRepetisjon: (nesten) alt du trenger å kunne om ORM og realisering
IN2090 Databaser og datamodellering Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 19. november 2018 Agenda Hensikten med ORM-modellering Hva er lov
DetaljerDelinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru)
Delinnlevering 2 INF050, våren 2005 Inge Svale Hauger Handagard (ishandag) ihan@broadpark.no Tor Hildrum (thildru) thhildru@student.matnat.uio.no Øystein Riiser Gundersen (oysteirg) oystein.rg@gmail.com
DetaljerModellenes to formål. Datamodellering med UML (forts.) Fra naturlig språk til datamodell. Figur 5-2. Ogdens trekant
Modellenes to formål Interesseområdet Dataering med UML (forts.) Beskrivelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem
DetaljerSQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.
SQL og Mengdelære Oracle, MySQL, Access, bruker forskjellige syntaks. Kan vi beskrive, hva SQL er og hva man kan gjøre med SQL, uavhengig av konkret syntaks!!! Hvilke universale formelle språk har vi til
DetaljerFag TDT4145 Datamodellering og databasesystemer Øving 3: Relasjonsalgebra og SQL
NTNU Norges teknisk-naturvitenskapelige Universitet Institutt for datateknikk og informasjonsvitenskap Fag TDT4145 Datamodellering og databasesystemer Øving 3: Relasjonsalgebra og SQL Oppgave 1 (Oppgaven
DetaljerFocusportal brukerveiledning hovedleder SØNDAGSSKOLEN NORGE
Focusportal brukerveiledning hovedleder SØNDAGSSKOLEN NORGE # 1 Innlogging # 2 Introduksjon # 3 Registrere nye barn/ledere # 4 Hvordan finne barn/ledere som tidligere har vært medlemmer # 5 Dubletter #
Detaljersom blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,
1. Last ned og installer XAMPP. 2. Sjekk at alt fungerer. 3. MySQL. Vi begynner med databaseserveren, MySQL. Gå til DOS klarmelding eller ledetekst (finnes under tilbehør på startmenyen om du ikke som
DetaljerTest 2 OOP. - Prøveeksamen
Test 2 OOP - Prøveeksamen 2007 - Viktig: Jobb med oppgavene som om det var eksamen Ikke snakk med sidemann, ta korte pauser, benytt kun skriftlige hjelpemidler du hadde tenkt til å hatt med på eksamen.
DetaljerVerdens korteste grunnkurs i Excel (2007-versjonen)
Verdens korteste grunnkurs i Excel (2007-versjonen) NB! Vær oppmerksom på at Excel kan se annerledes ut hos dere enn det gjør på bildene under. Her er det tatt utgangspunkt i programvaren fra 2007, mens
DetaljerUNIVERSITETET I OSLO
INF050/INF02 vår2005 Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 050 Systemutvikling INF02 Utvikling av datasystemer Eksamensdag: Onsdag 5. juni 2005 Tid for
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1300 Introduksjon til databaser Eksamensdag: 30. november 2015 Tid for eksamen: 09.00 15.00 Oppgavesettet er på: 6 sider Vedlegg:
DetaljerLøsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 26. mai 2014 Eksamenstid (fra-til): 09:00-13:00 Hjelpemiddelkode/Tillatte
DetaljerOppgave 1 Datamodellering 22 %
Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER Eksamensdato:
DetaljerEKSAMEN 6102 / 6102N DATABASER
EKSAMEN 6102 / 6102N DATABASER 06.12.2016 Tid: 4 timer (10-14) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål / nynorsk 13 (inkludert denne) Ingen Ingen Eksempeltabeller Sensuren finner du
DetaljerRelasjonsdatabasedesign
UNIVERSITETET I OSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-1.2.2010 Ellen Munthe-Kaas 1 Normalformer Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon
DetaljerCabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA
CabinWeb BRUKERDOKUMENTASJON ET SYSTEM UTVIKLET AV DELFI DATA Sist oppdatert 18.02.2010 INNHOLD INNHOLD... 1 HVA ER CABINWEB... 2 HVA KAN DU BRUKE CABINWEB TIL?... 3 HVA ER NYTT I CABINWEB VERSJON 2.0...
Detaljer