HØGSKOLEN I SØR-TRØNDELAG



Like dokumenter
HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Miniverden og ER- modell

HØGSKOLEN I SØR-TRØNDELAG

1. SQL datadefinisjon og manipulering

Databaser: Relasjonsmodellen, del I

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag matoppskrifter modellering

HØGSKOLEN I SØR-TRØNDELAG

Oppgaver Oppgave a: Sett opp mulige relasjoner

Det gjenstår nå kun å definere hva som skal være primærnøkkel i rolle rabellen.

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Brukermanual for statistikk på Asset on web: Statistikk salg pr dag, uke eller måned fordelt på alle avdelinger:

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Brukermanual til PlanNET

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

INF106 Objektorientert programmering

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Datamodellering og databaser SQL, del 2

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

Består-av-vare. Lage en «pakke» som selges som en enhet, samtidig som varelagerstyring på innhold i pakken blir ivaretatt.

Datamodellering og databaser SQL, del 2

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

HVA ER NYTT I POCKETLINK Opphavsrett Holte as (Revidert )

Datamodellering og databaser SQL, del 2

Hvordan bli opprettet som kunde og registre ordrene på nett

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i Internetteknologi Fagkode: IVA1379

HØGSKOLEN I SØR-TRØNDELAG

Databaser & objektorientering.

SQL 3: Opprette tabeller, datainnsetting og utsnitt

Ajourføring og kontroll av skogsbilveier

HØGSKOLEN I SØR-TRØNDELAG

RUTEPLANLEGGINGSSYSTEM BRUKERVEILEDNING

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Analyse vareregister faghandel

HØGSKOLEN I SØR-TRØNDELAG

>>21 Datamodellering i MySQL Workbench

BE Foretaksstyring

Import av varer fra Excel

HØGSKOLEN I SØR-TRØNDELAG

Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Bruksanvisning SVs medlems- og organisasjonregister Hypersys

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Eksamen REA3026 S1, Høsten 2012

Den er nettbasert, og man trenger derfor ikke installere et eget program for å bruke den.

Bruk av oppgaver og grupper i

Merk deg tilbudsfristen og andre frister, og gjør deg godt kjent med kunngjøringen og alle de vedlagte dokumentene.

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

Introduksjon til. For studenter ved NTNU

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Gå til Min side ved å trykke HER.

Håndbok for restaurant og barkasse

Hvordan bruke Helsegris for produsenter Innhold:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Universitetet i Oslo. Oppgaver kurs i bestillingssystemet for rollen Rekvirent

1. Innføring i bruk av MySQL Query Browser

Håndbok for restaurant og barkasse

Telle i kor steg på 120 frå 120

Brukerveiledning Aibel Agency Portal

HØGSKOLEN I SØR-TRØNDELAG

BRUKERVEILEDNING FOR NETTBUTIKKEN FORHÅNDSMELDING OG OPPLASTING AV POSTNUMMERFILER. Post med like formater og Aviser til abonnenter

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

UNIVERSITETET I OSLO

Slik administrerer du Ståstedsanalysen

Logg inn og introduksjon # 1. Endre passord # 2. Medlemsliste # 3. Registrere et nytt medlem/ny medarbeider # 4. Registrering av tidligere medlem # 5

1. Relasjonsmodellen Kommentarer til læreboka

Algoritmer og Datastrukturer

BRUKSANVISNING. KSL-egenrevisjon på nett

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

CS-Web Ordrebehandling (T20)

Brukermanual Administrasjon

Transkript:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 7.desember 2009 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasse(r): LC238D Datamodellering og databaser HING2008HA Studiepoeng: 6 Faglærer(e): Hjelpemidler: Oppgavesettet består av: Vedlegg består av: Faglærer: Else Lervik. Lærebøker, alle håndskrevne og trykte hjelpemidler. 3 oppgaver og 5 sider (inkludert forside og vedlegg) 1 side Merknad: Oppgaveteksten kan beholdes av studenter som sitter eksamenstiden ut. Lykke til! OBS! Dersom du mener det mangler opplysninger, setter du dine egne betingelser. 1

Oppgave 1 vekt 40% En database er laget med scriptet i vedlegg 1. Relasjonsmodellen ser slik ut: vare(varenr, varenavn, utsalgspris, grense) grossist(grossistnr, grossistnavn, adresse) parti(grossistnr*, partinr, varenr*, størrelse, antall_solgt, innkjøpsdato, innkjøpspris) matvare((grossistnr, partinr)*, holdbarhetsdato, land) Primærnøkler er streket under, mens fremmednøkler er markert med stjerne. Databasen holder orden på varebeholdningen i en dagligvarebutikk. Butikken får levert varepartier fra mange forskjellige grossister. Vi skiller mellom matvarepartier og andre typer varer. Alle partiene er registrert i tabellen parti, mens matvarene i tillegg er registrert i tabellen matvare. For matvarene gjelder spesielt at holdbarhetsdato og opprinnelsesland for de enkelte partiene er registrert. Utsalgsprisen pr. enhet er den samme for alle partiene av en vare. Innkjøpsprisen pr. enhet varierer naturlig nok fra parti til parti. I første deloppgave nedenfor skal du tegne et EER-diagram. Deretter følger en rekke SQL-spørringer som du skal sette opp. Du står fritt om du ønsker å lage virtuelle tabeller (views) for å løse oppgavene. Oppgave b) og d) forholder seg til DATE-datatypen. Det gis tips om syntaksen i JavaDB, men føl deg ikke bundet til dette. Bruk gjerne pseudokode for å referere til datoer, om du syns det er greiest. a) Tegn EER-modell som beskriver databasen. Bruk UML-notasjon. b) Hvor mye har kjøpmannen betalt for alle partiene han har kjøpt i 2009? Du henter ut årstallet fra en datokolonne ved å bruke funksjonen year() på kolonnen. c) Lag en liste over antall partier pr. land. Listen skal være sortert etter synkende antall og vise både antall og land. (Denne spørringen gjelder kun matvarer.) d) Lag en liste over matvarer som har gått ut på dato, og som det fortsatt er noe igjen av på lager. CURRENT_DATE gir deg dagens dato. Mengde igjen på lager er lik (størrelse - antall_solgt). Listen skal inneholde varenr, varenavn, grossistnr, grossistnavn og antall enheter på lager. Listen skal være sortert på varenavn. e) Finn navn og adresse til den eller de grossistene som har levert flest varepartier. f) Finn verdien av varebeholdningen med unntak av matvarer. For de varene det gjelder skal utsalgsprisen multipliseres med størrelsen av alle varepartiene. 2

Oppgave 2 vekt 20% Også her skal du jobbe med databasen i vedlegg 1. Hver gang varer selges blir verdien til kolonnen antall_solgt i tabellen parti økt. Anta at butikkapplikasjonen sørger for at (størrelse - antall_solgt) aldri blir negativ. Imidlertid bør butikkeieren varsles dersom mengden av en vare blir under grense i tabellen vare. Lag en trigger som sørger for at det sendes en epost til butikkeieren dersom en update-setning på tabellen parti medfører at totalmengden av denne varen (for alle partier av denne varen) kommer under grense. Se i denne omgang bort fra holdbarhetsdatoen på matvarer. Eposten skal si hvilken vare (varenummer, varenavn) det nå begynner å bli lite av. Anta at det eksisterer en ferdig Java-metode sendepost() som tar teksten i eposten som argument og sender eposten til rette vedkommende. Oppgave 3 vekt 40% En produsent av stoler ønsker seg et ordre- og produksjonssystem for å administrere bestillinger av ulike stoler fra kunder, samt å overvåke produksjonen av stolene. Dagens situasjon Siden bedriften typisk mottar mange "små" ordre på spesialbestilte enkeltstoler er det vanskelig å masseprodusere. Derfor må hver stol produseres for hånd. Det går mye tid med til å finne ulike deler og stofftype til hver enkelt stol. Det finnes ingen direkte kobling mellom ordrebestillinger og selve produksjonen. Produksjonen foregår ved at spesifikasjonen (delene og stofftype) for hver stol skrives ut på et ark som leveres til de ansvarlige på fabrikken. Det finnes heller ingen god oversikt over hvilke deler som finnes på lager. Dette gjør det vanskelig å fastslå leveringstiden (produksjonstiden) for en stol. Fremtidige behov Bedriften ønsker seg en sterkere kobling mellom ordre og produksjon. Hver stol produseres fortløpende etter hvert som ordrene kommer inn. De fleste stolene kan spesialbestilles i ulike stofftyper, rygghøyder, understell m.m. En stol består av ulike deler. Delene skal finnes på ulike arbeidsstasjoner (moduler) i fabrikken som er knytt til et felles samlebånd (produksjonslinje). Produksjonen av en spesifikk stol vil inkludere flere arbeidsstasjoner avhengig av hvilke deler stolen består av (stolen vil gå gjennom ei rute av arbeidsstasjoner før den når målet - pakkestasjonen). Alle spesialbestilte stoler produseres fortløpende på dette felles samlebåndet (såkalt kaosproduksjon). Stoldelene monteres fortsatt for hånd ved hver arbeidsstasjon. Stoff skiller seg fra de øvrige delene en stol består av, ved at det er nødvendig at alt stoffet til en ordre må tas fra den samme stoffrullen. Grunnen til dette er at fargenyanser kan variere fra rull til rull. Stoffet plukkes ut når produksjonen av en ordre starter. Stoffrullen følger ordren langs produksjonslinjen. Bedriften leverer også en begrenset mengde masseproduserte standardstoler. Dette skal inn i det nye systemet. 3

Krav til et nytt system En ordre skal ha et entydig nummer. Om ordren skal ordredato og antatt leveringsdato registreres. En kunde skal også identifiseres med et entydig nummer. I tillegg skal navn og adresse inn i databasen. (Vi ser bort fra øvrig kontaktinformasjon i denne oppgaven.) En kunde kan ha mange ordrer i systemet. Det må være mulig å registrere en avtalt rabatt i tilknytning til en ordre. Etter at ordren er effektuert, skal reell leveringsdato lagres i databasen. Betalingsstatus skal også inn. Dette lar vi være et tekstfelt der brukeren til enhver tid kan registrere status vedrørende betalingen. En stol er av en bestemt modell med modellnavn og stoltype (typisk kontorstol eller konferansestol). Vi skiller mellom standardstoler og spesialstoler. En standardstol er av en bestemt modell, og vi lagrer kun prisen og lagerbeholdningen i databasen. En ordre består av bestillinger av et antall standardstoler og spesialstoler av ulike typer, der det er et antall pr. type. Spesialstolene krever omfattende behandling: En spesialstol består av flere deler. Alle arbeidsstasjoner i fabrikken må registreres. En arbeidsstasjon identifiseres med et nummer og i tillegg må plassering (tekstfelt) lagres. De ulike delene en stol kan bestå av, er lagret ved arbeidsstasjonene. En bestemt deltype finnes kun ved én arbeidsstasjon. Antallet av denne deltypen, samt ved hvilken arbeidsstasjon den er lagret, må inn i databasen. Hver deltype har videre et entydig nummer, navn, farge, pris og beskrivelse. For deler som skal trekkes med stoff (for eksempel seter og rygger) må stoffbehovet inn i databasen. Stoff kan betraktes som en spesiell deltype med nr, navn, farge, pris og beskrivelse. I tillegg må alle stoffrullene registreres. En rull identifiseres med deltypenummer til stoffet samt nummeret på rullen. Både for ordinære deler og for den enkelte stoffrullen må lagerbeholdningen til enhver tid kunne finnes ved å slå opp i databasen. Antakelser i denne oppgaven Det er tilstrekkelig med stoff til en ordre i én rull. Man leverer ikke delordre. Oppgave Lag datamodell (EER) for problemstillingen. Bruk UML-notasjon. Oversett datamodellen til relasjonsmodellen. Strek under primærnøkler og marker fremmednøkler med stjerne. 4

Vedlegg 1 CREATE TABLE vare( varenr INTEGER GENERATED ALWAYS AS IDENTITY, varenavn VARCHAR(20) NOT NULL, utsalgspris REAL NOT NULL, -- pr. enhet grense INTEGER NOT NULL, -- nedre grense for bestilling CONSTRAINT vare_pk PRIMARY KEY(varenr)); CREATE TABLE grossist( grossistnr INTEGER GENERATED ALWAYS AS IDENTITY, grossistnavn VARCHAR(20) NOT NULL, adresse VARCHAR(20) NOT NULL, -- begrenser kontaktinfo. til navn og adresse CONSTRAINT grossist_pk PRIMARY KEY(grossistnr)); CREATE TABLE parti( grossistnr INTEGER NOT NULL, partinr INTEGER NOT NULL, varenr INTEGER NOT NULL, størrelse INTEGER NOT NULL, -- antall enheter antall_solgt INTEGER DEFAULT 0, -- antall enheter innkjøpsdato DATE DEFAULT CURRENT_DATE, innkjøpspris REAL NOT NULL, -- pr. enhet CONSTRAINT parti_pk PRIMARY KEY(grossistnr, partinr)); CREATE TABLE matvare( grossistnr INTEGER NOT NULL, partinr INTEGER NOT NULL, holdbarhetsdato DATE NOT NULL, land VARCHAR(15) NOT NULL, CONSTRAINT ferskvare_pk PRIMARY KEY(grossistnr, partinr)); ALTER TABLE parti ADD CONSTRAINT parti_fk1 FOREIGN KEY(grossistnr) REFERENCES grossist; ALTER TABLE parti ADD CONSTRAINT parti_fk2 FOREIGN KEY(varenr) REFERENCES vare; ALTER TABLE matvare ADD CONSTRAINT matvare_fk FOREIGN KEY(grossistnr, partinr) REFERENCES parti; 5