inf1300—introduksjon til databaserheim.ifi.uio.no/inf1300/2014/lysark/uke34.pdf · hvilken...

Post on 03-Jul-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INF1300—Introduksjon til databaser

INF1300—Introduksjon til databaserINF1300—Introduksjon til databaser

æ INF1300—Introduksjon til databaser

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

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.

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?

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

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

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

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?

Lager først en datastruktur som viser hvemsom kjenner hvem

æ hva mener vi med «kjenner»?

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

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"

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

Hvordan kan en fil med «kjennskap» se ut?

Adnan 4TuvaLarsOlgaAliRagnar 3AdnanOlgaTuvaStein 0Anne 15...

Hvordan kan en fil med «kjennskap» se ut?

Ragnar TuvaAdnan TuvaRagnar AdnanAdnan LarsRagnar OlgaSteinAdnan OlgaAdnan Ali

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

Lars INF1300 INF1080 INF3331Adnan INF1300 INF1080SteinOlga INF2220...

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)

Student tar emne

navn emnekodeLars INF1300Lars INF1080Lars INF3331Adnan INF1300Adnan INF1080Stein nilOlga INF2220

Person kjenner person

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

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?

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.

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.

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

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

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

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

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

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å

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?

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

Beskrivelse (deskripsjon) avvirkeligheten/interesseområdet

Beskrivelse avinteresseområdet

Begrepsdannelse ogidealisert representasjon

Interesseområdet

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

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

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

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

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

)

bruker

Håndtere spørsmålKontroll av data

Spørremodul

MDB DB

Aksessere data

DATABASESYSTEM

DBMS

Applikasjonsprogrammer

INFORMASJONSSYSTEMInformasjonssystem

er vs. databaser

DBMS—Database Management System

Spesialisert programvare som understøtter

æ Persistens

æ Transaksjonshåndtering

æ Programmeringsgrensesnitt (API)

top related