INF1300 Introduksjon til databaser

Like dokumenter
INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

Informasjonssystemer, DBMSer og databaser

INF3100 Databasesystemer

INF212 - Databaseteori. Kursinnhold

INF3100 Databasesystemer

INF3100 Databasesystemer

INF3100. Databasesystemer

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

OM DATABASER DATABASESYSTEMER

Introduksjon til fagfeltet

INF1300 Introduksjon til databaser

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Hvordan databasesystemene kan hjelpe RAM-produsentene

INF1300 Introduksjon til databaser

Databasesystemer, oversikt

Utvikling fra kjernen og ut

Historisk tidslinje. Resource Description Framework (RDF) Web Ontology Language (OWL) Object-Role Modeling (ORM) Entity Relationship Model (ER)

Utvikling fra kjernen og ut

IN2090 Databaser og datamodellering ORM 1

INF1300 Introduksjon til databaser

1. SQL server. Beskrivelse og forberedelse til installasjon

Parallelle og distribuerte databaser del III

Spesifikasjon av Lag emne

INF1000: Forelesning 7

UNIVERSITETET I OSLO

INF1000: Forelesning 7. Konstruktører Static

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Kunnskapsorganisasjon og gjenfinning 1.1. Introduksjon til databaseteori. Tine L. Frost, Jørn Helge B. Dahl og Kim Tallerås

INF Introduksjon til databaser ORM I

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker

Fra krav til objektdesign

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen

UNIVERSITETET I OSLO

INF130 Databehandling og analyse

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

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

Kravspesifikasjon. Leserveiledning Kravspesifikasjonen består av følgende deler: Presentasjon Om bedriften

Utvikling fra kjernen og ut

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

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

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

UNIVERSITETET I OSLO

Hvorfor bruke databaser?

Dataorientert modellering

INF1300 Introduksjon til databaser

Utvikling fra kjernen og ut

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

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

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

2. Beskrivelse av mulige prosjektoppgaver

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

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

IN2090 Databaser og datamodellering. 01 Introduksjon og motivasjon

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

Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr

UNIVERSITETET I OSLO

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

Utvikling fra kjernen og ut

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

1. Designe ER-modeller med MS Visio

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008

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

UNIVERSITETET I OSLO

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

UNIVERSITETET I OSLO

INF Obligatorisk innlevering 7

Databaser fra et logikkperspektiv

Tabeller og enkle spørringer

SQL Structured Query Language

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell. Dagens forelesning. Fra krav til objekter

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

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

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

løsningsforslag-uke5.txt

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006

Enkle generiske klasser i Java

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Begrepsforvirring i databaseverdenen?

Beskjed fra Skagestein

INF1300 Introduksjon til databaser

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009

INF Uke 10. Ukesoppgaver oktober 2012

UNIVERSITETET I OSLO

Generiske mekanismer i statisk typede programmeringsspråk

Transkript:

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

Database Fra Wikipedia, den frie encyklopedi En database er strukturert samling av relaterte data, begrepet er vanligvis knyttet til elektroniske datasystemer. Et databasesystem skal kunne behandle store mengder data effektivt, motsetningsfritt og sikkert. Databasesystemet skal sikre at endringer og tilføyelser ikke fører til motsetninger eller feil, og skal kunne levere riktig informasjon effektivt til brukere og programvare. Et databasesystem har to deler databasehåndteringssystemet (DBMS) som er programvaren som administrerer systemet, og selve databasen, som er de data som håndteres av systemet. DBMSen organiserer dataene og styrer all lesing og skriving til databasen. For å kommunisere med DBMS-en brukes et spørrespråk. Det finnes ulike sorter databasesystemer. Metoden man bruker for å organisere data kalles 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 noe vi 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 i programvariable (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. Det vil vanligvis si at dataene bak kulissene lagres på en magnetdisk Data som overlever mellom to programkjøringer, kalles persistente

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 filen sperret for alle andre) Store programmer trenger ofte mange typer data, noe som gjerne resulterer i mange filer, noe som igjen gjør programmet 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 hvem som kjenner hvem hva mener vi med «kjenner»? eksempel på datastruktur fra oblig3 inf1010 V13...

null "Tuva" "Lars" null "Adnan" null Personbeholder pl "Olga" null "Ali" null Person Lelem null Et forstørret objekt av den indre klassen Lelem, med typer for de to pekerne

Hvordan kan en fil med «kjennskap» se ut? Adnan Tuva Lars Olga Ali Ragnar Adnan Olga Tuva Stein Anne Siri Sander Kari Per Ali Minna Luna Thach Tor +......

Hvordan kan en fil med «kjennskap» se ut? Adnan 4 Tuva Lars Olga Ali Ragnar 3 Adnan Olga Tuva Stein 0 Anne 15...

Hvordan kan en fil med «kjennskap» se ut? Ragnar Tuva Adnan Tuva Ragnar Adnan Adnan Lars Ragnar Olga Stein Adnan Olga Adnan Ali

Hvordan kan en fil med data om hvem som tar hvilke emner se ut? Lars INF1300 INF1080 INF3331 Adnan INF1300 INF1080 Stein Olga INF2220...

Hvordan kan en fil med data om hvem som tar hvilke emner se ut? Lars INF1300 Lars INF1080 Lars INF3331 Adnan INF1300 Adnan INF1080 Stein Olga INF2220... (Navn på person) (emne som tas av person)

Student tar emne navn Lars Lars Lars Adnan Adnan Stein Olga emnekode INF1300 INF1080 INF3331 INF1300 INF1080 nil INF2220

Person kjenner person navn Ragnar Adnan Ragnar Adnan Ragnar Stein Adnan Adnan kjenner (navn) Tuva Tuva Adnan Lars Olga nil Olga Ali

Hvilken informasjon er brukerne av programmet ute etter? Dette spørsmålet burde vi kanskje stilt før vi bestemte hva vi ville 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 3 kjenner hverandre og hvor alle også tar INF2220... Hvor mange INF1300-studenter har ikke tatt INF1010?

Andre spørsmål knyttet til denne enkle databasen 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, slik at disse og tilsvarende spørsmål kan besvares. I alle nye tabeller og kolonner, skal det legges inn minst tre forekomster (ikke null). Ikke alle spørsmålene trenger utvidelser for å besvares.

I tillegg skal informasjonen endres/supleres, slik at følgende betingelser er oppfylt: Alle studenter har et unikt brukernavn En student kan ha flere telefonnumre, men et telefonnummer kan bare tilhøre en person. Bruk Ifis nettsider til å finne navn på emner o.l. Ellers kan du bruke 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 kjenne student A Du trenger ikke endre tabellen(e), bare forklare hva du ville gjøre.

Grov skisse av trinnene i utformingen av en database Kartlegg og avgrens interesseområdet Finn begrepene og relasjoner mellom dem beskriv begrepene og forholdet mellom dem i et modelleringsspråk lag tabellene

Databaser og DBMS En database er en samling persistente data som fysisk bare kan aksesseres fra ett spesialprogram, kalt et databasehåndteringssystem, forkortet DBMS (DataBase Management System) Vilkårlig mange programmer og brukere kan samtidig være koblet opp mot DBMSet og via det få lest, skrevet og endret data i databasen Et slikt program kalles ofte en klient Logisk sett kan følgelig vilkårlig mange klienter aksessere dataene i databasen samtidig

Transaksjoner En henvendelse fra en klient til DBMSet kalles en transaksjon En transaksjon som bare leser data, kalles en lesetransaksjon eller en sprring (query, uttales: kwi:ri) En transaksjon som legger til nye data eller forandrer eksisterende data, kalles en skrivetransaksjon

Litt historie Det første DBMS ble laget og presentert av Bachman og Williams i 1964 DBMSet ble solgt under navnet IDMS IDMS var en nettverksdatabase, og var designet for bruk fra et programmeringsspråk (vertsspråk) I 1968 kom IBM med IMS som var en hierarkisk database som 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 har legacy-systemer som bruker IMS

Litt mer historie I 1970 presenterte E.F.Codd sin relasjonsmodell Dette var en teoretisk beskrivelse av en ny type databaser kalt relasjonsdatabaser Relasjonsdatabaser er enkle å beskrive og bruke, men vanskelige å lage DBMS for Først i 1977 klarte Oracle å lage et DBMS som fortjener betegnelsen relasjonell Relasjonsdatabaser er nå svært mye brukt, og de er hovedtemaet for dette kurset

Data Fra programmeringsspråk er vi vant til at vi har forskjellige datatyper 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 som oftest ordet «data» i entall også

Informasjon Informasjon består av data pluss regler for hvordan data skal tolkes Hvis vi har en (desimaltalls-) variabel vekt med verdien 54,2, vil det være naturlig å anta at 54,2 er vekten av ett eller annet Men for at 54,2 skal kunne kalles informasjon, er det to spø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ådet er en del av virkeligheten 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) av virkeligheten/interesseområdet Interesseområdet Begrepsdannelse og idealisert representasjon Beskrivelse av interesseområdet

Informasjonsmodeller En fullstendig beskrivelse av interesseområdet kalles en informasjonsmodell 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å den må være meget nøyaktig og detaljert

Skranker Beskrivelsen av forretningsreglene kalles skranker Statiske skranker beskriver begrensninger på mulige tilstander i interesseområdet Dynamiske skranker beskriver begrensninger på mulige forandringer i interesseområdet Den ferdige ORM-modellen er en beskrivelse av de statiske skrankene i vært UoD

Det begrepsmessige skjema Informasjonsmodellen brukt som regelverk (preskripsjon) for hvordan informasjonssystemet skal oppføre seg, kalles det begrepsmessige skjema Det begrepsmessige skjema uttrykkes i et språk som passer for 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 for integritetsregler Integritetsreglene bestemmer hva som er lovlig å lagre i informasjons-systemet (lovlige tilstander i databasen) hva som er lovlige forandringer (lovlige transisjoner/transaksjoner) Det er umulig for en bruker av informasjons-systemet å gjøre noe som strider mot integritetsreglene

Informasjonssystemer Modelleringsspråk (ORM) Databasespråk (SQL) Interesseområdet Analyse Informasjonsmodellen Realisering Informasjonssystemet Data Prosesser Forretningsregler (lover) Skranker (statiske/dynamiske) kan stanse her Integritetsregler

Informasjonssystemer vs. databaser INFORMASJONSSYSTEM DATABASESYSTEM DBMS MDB Applikasjonsprogrammer Håndtere spørsmål Kontroll av data Aksessere data DB Spørremodul bruker

DBMS Database Management System Spesialisert programvare som understøtter Persistens Transaksjonshåndtering Programmeringsgrensesnitt (API)