Databaser: Relasjonsmodellen, del I

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

Oppgaver Oppgave a: Sett opp mulige relasjoner

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

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

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

1. Innføring i bruk av MySQL Query Browser

INF3100 Databasesystemer

Integritetsregler i SQL. Primærnøkler

1. SQL datadefinisjon og manipulering

Integritetsregler i SQL

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut

1. Relasjonsmodellen Kommentarer til læreboka

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

Miniverden og ER- modell

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

Normalisering. Hva er normalisering?

INF212 - Databaseteori. Kursinnhold

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

Repetisjon: Normalformer og SQL

Introduksjon til fagfeltet

Normalisering. Hva er normalisering?

Datamodellering og databaser SQL, del 2

Integritetsregler i SQL

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

Normalisering. Hva er normalisering?

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

SQL Structured Query Language

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

INF3100 Databasesystemer

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

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Datamodellering og databaser SQL, del 2

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

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

Datamodellering og databaser SQL, del 2

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Databasesystemer, oversikt

Tabelldefinisjon og datamanipulering

SQL: Integritetsregler, triggere og views

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Dagens tema: Oppdateringsanomalier Normalformer

INF1300 Introduksjon til databaser: SQL Structured Query Language

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

Oppdateringsanomalier Normalformer

Relasjonsdatabaseteori

SQL Introduksjonskurs. Oversikt

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Relasjonsdatabasedesign

Utvikling fra kjernen og ut

Relasjonsdatabasedesign

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

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

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

INF130 INF130. INF130:Repetisjon INF130:Repetisjon 1. Tabeller og enkle spørringer. Repetisjon

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Relasjonsdatabasedesign

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN DATABASER

Databaser & objektorientering.

UNIVERSITETET. triggere og views. Institutt for Informatikk. INF Arne Maus 1

EKSAMEN 6102 / 6102N DATABASER

Utvikling fra kjernen og ut

Utvikling fra kjernen og ut

Metaspråket for å beskrive grammatikk

Løsningsforlag for oblig 1, databaser 2010

HØGSKOLEN I SØR-TRØNDELAG

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

1. Datamodellering Kommentarer til læreboka

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Databaser. - Normalisering -

Relasjonsdatabasedesign

Databaser noen temaer.

God Databasedesign: På vei mot Normalformer

En lett innføring i foreninger (JOINs) i SQL

Relasjonsdatabasedesign

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Datamodellering 101 En tenkt høgskoledatabase

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

SQL Structured Query Language

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

OM DATABASER DATABASESYSTEMER

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Transkript:

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 side 6-7 Å definere entitetsregler i SQL side 8 Autogenererte løpenummer som primærnøkkel side 9 Basisreferansen er: E.F. Codd (IBM): A Relational Model of Data for Large Shared Data Banks Comm. ACM, juni 1970 Se ellers læreboka, side 43-58, 104-114, august 2012 Forelesning 2, uke 35 En relasjon er en matematisk mengde En mengde er en samling dataverdier som kan være enkeltverdier eller sammensatte verdier. Ingen av verdiene kan forekomme mer enn én gang i mengden og verdiene er ikke ordnet på noen bestemt måte. Det kartesiske produktet av to mengder A og B, A x B, er mengden av alle ordnede par <a, b> hvor a є A og b є B. En relasjon mellom A og B er den delmengden av det kartesiske produktet AxB slik at <a,b> er sann. Den mengden av verdier som et attributt kan anta, kalles attributtets domene. Tabellformen er en måte å presentere relasjonen på. Vis på tavla side 2 1

Egenskaper ved relasjoner Tabeller som framstiller relasjoner har en del egenskaper som vanlige tabeller ikke har. Disse egenskapene følger av at relasjonene er matematiske mengder. Egenskaper ved slike tabeller: A. Duplikater eksisterer ikke (ingen like rader) B. Tuplene (radene) er uordnet C. Attributtene (kolonnene) er uordnet D. Verdiene er atomiske (relasjonen kalles normalisert) Relasjonens grad = antall attributter (kolonner) (binær, trinær, n-ær) Relasjonens kardinalitet = antall tupler (relasjonens tilstand, varierer over tid) En relasjonsdatabase er en samling navngitte, normaliserte relasjoner (kun atomiske verdier) med forskjellige navn. Relasjonsmodellen har innebygd to integritetsregler integritet = korrekthet entitetsintegritet, som er knyttet til primærnøkkelen referanseintegritet, som er knyttet til fremmednøkkelen side 3 Entitetsintegritet En entitet i databaseverden svarer til et objekt uten operasjoner i objektorientert tankegang. Hver tuppel i en relasjon inneholder data om en entitet. På samme måte som entiteter (objekter) i den virkelige verden er identifiserbare, skal også den enkelte tuppel i en relasjon være identifiserbar. En mengde attributter som gjør en tuppel entydig kalles en supernøkkel. En kandidatnøkkel er en minimal supernøkkel. En primærnøkkel er den kandidatnøkkelen vi velger til å identifisere en tuppel. Hele eller deler av denne kan ikke være NULL (det betyr at verdien mangler, det er ikke det samme som en tekststreng som består av blanke tegn, og heller ikke tallverdien 0). Kandidatnøkler som ikke velges til primærnøkkel, kalles alternative nøkler. En surrogatnøkkel er ofte et godt alternativ til en informasjonsbærende primærnøkkel. Gjerne løpenummer generert av databasesystemet. side 4 2

Eksempler på forskjellige typer nøkler ansatt(ansnr, fnr, navn, postnr, adr) En mengde attributter som gjør en tuppel entydig kalles en supernøkkel. Fnr Ansnr Fnr, navn Fnr, navn, adr Fnr, navn, adr, postnr, ansnr Alle mulige kombinasjoner som inneholder fnr og/eller ansnr En kandidatnøkkel er en minimal supernøkkel. Fnr Ansnr En primærnøkkel er den kandidatnøkkelen vi velger til å identifisere en tuppel. Hele eller deler av denne kan ikke være NULL (det betyr at verdien mangler, det er ikke det samme som en tekststreng som består av blanke tegn, og heller ikke tallverdien 0). Ansnr defineres som primærnøkkel i SQL Kandidatnøkler som ikke velges til primærnøkkel, kalles alternative nøkler. Fnr alternative nøkler bør settes UNIQUE i SQL En surrogatnøkkel er ofte et godt alternativ til en informasjonsbærende primærnøkkel. Gjerne løpenummer generert av databasesystemet. side 5 Tilbake til eksemplet fra forrige gang Lag database: studnr, navn, adresse, postnr, poststed, fagkode, fagnavn, karakter (kun én karakter pr. student og fag) Hvilke tabeller? Prøv! forslag fra salen: to tabeller, fungerte ikke riktig svar er fire tabeller Tenk objektorientert, finn objekter (klasser) og fordel attributtene. Tegn klassediagram uten operasjoner («datamodell») En student bor på min.1, max 1 poststed. På ett poststed bor min. 0, maks. mange (*) studenter. side 6 3

studnr, navn, adresse, postnr, poststed, fagkode, fagnavn, karakter (kun én karakter pr. student og fag) En student følger min 0, maks. mange fag Ett fag følges av min 0, maks. mange studenter side 7 Tillitsvalgt Marie Nilsson Vara: Glenn Skår side 8 4

Fra datamodell til tabeller, første intro. studnr, navn, adresse, postnr, poststed, fagkode, fagnavn, karakter (kun én karakter pr. student og fag) Lag tabellene. Primærnøkler Student: studnr Poststed: postnr Fag: fagkode Resultat: (studnr, fagkode) side 9 Referanseintegritet Fremmednøkler brukes til å kople sammen tabeller. En fremmednøkkel er et attributt (eller en kombinasjon av attributter) i en relasjon R2 (student) med verdier som skal eksistere som primærnøkkel i en relasjon R1 (poststed). Fremmednøkkelen i R2 og primærnøkkelen i R1 må være definert på samme domene (i praksis samme datatype). Fremmednøkler (men ikke deler av fremmednøkler) kan ha verdien NULL. R1 og R2 kan være samme relasjon. Eksempel på tavla side 10 5

Et eksempel til Fremmednøkkelen refererer til primærnøkkel i samme relasjon side 11 Å definere integritetsregler i SQL CREATE TABLE student( studnr INTEGER, fornavn VARCHAR(30) NOT NULL, ettenavn VARCHAR(30) NOT NULL, adresse VARCHAR(30) NOT NULL, postnr SMALLINT NOT NULL, CONSTRAINT student_pk PRIMARY KEY(studnr)); CREATE TABLE poststed( postnr SMALLINT, sted VARCHAR(20) NOT NULL, CONSTRAINT poststed_pk PRIMARY KEY(postnr)); CREATE TABLE ansatt( idnr INTEGER, fornavn VARCHAR(30) NOT NULL, ettenavn VARCHAR(30) NOT NULL, leder INTEGER, CONSTRAINT ansatt_pk PRIMARY KEY(idnr)); CREATE TABLE fag( fagkode CHAR(6), fagnavn VARCHAR(30) NOT NULL, CONSTRAINT fag_pk PRIMARY KEY(fagkode)); CREATE TABLE studerer( studnr INTEGER, fagkode CHAR(6), karakter CHAR(1), CONSTRAINT studerer_pk PRIMARY KEY(studnr, fagkode)); ALTER TABLE student ADD CONSTRAINT student_fk1 FOREIGN KEY (postnr) REFERENCES poststed; ALTER TABLE studerer ADD CONSTRAINT studerer_fk1 FOREIGN KEY (studnr) REFERENCES student; ALTER TABLE studerer ADD CONSTRAINT studerer_fk2 FOREIGN KEY (fagkode) REFERENCES fag; ALTER TABLE ansatt ADD CONSTRAINT ansatt_fk1 FOREIGN KEY (leder) REFERENCES ansatt; Prøv enkle SQL-setninger, også for å teste integritetsreglene side 12 6

Autogenererte løpenummer som primærnøkkel Oracle-syntaks: CREATE SEQUENCE person_sekvens; CREATE TABLE person( pnr INTEGER NOT NULL, andre attributter... INSERT INTO person VALUES( person_sekvens.nextval,... andre data...); Java DB CREATE TABLE bok( bok_id INTEGER GENERATED ALWAYS AS IDENTITY, andre attributter... CONSTRAINT bok_pk PRIMARY KEY(bok_id)); INSERT INTO bok VALUES(DEFAULT,... andre data...); Drøft fordeler og ulemper med informasjonsbærende nøkler side 13 7