35
INF1300—Introduksjon til databaser INF1300—Introduksjon til databaser INF1300—Introduksjon til databaser æ INF1300—Introduksjon til databaser æ databaser æ data (transiente, persistente) æ informasjon æ interesseområdet æ tabeller

INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

INF1300—Introduksjon til databaser

INF1300—Introduksjon til databaserINF1300—Introduksjon til databaser

æ INF1300—Introduksjon til databaser

æ databaseræ data (transiente, persistente)æ informasjonæ interesseområdetæ tabeller

Page 2: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

DatabaseFra Wikipedia, den frie encyklopedi

En database er strukturert samling av relaterte data, begrepet er vanligvis knyttet tilelektroniske datasystemer. Et databasesystem skal kunne behandle store mengderdata effektivt, motsetningsfritt og sikkert. Databasesystemet skal sikre at endringerog tilføyelser ikke fører til motsetninger eller feil, og skal kunne levere riktiginformasjon effektivt til brukere og programvare.

Et databasesystem har to deler – databasehåndteringssystemet (DBMS) som erprogramvaren som administrerer systemet, og selve databasen, som er de data somhåndteres av systemet. DBMSen organiserer dataene og styrer all lesing og skrivingtil databasen. For å kommunisere med DBMS-en brukes et spørrespråk.

Det finnes ulike sorter databasesystemer. Metoden man bruker for å organisere datakalles en datamodell. Den vanligste formen for databasesystem er basert pårelasjonsmodellen.

Page 3: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Fra datastruktur til tabeller

æ Opprette en datastruktur, f.eks. med et javaprogram.

æ Skrive denne til filæ Når datastrukturen skal endres:

æ Opprett datastruktur fra filæ Gjør endringer i strukturenæ Skriv datastrukturen til fil

Har vi nå en database?

Page 4: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Svaret er ja.

Men programmet må skrives om hver gang vi ønsker å gjøre noevi ikke har forutsett da vi programmerte.

Og det fungerer for den bestemte anvendelsen.

Vi ønsker å gjøre noe mer

Page 5: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Transiente og persistente data

æ Når vi programmerer, legger vi dataene våre iprogramvariable (eller bare «variable»)

æ Når programmet avsluttes, slettes dataene

æ Slike data kalles transiente

æ En enkel måte å ta vare på data, er å skrive dem til fil. Detvil vanligvis si at dataene bak kulissene lagres på enmagnetdisk

æ Data som overlever mellom to programkjøringer, kallespersistente

Page 6: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Problemer med filer

æ Filer er i alminnelighet tilpasset ett bestemt program

æ Uansett kan en fil bare brukes av ett program om gangen(programmet må åpne filen for å bruke den, og da er filensperret for alle andre)

æ Store programmer trenger ofte mange typer data, noe somgjerne resulterer i mange filer, noe som igjen gjørprogrammet enda mer komplisert

Page 7: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

En database over studenter meldt til INF1300

Avgrensning: hva er vi interessert i?

æ hvem kjenner hvem?

æ hvilke andre emner er studentene her tatt opp til?

Page 8: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Lager først en datastruktur som viser hvemsom kjenner hvem

æ hva mener vi med «kjenner»?

æ eksempel på datastruktur fra oblig3 inf1010 V13 ...

Page 9: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

null

null

null

null

LelemPerson

Personbeholder

pl

Et forstørret objektav den indre klassenLelem, med typerfor de to pekerne

null

null

"Adnan"

"Tuva"

"Lars"

"Olga"

"Ali"

Page 10: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Hvordan kan en fil med «kjennskap» se ut?

Adnan Tuva Lars Olga AliRagnar Adnan Olga TuvaSteinAnne Siri Sander Kari Per Ali Minna Luna Thach Tor + ......

Page 11: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Hvordan kan en fil med «kjennskap» se ut?

Adnan 4TuvaLarsOlgaAliRagnar 3AdnanOlgaTuvaStein 0Anne 15...

Page 12: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Hvordan kan en fil med «kjennskap» se ut?

Ragnar TuvaAdnan TuvaRagnar AdnanAdnan LarsRagnar OlgaSteinAdnan OlgaAdnan Ali

Page 13: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Hvordan kan en fil med data om hvem som tarhvilke emner se ut?

Lars INF1300 INF1080 INF3331Adnan INF1300 INF1080SteinOlga INF2220...

Page 14: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Hvordan kan en fil med data om hvem som tarhvilke emner se ut?

Lars INF1300Lars INF1080Lars INF3331Adnan INF1300Adnan INF1080SteinOlga INF2220...(Navn på person) (emne som tas av person)

Page 15: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Student tar emne

navn emnekodeLars INF1300Lars INF1080Lars INF3331Adnan INF1300Adnan INF1080Stein nilOlga INF2220

Page 16: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Person kjenner person

navn kjenner (navn)Ragnar TuvaAdnan TuvaRagnar AdnanAdnan LarsRagnar OlgaStein nilAdnan OlgaAdnan Ali

Page 17: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Hvilken informasjon er brukerne avprogrammet ute etter?

Dette spørsmålet burde vi kanskje stilt før vi bestemte hva viville ha med?

æ Hvem har flest venner?

æ Er det noen som kjenner Lars som tar INF1080?

æ Er det noen som ikke kjenner noen som tar INF2220?

æ Del studentene i grupper på 5 personer hvor minst 3kjenner hverandre og hvor alle også tar INF2220...

æ Hvor mange INF1300-studenter har ikke tatt INF1010?

Page 18: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Andre spørsmål knyttet til denne enkledatabasen

æ Hva heter INF1300 (kurstittel)?

æ Hva er telefonnummeret og e-postadressen til Adnan?

æ Hva er brukernavnet ved UiO til Olga?

æ Hvor mange grupper er det i INF2220?

æ Hvem tar flest kurs?

æ Er noen av studentene gruppelærere?

æ Hva fikk Lars i INF1000 og når tok han det?

Første innleveringsoppgave (oblig) blir å endre databasen, slikat disse og tilsvarende spørsmål kan besvares. I alle nye tabellerog kolonner, skal det legges inn minst tre forekomster (ikkenull). Ikke alle spørsmålene trenger utvidelser for å besvares.

Page 19: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

I tillegg skal informasjonen endres/supleres, slik at følgendebetingelser er oppfylt:

æ Alle studenter har et unikt brukernavn

æ En student kan ha flere telefonnumre, men ettelefonnummer kan bare tilhøre en person.

Bruk Ifis nettsider til å finne navn på emner o.l. Ellers kan dubruke fantasien når du skal finne på data.Forklar til slutt hva du ville gjøre for å sikre denne betingelsen:

æ Hvis student A kjenner student B, skal student B kjennestudent A

Du trenger ikke endre tabellen(e), bare forklare hva du villegjøre.

Page 20: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Grov skisse av trinnene i utformingen av endatabase

æ Kartlegg og avgrens interesseområdet

æ Finn begrepene og relasjoner mellom dem

æ beskriv begrepene og forholdet mellom dem i etmodelleringsspråk

æ lag tabellene

Page 21: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Databaser og DBMS

æ En database er en samling persistente data som fysisk barekan aksesseres fra ett spesialprogram, kalt etdatabasehåndteringssystem, forkortet DBMS (DataBaseManagement System)

æ Vilkårlig mange programmer og brukere kan samtidig værekoblet opp mot DBMSet og via det få lest, skrevet og endretdata i databasen

æ Et slikt program kalles ofte en klient

æ Logisk sett kan følgelig vilkårlig mange klienter aksesseredataene i databasen samtidig

Page 22: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Transaksjoner

æ En henvendelse fra en klient til DBMSet kalles entransaksjon

æ En transaksjon som bare leser data, kalles enlesetransaksjon eller en sprring (query, uttales: kwi:ri)

æ En transaksjon som legger til nye data eller forandrereksisterende data, kalles en skrivetransaksjon

Page 23: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Litt historie

æ Det første DBMS ble laget og presentert av Bachman ogWilliams i 1964

æ DBMSet ble solgt under navnet IDMS

æ IDMS var en nettverksdatabase, og var designet for bruk fraet programmeringsspråk (vertsspråk)

æ I 1968 kom IBM med IMS som var en hierarkisk databasesom er en forenkling av nettverksdatabaser

æ IMS ble nær enerådende for administrativ data-behandling,og fortsatt er det svært mange store firmaer som harlegacy-systemer som bruker IMS

Page 24: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Litt mer historie

æ I 1970 presenterte E.F.Codd sin relasjonsmodell

æ Dette var en teoretisk beskrivelse av en ny type databaserkalt relasjonsdatabaser

æ Relasjonsdatabaser er enkle å beskrive og bruke, menvanskelige å lage DBMS for

æ Først i 1977 klarte Oracle å lage et DBMS som fortjenerbetegnelsen relasjonell

æ Relasjonsdatabaser er nå svært mye brukt, og de erhovedtemaet for dette kurset

Page 25: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Data

æ Fra programmeringsspråk er vi vant til at vi har forskjelligedatatyper som

æ int (heltall)æ double (desimaltall)æ char (tegn)

æ Heltallsvariable kan ha verdier som 17 og -1024

æ Slike verdier kaller vi data

æ En enkelt verdi heter egentlig et datum, men vi bruker somoftest ordet «data» i entall også

Page 26: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Informasjon

æ Informasjon består av data pluss regler for hvordan dataskal tolkes

æ Hvis vi har en (desimaltalls-) variabel vekt med verdien54,2, vil det være naturlig å anta at 54,2 er vekten av etteller annet

æ Men for at 54,2 skal kunne kalles informasjon, er det tospørsmål som må besvares:

æ Hvilken måleenhet er brukt for vekt?æ Hva er det som veier 54,2 måleenheter?

Page 27: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Interesseområdet(UoD = Universe of Discourse)

Interesseområdeter en del avvirkeligheten

æ Lovene som styrer virkeligheten, kaller vi forretningsregler

æ Forretningsregler og naturlover har mange likhetstrekk

æ Vi ser effekten av dem, men de kan være vanskelige å finne

Page 28: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Beskrivelse (deskripsjon) avvirkeligheten/interesseområdet

Beskrivelse avinteresseområdet

Begrepsdannelse ogidealisert representasjon

Interesseområdet

Page 29: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Informasjonsmodeller

æ En fullstendig beskrivelse av interesseområdet kalles eninformasjonsmodell

æ Informasjonsmodellen uttrykkes gjerne i et (eller flere)modellspråk

æ Noen aktuelle modellspråk er

æ UML (Unified Modelling Languages)æ ORM (Object-Role Modelling)æ ER (Entity Relationship)

æ Vær beskrivelse av UoD skal leses av en datamaskin, så denmå være meget nøyaktig og detaljert

Page 30: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Skranker

æ Beskrivelsen av forretningsreglene kalles skranker

æ Statiske skranker beskriver begrensninger på muligetilstander i interesseområdet

æ Dynamiske skranker beskriver begrensninger på muligeforandringer i interesseområdet

æ Den ferdige ORM-modellen er en beskrivelse av de statiskeskrankene i vært UoD

Page 31: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Det begrepsmessige skjema

æ Informasjonsmodellen brukt som regelverk (preskripsjon)for hvordan informasjonssystemet skal oppføre seg, kallesdet begrepsmessige skjema

æ Det begrepsmessige skjema uttrykkes i et språk som passerfor den databaseteknologien vi skal bruke, f.eks.

æ SQL (Structured Query Language) for relasjonsdatabaseræ ODL (Object Definition Language) for objektdatabaser

Page 32: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Integritetsregler

æ I det begrepsmessige skjemaet kaller vi skrankene forintegritetsregler

æ Integritetsreglene bestemmer

æ hva som er lovlig å lagre i informasjons-systemet (lovligetilstander i databasen)

æ hva som er lovlige forandringer (lovligetransisjoner/transaksjoner)

æ Det er umulig for en bruker av informasjons-systemet ågjøre noe som strider mot integritetsreglene

Page 33: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

Informasjonssystemer

Informasjonsmodellen

Interesseområdet

Data Prosesser

Informasjonssystemet

Analyse

Realiseringkan stanse her

Forretningsregler (lover)

Skranker (statiske/dynamiske)

Integritetsregler

Databasespråk (S

QL)

Modelleringsspråk (O

RM

)

Page 34: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

bruker

Håndtere spørsmålKontroll av data

Spørremodul

MDB DB

Aksessere data

DATABASESYSTEM

DBMS

Applikasjonsprogrammer

INFORMASJONSSYSTEMInformasjonssystem

er vs. databaser

Page 35: INF1300—Introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt

DBMS—Database Management System

Spesialisert programvare som understøtter

æ Persistens

æ Transaksjonshåndtering

æ Programmeringsgrensesnitt (API)