Datamodellering. Diskusjonspunkter. Figur 1-1. Informasjonssystemet gjenspeiler «virkeligheten» Figur 1-2. Data krever tolkning

Størrelse: px
Begynne med side:

Download "Datamodellering. Diskusjonspunkter. Figur 1-1. Informasjonssystemet gjenspeiler «virkeligheten» Figur 1-2. Data krever tolkning"

Transkript

1 Datamodellering FINF august amanuensis Gerhard Skagestein Institutt for informatikk, UiO To formål en modell? Diskusjonspunkter Realiseringsplattformens innvirkning på modellen Grafiske dialekter ER, UML klassediagrammer, ORM Attributter eller assosiasjoner? Behovet for datatyper Valg av identifikator { key } Hva er en weak entity? Undertyper når skal vi bruke dem? Generalisering/spesialisering Hva er egentlig et individ? Tesselering i rom og tid Grensetrekking mellom skjema og forekomster Noen mønstre FINF400DM - FINF400DM -2 Figur -. Informasjonssystemet gjenspeiler «virkeligheten» Figur -2. Data krever tolkning Virkeligheten (interesseområdet) Referanseramme registrering påvirkning Oppfatningen av virkeligheten Annen relevant kunnskap Oppfatningen av virkeligheten Brukere Informasjonssystem Informasjonssystem Data Brukere! Informasjon Virksomheten FINF400DM -3 FINF400DM -4

2 Modellenes to formål Interesseområdet Beskrivelse Figur 5-2. Ogdens trekant Thoughts of Reference Begreper Person Bil Døgn Oppfatningen av interesseområdet Foreskrivelse DF febr Informasjonssystem Brukere Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet FINF400DM -5 FINF400DM -6 En enkel datamodell Figur 5-3. Datamodell attributter erstattet med assosiasjoner fylkenavn {unique} omfatter : ligger-i 0: kommunenr{id} avfallsmengde {null} innbyggertall omfatter : stilhørighet Multiplisitet ligger-i 0: Klasse, stereotypet som begrep 0: avfallsmengde navn fylkenavn {id} navn {id} # tonn {id} Mengde Assosiasjon Rolle innbyggertall # {id} Antall FINF400DM -7 FINF400DM -8

3 Figur 5-6. Bruk av identifiserende assosiasjon Figur 5-3. Datamodell med identifiserende assosiasjon omfatter ligger-i omfatter : ligger-i 0: stilhørighet Klasse, stereotypet som begrep Multiplisitet navn fylkenavn {id} tosifret kommunenr kommunenr2s {id} kommunenr2s {id} navn {id} 0: avfallsmengde # tonn {id} Mengde Assosiasjon Rolle innbyggertall # {id} Antall FINF400DM -9 FINF400DM -0 Figur 5-3b. Modell med fremmednøkler Figur 5-5. Relasjonsdatabasen fylkenavn {fk} {unique} navn fylkenavn {id} fylkenavn navn fylkenavn omfatter : navn ligger-i 0: {fk} {id} kommunenr2s {id} {fk} avfallsmengde {fk} {null} innbyggertall {fk} 0: avfallsmengde navn {id} Mengde # tonn {id} Antall kommunenr2s Mengde Antall antall_tonn antall avfallsmengde innbyggertall innbyggertall # {id} FINF400DM - FINF400DM -2

4 Figur 5-8. Relasjonsdatabase uten unyttige tabeller Figur 5-9. Modell uten unyttige klasser fylkenavn fylkenavn {unique} omfatter : kommunenr2s avfallsmengde innbyggertall ligger-i 0: {fk} {id} kommunenr2s {id} avfallsmengde {null} innbyggertall FINF400DM -3 FINF400DM -4 Figur 5-6. Relasjonsdatabasestruktur uten nil Figur 5-7. Modell med mange-til-mange-assosiasjon kommunenr2s avfallsmengde innbyggertall gjenvunnet_materiale Materiale materialnavn {id} kommunenr2s innbyggertall 2 kommunenr2s innbyggertall FINF400DM -5 FINF400DM -6

5 Figur 5-8. Modell med assosiasjonsklasse Figur 5-9. Assosiasjonsklassen erstattes med en vanlig klasse Materialgjenvinning 0: gjenvunnet mengde gjenvunnet_materiale # tonn {id} Mengde Materiale materialnavn {id} Materialgjenvinning gjenvunnet_ materiale Materiale materialnavn {id} 0: gjenvunnet mengde # tonn {id} Mengde FINF400DM -7 FINF400DM -8 Figur 5-. Spesialisering og generalisering Underbegreper Figur 5-2. Modell med underbegreper Mann fødselsnr {id} a) far mor Generalisering Kvinne fødselsnr {id} Spesialisering Person fødselsnr {id} far mor b) omfatter Navn navn {id} {disjoint, complete} Person ligger-i navn navn c) fødselsnr {id} {disjoint, complete} Mann far mor Kvinne FINF400DM -9 FINF400DM -20

6 Figur 5-5. Modell med generalisering Figur 5-7. Håndtering av underbegreper omfatter ligger-i fylkenavn navn {id} Navn Kjønn kjønnskode {id} diskriminerende assosiasjon Person fødselsnr {id} 0: {disjoint, complete} Fornavn navn {id} Mann Kvinne antall fødsler Antall # {id} FINF400DM -2 FINF400DM -22 a) Separasjon Figur 5-7. Håndtering av underbegreper Person fødselsnr kjønn fornavn Figur Samme fenomen uten og med tidsdimensjon Mann fødselsnr Kvinne fødselsnr b) Absorpsjon Person fødselsnr kjønn fornavn c) Partisjonering antall_fødsler antall_fødsler nil hvis kjønn = m Én forekomst for hvert tidspunkt! t t Person ansattnr{id} Kjønn kjønnskode{id} Person fødselsnr Kan sløyfes, ingen forekomster Mann fødselsnr kjønn fornavn Kvinne fødselsnr kjønn fornavn antall_fødsler År årstall{id} Personår 0: #kg{id} Vekt FINF400DM -23 FINF400DM -24

7 ansattnr{id} kjønn Figur UML klassediagram og tilsvarende relasjonsdatabase, uten og med tidsdimensjon Person Person ansattnr kjønn Intensjon og ekstensjon Husholdningsavfall Relasjonsskjema nr nr navn Databasens intensjon Avfallsmengde Personår Databasens ekstensjon ansattnr {id} {fk} årstall {id} vekt Personår ansattnr årstall vekt Tupler/ Linjer/ Forekomster Halden Moss Sarpsborg FINF400DM -25 FINF400DM -26 Diskusjonspunkter Når bør vi normalisere? Databaser Fra modell til relasjonsdatabase Fra modell til OO-database FINF september 2003 Hvordan oppnå permanens Brukerklienter og databasetjenere. amanuensis Gerhard Skagestein Institutt for informatikk, UiO gerhard@ifi.uio.no Statisk vs dynamisk SQL prekompilering vs. rutinekall Tilgangskontroll Sikringsmekanismer Distribuerte databaser: To-fase-commit vs. replikering FINF400DM -27 FINF400DM -28

8 Høyere ordens assosiasjoner en vederstyggelighet Høyere ordens assosiasjon vist som tabell År År omfatter : årstall {id} omfatter : årstall {id} Ikke i henhold til UML-standarden! ligger-i 0: ligger-i 0: Materialgjenvinning gjenvunnet_ materiale Materiale materialnavn {id} Materialgjenvinning gjenvunnet_ materiale Materiale materialnavn {id} navn navn Er entydighetsskranken korrekt? Er tabellen normalisert? {id} {id} FINF400DM -29 FINF400DM -30 Høyere ordens assosiasjon vist som tabell Høyere ordens assosiasjon løst opp med nytt begrep År År jf. figur 5-0 i Skagestein: Systemutvikling årstall {id} årstall {id} omfatter : ligger-i 0: navn {id} Materialgjenvinning gjenvunnet_ materiale Materiale materialnavn {id} navn {id} Materialgjenvinning omfatter : ligger-i 0: gjenvunnet_ materiale 0: gjenvunnet mengde Materiale materialnavn {id} # tonn {id} Mengde FINF400DM -3 FINF400DM -32

9 Statiske og dynamiske virkelighetsmodeller Dataorientert (statisk) virkelighetsmodell Interesseområdet t Virkelighetsmodellen omfatter o virkelighetens tilstander og deres representasjoner registrering påvirkning o regler for lovlige/ulovlige tilstander og tilstandsoverganger Informasjonssystem Oppfatningen av interesseområdet t Brukere t Virkelighetsmodellen omfatter ikke transformasjoner fra en tilstand til den neste Informasjonssystemet får istedenfor en melding om at virkeligheten har endret seg, og virkelighetsmodellen oppdateres ved hjelp av funksjoner i applikasjonslaget. Virkelighetsmodellen deles av alle funksjoner FINF400DM -33 FINF400DM -34 Objektorientert (dynamisk) virkelighetsmodell Virkelighetsmodellen gjenspeiler konkrete og/eller tenkte (mentale) objekter, med hver sin tilstand og hver sin oppførsel Virkelighetsmodellens objekter kan selv sørge for transformasjoner fra en tilstand til den neste Informasjonssystemet må i tillegg ha funksjoner (ofte implementert ved hjelp av objekter) for o (resten av) forretningslogikken o brukergrensesnittet Fra det dataorienterte til det objektorienterte perspektiv I det dataorienterte perspektivet interesserer vi oss for faktaopplysninger av statisk natur om interesseområdet, og skranker som forhindrer registrering av åpenbart uriktige fakta I det objektorienterte perspektivet interesserer vi oss for virkelige og tenkte objekter i interesseområdet, og hvordan disse objektene gjennom samarbeide kan gi en hensiktsmessig modell Javel, men har ikke da disse perspektivene svært lite til felles? FINF400DM -35 FINF400DM -36

10 Andre relevante forskjeller I OO har vi som collection ikke bare mengde, men også bag, list og array > krav om entydighetsskranke faller bort > forekomstene kan ordnes I OO kan strukturer som set, bag, list og array, samt generelle objekter, brukes som verdier > uendelige mange muligheter for hvordan data struktureres I OO er dataene innkapslet i objektene > dataenes struktur er ukjent for omverdenen - de kan bare fås tak i gjennom spørremeldinger (jf. neste lysark) i OO har objekter sin egen innebygde identifikator (OID) > begreper behøver ikke alltid ha en representasjon Ah, hvilken frihet - men vi betaler vel noe for dette? Klasser eller objekter først? Dataorientert utforming: Begreper og klasser, deretter forekomster Men: Homogenitetsregelen Objektorientert utforming: Objekter, deretter klasser Hvorfor forskjellen i praktisk fremgangsmåte? FINF400DM -37 FINF400DM -38 Forholdet mellom det generelle og det spesielle (klasser og objekter) Det generelle, eksisterer det egentlig, eller er det noe vi har funnet på for å beskrive/snakke om verden på en enklere måte? o Eks: kråker, mennesker o Eksisterer slike fellesbegreper, eller er det bare vår egen begrepsdannelse? o Hvis de eksisterer, er de av fysisk eller åndelig natur? o Eksisterer det generelle evt. fritt fra de enkelte individene, eller bare som del av disse? Debatt fra 00- tallet, interessant for systemutviklere Nominalist Nominalist eller Realist o Det som eksisterer er bare enkeltindividene. Generelle fellesbegreper er skapt av menneskene, bl.a. for bedre å forstå/beskrive verden (eks. Wilhelm av Occam og Charles Darwin) Realist o Generelle fellesbegreper som kråke, menneske har en egen eksistens, og enkeltindividene er dannet etter disse (eks: Platon og Thomas av Aquinas) FINF400DM -39 FINF400DM -40

11 Datadrevet vs. ansvarsdrevet modellering Datamodellering: Hvilke ting må systemet vite om, og hva må det vite om disse tingene? Datadrevet OO: Hvilke objekter har vi? Hva må et objekt vite om seg selv, og hvilke andre objekter må det kjenne til? Hva må hvert objekt kunne gjøre for å kunne løse oppgaven? Hvilke objektbeskrivelser (=klasser) trengs? Ansvarsdrevet OO: Hvilke objekter må til for å løse oppgaven, og hvilket ansvar må hvert objekt ivareta? Hva må hvert objekt kunne gjøre for å oppfylle ansvaret? Hva må et objekt vite om seg selv, og hvilke andre objekter må det kjenne til? Gir disse ulike tankemåtene samme svar? Objektorientert vs. dataorientert utforming Både dataorienterte og objektorienterte informasjonssystemer inneholder data. Forskjellen er at i dataorienterte systemer er alle data samlet i en sentral ressurs databasen, mens i objektorienterte systemer er dataene fordelt på objektene ut fra det generelle prinsipp at det objektet som har bruk for data selv tar vare på dem. I objektorienterte systemer får dataene evig liv ved å gjøre objektene persistente. Dette kan realiseres på flere måter for eksempel ved hjelp av en OO-database. Ugrupperte modeller bygd med elementære utsagn er i utgangpunktet nøytrale overfor hvilket perspektiv som velges. Perspektivet kommer inn når de elementære utsagnene skal grupperes til relasjonsdatabase eller inn i objekter. Gruppering til relasjonsdatabase kan gjøres utelukkende ut fra skrankene i den ugrupperte dataorienterte modellen (i UML eller ORM). For gruppering til objekter må vi i tillegg se på ansvarsfordelingen. FINF400DM -4 FINF400DM -42 Objektorientert vs. dataorientert utforming Informasjonssystem new new klasse Objektorientert Realisering av klassediagrammet fylkenavn relasjonsdatabase {fk} komnr2s {id} objekter Program Informasjonssystem CREATE INSERT INSERT Dataorientert klasse (entitet) 0 0 fylkenavn 0 Østfold komnr2s 0 04 Halden Moss Østfold: 0 Østfold evt. metoder realiseres ved hjelp av OIDs eller relationships : 00 Halden evt. metoder : 004 Moss evt. metoder FINF400DM -43 FINF400DM -44

12 Til relasjonsdatabase: Generering av fremmednøkler Stryk unyttige klasser År År navn {id} årstall {id} omfatter : ligger-i 0: «identi- fying» {fk}{id} kommunenr2s {id} {fk} Materialgjenvinning kommunenr{fk}{id} gjenvunnet_mat{fk}{id} år{fk}{id} gjenvunnet_mengde{fk} gjenvunnet_ materiale 0: gjenvunnet mengde Materiale materialnavn {id} Mengde # tonn {id} FINF400DM -45 omfatter : ligger-i 0:? «identi- fying» Materiale materialnavn {id} {fk}{id} kommunenr2s {id} {fk} navn {id} årstall {id} Materialgjenvinning {fk}{id} kommunenr2s{fk}{id} gjenvunnet_mat{fk}{id} årstall{id} gjenvunnet_mengde gjenvunnet_ materiale 0: gjenvunnet mengde # tonn {id} Mengde FINF400DM -46 Relasjonsdatabasen Figur 0-0. Sekvensdiagram for avfallsstatistikk-system Kontrollobjekt Forretningsobjekter Delmengdeskranke/ referanseintegritet Materiale materialnavn :Brukergrensesnitt :Statistikkinteressert person Be om statistikk :Statistikkprodusent new( ) :HeleLandet Halden: Moss: Halden998: Gjenvinning Halden200: Gjenvinning Moss998: Gjenvinning kommunenr2s lagstatistikk(args) hentdata(args) mengde:=gjenvunnetmengde (periode,materiale) mengde :=gjenvunnetmengde(materiale) mengde := gjenvunnetmengde(materiale) mengde :=gjenvunnetmengde (periode,materiale) mengde := gjenvunnetmengde(materiale) gjenta for alle kommuner gjenta for alle aktuelle år Materialgjenvinning kommunenr2s gjenvunnet_mat år gjenvunnet_mengde Fjern objektet det trengs ikke lenger FINF400DM -47 FINF400DM -48

13 Figur 0-. Klassediagram for avfallsstatistikk-system Flytting av grense skjema/forekomster HeleLandet struct hentdata(args) int gjenvunnetmengde (periode, materiale) Materialgjenvinning årstall {id} papirmengde glassmengde plastmengde kommune materiale papp glass plast gjenvunnet Opprinnelig struktur Objektorientert klassediagram int gjenvunnetmengde (materiale) papp glass plast Mer metadata, mindre data Dataorientert klassediagram Materialgjenvinning årstall {id} materialnavn {id} mengde kommune papp glass plast 0 0 FINF400DM -49 FINF400DM -50 Skranker Hvorfor er skranker så viktige i dataorientert utforming, og lite omtalt i objektorientert utforming? En relasjonsdatabase har ingen egen bevissthet, og trenger et regelverk og en vaktbikkje til å beskytte seg Objekter har oppførsel, og vi antar at de følger Kardemommeloven: Du skal ikke plage andre, du skal være grei og snill og for øvrig kan du gjøre hva du vil Antagelsen holder ikke nødvendigvis alltid stikk (programmeringsfeil!) derfor er skranker på vei inn også i objektorienterte systemer jfr OCL (Object Constraint Language) Integritetsskranker i relasjonsdatabaser Brukergrensesnitt Integritetsregler Metadata Kunde Ordre Database Primærnøkler og entitetsintegritet Fremmednøkler og referanseintegritet Andre skranker Brukerdata Databasehåndteringssystem (DBMS) FINF400DM -5 FINF400DM -52

14 Klient-tjener-filosofi klient Spørreklienter mot databasetjenere - et eksempel på klient/tjener-arkitektur tjener klient klient tjener klient kan du være så snill å... Spørreklienter mot databasetjenere - en typisk anvendelse av klient/tjener-arkitektur o Felles, ytelsesoptimalisert, sikret database o Personlig brukergrensesnitt og datamassasje med fornøyelse! Det er alt gjort! Hver enkelt klient og tjener er et selvstendig (autonomt) system! Klienten er proaktiv, tjeneren reaktiv klient Database tjener FINF400DM -53 FINF400DM -54 PC -databasehåndterere Ekte klient-tjener-løsninger SQL Frittstående maskin hent filer SQL prosedyrekall Filtjener Databasetjener Databasetjener I begge tilfeller gjøres databaseoperasjonene på brukerens maskin! lagret prosedyre PC i nett Klient-tjener-løsning med SQL-grensesnitt Klient-tjener-løsning med lagrede prosedyrer FINF400DM -55 FINF400DM -56

15 Mellomvare ( Middleware ) Open Database Connectivity ODBC Komponenter o Applikasjon Applikasjon Mellomvare Standardiserte grenseflater o Driver Manager o Drivere o Datakilder ( = DBMS med data ) Driver Manager Driver Driver Driver ODBC interface Mellomvaren skjuler ulikheter i databasegrensesnitt eventuelt datanett En Microsoft standard! Datakilde Datakilde Datakilde FINF400DM -57 FINF400DM -58 ODBC med eksempel på drivere Java Database Connectivity JDBC Komponenter Application Application Application Driver to Oracle SQLNet ODBC API ODBC Driver Manager Service Provider API Driver to SQL Server Net Lib Driver to DB2/6000 ESQL/DRDA Driver to NonStop SQL NS SQL o Applikasjon (skrevet i Java) o Driver Manager (objekter med metoder) o Drivere o Datakilder ( = DBMS med data ) Applikasjon Driver Manager Driver Driver Driver Datakilde Datakilde Datakilde JDBC interface FINF400DM -59 FINF400DM -60

16 Hvordan oppnå persistens Eksplisitt overføre objekter til og fra et permanent lager med read/write - kommandoer o Databasen er skilt fra programmet Deklarere objekter persistente ved fødselen eller senere (enten som egenskap ved klassen, ved persistent new, eller referert fra persistent rotobjekt) o Databasen er integrert med programmet (Illusjonen om Det Ene Datalager) read/write Usynlige fra programmet virtuelt permanent lager Databasen integrert med programmet Programmeringsspråket er også datamanipuleringsspråk (Java, C++, Smalltalk?) Transiente og persistente objekter behandles likt - enkel programmering Persistens bør kunne gjelde alle typer objekter Persistent Transient Type Persistent = evigvarende! Transient = midlertidig (så lenge programmet går) FINF400DM -6 FINF400DM -62 Databasen skilt fra programmet Ett standard datamanipuleringsspråk (SQL, OQL?) Sentral databaseadministrasjon Basen først - så programmene Databasespråk DDL/ODL Datadefinisjonsspråk (for skjemamanipulering) DCL - Data-kontrollspråk (for tilgangskontroll) Mye semantikk i basen - integritetsregler osv. Kan brukes fra programmer i mange ulike programmeringsspråk DML/OQL Datamanipuleringsspråk Programmeringsspråk datamanipuleringsspråk o Forskjellige datatyper? o Impedance mismatch? FINF400DM -63 FINF400DM -64

17 Bruk av SQL Som selvstendig språk som regel interaktivt Som databasespråk i et vertsspråk o Embedded SQL (SQL-kommandoer som må prekompileres er lagt inn i programteksten) o Call Level Interface (SQL-subrutiner kalles fra programteksten) Embedded SQL er lettere å programmere, men databasens struktur må være fastlagt ved prekompileringen! Prekompilator er bundet til DBMS-produktet. Derfor er Call Level Interface mer i vinden! import java.sql.; import oracle.sql.; import javax.swing.; import oracle.jdbc.driver.; Figur 4-0 a. Bruk av SQL i et Java-program Oppkobling mot databasen class OracleInf02 { public static void main(string args[ ]) throws SQLException { // Last ned Oracle JDBC driveren DriverManager.registerDriver(new oracle.jdbc.driver.oracledriver( )); // Be bruker om brukernavn og passord String brukernavn = JOptionPane.showInputDialog("Brukernavn: "); String passord = JOptionPane.showInputDialog("Passord: "); // Oppkobling mot databasen Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@volund.ifi.uio.no:52:stubas",brukernavn, passord); FINF400DM -65 FINF400DM -66 Figur 4-0 b. Bruk av SQL i et Java-program Spørring og utskrift // Lag et SQL-setningsobjekt Statement stmt = conn.createstatement(); // Utfør en spørring ResultSet rset = stmt.executequery("select from Husholdningsavfall"); // Iterer gjennom resultatet og skriv ut noen av attributtene while ( rset.next( ) ) { System.out.print (rset.getstring()); // attributt nr System.out.print (" " + rset.getstring("navn")); System.out.println (" " + rset.getstring("avfallsmengde")); } System.exit(0); // fordi JOptionPain brukes uten foreldrevindu } } //OracleInf02 Persistent JAVA, ortogonal persistens import org.opj.store.pjstore; import org.opj.store.pjstoreimpl; import org.opj.store.pjsexception; class Test { } public static void main(string args[]) { try { PJStore ps = new PJStoreImpl("/home/user/pjs/stores/TestStore.pjs");... Object[] objectarray = new Object[00]; ps.newproot("object Array", objectarray);... } } catch (PJSException e) { System.err.println(e); } Trikset er å gjøre objektene nåbare fra et permanent rotobjekt FINF400DM -67 FINF400DM -68

18 Eksempel på en ODL-spesifikasjon interface Person { extent people; key SSN; attribute Integer SSN; attribute string name; attribute struct <Integer number, string street, Ref<City> city> address; relationship Set<Person> children inverse Person::parents {order_by birth_date}; relationship Person[2] parents inverse Person::children; ancestors (out Set<Person>) raises (no_such_person); move (in Address); } Jack.dateOfBirth select c.crse_title, c.credit_hrs from courses c where c.crse_code = MBA 664 select s.age from students s where s.name = John Marsh select s from students s where s.gpa >= 3.0 Eksempler OQL Select x.enrollment from courseofferings x x.belongs_to y where y.crse_code = MBA 664 and x.section = select c.crse_code, c.crse_title from students s s.takes x x.belongs_to c where s.name = Mary Jones FINF400DM -69 FINF400DM -70 Database-transaksjoner Datasikkerhet Transaksjon: Et udelelig stykke arbeid mot databasen Sikring av tilgang til data for de berettigede Forhindring av tilgang for de uberettigede Skal ideelt sett tilfredsstille ACID -kravene: ACID Atomiticy Consistency preservation (serializability) Durability Isolation Hva du gjør, gjør fullt og helt, og ikke stykkevis og delt! Beskyttelse av data mot hendelig eller villet tap, ødeleggelse eller misbruk. FINF400DM -7 FINF400DM -72

19 Tilgangskontroll Autentiseringsmekanismer o (ved hjelp av noe du vet, noe du har, noe du er) Autorisasjonsregler o Autorisasjonsmatriser o Eksterne skjema ( Views ) Tilgangskontroll Autorisere brukere, gi adgang til data GRANT. Trekke tilbake autorisasjoner REVOKE... Krypteringsmekanismer En autorisasjonsmatrise! FINF400DM -73 FINF400DM -74 Sikringskopiering og gjenoppretting Sikringskopierings-mekanismer Logging o Transaksjonslogg o Endringslogg - før- og etterbilder Sjekkpunkt-etablering o Restart-punkt etter feil Gjenopprettings-mekanismer Fremover- og tilbakerulling sikringskopiering sjekkpunkt fremoverrulling ønsket tilstand tilbakerulling Ved sjekkpunkt er ingen transaksjoner aktive, og databasen i en konsistent tilstand Fremoverrulling er aktuelt etter nedlasting fra sikkerhetskopi Fremoverrulling gjøres for bekreftede transaksjoner problem Databasens utvikling Tilbakerulling er aktuelt etter avbrutte transaksjoner: Brukeravbrudd, brudd på integritetsregler, samtidighetskontroll Tilbakerulling (UNDO) gjøres for ubekreftede transaksjoner samt for bekreftede transaksjoner som har lest data skrevet av ubekreftede transaksjoner (kaskaderende tilbakerulling) Fremover- og tilbakerulling forutsetter en logg (etterbilder og førbilder) FINF400DM -75 FINF400DM -76

20 Fremoverrulling (b) Rollforward Tilbakerulling FINF400DM -77 FINF400DM -78 Distribuerte databaser Mellomvare Interessante spørsmål: o Replikering? o Hvem er master? o To-fase-commit eller asynkron forplantning av oppdateringer? FINF400DM -79

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen?

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen? Visjonen... Intermesso samling av trådene jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel INF02-Intermesso- Theodor Kittelsen: Og i det fjerne, langt, langt borte så han noe lyse og

Detaljer

Datamodellering med UML (forts.)

Datamodellering 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

Detaljer

Hva vi i alle fall bør huske fra INF1050

Hva vi i alle fall bør huske fra INF1050 Hva vi i alle fall bør huske fra INF1050 Gerhard Skagestein 25. januar 2006 25. januar 2006 INF2120 Prosjekt i modellering 1 Figur 1-3. Et systems livssyklus Idé Krav og ønsker Utforming Realisering Ny

Detaljer

Modellenes to formål. Datamodellering med UML (forts.) Fra naturlig språk til datamodell. Figur 5-2. Ogdens trekant

Modellenes 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

Detaljer

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. 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 5 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. 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 5 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Individer i interesseområdet

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Individer i interesseområdet Dagens tema Individer i interesseområdet Den redundansfri datamodellen Redundansfrihet ingen dobbeltlagringer eller avledninger Gruppering, normalisering eller intuisjon? jfr. Systemutvikling fra kjernen

Detaljer

Den redundansfri datamodellen

Den redundansfri datamodellen Den redundansfri datamodellen jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri- Dagens tema Individer i

Detaljer

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML Figur 5-. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet Datamodellering med UML registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel

Detaljer

Datamodellering med UML

Datamodellering med UML Datamodellering med UML jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 (og litt fra kapittel 6 og 7) dmuml-1 Figur 5-1. Datamodellen dokumenterer vår oppfatning av virkeligheten

Detaljer

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML Figur 5-. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet Datamodellering med UML registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel

Detaljer

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut Utvikling fra kjernen og ut PHP-arkitektur Brukergrensesnitt! inn ut Dynamisk web-side bygges opp på grunnlag av spørring mot databasen Utviklingsretning Applikasjon Virkelighetsmodell Plattform Bruker

Detaljer

Signalgrensesnitt for Trafikanten Pluss

Signalgrensesnitt for Trafikanten Pluss Signalgrensesnitt for Trafikanten Pluss Version 05042 2-Apr-05 INF220 Prosjekt i modellering Trafikanten Plus: Skisse til arkitektur cs TrafficContext Oracle på Ifi users:mobile sm: SM_stat JDBC static:lbase

Detaljer

The Unified Modeling Language - UML

The Unified Modeling Language - UML Datamodellering med UML jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Modellenes to formål Interesseområdet Beskrivelse Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Den grunnleggende konstruksjonen det elementære utsagnet

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Den grunnleggende konstruksjonen det elementære utsagnet Dagens tema Individer i interesseområdet Den redundansfri dataen Redundansfrihet ingen dobbeltlagringer eller avledninger Gruppering, normalisering eller intuisjon? Begrepsdannelse jfr. Systemutvikling

Detaljer

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut Utvikling fra kjernen og ut! inn ut Virkelighetsmodell Brukergrensesnitt Utviklingsretning Applikasjon Bruker Plattform Oppfatning av interesseområdet jfr. Systemutvikling Fra kjernen og ut, fra skallet

Detaljer

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut Utvikling fra kjernen og ut PHP-arkitektur Brukergrensesnitt! inn ut Dynamisk web-side bygges opp på grunnlag av spørring mot databasen Utviklingsretning Applikasjon Virkelighetsmodell Plattform Bruker

Detaljer

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut Utvikling fra kjernen og ut PHP-arkitektur Brukergrensesnitt! inn ut Dynamisk web-side bygges opp på grunnlag av spørring mot databasen Utviklingsretning Applikasjon Virkelighetsmodell Plattform Bruker

Detaljer

Datamodellering med ORM

Datamodellering med ORM Figur 5-1. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesset Datamodellering med ORM registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Oppfatningen

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Data versus informasjon Beskrivelse av interesseområdet Begreper og representasjon av

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehånteringssystemer Data versus informasjon Beskrivelse av interesseområdet 100%-prinsippet og det begrepsmessige

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser Data (transiente, persistente) DBMS databser informasjon interesseområdet informasjonsmodeller informasjonssystemer Transiente og persistente data Når vi programmerer,

Detaljer

IN2090 Introduksjon til databaser

IN2090 Introduksjon til databaser UNIVERSITETET I OSLO IN2090 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Hva er data? Hva er informasjon? Fra idé til informasjonssystem Litt om modellering: Begreper

Detaljer

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB?

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB? 1 2 Java Database Connectivity (JDBC) Norvald H. Ryeng ryeng@idi.ntnu.no 3 4 Denne forelesningen Hva er Derby og Java DB? Hva er Derby og Java DB? Hva er JDBC? Slik fungerer det Slik gjør dere det (kokebok)

Detaljer

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut Utvikling fra kjernen og ut Informasjonssystem bygd på et databasehåndteringssystem Brukergrensesnitt! inn ut Oppfatning av interesseområdet Flere samtidige brukere gir databasehåndteringssystemet store

Detaljer

Java Database Connectivity (JDBC) Norvald H. Ryeng

Java Database Connectivity (JDBC) Norvald H. Ryeng 1 Java Database Connectivity (JDBC) Norvald H. Ryeng ryeng@idi.ntnu.no 2 3 Denne forelesningen Hva er Derby og Java DB? Hva er JDBC? Slik fungerer det Slik gjør dere det (kokebok) 4 Hva er Derby og Java

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser databaser data (transiente, persistente) informasjon interesseområdet

Detaljer

Arne Maus, Ifi. delvis lån av gamle foiler

Arne Maus, Ifi. delvis lån av gamle foiler Typer av systemer, Arkitektur og Databaser Arne Maus, Ifi med takk til Dag Lorås(Visma) og Ian Sommerville for delvis lån av gamle foiler INF 1050 Systemutvikling v2010 1 Dagens forelesning 1. Ulike typer

Detaljer

Skranker og avledninger

Skranker og avledninger Skranker og avledninger jfr. Fra kjernen og ut, fra skallet og inn kapittel 7 dmskranker&repr-1 Figur 7-1. Skrankene skal gjenspeile virkelighetens regler Forretningsregler Virkeligheten (interesseområdet)

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Hva er data? Hva er informasjon? Fra idé til informasjonssystem Litt om modellering:

Detaljer

Satsvise, interaktive, sanntids/innbakte systemer. Arne Maus, Ifi. Oppdeling av både program og data på flere maskiner

Satsvise, interaktive, sanntids/innbakte systemer. Arne Maus, Ifi. Oppdeling av både program og data på flere maskiner Typer av systemer, Arkitektur og Databaser Arne Maus, Ifi med takk til Dag Lorås(Visma) og Ian Sommerville for delvis lån av gamle foiler Dagens forelesning. Ulike typer systemer Satsvise, interaktive,

Detaljer

Videregående programmering 6

Videregående programmering 6 Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har

Detaljer

INF212 - Databaseteori. Kursinnhold

INF212 - Databaseteori. Kursinnhold INF212 - Databaseteori Forelesere: Naci Akkök Ellen Munthe-Kaas Mål: Kjennskap til databasesystemer Virkemåte Implementasjon Teoretiske og praktiske problemer INF212 v2003 1 Kursinnhold Databasedesign

Detaljer

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn.

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn. Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn. Oppgaver til kapittel 5 - Datamodellering med UML Oppgave 6. Ugruppert og gruppert modell Et mindre bilutleiefirma ønsker å få

Detaljer

INF1050 Klasseromsoppgave Uke 6

INF1050 Klasseromsoppgave Uke 6 INF1050 Klasseromsoppgave Uke 6 Løsningsforslag Mer avansert datamodellering med UML Oppgave 1 Her følger noen eksempler på opplysninger som brukeren ønsker å kunne trekke ut av informasjonssystemer. Foreslå

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

INF1000: Forelesning 7

INF1000: Forelesning 7 INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en

Detaljer

Databaser: Relasjonsmodellen, del I

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

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7. Konstruktører Static INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter

Detaljer

Eksamen i Internetteknologi Fagkode: ITE1526

Eksamen i Internetteknologi Fagkode: ITE1526 Datateknikk Side 1 av 8 Eksamen i Internetteknologi Fagkode: ITE1526 Tid: Mandag, 23.05.05, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 3 oppgaver og

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

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

Kursregistrering bruksmønstermodell

Kursregistrering bruksmønstermodell Dagens forelesning o Kort repetisjon Objektorientert modellering Notasjon: UML klassediagram og objektdiagram Metode: Fra sekvensdiagram til klassediagram o Design av persistens Relasjonsdatabaser (tabelldatabaser)

Detaljer

Persistens. Erik Arisholm. Institutt for informatikk Erik Arisholm 18.03.2009. INF1050-persistens-1

Persistens. Erik Arisholm. Institutt for informatikk Erik Arisholm 18.03.2009. INF1050-persistens-1 Persistens Erik Arisholm INF1050-persistens-1 Samling av trådene Systemutvikling som helhet 1. Systemutvikling: motivasjon... Jo Hannay, Simula & Ifi 2. Systemutviklingsprosessen... Rune Steinberg, Visma

Detaljer

Dagsorden. Hovedtemaene i INF102. Fra kjernen og ut. Produksjon av informasjonssystemer. Produksjon av informasjonssystemer

Dagsorden. Hovedtemaene i INF102. Fra kjernen og ut. Produksjon av informasjonssystemer. Produksjon av informasjonssystemer Dagsorden Hovedtemaene i INF02 Jus-forelesningen tas igjen onsdag 4. mai kl 05 hvis interesse Prosjektoppgaven o Kandidatnummerlisten o Anonymisering av prosjektoppgaven o Hvordan levere programkoden Åpen-bok-eksamen

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Informasjonsbærende referansemåter Resten av realiseringsalgoritmen Sterk realisering Realisering versus modellering INF1300-31.10.2016

Detaljer

Informasjonssystemer, DBMSer og databaser

Informasjonssystemer, DBMSer og databaser UNIVERSITETET I OSLO Informasjonssystemer, DBMSer og databaser Institutt for Informatikk INF3100-21.1.2008 Ellen Munthe-Kaas 1 Interesseområdet (UoD = Universe of Discourse) Interesseområdet er en del

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

Dataorientert modellering

Dataorientert modellering INF2120 Dataorientert modellering Ragnar Normann 9. mars 2005 INF2120 Prosjekt i modellering 1 Dataorientering og UML UML har som utgangspunkt et objektorientert syn på tilværelsen hvor oppførsel og samspill

Detaljer

Introduksjon til fagfeltet

Introduksjon 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

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

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Fra krav til objektdesign

Fra krav til objektdesign Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller

Detaljer

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

Databaser & objektorientering.

Databaser & objektorientering. Databaser & objektorientering. Noen grunnbegreper innen objektorientering. Klasser og forekomster klasser beskriver strukturen for noe. Beskrivelsen inneholder: et navn attributter /egenskaper / tilstander

Detaljer

INF3100 Databasesystemer

INF3100 Databasesystemer INF3100 Databasesystemer Forelesere: Obligsjef: Naci Akkök, Ragnar Normann Norun Sanderson Mål: Kjennskap til databasesystemer Oppgaver og moduler Virkemåte Implementasjon Teoretiske og praktiske problemer

Detaljer

INF3100 Databasesystemer

INF3100 Databasesystemer INF3100 Databasesystemer Forelesere: Naci Akkök Ragnar Normann Mål: Kjennskap til databasesystemer Oppgaver og moduler Virkemåte Implementasjon Teoretiske og praktiske problemer INF3100-19-20.1.2004 -

Detaljer

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner Institutt for informatikk

Detaljer

Spesifikasjon av Lag emne

Spesifikasjon av Lag emne Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Detaljer

Beskjed fra Skagestein

Beskjed fra Skagestein Beskjed fra Skagestein "I forbindelse med prosjektoppgavens delinnlevering 4 vil gruppelærerne sette opp en PHP-orakeltjeneste torsdag 7. april kl 1415-1800 på termstua i Niels Henrik Abels hus." INF1050-klasser-1

Detaljer

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Detaljer

Skranker og avledninger

Skranker og avledninger Figur 7-1. Skrankene skal gjenspeile virkelighetens regler Forretningsregler Virkeligheten (interesseområdet) Skranker og avledninger registrering påvirkning jfr. Fra kjernen og ut, fra skallet og inn

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

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

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer Fra krav til objekter Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050--1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use

Detaljer

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram

Detaljer

Fra uryddig verden til strukturert stoppestedsdatabase

Fra uryddig verden til strukturert stoppestedsdatabase Fra uryddig verden til strukturert stoppestedsdatabase Gerhard Skagestein 6. juni 2005 INF 220 7-Jun-05 INF220 Prosjekt i modellering Vi ser bare rapportene... Rapport Rapport3 Rapport2 INF 220 Informasjonssystem

Detaljer

Datamodellering 101 En tenkt høgskoledatabase

Datamodellering 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

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

INF130 Databehandling og analyse

INF130 Databehandling og analyse 28.01.15 INF130 Databehandling og analyse Introduksjon Knut Kvaal 28.01.15 1.1 Administrasjon Gruppearbeid og øvinger Du skal registere deg for gruppe etc https://docs.google.com/spreadsheets/d/1n4vqedksrkflh6273wk5zqd852me_mtshunh6dfzzma/edit?usp=sharing

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

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

1. Relasjonsmodellen. 1.1. Kommentarer til læreboka

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

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille

Detaljer

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Sensorveiledning 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

Detaljer

Lø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 :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

Detaljer

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering

Detaljer

Kap3: Klassemodellering

Kap3: Klassemodellering Kap3: Klassemodellering I dag: Litt repetisjon fra sist (innledende om klassemodellen) Deretter egentlig litt mer repetisjon, men nå fra intro- Felt-/Instansvariabler og kurset i Java: Klasser og Objekt,

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

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

Velkommen til. INF våren 2016

Velkommen til. INF våren 2016 Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010

Detaljer

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO Objektrelasjonelle DBMSer. SQL-99 Institutt for Informatikk INF3100 2.3.2009 Ellen Munthe-Kaas 1 Objektrelasjonelle DBMSer ORDBMS = Object-Relational Database Management System Motivasjon:

Detaljer

NB! Endring i undervisningsplanen

NB! Endring i undervisningsplanen NB! Endring i undervisningsplanen Forelesningen 24. mars må dessverre avlyses på grunn av Fagkritisk dag Se beskjed som er lagt ut på kursets nettsider og den oppdaterte undervisningsplanen INF1050-klasser-1

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet TGA Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"

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

JDBC. Java DataBase Connectivity SQL i Java Læreboken: 8.5, s Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen

JDBC. Java DataBase Connectivity SQL i Java Læreboken: 8.5, s Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen JDBC Java DataBase Connectivity SQL i Java Læreboken: 8.5, s. 393-397 Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen JDBCs treenighet Databaseoppkobling java.sql.connection Utføre SQL java.sql.statement

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL: Outer join Denormalisering og splitting Transaksjoner og ACID-reglene DBMSer en introduksjon til INF3100 INF1300 19.11.2007 Ragnar

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

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 Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

Detaljer

INF1050 Systemutvikling

INF1050 Systemutvikling INF1050 Systemutvikling Krav til innlevering: Innleveringene skal ha: Forside med gruppenummer, dato, leveransenummer, navn på gruppemedlemmer med brukernavn og navn på prosjektet Forklarende overskrifter

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

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram

Detaljer

Å programmere databasetjeneren JavaDB. Programkoden ligger i databasen

Å programmere databasetjeneren JavaDB. Programkoden ligger i databasen http://www.aitel.hist.no/fag/_dmdb/ Å programmere databasetjeneren JavaDB Programkoden ligger i databasen: hva, hvorfor og hvordan side 2-5 Hallo til verden (eksempel) side 6 CallSpec s side 7 CREATE PROCEDURE

Detaljer

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem Innhold Forord....................................................... 5 Innledning.................................................... 15 Databaser som basis i grunnopplæringen....................... 15

Detaljer

Prosjektoppgave våren 2007

Prosjektoppgave våren 2007 Prosjektoppgave våren 2007 Innledning Formålet med kurset er å bli i stand til å delta i utviklingen av informasjonssystemer. Dette innebærer: å kjenne til bruken av informasjonssystemer, å kjenne til

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer