Obligatorisk oppgave 3 i Databaseadministrasjon.

Størrelse: px
Begynne med side:

Download "Obligatorisk oppgave 3 i Databaseadministrasjon."

Transkript

1 Obligatorisk oppgave 3 i Databaseadministrasjon. Applikasjonsutvikling med databaser Gruppenummer 7 Av Kai Hagali Ole J. Schön Cato Goffeng Høgskolen i Østfold 22. Oktober 2012

2 Innhold 1 Tilkobling til database... 3 Databasetest Triggere og prosedyrer... 7 Nivå Funksjonalitet tekst:... 8 I databasen... 8 Triggere... 8 Prosedyrer... 9 Applikasjonen... 9 Nivå Loggtabellen Trigger before_update_deltaker Nivå Prosedyre HentebrukerenBolle() Prosedyre Terningkast () Trigger after_insert_deltaker Mellomvare Nivå Nivå Oppsett og utvikling med Doctrine Referanser Figurliste

3 1 Tilkobling til database Det ble valgt å lage en enkel database som skulle aksesseres via php script. Valget falt slik siden det er dette språket de fleste i gruppen kjenner best. Databasens utgangspunkt er hentet fra ideen og fenomenet Geocaching. To av gruppens medlemmer er fascinert av dette jfr. Holone sine forelesinger med fugle eksempler. Vi valgte følgende oppsett for en database med 3 tabeller: Databasen oblig3 Tabeller Cache_id, Cachename Deltaker_id, Fornavn, Etternavn Cachefunn_id, Deltaker_id, Cache Database CREATE DATABASE oblig3 CHARACTER SET 'utf8'; USE oblig3 Tabeller CREATE TABLE cache ( Cache_id INT NOT NULL AUTO_INCREMENT, 3

4 Cachename VARCHAR(45) NULL, PRIMARY KEY (Cache_id)); CREATE TABLE deltaker ( Deltaker_id INT NOT NULL AUTO_INCREMENT, Fornavn VARCHAR(45) NULL, Etternavn VARCHAR(45) NULL, PRIMARY KEY (Deltaker_id)); CREATE TABLE cachefunn ( Cachefunn_id INT NOT NULL AUTO_INCREMENT, Cache_id INT NOT NULL, Deltaker_id INT NOT NULL, time TIMESTAMP NOT NULL, PRIMARY KEY (Cachefunn_id, Cache_id, Deltaker_id)); Her skal cachefunn være en mange til mange i forhold til deltaker. Med andre ord en og samme cache kan bli funnet av flere deltakere. Vi valgte også å legge på en timestamp slik at vi får en loggføring av tid på en forekomst. Det ble satt en bruker som skulle aksessere denne databasen. Vi prøvde først med : GRANT USAGE ON *.* to webuser@localhost identified by 'webuser'; Dette ga meget lite hell, vi hadde en bruker ifølge brukertabellen, men den fungerte dårlig. Etter noen minutter i tenkeboksen ble aksesseringsproblemet løst med: GRANT ALL ON oblig3enkel.* to 'webuser'@'localhost' identified by 'webuser'; Med dette var databasen opprettet. For å kunne benytte ønsket programmeringsspråk og få et webgrensesnitt under windows 2008 r2 ble da IIS lagt til som rolle, samt at vi måtte installere php. 4

5 Det å legge til en IIS server løses lett i server administrasjon uten spesielle problemer. Det viste seg dog at det å installere php ble en utfordring. Den første guiden vi fant på nettet ga oss en oppskrift som ble fulgt. Når denne var ferdig fungerte ikke php. Det ble da forsøkt en annen variant via php.iis.net som er en side fra Microsoft. Her lastet vi ned en installer, kjørte denne. Og kjørte en refresh i browseren som via php script skulle kalle phpinfo. Som bildet på neste side viser fungerte dette. Figur 1 phpinfo på fungerende system Det som ikke fungerte var oppskriften på denne websiden : Databasetest 1 Etter å ha laget noen testdata ble det laget et enkelt phpscript som skulle hente ut alt i en tabell og skrive ut en kolonne rad for rad. 5

6 Scriptet: Figur 2 PHP kode for oppkobling til database. Resultatet : Figur 3 Resultat ved testspørring mot MySQL med PHP. Siden dette er innholdet i tabellen i databasen så kan vi konkludere med at det fungerer. 6

7 2 Triggere og prosedyrer Modeller en eksempeldatabase med et tiltenkt applikasjon-/webgrensesnitt. Tenk nøye gjennom og argumenter for hvilken funksjonalitet(forretningslogikk) som bør ligge i hhv. Databasen og i applikasjonen. Vi valgte å benytte vår eksisterende database fra del 1 av denne innleveringen. Men det ble også foretatt noen forandringer slik at databasen nå ser slik ut : Databasen oblig3 Tabeller Cache Cache id, Cachename, Gjemt_dato, Gjemt_av, Koordinater, Status Deltaker Deltaker id, Fornavn, Etternavn, Brukernavn, Mailadresse, GPS Cachefunn Cachefunn id, Cache, Deltaker_id, FTF, terningkast Cachestatus_id, statustype, FTF_id, cache_id, bruker_id, terningkast <p>medlems ID <br /><input type="text" name="medlid" /></p><br /> Nivå 1 Basert på vurderingene rund plassering av funksjonalitet skal dere lage nyttige og muligens unyttige triggere og prosedyrer. Disse skal ikke implementeres men bare beskrives, her kan dere gjerne gå litt "overboard". Vi velger å utvide vår database fra oppgave 1. 7

8 Som en start på oppgaven beskrev vi rent tekstbasert hva vi kunne finne på å hente ut i denne databasen. Dette ble gjort uten hensikt på hvilken del den skulle tilhøre. Funksjonalitet tekst: Før insert cachefunn sjekk at deltaker_id ikke er samme som gjemt_av Hente ut cacher med terningkast x oppdatere deltaker info sende gammel info til forandringslogg med tilhørende informasjon og tid ny cache oppdatere hjelpetabell cache-logg forandre cache info oppdatere cache-logg Cachefunn, sjekke om det er første registrering før noe skjer, hvis så skal all info om registrering i ftf tabell, samt at ftf_id skal lagres Hente ftf pr bruker Hente all ftf Hente cacher gjemt av x Hvis cachestatus skal settes til arkivert- gammel info til cache-log med timestamp Etter insert av ny bruker sende mail til brukerene om den nye Etter ny cache insert sende brukere mail Vi analyserte oss gjennom de forskjellige og definerte følgende oppsett for hvor vi ville legge de. I databasen Triggere Før insert cachefunn sjekk at deltaker_id ikke er samme som gjemt_av oppdatere deltaker info sende gammel info til forandringslogg med tilhørende informasjon og tid ny cache oppdatere hjelpetabell cache-logg 8

9 forandre cache info oppdatere cache-logg Cachefunn, sjekke om det er første registrering før noe skjer, hvis så skal all info om registrering i ftf tabell, samt at ftf_id skal lagres Hvis cachestatus skal settes til arkivert- gammel info til cache-log med timestamp Prosedyrer Hente ut cacher med terningkast x Hente ftf pr bruker Hente all ftf Hente cacher gjemt av x Applikasjonen Etter insert av ny bruker sende mail til brukerene om den nye Etter ny cache insert sende brukere mail De delene som da ble lagt i triggere falt naturlig at en trigger funksjon skulle utføre. Disse delene er noe som skal skje før eller etter en eller annen form for oppdatering av databasen. Prosedyrene er jo de elementer vi kan kalle på for å få et eller flere resultat til skjerm. Dette dreier seg ofte om database oppslag med eller uten inngående variabler. Som oversikten viser er det dekket opp begge scenario typene. Ved nye medlemmer av databasen vil det være naturlig å bruke en sendmail funksjon for å sende mail til eksisterende og nye brukere. Siden det å sende mail naturlig ikke er en del av databasens funksjonsområde slik vi ser det er det naturlig at dette gjøres fra tilknyttet applikasjon. Denne kan da hente ut mailadressene fra databasen via en SQL spørring for så å videre bearbeide dette før mail sendes. En kunne nok her kanskje hatt en trigger som la alle mailadressene i en egen tabell ferdig formatert og som da kunne hentes opp med en prosedyre. 9

10 Hvilke fordeler gir triggere og prosedyrer brukerne av databasen? Se dette både fra DBAs og utviklers synsvinkel. Vil bruken av triggere og prosedyrer by på utfordringer knyttet til drift og annen bruk av databasen? En DBA ønsker gjerne å benytte seg av triggere for både loggføring og aktiv backup av tabeller slik at tiden det tar før en backup er restored tar kortere tid. I en slik sammenheng hvor noe er gått tapt er kostnaden pr time databasen er nede minimum lik antall ansatte ganger timelønn. I tillegg handler det ofte om tapt fortjeneste. Dog er det slik at en DBA med kontroll på hva triggerne gjør en lykkelig DBA. Hvis denne DBA på en eller annen måte mister kontroll eller er borte på et tidspunkt hvor noe skjer med databasen og ingen andre kjenner triggerne i databasen kan uheldige situasjoner oppstå. For eksempel kan en da komme frem til en situasjon hvor triggere trigger triggere. Noe som brått da kan medføre at databasen kneler. Oppsummert er en database med triggere velfungerende i de fleste situasjoner der DBA har kontroll over oppsettet. Ved å samarbeide med utviklere kan DBA lage funksjoner som gir utviklerne det de til enhver tid trenger. Men det å gi fra seg kontrollen over også dette kan gi uheldige konsekvenser da en ikke vet hva som skjer med databasen. For utviklerne er ikke triggere nødvendigvis det viktigste, men tilgang til det å lage prosedyrer kan være en ønskedrøm. Ved å samarbeide med DBA vil integriteten i databasen eksistere over tid. Ved å kreve å lage egne prosedyrer og triggere kan det føre til at integriteten til databasen er borte. En operasjon for å redde en slik database hvor flere personer har vært med på å lage egne triggere og prosedyrer kan i verste fall ta lang tid. En kan dog se at for en utvikler vil det være godt å kunne ha en slik tilgang. Men det vil dessverre medføre at en DBA mister kontroll. Ved å ha en ydmyk tilnærming til DBA kan en utvikler komme lengre med ett samarbeide. Det medfører også at det tar kortere tid for en DBA å feilsøke om spørringer oppfører seg annerledes enn tenkt. 10

11 Nivå 2 Lag en enkel trigger i databasen dere laget i oppgave 1. Husk en kort forklaring til hva triggeren gjør. For enkelthetsskyld ble det valgt å benytte seg av en loggtabell. I denne skal da alle forandringer i Deltaker tabellen inn. Både INSERT og UPDATE. Dette medfører bruk av 2 triggere. Ved INSERT skal trigger kjøres etter at en bruker er lagt til. Dette for å kunne få informasjonen direkte fra databasen. Ingenting av det gamle skal tas vare på så derfor er det ikke viktig at den kjøres før INSERT. Ved UPDATE skal gammel informasjon tas vare på så dette må kopieres over til loggtabellen før selve INSERT kjøres. Loggtabellen id(auto), deltaker_id, Deltaker_fornavn, Deltaker_etternavn, Deltaker_brukernavn, Deltaker_mailadresse, Deltaker_GPS CREATE TABLE `oblig3`.`deltaker_logg` ( `id` INT NOT NULL AUTO_INCREMENT, `aksjon` VARCHAR(45) NULL, `deltaker_id` INT NULL, `Deltaker_fornavn` VARCHAR(45) NULL, `Deltaker_etternavn` VARCHAR(45) NULL, `Deltaker_brukernavn` VARCHAR(45) NULL, `Deltaker_mailadresse` VARCHAR(45) NULL, `Deltaker_GPS` VARCHAR(45) NULL, `Timestamp` TIMESTAMP NULL, PRIMARY KEY (`id`) ) COMMENT = 'Loggtabell for forandringer i deltagertabellen. Alt hit styres av triggere'; 11

12 Vi valgte å implementere en trigger som tok vare på gammel informasjon om en deltaker før det ble kjørt en update spørring. Trigger before_update_deltaker Figur 4 Triggeren before_update_deltaker Før vi la denne triggeren inn i databasen foretok vi en select * på tabellen deltaker. Figur 5 Sjekk av tabellen deltaker før triggeren ble kjørt Dernest utførte vi en select * på deltaker_logg Figur 6 Sjekk av tabellen deltaker_logg Som bildet ovenfor viser er det ikke noen oppføringer i logg tabellen. 12

13 Vi eksekverte da spørringen som skulle lage triggeren i workbench. Denne feilet med en gang. Figur 7 Feilmelding ved forsøk på å legge til trigger. Vi lurte endel på hvorfor dette skjedde. Vi skulle jo være inne med root brukes som hadde alle rettigheter. Vi fant en forklaring på nettet som ikke ga oss et bedre svar. Etter å ha sjekket hvilken bruker som var logget inn kom vi til en enkel forklaring. Det var ikke root brukeren som var der, men webuser fra oppgave1. Etter et raskt bytte av bruker og utføring av innlegging av triggeren i kommandovinduet så resultatet bedre ut. Ingen feilmelding og klar til å resette delimiter. Figur 8 Trigger legges inn med brukeren root. Vi kjørte da en update på den ene deltakeren der vi forandret på brukernavnet. UPDATE deltaker SET Brukernavn = Bolla WHERE Deltaker_id = 1001; 13

14 Figur 9 Oppdatering av tabell for å teste trigger. Denne spørringen ble eksekvert uten problemer. Greit nok er det en warning, men vi brydde oss ikke om denne. Deretter valgte vi naturlig nok en select * fra deltaker_logg for å se om triggeren hadde gjort jobben sin. Som bildet under viser er resultatet slik det skal være. Triggeren hadde fungert og deltaker_logg hadde en oppføring. Figur 10 Det er en ny oppføring i deltaker_logg etter trigger Deretter gjorde vi en bekreftende select * fra deltakere for å se om forandringen var satt slik den skulle. Figur 11 Oppdatering av brukernavn Bolla i deltaker tabellen Vi klarte da å lage en trigger som utførte den jobben den var satt til å utføre. 14

15 Nivå 3 Lag eksempeldatabasen(eller deler av den) i MySQL og implementer noen av triggerne og prosedyrene dere beskrev i nivå 1. Sørg også for å inkludere SQL-statements som viser at triggerne/prosedyrene fungerer som de skal. Prosedyre HentebrukerenBolle() Vi startet med å lage en enkel prosedyre som skulle hente opp et eneste objekt. Nemlig all informasjonen om brukeren med brukernavnet Bolle. For den observante leser er dette den brukeren som vi i sted satte til å hete Bolla. Det ble nødvendig med en ørliten forandring av denne brukeren før prosedyren fungerte DELIMITER CREATE PROCEDURE HentebrukerenBolle() BEGIN SELECT * FROM deltaker WHERE Brukernavn = "Bolle"; END DELIMITER ; Figur 12 Opprette en prosedyre HentebrukerenBolle() Selve prosedyren ble lagt til uten feilmeldinger. Denne ble så kalt opp for å få en respons. 15

16 Figur 13 Kaller på prosedyren HentebrukerenBolle() kalles opp Som bildet ovenfor viser er det hentet opp en deltaker og den deltakeren har brukernavnet Bolle. Prosedyre Terningkast () Deretter valgte vi å lage en prosedyre som tok med et parameter inn. I dette tilfellet valgte vi å søke etter terningkast N. DELIMITER CREATE PROCEDURE Terningkast (IN terning INT) BEGIN SELECT * FROM Cachefunn WHERE terningkast = terning; END DELIMITER ; Figur 14 Oppretter prosedyren Terningkast Denne ble da lagt inn i databasen uten feilmeldinger. Vi kalte så på den for å hente opp der hvor det var terningkast 4. 16

17 Figur 15 Kaller på prosedyren Terningkast for å hente ut alle terningkast som er 4. Og den returnerte det den skulle. Trigger after_insert_deltaker Til slutt la vi inn i databasen en trigger som logger en insert i tabellen deltaker. delimiter CREATE TRIGGER after_insert_deltaker AFTER INSERT ON deltaker FOR EACH ROW BEGIN INSERT INTO deltaker_logg SET action = insert, Deltaker_id=NEW.Deltaker_id, Deltaker_fornavn=NEW.Fornavn, Deltaker_etternavn=NEW.Etternavn, Deltaker_brukernavn=NEW.Brukernavn, Deltaker_mailadresse=NEW.Mailadresse, Deltaker_GPS=NEW.GPS, Timestamp=NOW(); END delimiter ; Etter at dette var lagt inn valgte vi å legge til to brukere på denne måten. 17

18 INSERT INTO deltaker (Fornavn, Etternavn, Brukernavn, Mailadresse, GPS) VALUES ("Johan","Halvorsen","Jallaisen", "Montana"), ("Kaare","Halvorsen","Kaarini", "620C"); Figur 16 Nye rader er lagt inn i tabellen deltaker. Som vi ser er brukerne lagt inn. Vi sjekket deretter loggtabellen. Figur 17 Brukerne som er lagt inn i deltaker tabellen er logget. Vi ser her to nye loggføringer, med action type insert slik triggeren skulle skrive. 18

19 For å kunne holde oversikten over triggere er det viktig med dokumentasjon. Vårt forslag til en slik dokumentasjon ser slik ut: Figur 18 Triggerkart 19

20 3 Mellomvare Nivå 1 Utrykket mellomvare, av engelsk middleware, dukket opp på slutten av 80 tallet der konteksten i ordet beskrev programvare for nettverks oppkoblinger. På midten av 90 tallet var det blitt en utbredt bruk av utrykket i det denne nettverksteknologien hadde modnet og det fantes flere typer av denne tjenesten. Inntil da hadde begrepet generelt vært synonymt med bruk mot relasjonelle databaser. På midten av 90 tallet var det utviklet flere forløpere til dagens mellomvarekonsepter (Bakken, 2003). Definisjonen på mellomvare er alle typer programvare som gjør det mulig for annen programvare, applikasjoner eller enheter å kunne samhandle uansett versjoner. Et eksempel på en type mellomvare kan være programvare som kjøres på en server og har som oppgave å sørge for kommunikasjon mellom applikasjoner ved hjelp av en webserver. Som nevnt er det flere typer av mellomvare konsepter, men det er ingen klare standarder siden hver enkelt mellomvareløsning tilpasses det systemmiljøet der det skal brukes. Noen av de mer kjente er: RPC mellomvare (Remote Procedure Call) er en av de tidlige versjonene av mellomvare. Her utføres synkron kommunikasjon mellom prosedurale (ikke objektorienterte) systemer. Dette vil si at applikasjonen hos klienten kaller på en prosedyre på tjeneren. Siden kallet er synkront er klienten blokkert mens den venter på svar fra tjeneren. 20

21 Objektorientert mellomvare Denne mellomvaren er en videreutvikling av RPC der man i stedet for prosedural håndtering gjør det objekt-orientert. Kall på eksterne metoder er det primære målet med objekt-orientert mellomvare. For eksempel kan et objekt som har behov for å benytte ressurser som er i en gitt komponent bruke denne uten å forholde seg til hvor denne befinner seg fysisk. Dette vil si at ressursene som trengs for å eksekvere ikke behøver å være lokale og kan være på en annen node et helt annet sted i systemet. Meldingsorientert mellomvare (MOM). Sender meldinger mellom komponenter der meldingene legges i kø på en server. Komponentene i systemet kommuniserer asynkront med hverandre ved å skrive til og lese fra disse køene. Mottakerkomponenten behøver ikke være operativ hele tiden siden meldingene lagres i køen og kan hentes på et senere tidspunkt. Figur 19 Et enkelt eksempel på MOM basert system (Oracle, 2012) Database mellomvare Kanskje den mest kjente formen for mellomvare som vi ble kjent med gjennom eksempelet med Doctrine i forelesningen der alle applikasjoner har tilgang til å benytte en eller flere typer databaser samtidig og mellomvaren oversetter til et format som applikasjonen forstår. 21

22 Det finnes flere andre typer mellomvare og noen er kombinasjoner av hverandre i det løsningene blir tilpasset hvert enkelt system eter behov. Figur 20 Et eksempel på mellomvare (Bakken, 2003) Den store fordelen med mellomvare er som tidligere nevnt at man kan ha flere forskjellige applikasjoner og versjoner av disse i samhandling siden mellomvaren oversetter all kommunikasjon mellom disse. Noen andre fordeler ved mellomvare er at: man slipper å ha forretningslogikken i applikasjonene eller databasene man slipper å binde seg til en spesiell leverandør for at systemene skal fungere. 22

23 man slipper å ta hensyn til hva slags database som skal brukes ved utvikling av applikasjoner siden mellomvaren sørger for at det vil fungere mot forskjellige versjoner av databaser. man behøver bare å oppdatere mellomvaren i stedet for mange forskjellige versjoner av applikasjoner og databaser. man løser skaleringsproblemer. man oppnår en bedre sikkerhet ved å ha sentral kontroll over hvem som kan koble seg opp mot databasene eller servere. man kan kjøre brannmurer i mellomvaren for å beskytte databaser og klienter. man kan oppnå raskere spørringer mot databaser ved caching i mellomvaren. Noen utfordringer vi ser for oss med mellomvare kan være økonomirelaterte. Fordi det finnes så mange forskjellige former for mellomvare kan det være vanskelig å velge riktig type og denne prosessen kan fort bli kostbar. Når en løsning er så er valgt må det trolig videreutvikling til for å tilpasse løsningen til bedriftens forretningslogikk. Dette er også en prosess med store kostnader avhengig av kompleksiteten i systemet. 23

24 Nivå 2 Doctrine er et ORM (Objekt Relational Mapper) verktøy. ORM brukes på applikasjonssiden og gir utviklere en proprietær og objekt orientert SQL dialekt, her ved DQL (Doctrine Query Language). Det finnes flere forskjellige ORM verktøy der ute og Hibernate er et eksempel for dataspråket Java. Hibernate har igjen sin egen dialekt kalt HQL, og formålet med begge verktøyene er stort sett det samme. ORM er en teknikk for å oversette datatyper som ikke er kompatible, her mellom et objekt orientert dataspråk (PHP) og en relasjons database. Under objekt orientert programmering oppretter vi objekter ut av klasser (Fig.21) som representerer dataen vi jobber med, disse objektet vil da tilsvare en tuppel i en tabell (Fig.22) og objektets medlemsvariabler tilsvarer kolonnene. Figur 21 Tabell brukerklasse Figur 22 Tabell 24

25 For å lagre informasjonen i et objekt til databasen må utvikleren ta alle medlemsvariablene fra klassen og pakket dem inn i en insert SQL setning som førte dem inn i den tabellen som korresponderer med objektet. For å gjenskape dette objektet må det kjøre en select setning på databasen og fylle medlemsvariablene med resultatsettet fra select setningen. For å slippe å gjøre dette manuelt hver eneste gang du skal lagre eller gjenskape et objekt er det behagelig å delegere denne jobben videre til f.eks. Doctrine. Gjennom Doctrine sin DBAL (DataBase Abstraction Layer) skapes det kontakt opp mot databasen du skal jobbe med. Konfigurasjonen kan skje både via XML eller rett in i PHP koden. Figur 23 Konfigurering av databaseoppkobling Hibernate bruker et sett med importerte.jar filer i for eksempel Eclipse (IDE for JAVA og andre språk) for å sette opp kontakten med databasen. Dette separerer utvikleren fra database siden av systemet. ORM verktøyet vil da kunne ta seg av det å skape en tabell for objektet ditt hvis det ikke eksisterer fra før, samt det å bryte ned objektene dine og legge variablene inn i SQL setninger som igjen kobles opp mot de aktuelle tupplene i tabellen. For å si ifra til ORM verktøyet hva som er modell klassen(e) bruker for eksempel annotasjonen. Denne annotasjonen settes rett over klassedeklarasjonen. For at Doctrine skal vite hvilken medlemsvariabel som tilsvarer primary nøkkelen i tabellen annotasjonen som også plasseres rett over den 25

26 aktuelle medlemsvariabelen. Ved riktig oppsett av drivere og koblinger opp mot databasen, samt korrekt bruk av annotasjon vil ORM verktøyet ta seg av alt som har med databasen å gjøre på egen hånd. ORM verktøyene passer derfor ganske bra inn under definisjonen av mellomvare ettersom de påtar seg input/output ansvaret og sparer utvikleren for dette (forbeholdt litt konfigurering). Eneste ulempen er at flere parter som skal arbeide sammen øker risikoen for feil i systemet, selv om ORM verktøyet tar seg av SQL for utvikleren betyr ikke det at han slipper å lære seg det, tilfeller kan oppstå hvor ORM verktøyet ikke klarer jobben og da må utvikleren ta på seg ansvaret igjen. Oppsett og utvikling med Doctrine Prinsippene i Doctrine er de samme som i Hibernate men språket som brukes er PHP. Det Doctrine gjør er å mappe tabeller i en database opp mot objekter i php. I eksemplet som ble presenter av Harald Holone i forelesningen ble det laget en enkel applikasjon med et sett med script som skulle jobbe mot en database. Det ble ikke benyttet noe rammeverk i eksempelet, men det kan bygges på i ettertid.. Det er kun kommandolinje php som benyttes og på den måten kan vi se isolert på kjernen i det som er denne objektrelasjonelle mappingen. Her skal objektenene i PHP lagres i databasen og at de kan hentes tilbake derfra inn i PHP Teknologiene som benyttes i eksempelet er: PHP - programmeringsspåk MySQL - database Doctrine - som blant annet fungerer som et rammeverk for PHP. 26

27 Composer - som er avhengighetshåndterer. Composers oppgave er å laste ned det vi trenger til prosjektet, blant annet Doctrine. En annen oppgave er å laste ned alle nødvendige oppdateringer som trenges til prosjektet så man slipper å hente til hver enkelt ting som skal oppdateres manuelt. Disse to linjene gjøres tilgjengelige i php.ini: extension=phar.so extension=pdo_mysql.so Deretter installeres Composer som igjen skal laste ned det som trengs for prosjektet. Avhengighetene konfiguereres i Composer der vi legger inn at vi skal ha Doctrine ORM modul og deretter installeres Doctrine automatisk. Det må det opprettes en database i MySQL og en bruker som skal administrere om dette ikke finnes fra før. Katalogen der prosjektet skal ligge opprettes. Doctrine kan ta utgangspunkt i en eksisterende database og lage konfigurasjonsfiler. Dette er mapping filer som mapper mellom objektene i PHP og databasen. I dette eksempelet i forelesningen lages konfigurasjonsfilene først ved at modellen beskrives, så genereres databaseskjema og klassefiler. På den måten ungås feil i klassefiler som kan skje om man koder dem manuelt. Konfigurasjonsfilene som blir generert er XML filer der hver enkelt fil beskriver et skjema for en tabell med alle feltene i tabellen. Det er mulig å bruke andre formater enn XML om man ikke vil det, for eksempel YAML. 27

28 Vi trenger nå to php filer som beskriver oppsettet for hvilken database vi skal jobbe med og en for oppsettet mot EntityManager i Doctrine. Den ene fila ble kalt bootstrap.php og sørger for å inkludere autoload.php som Composer har laget da vi kjørte den første gang. Autoload.php er en fil som sørger for at bootstrap.php har tilgang til funksjonene i rammeverket. I tillegg inneholder bootstrap blant annet XMLpath som peker til der XML mapping filene er lagret og innloggingsinformasjon til databasen, Den andre php fila er cli-config.php som henter informasjonen fra bootstrap.php og kobler dette opp mot Entity Manager i Doctrine. I denne fila legger vi til require for bootstrap og et HelperSet som peker mot Symfony i Doctrine og lager en datastruktur som innholder koblingene til databasen og EntityManager. Når dette er gjort vil verktøyene som skal generere php filene og databaseskjemaene fungere. Basert på XML filene vi har blir nå php filene med klasser generert ved at vi går inn i vendor mappen i Doctrine og kjører $ vendor/bin/doctrine orm:generate-entities entities og deretter blir database skjemaene generert med $ vendor/bin/doctrine orm:schema-tool:create Nå er systemet i prinsippet klart til å tas i bruk siden koblingene for mapping nå er satt opp og databasen kan populeres med data. 28

29 Referanser Ressurssider for del 1 og 2 av oppgaven: PHP the right way (2012) W3Schools.com (2012) PHP MyQL select Databasejournal.com (2102) The Trigger-Happy DBA Middleware.org (2012) What is Middelware, Hentet 19. Oktober 2012 fra Bakken, David E. (2003) Middleware, Hentet 19. oktober 2012 fra Ressurssider Del 3 nivå 2 Doctrine (2012) Composer (2012) Hibernate (2012) Notater fra forelesningene 29

30 Figurliste Figur 1 phpinfo på fungerende system... 5 Figur 2 PHP kode for oppkobling til database Figur 3 Resultat ved testspørring mot MySQL med PHP Figur 4 Triggeren before_update_deltaker Figur 5 Sjekk av tabellen deltaker før triggeren ble kjørt Figur 6 Sjekk av tabellen deltaker_logg Figur 7 Feilmelding ved forsøk på å legge til trigger Figur 8 Trigger legges inn med brukeren root Figur 9 Oppdatering av tabell for å teste trigger Figur 10 Det er en ny oppføring i deltaker_logg etter trigger Figur 11 Oppdatering av brukernavn Bolla i deltaker tabellen Figur 12 Opprette en prosedyre HentebrukerenBolle() Figur 13 Kaller på prosedyren HentebrukerenBolle() kalles opp Figur 14 Oppretter prosedyren Terningkast Figur 15 Kaller på prosedyren Terningkast for å hente ut alle terningkast som er Figur 16 Nye rader er lagt inn i tabellen deltaker Figur 17 Brukerne som er lagt inn i deltaker tabellen er logget Figur 18 Triggerkart Figur 19 Et enkelt eksempel på MOM basert system (Oracle, 2012) Hentet fra Figur 20 Et eksempel på mellomvare (Bakken, 2003) Figur 21 Tabell brukerklasse Figur 22 Tabell Figur 23 Konfigurering av databaseoppkobling

Tilkobling og Triggere

Tilkobling og Triggere Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble

Detaljer

Databaser kort intro. Tom Heine Nätt

Databaser 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

Detaljer

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

som 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

Detaljer

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamen 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

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19 Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre

Detaljer

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Oblig 5 Webutvikling. Av Thomas Gitlevaag Oblig 5 Webutvikling Av Thomas Gitlevaag For oppgave 1 og 2 skal dere levere en funksjonell webside på deres hjemmeområde. Dere skal også levere alle phps-filene slik at man for en hver side kan slenge

Detaljer

Kjøre Wordpress på OSX

Kjøre Wordpress på OSX Kjøre Wordpress på OSX Alt etter hva du ønsker å bruke Webserveren til er det flere måter å gjøre dette på. Ønsker du kun en side som skal dele sider du lager manuelt, med PHP, GD etc eller med server

Detaljer

1. SQL datadefinisjon og manipulering

1. 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

Detaljer

1. Innføring i bruk av MySQL Query Browser

1. 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

Detaljer

Oppgave 1 (Opprett en database og en tabell)

Oppgave 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å

Detaljer

WP-WATCHER WORDPRESS SIKKERHET

WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER BACKUP - SIKKERHETSKOPIERING «Hei! Jeg oppdaterte en plugin på siden min og nå kommer jeg ikke inn på siden min i det hele tatt. Kan du hjelpe meg?» «Hjelp! Jeg

Detaljer

Applikasjonsutvikling med databaser

Applikasjonsutvikling med databaser Applikasjonsutvikling med databaser Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 10.10.2011 October 12, 2011 1 / 24 Applikasjonsutvikling med databaser Databaser tilbyr

Detaljer

!!!!!!!!!!!! !!!!!!!!!!! WP-WATCHER WORDPRESS SIKKERHET

!!!!!!!!!!!! !!!!!!!!!!! WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER BACKUP - SIKKERHETSKOPIERING «Hei Jeg oppdaterte en plugin på siden min og nå kommer jeg ikke inn på siden min i det hele tatt. Kan du hjelpe meg?» «Hjelp Jeg

Detaljer

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden.

En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. La meg med en gang si at jeg er rimelig grønn i Linux verden så dere får bære over med meg

Detaljer

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5 Testrapport Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 24.5.2013 Public 2013 Aker Solutions Page 1 of 5 Innledning I denne rapporten vil vi skrive om testingen som

Detaljer

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2

Datamodellering 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

Detaljer

2. Beskrivelse av installasjon av SQL Server 2005 og hvordan lage databasen som trengs av administrasjonsprogrammet:

2. Beskrivelse av installasjon av SQL Server 2005 og hvordan lage databasen som trengs av administrasjonsprogrammet: Workaround for DFS Administrasjonssystem og Windows Vista NB! Dette er IKKE en installasjon av systemet, men en måte for å få det til å virke på Windows Vista. Denne veiledningen er laget for litt avanserte

Detaljer

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008

Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Forprosjekt Hovedprosjekt ved Høgskolen i Oslo Våren 2008 Skrevet av Ole Myrbakken, Fadima Mohamoud, Orji Okoroafor, Karen Arrendondo Side 1 PRESENTASJON Prosjekt tittel: Prosjektperiode: MetaGen 7.jan

Detaljer

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 SQL: Datatyper m.m. Evgenij Thorstensen V18 Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 Datatyper, kort om mye Vi går en rask ekskursjon i manualen, Kap. 8. https://www.postgresql.org/docs/9.2/sql.html

Detaljer

Eksamen i IBE102 Webutvikling Våren 2017.

Eksamen 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:

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL

MySQL-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.............................

Detaljer

Lync 2013. Denne guiden tar utgangspunkt i at Lync 2013 er installert på pcen.

Lync 2013. Denne guiden tar utgangspunkt i at Lync 2013 er installert på pcen. Lync 2013 Denne guiden tar utgangspunkt i at Lync 2013 er installert på pcen. Microsoft Lync 2013 gjør det enklere å kommunisere med kolleger, kontakter, venner og kunder. I Lync 2013 kan det holdes samtaler

Detaljer

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk

Produktdokumentasjon. Madison Møbler Administrasjonsside og Nettbutikk Produktdokumentasjon Madison Møbler Administrasjonsside og Nettbutikk 1 1. Forord 1.1 Dokumentasjonen Dette er en teknisk dokumentasjon på produktet som er utviklet. Denne er tiltenkt personer med teknisk

Detaljer

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Page 1 Page 2 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Et program som er installert på en tjenermaskin, og som tillater eksterne programmer å utføre spørringer

Detaljer

Administrering av SafariSøk

Administrering av SafariSøk Administrering av SafariSøk Administrering av SafariSøk Revisjonshistorie Revisjon $Revision: 1.6 $ $Date: 2003/08/05 12:44:02 $ Innholdsfortegnelse 1. Om programmet... 1 Generelt... 1 2. Fremgangsmåter...

Detaljer

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

Å 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,

Detaljer

Innstallasjon og oppsett av Wordpress

Innstallasjon og oppsett av Wordpress Del 1 - Installasjon og oppsett Innstallasjon og oppsett av Wordpress Wordpress har blitt en veldig populær publiseringsplattform for websider. Uten særlige tekniske ferdigheter kan man sette opp profesjonelle

Detaljer

Produksjonssettingsrapport

Produksjonssettingsrapport Vedlegg E2 Produksjonssettingsrapport milepæl 1 Dokumentet inneholder beskrivelse av andre del av produksjonssetting av milepel 1 den 16.03.2013. INNHOLDSFORTEGNELSE INNHOLDSFORTEGNELSE 2 1. INNLEDNING

Detaljer

WinTid Scheduler. Oppgradering til versjon 6.0.1 HRM

WinTid Scheduler. Oppgradering til versjon 6.0.1 HRM Oppgradering til versjon 6.0.1 HRM Innholdsfortegnelse 1. OM DOKUMENTET... 3 1.1 DOKUMENTETS MÅLSETNING... 3 1.2 HVEM ER DOKUMENTET SKREVET FOR?... 3 1.3 OPPBYGNING OG OPPBEVARING... 3 1.4 ANSVARLIG FOR

Detaljer

Installasjonsveiledning

Installasjonsveiledning Finale Systemer as Installasjonsveiledning FINALE Årsoppgjør FINALE Rapportering FINALE Konsolidering FINALE Driftsmidler FINALE Avstemming NARF Avstemming FINALE Investor Versjon 22.0 Definisjoner...3

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering 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

Detaljer

Huldt & Lillevik Ansattportal. - en tilleggsmodul til Huldt & Lillevik Lønn. Teknisk beskrivelse

Huldt & Lillevik Ansattportal. - en tilleggsmodul til Huldt & Lillevik Lønn. Teknisk beskrivelse Huldt & Lillevik Ansattportal - en tilleggsmodul til Huldt & Lillevik Lønn Teknisk beskrivelse Huldt & Lillevik er trygghet Trygghet er å vite at løsningen du bruker virker, hver eneste dag, enkelt og

Detaljer

ORDBMS og OODBMS i praksis

ORDBMS og OODBMS i praksis ORDBMS og OODBMS i praksis Lars Vidar Magnusson November 2, 2011 Lars Vidar Magnusson () Forelesning i DAS 01.11.2011 November 2, 2011 1 / 18 Eksempler på ORDBMS Flere av de store databaser i dag hevder

Detaljer

Oppgaver Oppgave a: Sett opp mulige relasjoner

Oppgaver 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

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering 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

Detaljer

Scan Secure GTS 5.1 + PAS

Scan Secure GTS 5.1 + PAS Scan Secure GTS 5.1 + PAS Installasjonsmanual For versjon 5.1.7 og nyere Denne installasjonsmanualen er konfidensiell Den er kun ment til bruk for system administrator Den skal ikke benyttes av brukere

Detaljer

Enkle generiske klasser i Java

Enkle generiske klasser i Java Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt

Detaljer

Programvare som installeres Følgende tre programmer benyttes til oppgraderingen og kan lastes ned fra www.cicerone.no.

Programvare som installeres Følgende tre programmer benyttes til oppgraderingen og kan lastes ned fra www.cicerone.no. INNHOLD INNLEDNING... 2 Bruk sertifisert konsulent på oppgradering av Visma CRM... 2 FØR OPPGRADERING AV SERVER... 2 Programvare som installeres... 2 Logg ut av CAT... 2 Stopp rso_rsv.exe... 2 TA BACKUP...

Detaljer

1: Steng ned alle MAB på alle maskiner før dere starter oppdateringen. Dette gjelder også MAB Schedule som dere vil finne på serveren.

1: Steng ned alle MAB på alle maskiner før dere starter oppdateringen. Dette gjelder også MAB Schedule som dere vil finne på serveren. Oppdatering av MAB. Før dere begynner pass på følgende 1: Steng ned alle MAB på alle maskiner før dere starter oppdateringen. Dette gjelder også MAB Schedule som dere vil finne på serveren. 1 2. Viktig

Detaljer

MySQL. Historikk. Nedlasting og installasjon

MySQL. Historikk. Nedlasting og installasjon 1 MySQL MySQL kan lastes ned gratis fra Internett (dev.mysql.com/doc). Vi forklarer hvordan man laster ned og installerer verktøyet, og også hvordan man kommer i gang med å lage databaser i MySQL. Historikk

Detaljer

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 INF 329: Web-Teknologier Dataimplementasjon Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 av: Dag Viggo Lokøen (dagvl@ii.uib.no) Kent Inge F. Simonsen (kentis@ii.uib.no)

Detaljer

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas

Testrapport Prosjekt nr. 2011-22 Det Norske Veritas Prosjekt nr. 2011 22 Testrapport Hovedprosjektets tittel Implementering av plugin og utvikling av wizard for Det Norske Veritas Prosjektdeltakere Magnus Strand Nekstad s156159 Jørgen Rønbeck s135779 Dato

Detaljer

SPSS Høgskolen i Innlandet

SPSS Høgskolen i Innlandet SPSS Høgskolen i Innlandet Innhold Windows PC, tilkobling til SPSS... 2 Tilkobling:... 2 Steg 1.... 2 Steg 2.... 3 Steg 3.... 3 Steg 4... 4 Windows PC, åpne og lagre filer fra egen datamaskin... 5 Lagre

Detaljer

Sikkerhet og tilgangskontroll i RDBMS-er

Sikkerhet og tilgangskontroll i RDBMS-er Sikkerhet og tilgangskontroll i RDBMS-er IN2090 14. nov 2018 Mathias Stang 1 Agenda Modeller for tilgangskontroll Brukere og roller i RDBMS-er GRANT og REVOKE SQL Injections 2 Hovedmål med databasesikkerhet

Detaljer

PowerOffice Mobile Server

PowerOffice Mobile Server PowerOffice Mobile Server 20 14 Po we ro ffice AS - v20 12.1.0 PowerOffice SQL - PowerOffice Mobile Server Alle rettigheter reservert. Ingen deler av dette arbeidet kan reproduseres i noen form eller på

Detaljer

SPSS Høgskolen i Innlandet

SPSS Høgskolen i Innlandet SPSS Høgskolen i Innlandet Innhold Mac, tilkobling til SPSS... 2 Tilkobling:... 2 Steg 1.... 2 Steg 2.... 3 Steg 3.... 4 Steg 4... 4 Mac, åpne og lagre filer fra egen datamaskin... 5 Lagre eller åpne filer

Detaljer

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet

Detaljer

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

EKSAMEN. 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

Detaljer

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen.

Artist webside. Gruppe medlemmer Joakim Kartveit. Oppdragsgiver Tetriz Event & Management. Frode Mathiesen. Gry Anita Nilsen. Artist webside Innhold Artist webside...1 Gruppe medlemmer...1 Oppdragsgiver...1 Kontaktperson...2 Veileder...2 Oppgaven...2 Muligheter...2 Sammendrag...2 Dagens situasjon...2 Mål og rammebetingelser...3

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITF10208 Webprogrammering 1 Dato: Eksamenstid: 09/12-2008 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom Heine

Detaljer

Demoversjon. Installasjon Uni Økonomi V3. - økonomisystemer fra start til børs

Demoversjon. Installasjon Uni Økonomi V3. - økonomisystemer fra start til børs Demoversjon Installasjon Uni Økonomi V3 - økonomisystemer fra start til børs Velkommen til installasjon av Uni Økonomi V3 demoversjon. Her vil vi gi deg en steg for steg veiviser for hvordan du laster

Detaljer

Oppgradering/installasjon av nye versjoner av ISY Park

Oppgradering/installasjon av nye versjoner av ISY Park Oppgradering/installasjon av nye versjoner av ISY Park Versjon 7.6.6 ISY Park klient og database Databasemodell, roller, rettigheter og data i ISY Park oppdateres via administrasjonsmodul i ISY Park. Det

Detaljer

Lotus Traveler - Manual for installasjon

Lotus Traveler - Manual for installasjon Lotus Traveler - Manual for installasjon Innholdsliste Nedlasting...2 Installasjon...3 Konfigurering...4 Problemer...5 Nedlasting 1) Åpne nettleseren på mobilen din. På de fleste Nokia-telefoner har denne

Detaljer

Testsituasjon Resultat Kommentar. Fungerer som det skal!

Testsituasjon Resultat Kommentar. Fungerer som det skal! Test- rapport Testsituasjon Resultat Kommentar Test av PHP-variablene. Sjekke om de er riktig deklarert, og om de kommer med fra form til database Alle variablene som skal leses fra konfigurasjonssiden,

Detaljer

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

Oppgave 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

Detaljer

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 - Kandidatnr: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering

Detaljer

Publisering av statiske og dynamiske websider til klasserom.net fra Dreamweaver og MySQL

Publisering av statiske og dynamiske websider til klasserom.net fra Dreamweaver og MySQL Publisering av statiske og dynamiske websider til klasserom.net fra Dreamweaver og MySQL 1. Om klassersom.net: Klasserom.net er en webhotell-løsning for skoler, hvor formålet er å gi elevene hvert sitt

Detaljer

Humanware. Trekker Breeze versjon 2.0.0.

Humanware. Trekker Breeze versjon 2.0.0. Humanware Trekker Breeze versjon 2.0.0. Humanware er stolte av å kunne introdusere versjon 2.0 av Trekker Breeze talende GPS. Denne oppgraderingen er gratis for alle Trekker Breeze brukere. Programmet

Detaljer

Integritetsregler i SQL

Integritetsregler 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Tirsdag 12. juni 2012 Tid for eksamen: 9:00 15:00 Oppgavesettet er

Detaljer

Velkomment til å installere BAS21

Velkomment til å installere BAS21 Velkomment til å installere BAS21 Du har nå kommet til siden hvor du kan installere programpakken BAS21, en komplett programpakke for bedrifter. Å komme igang med BAS21 er enklest ved å følge disse 4 punktene:

Detaljer

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

SQL 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

Detaljer

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent Feilsøking i BO Olav Syse, konsulent Jan Terje Hansen, service manager Hovedfokus: Business Intelligence 900 ansatte i Norge, Sverige, Danmark, Finland, Estland, Latvia, Litauen og Polen 135 ansatte i

Detaljer

SQL Server guide til e-lector

SQL Server guide til e-lector LES LETTERE, LES RASKERE, FÅ LESELYST! SQL Server guide til e-lector Innhold 1 Innledning... 2 2 SQL Express 2008 R2 installasjon... 2 3 Etter installasjon... 4 3.1 SQL Express... 4 3.1.1 Nettverksoppsett

Detaljer

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Oppgave 1 RMI-tjenerobjekt (databasewrapper) A Sentral tjenermaskin med database, RMi-register og RMI-tjenerprogram vis kart gjør bestilling

Detaljer

Aditro AS. Produktnotat Huldt & Lillevik Ansattportal Ansattportal. Versjon (286) Copyright 2014 Aditro Side 1

Aditro AS. Produktnotat Huldt & Lillevik Ansattportal Ansattportal. Versjon (286) Copyright 2014 Aditro Side 1 Ansattportal Versjon 2014.2 (286) Copyright 2014 Aditro Side 1 Innhold 1 Oppdatere til 2014.2 build 286... 3 2 Aktivere Microsoft.Net Rammeverk 4.0... 6 3 Ny funksjonalitet... 8 Timer Registrere per uke

Detaljer

Integritetsregler i SQL. Primærnøkler

Integritetsregler 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

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Huldt & Lillevik Ansattportal 2013-04-30. Ansattportal. Versjon 2013.2

Huldt & Lillevik Ansattportal 2013-04-30. Ansattportal. Versjon 2013.2 Ansattportal Versjon 2013.2 Innhold 1 Oppdatere til 2013.2... 2 2 Aktivere Microsoft.Net Rammeverk 4.0... 5 3 Ansattportalen kompatibel med flere nettlesere... 7 4 Timer Registrere pr uke... 7 5 Ny adgangsprofil

Detaljer

Konfigurasjon av nettverksløsning for Eldata 8.0 basert på PostgreSQL 9.4.2 databasesystem.

Konfigurasjon av nettverksløsning for Eldata 8.0 basert på PostgreSQL 9.4.2 databasesystem. Konfigurasjon av nettverksløsning for Eldata 8.0 basert på PostgreSQL 9.4.2 databasesystem. Konfigurere server er en oppgave for administrator. All installasjon og konfigurasjon må utføres ved å kjøre

Detaljer

Romlig datamanipulering

Romlig datamanipulering Romlig datamanipulering Gunnar Tenge, 18.04.08 Romlige manipuleringsteknikker brukes i GIS-analyser. I denne artikkelen forklares alle manipuleringsteknikker som man kan forvente å finne i et GIS-program.

Detaljer

Hvor og hvordan lagrer du mediafilene dine?

Hvor og hvordan lagrer du mediafilene dine? Beskriv din digitale infrastruktur, med tilhørende arbeidsflyt. Hvor og hvordan lagrer du mediafilene dine? Hva gjør du med back-up? Hva slags online lagringsløsning har du valgt? Hvordan finner du fram

Detaljer

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012 Om verktøyet Formålet med dette verktøyet er å migrere informasjon fra en databasevariant til en annen, i denne veiledningen fra Oracle til MySQL. Dette gjøres som første ledd i en avleveringsprosess.

Detaljer

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner LC238D http://www.aitel.hist.no/fag/_dmdb/ Transaksjoner og flerbrukerproblematikk Transaksjoner side 2-4 Låseteknikker side 5 Isolasjonsnivåer side 6-7 Flerbrukerproblemer i fbm utførelse av transaksjoner

Detaljer

Brukerveiledning for ArkN4

Brukerveiledning for ArkN4 Brukerveiledning for ArkN4 Brukerveiledningen er delt inn i 3 deler: 1. Konfigurasjon av ArkN4 2. Kjøre ArkN4 3. Opprette ny database Eksemplene i dette kapitlet viser hvordan man velger de forskjellige

Detaljer

Dato Versjon Endring/status Utført av 2006-07-01 0.1 Første versjon Asgeir Husum 2006-08-23 0.2 Lagt til beskrivelse av postlevering Lars Myrås

Dato Versjon Endring/status Utført av 2006-07-01 0.1 Første versjon Asgeir Husum 2006-08-23 0.2 Lagt til beskrivelse av postlevering Lars Myrås UDE Konfigurasjon av Microsoft Outlook Dato Versjon Endring/status Utført av 2006-07-01 0.1 Første versjon Asgeir Husum 2006-08-23 0.2 Lagt til beskrivelse av postlevering Lars Myrås 2006-08-24 1.0 Endelig

Detaljer

SQL 3: Opprette tabeller, datainnsetting og utsnitt

SQL 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,

Detaljer

Småteknisk Cantor Controller installasjon

Småteknisk Cantor Controller installasjon Cantor AS Småteknisk Cantor Controller installasjon 10.10.2012 INSTALLASJON OG OPPSETT AV CANTOR CONTROLLER 3 Nedlasting av programfiler 3 Nyinstallasjon server / enbruker 3 A. Controller instansen som

Detaljer

Beskrivelse for hvordan en kan digitalisere og importere musikk inn i Variations på TEST server EINER.UIB.NO (for installasjonen 17.

Beskrivelse for hvordan en kan digitalisere og importere musikk inn i Variations på TEST server EINER.UIB.NO (for installasjonen 17. Beskrivelse for hvordan en kan digitalisere og importere musikk inn i Variations på TEST server EINER.UIB.NO (for installasjonen 17. april 2012) Utgangspunktet er følgende sak: https://prosjekt.uib.no/issues/1976

Detaljer

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

EKSAMEN (Konvertert fra en gammel PHP-eksamen) EKSAMEN (Konvertert fra en gammel PHP-eksamen) Emnekode: Emne: ITF10208 Webprogrammering 1 Dato: Eksamenstid: 06/12-2011 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

Detaljer

Huldt & Lillevik Ansattportal 2011-03-22. Ansattportal. Versjon 3.3.22

Huldt & Lillevik Ansattportal 2011-03-22. Ansattportal. Versjon 3.3.22 Ansattportal Versjon 3.3.22 Innhold 1 Oppdatere til 3.3.22... 2 2 Definere lenker... 5 3 Registrere informasjon om pårørende... 6 4 Bestille nytt passord... 6 5 Andre endringer... 7 5.1 Logging og kontroll

Detaljer

Effektiv Systemadministrasjon

Effektiv Systemadministrasjon Effektiv Systemadministrasjon UBW MILESTONE WILLIAM NILSEN Introduksjon William Nilsen ASP/Cloud avdelingen i Evry Jobbet flere år med generelt teknisk drift og ca 3 år med drift av UBW ASP/Cloud avdelingen

Detaljer

Huldt & Lillevik Ansattportal Ansattportal. Versjon

Huldt & Lillevik Ansattportal Ansattportal. Versjon Ansattportal Versjon 3.3.31 Innhold 1 Oppdatere til 3.3.31... 2 2 Endringer på navnefeltet... 5 3 Single Sign-On... 6 4 Andre endringer... 7 4.1 Timer Maler opprettet av attestansvarlig... 7 4.2 Attestansvarlig...

Detaljer

En enkel lærerveiledning

En enkel lærerveiledning En enkel lærerveiledning ~ 1 ~ Innhold INNLEDNING... 3 Hva?... 3 Hvorfor?... 3 INN- og UTLOGGING... 4 Innlogging... 4 Utlogging... 5 Lærerinnlogging/-utlogging... 5 OUTLOOK / EPOST... 6 Skrive epost...

Detaljer

Installasjonsbeskrivelse for CAB Service Plattform med CABInstall

Installasjonsbeskrivelse for CAB Service Plattform med CABInstall Installasjonsbeskrivelse for CAB Service Plattform med CABInstall INNLEDNING... 2 INSTALLASJON... 3 AVANSERT INSTALLASJON... 10 YTTERLIGERE INFORMASJON... 11 Proxy... 11 Side 1 av 11 Innledning Denne beskrivelsen

Detaljer

Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen.

Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen. 1 Sammendrag Dette dokumentet er en produktrapport for vårt avsluttende hovedprosjekt våren 2008 ved høgskolen i Oslo, for ingeniør - avdelingen. Vår oppdragsgiver, ABTF hadde et ønske om en større web

Detaljer

PostGIS som navet i dataforvaltningen ved Skog og landskap

PostGIS som navet i dataforvaltningen ved Skog og landskap PostGIS som navet i dataforvaltningen ved Skog og landskap muligheter, utfordringer og erfaringer Ingvild Nystuen, Lars Opsahl, Teknologiforum, 12.11.2014 Skog og landskap Den store verden Data kopieres

Detaljer

http://balder/obs2.nsf/8178b1c14b1e9b6b8525624f0062fe9f/71e1616e4d33c749c125... Controller Brukerstøttedatabase Ottar Holstad/Cantor 09.

http://balder/obs2.nsf/8178b1c14b1e9b6b8525624f0062fe9f/71e1616e4d33c749c125... Controller Brukerstøttedatabase Ottar Holstad/Cantor 09. Side 1 av 6 Controller Brukerstøttedatabase Ottar Holstad/Cantor 09.01 14:18. Emne/tittel:. Kategori: "Kan ikke koble til databasen! Sjekk ODBC og event. BDE". Feilmeldinger ODBC-Administrator (OpenDataBaseConnectivity)

Detaljer

Bruke SQL fra Python. Med Psycopg2

Bruke SQL fra Python. Med Psycopg2 Bruke SQL fra Python Med Psycopg2 0 1 (1/3) 1 (2/3) 1 (3/3) 2 Pakken psycopg2 3 Pakken psycopg2 De viktigste klassene vi trenger i psycopg2: connection Håndterer forbindelsen fra Python til PostgreSQL

Detaljer

Å lage Noark 4 uttrekk selv. Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472

Å lage Noark 4 uttrekk selv. Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472 Å lage Noark 4 uttrekk selv Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472 Prosjektet IKA Kongsberg / HiOA Kan vi lage et Noark 4 uttrekk for en av IKA Kongsbergs kommuner? Uformell samarbeid

Detaljer

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN! Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse Transaksjonshåndtering LC191D Videregående programmering

Detaljer

Guide for tilkobling til HIKT s Citrix løsning

Guide for tilkobling til HIKT s Citrix løsning Guide for tilkobling til HIKT s Citrix løsning Innhold Guide for tilkobling til HIKT s Citrix løsning... 1 Sjekk om Citrix er installert... 1 Tilgang til applikasjon fra kontoret... 2 Tilgang til applikasjon

Detaljer

Installasjonsveiledning

Installasjonsveiledning Installasjonsveiledning Magne Rodem og Jan-Erik Strøm 18. juni 2006 Innhold 1 Installasjon av Web Service 3 1.1 Krav........................................... 3 1.2 Installasjon av Sun Java System Application

Detaljer

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21 SQL: Systemaspekter Evgenij Thorstensen V18 Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21 Oversikt Hvordan et DBMS er organisert (med psql som eksempel) Trelagsarkitektur og impedance mismatch Databasetilgangsmåter

Detaljer

5XQH.MHOYLN )URQW3DJHRJGDWDEDVHU

5XQH.MHOYLN )URQW3DJHRJGDWDEDVHU 5XQH.MHOYLN )URQW3DJHRJGDWDEDVHU Gyldendal Norsk Forlag ASA 2000 Dette materiellet er ment som et tillegg til læreboken FrontPage 2000 ISBN 82-05-26370-1. Tillegget bør leses i sammenheng med kapittel

Detaljer

LAB-L SETTE OPP MICROSOFT SERVER 2003

LAB-L SETTE OPP MICROSOFT SERVER 2003 Av Erik Espenakk JEG BEGYNNER MED EN FRISK INSTALLASJON AV WINDOWS SERVER. Her kan du legge til diverse server applikasjoner. Legg til DNS og Applikasjons server Her har jeg satt opp en Application server

Detaljer

>>21 Datamodellering i MySQL Workbench

>>21 Datamodellering i MySQL Workbench 21 MYSQL WORKBENCH 207 >>21 Datamodellering i MySQL Workbench I dette kapittelet vil du lære hvordan man lager datamodeller i MySQL Workbench hvordan man overfører en modell til MySQL I tillegg til å være

Detaljer

GC4AXWG [WHERE DO YOU WANT TO GO TODAY?] av thomfre. En introduksjon til Wherigo og Wherigo-cacher

GC4AXWG [WHERE DO YOU WANT TO GO TODAY?] av thomfre. En introduksjon til Wherigo og Wherigo-cacher GC4AXWG av thomfre [WHERE DO YOU WANT TO GO TODAY?] En introduksjon til Wherigo og Wherigo-cacher [EN INTRODUKSJON TIL WHERIGO].--.....-... --. --- Innholdsfortegnelse Hva er Wherigo?... 2 Wherigo-moduler...

Detaljer