INF3100 Databasesystemer

Like dokumenter
INF212 - Databaseteori. Kursinnhold

INF3100 Databasesystemer

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

INF1300 Introduksjon til databaser

IN2090 Introduksjon til databaser

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

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

INF1300 Introduksjon til databaser

Informasjonssystemer, DBMSer og databaser

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

INF3100. Databasesystemer

INF1300 Introduksjon til databaser

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF3100 Databasesystemer

INF1300 Introduksjon til databaser

Oppdateringsanomalier Normalformer

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

Dagens tema: Oppdateringsanomalier Normalformer

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

Relasjonsdatabasedesign (forts.)

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

Relasjonsdatabasedesign

INF september Relasjonsmodellen funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner

Relasjonsdatabaseteori

Relasjonsdatabasedesign (forts.)

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

IN2090 Introduksjon til databaser

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

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

Relasjonsdatabasedesign

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

Databaser: Relasjonsmodellen, del I

Relasjonsdatabasedesign. Ekstramateriale: Normalformer utover 4NF (ikke pensum)

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

UNIVERSITETET. Relasjonsdatabasedesign

Normalformer utover 4NF (ikke pensum)

IN2090 Databaser og datamodellering. Databasedesign og normalformer

God Databasedesign: På vei mot Normalformer

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

Relasjonsdatabasedesign

Normalformer or Normalisering 1NF, 2NF, 3NF, BCNF

INF1300 Introduksjon til databaser

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det.

Relasjonsdatabasedesign

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Relasjonsalgebraen. Algebra

Integritetsregler i SQL

Relasjonsdatabasedesign

UNIVERSITETET I OSLO

Normalisering. Hva er normalisering?

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ragnar Normann

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

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Databaser fra et logikkperspektiv

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

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

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

INF1300 Introduksjon til databaser

Oppskriftsbok. FDer og MVDer - oversikt: se s. 3 Relasjonsalgebra - oversikt: se s. 45

Integritetsregler i SQL. Primærnøkler

INF1300 Introduksjon til databaser

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

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO

Normalisering. Hva er normalisering?

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

UNIVERSITETET I OSLO. Oppskriftsbok. FDer og MVDer Relasjonsalgebra. Institutt for Informatikk. INF3100 Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO

SQL Structured Query Language

Utvikling fra kjernen og ut

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

PENSUM H2012 INF1300. Joakim Myrvoll Johansen. Pensum fra forelesnings-foilere

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas

UNIVERSITETET I OSLO

Det matematisk-naturvitenskapelige fakultet

Databaser. - Normalisering -

UNIVERSITETET RELASJONSALGEBRA. Regning g med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

1. Relasjonsmodellen Kommentarer til læreboka

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser: SQL Structured Query Language

Transkript:

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 - Ragnar Normann 1

Kursinnhold Databasedesign Databaseprogrammering Implementasjon av databasesystemer INF3100-19-20.1.2004 - Ragnar Normann 2

Lærebok Garcia-Molina, Ullman, Widom: Database Systems The Complete Book Prentice Hall 2002. ISBN 0-13-031995-3 Se hjemmesiden, Støttelitteratur www.ifi.uio.no/~inf3100 INF3100-19-20.1.2004 - Ragnar Normann 3

Praktiske opplysninger Hjemmeside: www.ifi.uio.no/~inf3100 Obligatoriske oppgaver: 2 stykker Databasesystem: Oracle 9.2 Eksamen: 8. juni, trolig kl. 9:00 12:00 Ingen læremidler er tillatt brukt på eksamen! INF3100-19-20.1.2004 - Ragnar Normann 4

Informasjonssystemer, DBMSer og databaser INF3100-19-20.1.2004 - Ragnar Normann 5

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 INF3100-19-20.1.2004 - Ragnar Normann 6

Beskrivelse (deskripsjon) av virkeligheten/interesseområdet Interesseområdet Begrepsdannelse og idealisert representasjon Beskrivelse av interesseområdet INF3100-19-20.1.2004 - Ragnar Normann 7

Informasjonsmodeller, 100%-prinsippet og skranker 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 modellspråk som ER (Entity Relationship) eller ORM (Object-Role Modelling) 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 INF3100-19-20.1.2004 - Ragnar Normann 8

Det begrepsmessige skjema Integritetsregler Informasjonsmodellen brukt som regelverk (preskripsjon) for hvordan informasjonssystemet skal oppføre seg, kalles det begrepsmessige skjema Det begrepsmessige skjema uttrykkes ved et språk som passer for den databaseteknologien vi skal bruke, f.eks. SQL (Structured Query Language) for relasjonsdatabaser I det begrepsmessige skjemaet kaller vi skrankene for integritetsregler Integritetsreglene bestemmer hva som er lovlig å lagre i informasjonssystemet (lovlige tilstander) og hva som er lovlige forandringer (lovlige transisjoner) INF3100-19-20.1.2004 - Ragnar Normann 9

Informasjonssystemer Interesseområdet Analyse Informasjonsmodellen Realisering Informasjonssystemet Data Prosesser INF3100-19-20.1.2004 - Ragnar Normann 10

Informasjonssystemer vs. databaser INFORMASJONSSYSTEM DATABASESYSTEM DBMS Applikasjonsprogrammer Håndtere spørsmål Kontroll av data Aksessere data MDB DB Spørremodul bruker INF3100-19-20.1.2004 - Ragnar Normann 11

DBMS Database Management System Spesialisert SW Karakteristika: Persistens Transaksjonshåndtering A tomicity C onsistency I solation D urability Programmeringsgrensesnitt INF3100-19-20.1.2004 - Ragnar Normann 12

3-skjemaarkitekturen INF3100-19-20.1.2004 - Ragnar Normann 13

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

INF3100-19-20.1.2004 - Ragnar Normann 15

3-lagsarkitektur Benytter ideene fra 3-skjemaarkitekturen i design av distribuerte systemer Presentasjonslag: Webserver Forretningslogikk: Applikasjonsserver Datalag: Databaser, legacysystemer, INF3100-19-20.1.2004 - Ragnar Normann 16

Relasjonsmodellen INF3100-19-20.1.2004 - Ragnar Normann 17

Relasjonsdatabasemodellen Datamodell: Mengde av begreper for å beskrive strukturen til en database Relasjonsmodellen: Databasen kan betraktes som en samling av tabeller INF3100-19-20.1.2004 - Ragnar Normann 18

Relasjoner og relasjonsdatabaser Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290260 131171 150570 031077 39201 35697 34322 39201 nil Knøttene Knøttene nil Relasjon: Et matematisk begrep som kan tolkes som en tabell med verdier. Presist: En mengde av tupler Relasjonsdatabase: En samling relasjoner INF3100-19-20.1.2004 - Ragnar Normann 19

Relasjoner - terminologi Relasjonsnavn Relasjonsskjema Attributt Personale primærnøkkel Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290260 131171 150570 031077 39201 35697 34322 39201 nil Knøttene Knøttene nil Tuppel/forekomst Instans/forekomster INF3100-19-20.1.2004 - Ragnar Normann 20

Formelle definisjoner Domene: En mengde atomære verdier Attributt: Et navn på en rolle spilt av et domene ( kolonnenavn ) Relasjonsskjema R(A1,A2,,An): En navngitt mengde attributter R = {A1,A2,,An} der R er relasjonsnavnet n kalles relasjonens grad eller aritet Instans av et relasjonsskjema R(A1,A2,,An): En mengde {t1,t2,,tm} der hver tk er et n-tuppel av verdier fra domenene til A1,A2,,An (noen kan være nil) Relasjon: Et relasjonsskjema med en tilhørende instans Relasjonsskjemaet kalles relasjonens intensjon Instansen kalles relasjonens ekstensjon INF3100-19-20.1.2004 - Ragnar Normann 21

Merk: Tuplenes rekkefølge i en instans er vilkårlig Verdienes rekkefølge i et tuppel er vilkårlig I en instans kan det ikke finnes to like tupler Hver av verdiene i et tuppel er hentet fra et domene eller er nil Et domene kan være endelig eller uendelig To attributter i et relasjonsskjema kan ha samme domene, men ikke samme navn INF3100-19-20.1.2004 - Ragnar Normann 22

Relasjonsdatabaser - definisjoner Relasjonsdatabaseskjema: Samling av relasjonsskjemaer + integritetsregler Relasjonsdatabaseinstans: Samling av relasjonsinstanser Relasjonsdatabase = relasjonsdatabaseskjema + relasjonsdatabaseinstans INF3100-19-20.1.2004 - Ragnar Normann 23

Nøkler og nøkkelattributter INF3100-19-20.1.2004 - Ragnar Normann 24

Nøkler og nøkkelattributter Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290260 131171 150570 031077 39201 35697 34322 39201 nil Knøttene Knøttene nil Vi ønsker ikke at to ansatte skal kunne ha samme Ans# To personer kan aldri ha samme fødselsnummer = Fdato + Pers# INF3100-19-20.1.2004 - Ragnar Normann 25

Definisjon av nøkler Gitt et skjema R(A1,A2,,An) med tilhørende skranker La X være en delmengde av {A1,A2,,An} Hvis t er et tuppel i en instans av R, betegner t[x] verdiene i t s X-attributter Supernøkkel: En delmengde X av {A1,A2,,An} som er slik at hvis t og u er to tupler hvor t u, så er t[x] u[x] Kandidatnøkkel: En minimal supernøkkel Dvs: Fjerning av hvilket som helst attributt fører til at de gjenværende attributtene ikke lenger utgjør en supernøkkel Primærnøkkel: En utvalgt blant kandidatnøklene Alle relasjoner skal ha nøyaktig én primærnøkkel Nøkkelattributt (prime attribute): Attributt som er med i (minst) en kandidatnøkkel Supernøkler benyttes til å uttrykke integritetsregler INF3100-19-20.1.2004 - Ragnar Normann 26

Fremmednøkler Barn Løpe# Navn Fdato Avd TilknPers 2 5 4 7 Lisa Trym Anne Anne 180500 031203 301100 151202 Rosa Pantern Knøttene Tommeliten Knøttene nil 9 nil 8 Vi vil at TilknPers skal referere til forekomster i Personaletabellen INF3100-19-20.1.2004 - Ragnar Normann 27

Fremmednøkler Fremmednøkkel: Ett eller flere attributter som peker ut/refererer primærnøkkelen i en annen relasjon Barn Personale Ans# Navn Fdato Pers# Avd 10 9 8 12 Gro Berit Bjørn Liv 290260 131171 150570 031077 39201 35697 34322 39201 nil Knøttene Knøttene nil Løpe# Navn Fdato Avd TilknPers 2 5 4 7 Lisa Trym Anne Anne 180500 031203 301100 151202 Rosa Pantern Knøttene Tommeliten Knøttene nil 9 nil 8 INF3100-19-20.1.2004 - Ragnar Normann 28

Fremmednøkler Fremmednøkkelen må ha samme antall attributter som primærnøkkelen i den relasjonen den peker ut, og attributtene må ha parvis samme domener Korresponderende attributter behøver ikke å ha samme navn Det er lov å ha fremmednøkler til «seg selv» Fremmednøkler benyttes til å uttrykke integritetsregler INF3100-19-20.1.2004 - Ragnar Normann 29

Påkrevde integritetsregler i relasjonsdatabaser Entitetsintegritet: Alle relasjonsskjemaer skal ha en og bare en primærnøkkel Ingen av attributtene i primærnøkkelen får være nil Referanseintegritet: Hvis fremmednøkkelen ikke er nil, så skal det finnes et tuppel i den refererte relasjonen hvor primærnøkkelen har samme verdi som fremmednøkkelen (dvs. at det refererte tuppelet skal eksistere) Domeneintegritet: Alle verdier skal være atomære og hentet fra vedkommende attributts domene (Dessuten kan nil være tillatt «verdi» for noen attributter) I tillegg kan databasen ha andre integritetsregler, for eksempel kandidatnøkler som ikke er primærnøkler INF3100-19-20.1.2004 - Ragnar Normann 30

Funksjonell avhengighet INF3100-19-20.1.2004 - Ragnar Normann 31

Definisjon funksjonell avhengighet Gitt et relasjonsskjema R(A1,A2,,An). La X, Y være delmengder av {A1,A2,,An}. Y er funksjonelt avhengig av X hvis vi for enhver lovlig instans av R har at hvis instansen inneholder to tupler t1 og t2 hvor t1[x]=t2[x], så må t1[y]=t2[y]. I så fall skriver vi XÆY. Ofte snakker vi for korthets skyld om FDen X Æ Y der FD står for Functional Dependency. Vi sier også at Y følger av X, eller at X bestemmer Y. Merk at hvis X er en supernøkkel, så holder X Æ Y for enhver Y, og omvendt: hvis X Æ Y for enhver Y, så er X en supernøkkel. FDer er integritetsregler. INF3100-19-20.1.2004 - Ragnar Normann 32

Ekvivalente mengder av FDer La S, T være to mengder av FDer Definisjon: Vi sier at S følger av T hvis det er slik at enhver instans som oppfyller alle FDer i T, også oppfyller alle FDer i S Definisjon: Vi sier at S og T er ekvivalente hvis S følger av T og T følger av S INF3100-19-20.1.2004 - Ragnar Normann 33

Armstrongs slutningsregler 1. Refleksivitet: Hvis Y er en delmengde av X, så X Æ Y 2. Utvidelse: Hvis X Æ Y, så XZ Æ YZ 3. Transitivitet: Hvis X Æ Y og Y Æ Z, så X Æ Z Regelsettet er Sunt: Vi kan ikke utlede selvmotsigelser Komplett: Alle FDer som kan vises å følge fra en mengde FDer ved bruk av definisjonen av FD, kan også vises ved å bare bruke slutningsreglene INF3100-19-20.1.2004 - Ragnar Normann 34

Tillukningen av X mhp F Definisjon av tillukningen av X mhp F: La X være en mengde attributter og F en mengde FDer Da er tillukningen av X med hensyn på F lik mengden av attributter som er bestemt av X Notasjon: X + INF3100-19-20.1.2004 - Ragnar Normann 35

Tillukningsalgoritmen Algoritme som beregner X + mhp. F: 1. T=X 2. Sålenge T forandres: Søk etter Y Æ Z i F hvor Y er en delmengde av T Hvis slik Y fins: Legg Z inn i T 3. X + =T Test som avgjør om en FD X Æ Y følger fra en mengde FDer F: 1. Beregn X + mhp. F 2. Hvis alle attributtene i Y er med i X +, følger X Æ Y av F Hvis ikke, følger ikke X Æ Y av F INF3100-19-20.1.2004 - Ragnar Normann 36

Hvordan finne alle kandidatnøkler (minimale supernøkler) Gitt et skjema R(A1,A2,,An) og en mengde FDer F 1. La S = {A1A2... An} (A1A2... An er en supernøkkel) La T = { } 2. For hver supernøkkel X i S: For hvert attributt A i X: Sett Y = X-{A} og beregn Y + mhp. F Hvis Y + =A1A2... An, er X ikke en minimal supernøkkel; Y er også en supernøkkel, så legg Y i S Hvis Y + A1A2... An for alle slike Y, er X en minimal supernøkkel I så fall, legg X i T Fjern X fra S 3. Nå er T mengden av alle minimale supernøkler mhp. F Algoritmen er ikke særlig effektiv, men den virker INF3100-19-20.1.2004 - Ragnar Normann 37