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

INF3100 Databasesystemer

Informasjonssystemer, DBMSer og databaser

INF212 - Databaseteori. Kursinnhold

INF3100 Databasesystemer

INF3100 Databasesystemer

INF3100. Databasesystemer

INF1300 Introduksjon til databaser

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

INF Introduksjon til databaser ORM I

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

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

Introduksjon til fagfeltet

IN2090 Databaser og datamodellering ORM 1

OM DATABASER DATABASESYSTEMER

INF1300 Introduksjon til databaser

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Hvordan databasesystemene kan hjelpe RAM-produsentene

Utvikling fra kjernen og ut

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Utvikling fra kjernen og ut

INF1300 Introduksjon til databaser

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

Databasesystemer, oversikt

Dataorientert modellering

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

1. SQL server. Beskrivelse og forberedelse til installasjon

INF1300 Introduksjon til databaser

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

INF1300 Introduksjon til databaser

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid

INF130 Databehandling og analyse

INF1300 Introduksjon til databaser

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

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

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

Utvikling fra kjernen og ut

Dagens tema: Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler

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

Utvikling fra kjernen og ut

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Begrepsforvirring i databaseverdenen?

Databaser fra et logikkperspektiv

Utvikling fra kjernen og ut

Parallelle og distribuerte databaser del III

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Læringsmål og pensum. v=nkiu9yen5nc

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

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

Informasjonsbærende representasjoner

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

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

Romlig datamanipulering

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

INF1000: Forelesning 7. Konstruktører Static

Sprettende ball Introduksjon Processing PDF

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Hvorfor bruke databaser?

INF1000: Forelesning 7

MAT-INF 1100: Obligatorisk oppgave 1

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Mattespill Nybegynner Python PDF

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

Systemaspekter ved SQL

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

1. SQL datadefinisjon og manipulering

Ark 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk

Forkurs i informatikk Python. Andreas Færøvig Olsen

2. Beskrivelse av mulige prosjektoppgaver

Sikkerhet og tilgangskontroll i RDBMS-er

Sprettende ball. Introduksjon: Steg 1: Vindu. Sjekkliste. Skrevet av: Sigmund Hansen

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

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

Transkript:

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 skjema Begreper og representasjon av dem Elementære setninger INF1300-18.8.2008 - Ragnar Normann 1

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 Data vi vil ta vare på, er dere vant til å skrive til en fil, det vil vanligvis si til en magnetdisk Data som overlever mellom to programkjøringer, kalles persistente INF1300-18.8.2008 - Ragnar Normann 2

Problemer med filer Filer er i allminnelighet 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 INF1300-18.8.2008 - Ragnar Normann 3

Databaser og DBMS En database er en samling persistente data som fysisk bare kan aksesseres fra ett program, kalt et databasehåndteringssystem, forkortet et DBMS (Data Base 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 INF1300-18.8.2008 - Ragnar Normann 4

Transaksjoner En henvendelse fra en klient til DBMS kalles en transaksjon En transaksjon som bare leser data, kalles en lesetransaksjon eller en spørring (query) En transaksjon som legger til nye data eller forandrer eksisterende data, kalles en skrivetransaksjon INF1300-18.8.2008 - Ragnar Normann 5

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 databehandling, og fortsatt er det svært mange store firmaer som har legacy-systemer som bruker IMS INF1300-18.8.2008 - Ragnar Normann 6

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 INF1300-18.8.2008 - Ragnar Normann 7

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å INF1300-18.8.2008 - Ragnar Normann 8

Informasjon Informasjon består både av data og 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? INF1300-18.8.2008 - Ragnar Normann 9

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 INF1300-18.8.2008 - Ragnar Normann 10

Beskrivelse (deskripsjon) av virkeligheten/interesseområdet Interesseområdet Begrepsdannelse og idealisert representasjon Beskrivelse av interesseområdet INF1300-18.8.2008 - Ragnar Normann 11

Informasjonsmodeller og 100%-prinsippet En fullstendig beskrivelse av interesseområdet kalles en informasjonsmodell 100%-prinsippet sier at det er mulig å lage en (endelig) informasjonsmodell på norsk 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) INF1300-18.8.2008 - Ragnar Normann 12

ORM og 100%-prinsippet 100%-prinsippet sier at det er mulig å lage en (endelig) informasjonsmodell på norsk (eller et annet naturlig språk som engelsk eller japansk) Hvorvidt dette er riktig, er et filosofisk spørsmål I ORM tas 100%-prinsippet som et aksiom (Det vi ikke kan beskrive med ord, kan vi heller ikke lage et informasjonssystem for) Husk: Vår beskrivelse av UoD (ORM-modellen) skal leses av en datamaskin, så den må være meget nøyaktig og detaljert INF1300-18.8.2008 - Ragnar Normann 13

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 INF1300-18.8.2008 - Ragnar Normann 14

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 INF1300-18.8.2008 - Ragnar Normann 15

Integritetsregler I det begrepsmessige skjemaet kaller vi skrankene for integritetsregler Integritetsreglene bestemmer hva som er lovlig å lagre i informasjonssystemet (lovlige tilstander i databasen) hva som er lovlige forandringer (lovlige transisjoner/transaksjoner) Det er umulig for en bruker av informasjonssystemet å gjøre noe som strider mot integritetsreglene INF1300-18.8.2008 - Ragnar Normann 16

Informasjonssystemer Interesseområdet Analyse Informasjonsmodellen Realisering Informasjonssystemet Data Prosesser INF1300-18.8.2008 - Ragnar Normann 17

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

DBMS Database Management System Spesialisert programvare som understøtter: Persistens Transaksjonshåndtering La t være en transaksjon. Da gjelder: A tomicity (alt eller intet av t blir gjort) C onsistency (t kan ikke gjøre DBen inkonsistent) I solation (t merker ikke noe til andre transaksjoner) D urability (endringer gjort av t, er varige) Programmeringsgrensesnitt (API) INF1300-18.8.2008 - Ragnar Normann 19

3-skjemaarkitekturen for databaser Presentasjonslaget beskrives med eksterne skjemaer ( views ) hvordan informasjon skal presenteres for ulike brukere Det konseptuelle (eller logiske) laget beskrives i det begrepsmessige skjemaet hva som kan lagres, og hva som er lovlige forandringer Det fysiske laget beskrives i det interne skjemaet hvordan informasjon lagres, forandres og behandles INF1300-18.8.2008 - Ragnar Normann 20

INF1300-18.8.2008 - Ragnar Normann 21

3-lagsarkitektur Benytter ideene fra 3-skjemaarkitekturen i design av distribuerte systemer Presentasjonslag: Webserver Forretningslogikk: Applikasjonsserver Datalag: Databaser, legacy-systemer, INF1300-18.8.2008 - Ragnar Normann 22

Begreper Helt fra menneskene fikk språket, har vi satt navn på grupper av tilsvarende ting Platon, i sin idé-lære, var den første som beskrev dette systematisk (vitenskapelig) Selv om det ikke er noen kyr her inne, vet dere alle hva jeg mener med ordet «ku» Og selv de som aldri har sett (et bilde av) en klapperslange, forstår ordet «klapperslange» Ku og klapperslange er to eksempler på begreper To mer abstrakte eksempler er lån og flyavgang INF1300-18.8.2008 - Ragnar Normann 23

Representasjon For å lage et begrepsmessig skjema for UoD må vi velge hvilke begreper skjemaet skal inneholde I tillegg må vi for hvert begrep bestemme oss for hvordan vi skal lagre informasjon om forekomster av dette begrepet Vi kan ikke lagre kyr i databasen, så vi (eller bonden som skal registrere melkeproduksjon) må finne en måte å lagre informasjon som identifiserer hver enkelt ku En slik identifikasjonsmåte kalles en representasjon eller identifikator for begrepet INF1300-18.8.2008 - Ragnar Normann 24

Ontologi Vitenskapen om sammenhengen mellom virkelighet (UoD), begreper og representasjon kalles ontologi Ontologi er et meget aktivt forskningsfelt Ett eksempel er oljeindustrien som prøver å bli enige om felles begreper og representasjoner for å beskrive alle installasjoner og alt vedlikehold i Nordsjøen Hovedpoenget med ontologi betegnes gjerne som Ogdens trekant INF1300-18.8.2008 - Ragnar Normann 25

Ogdens trekant INF1300-18.8.2008 - Ragnar Normann 26

Elementære setninger En setning som ikke kan deles opp uten å miste meningsinnhold, kalles elementær Eksempel: Per liker is og brus Denne setningen er ikke elementær fordi den kan erstattes av de to elementære setningene Per liker brus Per liker is INF1300-18.8.2008 - Ragnar Normann 27

Øvelse Hvilke av disse setningene er elementære? Hans er født 27. august 1996 Hans og Grete er søsken DK41050 er en hvit Toyota Yaris Anne fikk B i INF1010 Tone ble ansatt som professor 1.8.2003 INF1300-18.8.2008 - Ragnar Normann 28