INF1300 Introduksjon til databaser

Størrelse: px
Begynne med side:

Download "INF1300 Introduksjon til databaser"

Transkript

1 UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler i SQL ORM som analysemetode Kvalitetssikring av ORM-modeller INF Ellen Munthe-Kaas 1

2 Fra skranker til integritetsregler Ved gruppering fra en ORM-modell til et relasjonsdatabaseskjema blir skrankene i modellen omformet til integritetsregler i skjemaet De aller fleste skrankene overføres direkte til skjemaet Noen få ganger kan det være fornuftig å la være å håndheve en skranke i databasen, men dette er unntak Vi skal aldri ha en integritetsregel i skjemaet som ikke kommer fra en skranke i modellen Det betyr at skjemaet aldri kan være strengere enn modellen INF Ellen Munthe-Kaas 2

3 Håndtering av verdiskranker En verdiskranke begrenser domenet for et attributt Eksempelet over gir følgende definisjon av Medaljeutbytte: CREATE TABLE Medaljeutbytte ( land_navn CHAR(20) NOT NULL REFERENCES Land(navn), med_kode CHAR(1) NOT NULL CHECK(med_kode IN ( G, S, B )), antall INTEGER CHECK( (0 < antall) AND (antall < 70) ), CONSTRAINT med_utb_pk PRIMARY KEY(land_navn,med_kode) ); INF Ellen Munthe-Kaas 3

4 Gruppererroller og referanseroller I grupperingen vil en mange-til-én-setningstype fra A til B bli til en fremmednøkkel fra A-relasjonen til B-relasjonen En én-til-én setningstype mellom B og C hvor bare B-rollen er total, blir til en entydig fremmednøkkel fra B-relasjonen til C-relasjonen Rollen til det begrepet som får fremmednøkkelen, kalles gruppererrollen i setningen (rolle 1 og 3 i eksempelet) Rollen som blir til en fremmednøkkel, kalles referanserollen i setningstypen (rolle 2 og 4 i eksempelet) INF Ellen Munthe-Kaas 4

5 Håndtering av én-til-én- setningstyper uten totale roller Her har vi et valg: Vi kan velge å peke ut en av rollene som gruppererrolle, dvs. hvilken relasjon som skal få fremmednøkkelen Vi kan velge å danne et begrep av setningstypen Det grupperte resultatet blir i såfall en relasjon som består av to kandidatnøkler som er fremmednøkler til de to relasjonene som stammer fra de to begrepene som inngår i setningstypen Merk: I storm må vi selv foreta denne begrepsdannelsen INF Ellen Munthe-Kaas 5

6 Håndtering av én-til-én- setningstyper med to totale roller Slike setningstyper forekommer sjelden Ett eksempel er en setningstype som kobler sammen hovedsteder med sine land Vi må da velge en av rollene som gruppererrolle Dersom ett av de involverte begrepene bruker denne setningstypen som sin prefererte referansemåte, har vi gjort en analysefeil De to begrepene skal da slås sammen til ett begrep og setningstypen skal fjernes fra ORM-modellen INF Ellen Munthe-Kaas 6

7 Gruppering vs modellering Valg av gruppererroller er en del av grupperingsprosessen, og ikke av modelleringsprosessen Det samme gjelder valg av hvilke referanserelasjoner som skal undertrykkes og hvilke som skal beholdes Resten av grupperingsprosessen er automatiserbar og kan gjøres av en datamaskin INF Ellen Munthe-Kaas 7

8 Navn på attributter 1 I eksempelet over vil A-relasjonen få en fremmednøkkel til B- relasjonen bestående av to attributter: ett C-attributt og ett D-attributt Ved maskinell gruppering vil navnene på disse attributtene bli C_rolle2 og D_rolle2 (evt c_rolle2 og d_rolle2 hvor c og d er representasjonene til hhv C og D) I storm kan man gi alternative relasjons- og attributtnavn hvis man ikke synes de automatisk genererte navnene egner seg INF Ellen Munthe-Kaas 8

9 Navn på attributter 2 Ved manuell gruppering kan dere velge navnene på de to attributtene i fremmednøkkelen fritt Det kan dere forøvrig gjøre for alle andre attributter også INF Ellen Munthe-Kaas 9

10 Forekomstrestriksjoner En integritetsregel som kan håndheves lokalt i en enkelt forekomst i en tabell, kalles en forekomstrestriksjon På engelsk kalles den en «intra record constraint» En integritetsregel som ikke er en forekomstrestriksjon, har ikke noen egen betegnelse på norsk På engelsk kalles den en «inter record constraint» Forekomstrestriksjoner er billige å håndheve fordi vi ikke trenger å lese noen andre forekomster enn den vi holder på med Forekomstrestriksjoner kan bare brytes ved innlegging og endring, aldri ved sletting INF Ellen Munthe-Kaas 10

11 Ulikhet i referanseroller Gruppert skjema: Person(personnavn, gren_blir_saget, gren_blir_sittet_på) Her sammenligner vi to referanseroller til Gren, og disse skal ikke ha noen felles forekomst Når vi legger inn en ny forekomst av Person, må vi kontrollere at 1) verdien i gren_blir_saget ikke må finnes som verdi i gren_blir_sittet_på i noen tidligere forekomster 2) verdien i gren_blir_sittet_på ikke må finnes som verdi i gren_blir_saget i noen tidligere forekomster INF Ellen Munthe-Kaas 11

12 Ulikhet i gruppereroller Gruppert skjema: Person(personnavn, gren_blir_saget, gren_blir_sittet_på) Her sammenligner vi to gruppererroller for Person, og disse skal ikke ha noen felles forekomst Det betyr at ingen forekomst av Person skal finnes både i rollen sitter_på og i rollen sager Når vi legger inn en ny forekomst av Person, må vi altså kontrollere at minst ett av attributtene gren_blir_sittet_på og gren_blir_saget er NULL Dette er en forekomstrestriksjon hvor vi bare ser på NULL-verdier INF Ellen Munthe-Kaas 12

13 Dobbeltrolleulikhet Gruppert skjema: Person(personnavn, gren_blir_saget, gren_blir_sittet_på) Dette er en dobbeltrolleskranke hvor vi sammenligner de to gruppererrollene Den sier at ingen forekomstpar av Person og Gren skal ha samme verdi i rolleparene (sager, blir saget) og (sitter på, blir sittet på) Når vi legger inn en ny forekomst av Person, må vi altså kontrollere at minst ett av attributtene gren_blir_saget og gren_blir_sittet_på er NULL eller at de har forskjellig verdi I denne forekomstrestriksjonen sammenligner vi verdier INF Ellen Munthe-Kaas 13

14 Mengdeskranker som blir til forekomstrestriksjoner Enkeltrolleskranker som bare går mellom gruppererroller, blir til forekomstrestriksjoner som bare ser på NULL (Dette gjelder også kombinerte totale roller) Dobbeltrolleskranker hvor gruppererrollene sammenlignes, blir til forekomstrestriksjoner hvor verdiene i attributtene sammenlignes Ingen andre mengdeskranker blir til forekomstrestriksjoner En generell kombinert total rolle som involverer flere referanseroller, er svært dyr å håndheve, og den er derfor kandidat til en skranke vi velger å neglisjere INF Ellen Munthe-Kaas 14

15 Håndtering av andre skranker Håndtering av delmengde- og likhetsskranker blir helt tilsvarende håndteringen av ulikhetsskranker Ekvivalente stier blir en slags likhetsskranke I tilfellet fra Oblig3 der Billett arver én båt fra Avreise og én båt fra Køye, og verdien av de to båtene må være like i hver Billett-forekomst, ordner vi det enklest ved å slå de to båtattributtene sammen til ett Fremmednøkler er spesialtilfeller av delmengdeskranker At A har en fremmednøkkel til B håndheves som to integritetsregler: Ved INSERT på A må vi sjekke at fremmednøkkelen har en lovlig verdi (peker på en forekomst av B) Ved DELETE av en B må vi sjekke at ingen A har en fremmednøkkel til denne forekomsten av B INF Ellen Munthe-Kaas 15

16 Forekomstrestriksjoner i SQL Gruppert skjema: Person(personnavn, gren_blir_saget, gren_blir_sittet_på) Alle forekomstrestriksjoner kan i SQL uttrykkes ved hjelp av CHECK() Eksempel: Når vi legger inn en ny forekomst i Person, må minst ett av attributtene gren_blir_saget og gren_blir_sittet_på være NULL, eller de må ha forskjellig verdi I SQL uttrykkes dette slik: CHECK( (gren_blir_saget IS NULL) OR (gren_blir_sittet_på IS NULL) OR (gren_blir_saget <> gren_blir_sittet_på) ) INF Ellen Munthe-Kaas 16

17 Andre integritetsregler i SQL Av andre integritetsregler (de som ikke er forekomstrestriksjoner) har vi tidligere sett hvordan vi definerer Primærnøkler Andre entydighetsrestriksjoner Fremmednøkler De øvrige må vi programmere selv som databasefunksjoner som kalles fra triggere En trigger utløses av en hendelse som INSERT, DELETE eller UPDATE i databasen Hvordan man programmerer triggere og databasefunksjoner er svært DBMS-avhengig INF Ellen Munthe-Kaas 17

18 Referansebegreper og undertrykking av relasjoner (repetisjon) Et begrep som ikke spiller noen andre gruppererroller enn de som inngår i den prefererte referansen, og som spiller minst en referanserolle, kalles et referansebegrep Tabeller som kommer fra referansebegreper, kan fjernes (undertrykkes) fra relasjonsdatabaseskjemaet INF Ellen Munthe-Kaas 18

19 Triggere og databasefunksjoner i Postgres NB Dette er kursorisk pensum Dere skal vite hva triggere og databasefunksjoner er, men dere vil ikke bli bedt om å programmere slike INF Ellen Munthe-Kaas 19

20 PostgreSQL-funksjoner I Postgres 8.0 eller høyere lages funksjoner slik: CREATE FUNCTION fnavn ( [par1 type1 [, par2 type2]... ] ) RETURNS returtype AS $$ programtekst $$ LANGUAGE programmeringsspråk Blant de lovlige programmeringsspråkene er plpgsql (Postgres eget PL/pgSQL) sql (PostgreSQL) perl (PL/Perl) python (PL/Python) Med unntak av sql må språkene lastes inn f.eks. av superbruker, vanligvis som en del av installasjonen INF Ellen Munthe-Kaas 20

21 Eksempel på PL/pgSQL CREATE FUNCTION fakturasum ( fakturanr integer ) RETURNS trigger AS $$ DECLARE faktsum NUMERIC(9,2); BEGIN SELECT SUM(belop) INTO faktsum FROM Fakturalinje fl WHERE fl.faktura = fakturanr ; UPDATE Faktura SET belop = faktsum WHERE Faktura.faktnr = fakturanr ; RETURN NULL; END; $$ LANGUAGE plpgsql ; INF Ellen Munthe-Kaas 21

22 Triggere i PostgreSQL Syntaks for triggerdefinisjoner: CREATE TRIGGER navn { BEFORE AFTER } hendelse1 [ OR hendelse2 [ OR hendelse3 ] ] ON tabell FOR EACH { ROW STATEMENT } EXECUTE PROCEDURE funksjon ( parameterliste ) Hendelsene kan være INSERT, DELETE og UPDATE FOR EACH ROW betyr at funksjon kalles en gang for hver forekomst FOR EACH STATEMENT betyr at funksjon kalles bare en gang INF Ellen Munthe-Kaas 22

23 Eksempel på trigger CREATE TRIGGER sett_fakturabelop AFTER INSERT OR UPDATE OR DELETE ON Fakturalinje FOR EACH ROW EXECUTE PROCEDURE fakturasum (Fakturalinje.faktura) ; Slutt på Postgres-spesifikt kursorisk stoff INF Ellen Munthe-Kaas 23

24 Sterk gruppering 1 Ved vanlig gruppering vil ikke-totale gruppererroller gi attributter hvor NULL er tillatt Det å gruppere sterkt betyr at nullverdier aldri er tillatt Resultatet blir at relasjonene må splittes/fragmenteres: Vi får én relasjon med de attributtene som kommer fra setningstyper med total gruppererrolle Setningstyper hvor gruppererrollen ikke er total, blir til en egen relasjon bestående av primærnøkkelen og attributtet fra denne setningstypen Likhetsskranke mellom gruppererroller gjør at attributtene fra disse setningstypene kan legges i samme relasjon INF Ellen Munthe-Kaas 24

25 Sterk gruppering 2 Sterk gruppering gir samme resultat som det å opprette en subtype hver gang vi får en ikke-total gruppererrolle (Husk: I ORM-modellen skal vi bare opprette subtyper når vi har forekomster som ikke kan spille en eller flere roller) Det gjør at alle gruppererroller blir totale Resultatet blir en relasjonsdatabase hvor ingen attributter kan være NULL INF Ellen Munthe-Kaas 25

26 Beskrivelse (deskripsjon) av virkeligheten/interesseområdet (Universe of Discourse = UoD) Interesseområdet (UoD) Begrepsdannelse og idealisert representasjon Beskrivelse av interesseområdet INF Ellen Munthe-Kaas 26

27 100%-prinsippet En fullstendig beskrivelse av interesseområdet kalles en informasjonsmodell 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) INF Ellen Munthe-Kaas 27

28 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 For å beskrive de dynamiske skrankene i UoD må vi bruke en annen modelleringsteknikk, f.eks. UMLs sekvensdiagrammer INF Ellen Munthe-Kaas 28

29 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 For relasjonsdatabaser bruker vi SQL INF Ellen Munthe-Kaas 29

30 Forretningregler, skranker og integritetsregler Reglene som gjelder i UoD, kaller vi forretningsregler Beskrivelsen av forretningsreglene i informasjonsmodellen (ORM-modellen) kaller vi skranker I det begrepsmessige skjemaet kaller vi skrankene for integritetsregler Integritetsreglene bestemmer hva som er lovlig å lagre i informasjonssystemet, dvs. hva som er lovlige tilstander i databasen hva som er lovlige forandringer dvs. hva som er lovlige transisjoner/transaksjoner Det er umulig for en bruker av informasjonssystemet å gjøre noe som strider mot integritetsreglene INF Ellen Munthe-Kaas 30

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

32 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 INF Ellen Munthe-Kaas 32

33 3-skjemaarkitektur Internt skjema Begrepsmessig skjema Eksternt skjema Intern/fysisk informasjonsbehandler Intern database med fysiske data Begrepsmessig informasjonsbehandler Begrepsmessig database Ekstern informasjonsbehandler (presentasjon) Ekstern database Berit bruker INF Ellen Munthe-Kaas 33

34 3-lagsarkitektur Benytter ideene fra 3-skjemaarkitekturen i design av distribuerte systemer Presentasjonslag: Webserver Forretningslogikk: Applikasjonsserver Datalag: Databaser, legacy-systemer, INF Ellen Munthe-Kaas 34

35 ORM som metode 1 ORM (Object-Role Modelling) er en analysemetode for å lage et begrepsmessig skjema for et gitt UoD Resultatet kan tegnes som et klassisk ORM-diagram (storm), som et ORM2-diagram (Visio/NORMA), eller med en annen passende tegneteknikk Når dere bruker metoden i jobbsammenheng, så husk: Det er ikke dere som er eksperter på UoD Ekspertene på UoD kan normalt ikke forventes å forstå deres diagrammer Kommunikasjonen med ekspertene skal foregå på vanlig norsk (eller et annet naturlig språk) og med forekomstdiagrammer for elementære setninger INF Ellen Munthe-Kaas 35

36 ORM som metode 2 Hensikten med analysen er å gi dere tilstrekkelig kunnskap om UoD slik at dere kan lage en korrekt informasjonsmodell Ansvaret for at dere har forstått ekspertene riktig, er fullt og helt deres (det er dere som er informatikere) Det kan være vanskelig å få UoD-ekspertene til å forstå at det er de som skal forklare deg hva UoD er («Her betaler vi for en datakonsulent, og så må vi lære ham/henne jobben sin» er en ikke ukjent reaksjon) Det å innføre et nytt informasjonssystem må være godt forankret i organisasjonen (både i ledelsen og hos brukerne) INF Ellen Munthe-Kaas 36

37 Modellmakt Begrepet modellmakt ble introdusert av professor i sosiologi Stein Bråten i 1973 Det at dere behersker modelleringsmetoden ORM og har trening i å lese ORM-diagrammer, gjør at dere har et «overtak» på UoD-ekspertene Denne modellmakten gjør det farlig å bruke ORMdiagrammer som argumentasjon i diskusjoner med brukere og UoD-eksperter Faren ligger i at UoD-ekspertene bekrefter at modellen er riktig uten egentlig å ha forstått den INF Ellen Munthe-Kaas 37

38 Kvalitetssikring Kvalitetssikringen av modellen gjøres ved å oversette modellen tilbake til de elementære setningene den uttrykker For en stor analyse kan dette være en tidkrevende (og derfor dyr) prosess Så i praksis bør dere konsentrere dere om de UoD-spesifikke delene av modellen og hoppe over ORMklisjeene (for der gjør dere vel ikke feil?) INF Ellen Munthe-Kaas 38

39 Eksamen Eksamen er delt i to likeverdige deleksamener som begge må være bestått for å bestå kurset: Design av relasjonsdatabaser (ORM, realisering/gruppering,...): Fredag 3. desember kl Bruk av relasjonsdatabaser (SQL, normaliseringsteori,...): Fredag 10. desember kl. 14: På den første av de to eksamenene får dere lov til å bruke blyant og viskelær på besvarelsen. De gule gjennomslagsarkene blir ikke brukt i sensuren av akkurat denne eksamenen. Læreboken er eneste tillatte hjelpemiddel på eksamen (For fremmedspråklige er ordbok tillatt) INF Ellen Munthe-Kaas 39

40 Noen eksamensråd for ORM - 1 Tegn og skriv tydelig - sensor er ikke tankeleser! Velg begrepsnavn med omhu feil begrepsnavn gjør at modellen blir feil et uheldig begrepsnavn kan villede sensor Alle faktatyper skal ha minst én entydighetspil Hvis entydighetspilene mangler eller plasseres feil, blir modellen feil Alle faktaroller skal ha navn som beskriver rollen Alle begreper må ha referansemåter I dette emnet bruker vi ORM-diagrammer til å lage databaser Hvis ikke alle begreper har referansemåter, kan ikke ORM-diagrammet realiseres/grupperes Nesten alle ekte modeller inneholder begrepsdannelser/eksterne entydigheter Hvis modellen din ikke har noen begrepsdannelser, er det sannsynligvis alvorlige mangler ved modellen INF Ellen Munthe-Kaas 40

41 Noen eksamensråd for ORM - 2 Det er både lurt og lov å spre modellen over flere ark Skriv hvilke deler av besvarelsen hvert ark gjelder Skriv gjerne kommentarer til Lillebjørn Nilsen er alltid optimist og løser kryssord med kulepenn Men han tegner ikke ORM-modeller med kulepenn Så det viktigste dere tar med dere på ORM-eksamenen er blyant og viskelær (og kanskje en blyantspisser) Lykke til med ORM-eksamenen på fredag om en uke Og med relasjonsdatabaseeksamenen fredagen etter INF Ellen Munthe-Kaas 41

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Informasjonssystemer 100%-prinsippet: Fra virkelighet til informasjonsmodell Forretningsregler, skranker og integritetsregler: Fra modell

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

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

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

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

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

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

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

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler ORM som analysemetode

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

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET IOSLO INF1300 Introduksjon til databaser Dagens tema: ORM og normalisering Denormalisering og splitting Triggere og databasefunksjoner Transaksjonshåndtering INF1300 2.11.2011 Ellen Munthe-Kaas

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

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

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

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

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker INF1300 1.9.2008 Ellen Munthe-Kaas 1 Et eksempel fra virkeligheten

Detaljer

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering INF1300 Introduksjon til databaser Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 21. november 2017 Agenda Hensikten med ORM-modellering Hva er lov

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

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

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper og underbegrepsskranker Kombinerte totale roller Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende

Detaljer

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering IN2090 Databaser og datamodellering Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 19. november 2018 Agenda Hensikten med ORM-modellering Hva er lov

Detaljer

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering INF1300 Introduksjon til databaser Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 21. november 2016 Agenda Hensikten med ORM-modellering Hva er lov

Detaljer

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM IN2090 Databaser og datamodellering Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM Mathias Stang (mjstang@ifi.uio.no) 3. oktober 2018 1 Repetisjon: Relasjoner relasjonsskjema

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsmodellen Funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner Institutt for informatikk INF1300--15.9.2009--michael@ifi.uio.no

Detaljer

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Institutt for informatikk 1 Et eksempel fra virkeligheten

Detaljer

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker INF1300 29.08.2017 Mathias Stang

Detaljer

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL Institutt for Informatikk INF3100 13.2.2007 Ellen Munthe-Kaas 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende

Detaljer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper og underbegrepsforklaringer Kombinerte påkrevde roller Undertrykking av begreper Ekvivalente stier og joinskranker Behandling

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ringskranker Klisjéer Tommelfingerregler ORM og normalisering Denormalisering og splitting ORM som metode INF1300 7.11.2016 Ellen Munthe-Kaas

Detaljer

Dagens tema: Relasjonsmodellen Funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner

Dagens tema: Relasjonsmodellen Funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsmodellen Funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner Institutt for informatikk Evgenij Thorstensen

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1300 Introduksjon til databaser Eksamensdag: 30. november 2012 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

Flere skranker i ORM Integritetsregler med «CHECK» i SQL IN2090 Databaser og datamodellering Flere skranker i ORM Integritetsregler med «CHECK» i SQL Mathias Stang (mjstang@ifi.uio.no) 10. oktober 2018 1 Agenda Verdiskranker Mengdeskranker Ekstern påkrevd rolle

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL SQLs spørrespråk: select-from-where distinct order by Indekser INF1300-15.10.2007 Ellen Munthe-Kaas 1 SQL The Intergalactic Dataspeak

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 2. desember 2013 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte hjelpemidler: INF1300

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

Informasjonsbærende representasjoner

Informasjonsbærende representasjoner UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper Underbegrepsskranker Kombinerte totale roller Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende

Detaljer

Ekvivalente stier (Equivalence of Path, EOP) i storm

Ekvivalente stier (Equivalence of Path, EOP) i storm Ekvivalente stier (Equivalence of Path, EOP) i storm Dette er ikke rett fram, derfor denne beskrivelsen. Vi tar utgangspunkt i følgende modell for kinoer og kinoforestillinger: Bilde 1 ORM2 modell I bildet

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF300 Introduksjon til databaser Dagens tema: Oppdateringsanomalier Normalformer INF300..007 Ellen Munthe-Kaas Hva kjennetegner god relasjonsdatabasedesign? Relasjonene samler beslektet

Detaljer

SQL: Integritetsregler, triggere og views

SQL: Integritetsregler, triggere og views UNIVERSITETET I OSLO SQL: Integritetsregler, triggere og views Institutt for Informatikk INF3100 14.2.2014 Ellen Munthe-Kaas 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet fremmednøkler

Detaljer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper Underbegrepsskranker Kombinerte totale roller Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1300 Introduksjon til databaser Eksamensdag: leveringsfrist 11. november 2016 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

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

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013 INF1300 SQL Structured Query Language del 1 Stoff som blir/ble forelest i oktober 2013 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where distinct order by SQLs manipulasjonsspråk Indekser

Detaljer

IN2090 Databaser og datamodellering ORM 1

IN2090 Databaser og datamodellering ORM 1 IN2090 Databaser og datamodellering ORM 1 Modellere for obliger og eksamen Digital eksamen, men modeller tegnes med penn og papir Det er like greit å tegne for hand også på obligene 2 Dagens tema: Grunnuttrykkene

Detaljer

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 SQL: Datatyper m.m. Evgenij Thorstensen V18 Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 Datatyper, kort om mye Vi går en rask ekskursjon i manualen, Kap. 8. https://www.postgresql.org/docs/9.2/sql.html

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper Underbegrepsskranker Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende representasjoner INF1300

Detaljer

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

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22. INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning onsdag 22. september 2010 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where

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

Språk for dataorientert modellering

Språk for dataorientert modellering Språk for dataorientert modellering Hva forvirrer studentene minst, ORM/NIAM eller UML-stereotyper? (Omkamp mellom «Rundinger» og «Firkanter») Ragnar Normann (med god støtte av Gerhard Skagestein) 1 Bakgrunn

Detaljer

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Institutt for informatikk INF1300 29.8.2016 1 Et eksempel fra virkeligheten La oss se på

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

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen UNIVERSITETET I OSLO IN2090 Databaser og datamodellering Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen IN2090 05.09.2018 Mathias Stang 1 Opplegget fremover Forelesningene

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og vanlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og totale

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og vanlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og totale

Detaljer

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

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14. INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning mandag 14. september 2009 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where

Detaljer

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 INF 329: Web-Teknologier Dataimplementasjon Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 av: Dag Viggo Lokøen (dagvl@ii.uib.no) Kent Inge F. Simonsen (kentis@ii.uib.no)

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

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011 VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011 Oppgaven skal løses og leveres individuelt (men det er lov å snakke og diskutere med medstudenter om løsningen). Skriv ditt fulle navn, kursnummeret

Detaljer

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Notater: INF1300. Veronika Heimsbakk 8. januar 2013 Notater: INF1300 Veronika Heimsbakk veronahe@student.matnat.uio.no 8. januar 2013 Innhold 1 ORM 3 1.1 Setningers aritet......................... 3 1.2 Faktatyper og broer i ORM................... 3 1.3

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

Ekvivalente stier (Equivalence of Path, EOP) i storm

Ekvivalente stier (Equivalence of Path, EOP) i storm Ekvivalentestier(EquivalenceofPath,EOP)istORM Detteerikkerettfram,derfordennebeskrivelsen.Vitarutgangspunktifølgende modellforkinoerogkinoforestillinger: Bilde1 ORM2 modell I bildet under ser du modellen

Detaljer

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering? LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL SQLs definisjonsspråk SQLs spørrespråk: select-from-where distinct order by SQLs manipulasjonsspråk Indekser Filmdatabasen INF1300

Detaljer

Gruppeøvelse 20/ Dagens tema: - Gruppering/realisering

Gruppeøvelse 20/ Dagens tema: - Gruppering/realisering Gruppeøvelse 20/9-2010 Dagens tema: - Gruppering/realisering Gruppering, regler - I Lange piler fjernes før grupperingen begynner Stikkord: Begrepsdannelse, ekstern entydighet September 20, 2010 2 Gruppering,

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF300 Introduksjon til databaser Dagens tema: Oppdateringsanomalier Normalformer INF300 7.0.008 Ellen Munthe-Kaas Hva kjennetegner god relasjonsdatabasedesign? Relasjonene samler

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Verdiskranker Underbegreper Underbegrepsskranker Mengdeskranker Delmengdeskranker INF1300-10.9.2007 Ellen Munthe-Kaas 1 Verdiskranker

Detaljer

INF1300 Introduksjon til databaser

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

Detaljer

Ekstramateriale: Eksempel på PostgreSQL 8.4 og SQL:1999 (ikke pensum 2012)

Ekstramateriale: Eksempel på PostgreSQL 8.4 og SQL:1999 (ikke pensum 2012) UNIVERSITETET I OSLO Ekstramateriale: Eksempel på PostgreSQL 8.4 og SQL:1999 (ikke pensum 2012) Institutt for Informatikk INF3100 17.4.2012 Ellen Munthe-Kaas 1 UDTer Distinkt UDT i Postgres: create domain

Detaljer

Oppdateringsanomalier Normalformer

Oppdateringsanomalier Normalformer UNIVERSITETET I OSLO INF300 Introduksjon til databaser Dagens tema: Oppdateringsanomalier Normalformer Institutt for informatikk INF300 26.0.2009 Ellen Munthe-Kaas Hva kjennetegner god relasjonsdatabasedesign?

Detaljer

SQL Structured Query Language

SQL Structured Query Language SQL Structured Query Language Mer SQL: kandidat-, primær- og fremmednøkler Definere tabeller med integritetsregler Hente data fra tabeller select-from-where distinct order by Eksempler kjøres i PostgreSQL

Detaljer

Normalisering. Hva er normalisering?

Normalisering. Hva er normalisering? LC238D http://www.aitel.hist.no/fag/_dmdb/ Normalisering Hva er normalisering? side 2 Normaliseringens plass i utviklingsprosessen side 3 Eksempel side 4 Funksjonell avhengighet side 5-6 Første normalform

Detaljer

Oppgaver Oppgave a: Sett opp mulige relasjoner

Oppgaver Oppgave a: Sett opp mulige relasjoner Løsningsforslag til øving 4: Relasjonsmodellen Kjell Toft Hansen 18.09.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgaver Oppgave a: Sett opp

Detaljer

INF Introduksjon til databaser ORM I

INF Introduksjon til databaser ORM I INF1300 - Introduksjon til databaser ORM I Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og naturlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og påkrevde roller

Detaljer

Relasjonsdatabasedesign

Relasjonsdatabasedesign UNIVERSITETET I OSLO Relasjonsdatabasedesign Flerverdiavhengigheter Høyere normalformer Institutt for Informatikk INF3100-26.1.2012 Ellen Munthe-Kaas 1 Flerverdiavhengigheter Flerverdiavhengigheter gir

Detaljer

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO SQL Structured Query Language g (forts.) Institutt for Informatikk INF3100 9.2.2009 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan

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

Relasjonsdatabasedesign

Relasjonsdatabasedesign UNIVERSITETET I OSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-22.1.2013 Ellen Munthe-Kaas 1 Hvordan dekomponere tapsfritt Fagins teorem Gitt en relasjon R(XYZ) med FDer F.

Detaljer

SQL 3: Opprette tabeller, datainnsetting og utsnitt

SQL 3: Opprette tabeller, datainnsetting og utsnitt SQL 3: Opprette tabeller, datainnsetting og utsnitt Læreboka kap. 4 03.11.2008 Kjell Toft Hansen 1 Datainnsetting Legg til en ny leverandor i tabellen leverandor INSERT INTO leverandor (lev_nr, lev_navn,

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

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 99539963 Roger Midtstraum: 99572420

Detaljer

INF3100 Databasesystemer

INF3100 Databasesystemer UNIVERSITETET I OSLO INF3100 Databasesystemer Dagens tema: Databaser og informasjonssystemer; datamodeller, databasemodeller og informasjonsmodeller 100%-prinsippet Litt databasehistorie 3-skjemaarkitekturen

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1300 Introduksjon til databaser Eksamensdag: 1. desember 2014 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Relasjonsdatabasedesign

Relasjonsdatabasedesign UNIVERSITETET I OSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-1.2.2010 Ellen Munthe-Kaas 1 Normalformer Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon

Detaljer

Dagens tema: Oppdateringsanomalier Normalformer

Dagens tema: Oppdateringsanomalier Normalformer UNIVERSITETET I OSLO INF300 Introduksjon til databaser Dagens tema: Oppdateringsanomalier Normalformer Institutt for informatikk INF300 08..0 michael@ifi.uio.no Hva kjennetegner god relasjonsdatabasedesign?

Detaljer

INF3100. Databasesystemer

INF3100. Databasesystemer UNIVERSITETET IOSLO INF3100 Dagens tema: Databasesystemer Databaser og informasjonssystemer; datamodeller, databasemodeller og informasjonsmodeller 100%-prinsippet Litt databasehistorie 3-skjemaarkitekturen

Detaljer

1. Innføring i bruk av MySQL Query Browser

1. Innføring i bruk av MySQL Query Browser Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innføring i bruk av MySQL Query Browser Kjell Toft Hansen 28.02.2007 Lærestoffet er utviklet for faget LV338D Databaseadministrasjon 1. Innføring

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

UNIVERSITETET. Relasjonsdatabasedesign

UNIVERSITETET. Relasjonsdatabasedesign UNIVERSITETET IOSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-31.1.2011 Ellen Munthe-Kaas 1 Hvordan dekomponere tapsfritt Fagins teorem Gitt et relasjonsskjema R(XYZ) med FDer

Detaljer

INF1300 Introduksjon til databaser: SQL Structured Query Language

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

Detaljer

Repetisjon: Normalformer og SQL

Repetisjon: Normalformer og SQL IN2090 databaser og datamodellering Repetisjon: Normalformer og SQL Mathias Stang og Stein Michael Storleer 21. november 2018 1 Agenda Normalformer Funksjonelle avhengigheter Nøkler Finne hvilke normalformer

Detaljer

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

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1 UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 1.2.2005 Ragnar Normann 1 SQL SQL Structured Query Language er et deklarativt språk for

Detaljer

Relasjonsdatabasedesign

Relasjonsdatabasedesign UNIVERSITETET I OSLO Relasjonsdatabasedesign Normalformer Institutt for Informatikk INF3100-26.1.2015 Ellen Munthe-Kaas 1 Normalformer Normalformer er et uttrykk for hvor godt vi har lykkes i en dekomposisjon

Detaljer

Løsningsforslag matoppskrifter modellering

Løsningsforslag matoppskrifter modellering Løsningsforslag matoppskrifter modellering Oppgave 1 Det beste er å ha et felles løpenummer på alle oppskrifter, uavhengig av hvor de stammer fra, og heller ha ekstraopplysninger som avhenger av om oppskriften

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

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller

Detaljer