Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem



Like dokumenter
FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

1. Introduksjon og bakgrunn

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

FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

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

Databaser: Relasjonsmodellen, del I

Introduksjon til fagfeltet

Databasesystemer, oversikt

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

HØGSKOLEN I SØR-TRØNDELAG

INF212 - Databaseteori. Kursinnhold

IN2090 Introduksjon til databaser

Oppgaver Oppgave a: Sett opp mulige relasjoner

1. Relasjonsmodellen Kommentarer til læreboka

Normalisering. Hva er normalisering?

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

1. Designe ER-modeller med MS Visio

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

1. Datamodellering Kommentarer til læreboka

INF1300 Introduksjon til databaser

Normalisering. Hva er normalisering?

Databaser: Introduksjon til databaser og filsystemer

Normalisering. Hva er normalisering?

1. SQL datadefinisjon og manipulering

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

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Del 1: ER-modellering og databaseteori

Databaser. - Normalisering -

EKSAMEN DATABASER

Utvikling fra kjernen og ut

Databaser & objektorientering.

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

INF3100 Databasesystemer

Repetisjon: Normalformer og SQL

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

INF3100 Databasesystemer

1. Innføring i bruk av MySQL Query Browser

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Oppgave 1 ER- og relasjonsmodell 10 %

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

SQL Introduksjonskurs. Oversikt

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

Kurskategori 3: Utvikling av IKT- systemer. høsten

Datamodellering og databaser SQL, del 2

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

2. Beskrivelse av mulige prosjektoppgaver

Databaseadministrasjon

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

Dagens tema: Oppdateringsanomalier Normalformer

INF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger

1. Normalisering Kommentarer til læreboka

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

Databaser noen temaer.

INF1300 Introduksjon til databaser

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

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppdateringsanomalier Normalformer

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

INF130: Datahåndtering og analyse

SLUTTPRØVE 5602 DATABASER I (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

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

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

9-14. Tid: Målform: Sidetall: Hjelpemidler: Ingen. Merknader: Vedlegg: en lapp og. Avdeling

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

INF3100 Databasesystemer

INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1

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

OM DATABASER DATABASESYSTEMER

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Utvikling fra kjernen og ut

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

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Kunnskapsorganisasjon og gjenfinning sider (inklusive forside og vedlegg)

1. SQL spørringer mot flere tabeller

EKSAMEN 6102 / 6102N DATABASER

Oppgave 1 Datamodellering 22 %

Relasjonsalgebra. Hva?

EKSAMEN. Emnekode: ITF Emne: Databaser. Dato: Eksamenstid: Hjelpemidler: Syntaksoversikt (vedlagt oppgaven)

Normalisering. Partielle avhengigheter Transitive avhengigheter Normalformer: 1NF, 2NF, 3NF, BCNF Normaliseringsstegene Denormalisering

1. Introduksjon til databaser

Databasedesign HVA? HVORDAN? E/R diagram. Begrepsmessig databasedesign. Logisk databasedesign. Fysisk databasedesign

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

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

Datamodellering og databaser SQL, del 2

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

Kunnskapsorganisasjon og gjenfinning 1

INF1300 Introduksjon til databaser

Datamodellering og databaser SQL, del 2

Transkript:

Innhold Forord....................................................... 5 Innledning.................................................... 15 Databaser som basis i grunnopplæringen....................... 15 Å bruke boken i undervisningen........................ 16 Programvare........................................ 16 Konvensjoner....................................... 16 Bokens struktur........................................... 16 Emner som inngår i boken............................. 17 Kapittel 1 Introduksjon til databaser og databasesystem......................... 19 1.1 Hvor brukes databasesystem?................................ 20 1.2 Filbaserte system.......................................... 20 1.2.1 Problemene med filbaserte system....................... 22 1.3 Databaser................................................ 22 1.4 Databasesystem........................................... 23 1.4.1 Innholdet i et databasesystem.......................... 24 1.4.2 Fordeler........................................... 25 1.4.2.1 Databasens tekstbaserte brukergrensesnitt......... 25 1.4.2.2 Structured Query Language (SQL)............... 27 1.4.2.3 Stor datakraft................................ 27 1.4.2.4 Fleksibelt................................... 27 1.4.2.5 Bedre sikkerhet.............................. 28 1.4.2.6 Flerbrukerkontroll............................ 28 1.4.2.7 Sikkerhetskopi (eng. Backup)................... 28 1.4.2.8 Individuell tilpasning......................... 29 1.4.2.9 Datauavhengighet............................ 29

8 Databaser 1.4.2.10 Prøve å unngå dataduplisering.................. 30 1.4.3 Hvilke personer er involvert i bruken av et databasesystem?.. 30 1.4.4 Ulemper og fordeler.................................. 30 1.5 Databasearkitektur......................................... 31 1.5.1 Det eksterne nivå.................................... 32 1.5.2 Det konseptuelle (logiske) nivå......................... 32 1.5.3 Det interne nivå..................................... 33 1.6 Datamodeller............................................. 34 1.6.1 Postbaserte datamodeller.............................. 35 1.6.1.1 Relasjonsmodellen........................... 35 1.6.2 Objektbaserte datamodeller............................ 36 1.6.2.1 ER-modellen................................ 36 1.7 Flerbruker databasearkitektur................................. 37 1.7.0.1 Distribuert bearbeiding........................ 39 Kapittel 2 Relasjonsmodellen.............................................. 43 2.1 Innledning............................................... 44 2.2 Modellen................................................ 44 2.3 Datastruktur.............................................. 45 2.3.1 Relasjonsbegrepet.................................... 45 2.3.2 Attributt........................................... 46 2.3.3 Domene........................................... 47 2.3.4 Tuppel............................................. 47 2.3.5 Relasjonsdatabase.................................... 48 2.4 Relasjonelle nøkler......................................... 48 2.4.1 Supernøkkel........................................ 48 2.4.2 Kandidatnøkkel..................................... 50 2.4.3 Alternativ nøkkel.................................... 50 2.4.4 Primærnøkkel....................................... 50 2.4.5 Sammensatt nøkkel.................................. 51 2.4.6 Surrogatnøkkel...................................... 52 2.4.7 Fremmednøkkel..................................... 52 2.5 Dataintegritet............................................. 53 2.5.1 Entitetsintegritet..................................... 54 2.5.2 Referanseintegritet................................... 54 2.5.2.1 Verdien null................................. 55 2.5.3 Eksempel på å lage databasen: bruktbiler................. 56 2.5.3.1 Hvordan foreslå relasjoner med tilhørende nøkler?.. 56 2.6 Datamanipulering.......................................... 59 2.6.1 Relasjonsalgebra..................................... 59 2.6.1.1 Seleksjon................................... 59 2.6.1.2 Projeksjon.................................. 61 2.6.1.3 Produkt.................................... 62 2.6.2 Forening........................................... 64

Innhold 9 2.6.2.1 Ytterforening................................ 66 2.6.3 Settoperasjoner...................................... 68 2.6.3.1 Union...................................... 68 2.6.3.2 Snitt....................................... 70 2.6.3.3 Differanse.................................. 71 2.6.4 Grupperingsoperatorer................................ 73 2.6.4.1 Divisjon.................................... 73 2.6.5 Avluttende kommentarer.............................. 74 2.7 Hva er så en relasjonsdatabase?............................... 75 2.7.1 Har jeg en relasjonsdatabase?.......................... 75 Kapittel 3 Normalisering.................................................. 79 3.1 Hva er normalisering og hvorfor normalisere?................... 80 3.1.1 Betraktninger....................................... 81 3.2 Funksjonelle determineringer (avhengigheter)................... 82 3.3 Unormalisert form......................................... 84 3.4 Første, andre og tredje normalform............................ 86 3.4.1 Første normalform................................... 86 3.4.2 Andre normalform................................... 87 3.4.2.1 Et eksempel på tabell med flere kandidatnøkler..... 90 3.4.3 Tredje normalform................................... 91 3.5 Boyce-Codd normalform.................................... 93 3.6 Et normaliseringseksempel: hotellbestilling..................... 98 3.7 Når er det vi ikke normaliserer?............................... 99 3.8 Dekomponering av tabeller.................................. 100 Kapittel 4 SQL opprette en tabell og enkle spørringer.......................... 103 4.1 Innledning............................................... 104 4.1.1 SQL-grammatikk.................................... 104 4.1.2 Prosessering av SQL-spørringer........................ 105 4.1.3 Presentasjon av databasen vår.......................... 105 4.2 Datadefinisjonsspråk....................................... 107 4.2.1 Oppretting av tabeller med entitetsintegritet............... 108 4.2.1.1 Datatyper................................... 110 4.2.1.2 Tilføying av referanseintegritet.................. 111 4.2.1.3 Tilføying av dataintegritet...................... 113 4.2.2 Oppretting av indekser................................ 114 4.2.3 Modifisering av databaseskjema........................ 114 4.3 Datamanipuleringsspråk.................................... 115 4.3.1 Manipulering av radene i en tabell....................... 116 4.3.1.1 Innlegging av nye data........................ 116 4.3.1.2 Oppdatering av data.......................... 117 4.3.1.3 Sletting av data.............................. 119

10 Databaser 4.3.1.4 Commit-Rollback............................ 120 4.3.2 Utvalgsspørringer.................................... 120 4.3.2.1 Enkle spørringer: hva skal med i SELECT-listen.... 122 4.3.2.2 Enkle spørringer: avledete kolonner.............. 125 4.3.2.3 Enkle spørringer: utvalg....................... 126 4.3.3 Sortering........................................... 130 4.3.4 Beregningsfunksjoner................................. 132 4.3.5 Gruppering......................................... 135 4.3.6 Delspørringer....................................... 137 4.3.6.1 Ulike typer delspørringer...................... 140 4.4 NULL-verdier............................................ 142 4.4.1 Boolske uttrykk og NULL-verdier....................... 143 4.4.2 Test på NULL-verdier................................ 144 4.4.3 Aggregering og NULL-verdier......................... 146 4.4.4 GROUP BY og NULL-verdier......................... 147 4.4.5 NULL-verdier ved bruk av DISTINCT og beregninger...... 148 4.4.6 Delspørringer og NULL-verdier........................ 149 Kapittel 5 SQL flertabellspørringer og utsnitt................................. 153 5.1 Flertabellspørringer (foreningsspørring)........................ 154 5.1.1 Det kartesiske produkt................................ 154 5.1.2 Naturlig forening.................................... 156 5.1.3 Selvresultat......................................... 159 5.1.4 Ytterforening....................................... 160 5.1.5 Forening på ikke-nøkkelkolonner....................... 162 5.1.6 EXISTS........................................... 163 5.2 Delspørring eller forening?.................................. 165 5.3 Sett-operasjoner........................................... 166 5.4 Virtuelle tabeller........................................... 169 5.4.1 Endre dataverdier.................................... 171 5.4.2 Hvordan bruke utsnitt med WITH CHECK OPTION?....... 174 Kapittel 6 Datamodellering................................................ 177 6.1 Innledning............................................... 178 6.1.1 Betraktninger....................................... 179 6.2 Entitetstyper og entiteter.................................... 179 6.2.1 Sterke og svake entitetstyper........................... 181 6.3 Attributt................................................. 183 6.3.1 Sammensatte attributter............................... 183 6.3.2 Flerverdiattributter................................... 184 6.3.3 Avledet attributt..................................... 186 6.3.4 Nøkkelattributt...................................... 187 6.4 Sammenhengstyper........................................ 188

Innhold 11 6.4.1 Multivegs sammenhengstyper.......................... 188 6.4.2 Flervegs sammenhengstyper........................... 189 6.4.3 Hierarkier.......................................... 190 6.4.4 Multiplisitet........................................ 192 6.4.4.1 En-til-en................................... 192 6.4.4.2 En-til-mange................................ 194 6.4.4.3 Mange-til-mange............................. 197 6.5 Konstruksjon av ER-modeller................................ 199 6.6 Objektorientering i ER-modeller.............................. 200 6.6.1 Generalisering og spesialisering........................ 201 6.6.2 Representasjon av super- og subentitetstyper.............. 202 6.6.2.1 Restriksjoner................................ 203 6.6.2.2 Nøkler i en generalisering og spesialisering........ 206 6.6.3 Aggregering og komposisjon........................... 207 6.7 Eksempel på en fullstendig ER-modell......................... 210 Kapittel 7 Objektorientering i relasjonsdatabaser............................... 215 7.1 Objektorientering i relasjonsdatabaser.......................... 216 7.1.1 Objektorienterte begrep............................... 216 7.1.2 Lagring av objekter i vanlige tabeller uten støtte for o-o...... 217 7.1.2.1 Innkapsling i relasjonsdatabasesystem............ 218 7.1.2.2 Abstraksjon i relasjonelle databasesystem......... 218 7.2 Objektrelasjonell databaseteknologi........................... 219 7.2.1 Utvidete relasjonsdatabasesystemer...................... 219 7.3 SQL 3................................................... 219 7.3.1 Objekttyper......................................... 220 7.3.2 Dynamisk matrise................................... 221 7.3.3 Objekttabeller....................................... 222 7.3.3.1 DML-operasjoner............................ 223 7.3.3.2 Sletting.................................... 227 7.3.4 Nøstete tabeller..................................... 227 7.3.4.1 DML-operasjoner............................ 229 7.3.4.2 Pekere (REF)................................ 231 7.3.4.3 Datamanipulering med pekere.................. 233 7.3.4.4 Avhengigheter............................... 234 7.3.5 Metoder........................................... 235 7.3.5.1 Metodekall................................. 236 7.3.6 Abstrakte datatyper.................................. 236 7.3.6.1 Objekttyper................................. 237 7.3.6.2 Oppretting av metodekroppen................... 239 7.3.6.3 Oppretting av objekttabeller.................... 241 7.3.6.4 Innlegging av data............................ 241 7.3.6.5 Spørringer og resultattabeller................... 243

12 Databaser Kapittel 8 Flerbrukerdatabaser og sikkerhet................................... 247 8.1 Flerbrukerdatabasesystemer.................................. 248 8.2 Transaksjoner............................................. 248 8.2.1 Introduksjon........................................ 248 8.2.2 Egenskaper ved transaksjoner.......................... 249 8.2.3 Transaksjoner i SQL.................................. 250 8.2.4 Problemer ved samtidighet............................. 252 8.2.4.1 Tapt oppdatering............................. 252 8.2.4.2 Ikke-overgitte data........................... 253 8.2.4.3 Inkonsistente innhentinger..................... 254 8.2.5 Samtidighetskontroll................................. 255 8.2.5.1 Låseteknikker............................... 256 8.2.5.2 Tofaselåsing................................ 257 8.2.5.3 Tidsmerkemetoder............................ 260 8.2.6 Vranglås........................................... 260 8.2.7 Isolasjonsnivåer i SQL................................ 261 8.2.8 Gjenopprettbarhet.................................... 263 8.3 Databaseadministrasjon..................................... 265 8.3.1 Innledning.......................................... 265 8.3.2 Filer og lagringsstrukturer............................. 266 8.3.3 Indeksering......................................... 270 8.3.4 Optimalisering (eng. tuning) av en database............... 274 8.4 Datasikkerhet............................................. 276 8.4.1 Introduksjon........................................ 276 8.4.2 Datasikkerhetsplan................................... 276 8.4.3 Adgangskontroll..................................... 277 8.4.3.1 Skjønnsmessig adgangskontroll................. 277 8.4.3.2 Påbudt adgangskontroll........................ 278 8.5 Administrasjon av sikkerhet i Oracle.......................... 278 8.5.1 Brukere............................................ 279 8.5.2 Objektrettigheter..................................... 280 8.5.3 Systemrettigheter.................................... 280 8.5.4 Oppretting og endring av brukere....................... 281 8.5.5 Tildeling og fjerning av rettigheter...................... 282 8.5.5.1 GRANT.................................... 282 8.5.5.2 REVOKE................................... 284 8.5.5.3 Bruk av VIEW til å begrense adgang............. 285 8.5.6 Roller............................................. 285 8.5.7 Informasjon om rettigheter bruker har.................... 287 Kapittel 9 Databasearkitektur.............................................. 291 9.1 Databasearkitektur......................................... 292 9.2 Sentralisert løsning......................................... 292

Innhold 13 9.3 Klient/tjener-løsninger...................................... 293 9.3.1 Introduksjon........................................ 293 9.3.2 Tolags- og trelagsløsning.............................. 294 9.3.3 Én databasetjener, flere klienter......................... 297 9.3.4 Flere databasetjenere, flere klienter...................... 297 9.3.5 Transaksjonsprosessering.............................. 299 9.3.6 Mellomvare........................................ 300 9.4 Distribuerte databasesystemer................................ 301 9.4.1 Rene distribuerte databasesystemer...................... 301 9.4.2 Andre distribuerte løsninger............................ 303 9.4.3 Mobile databaser.................................... 305 9.5 Noen spesielle databaser.................................... 306 9.5.1 Temporale databaser................................. 306 9.5.2 Romlige databaser................................... 307 9.5.3 Datavarehus........................................ 308 Kapittel 10 Databaser og Internett........................................... 311 10.1 Introduksjon.............................................. 312 10.2 Kobling mellom database og verdensveven..................... 312 10.3 Klient/tjener-løsning....................................... 313 10.4 Applikasjonsnivå.......................................... 314 10.4.1 Webgrensesnitt (HTML).............................. 314 10.4.2 Dataoverføring med HTTP............................ 315 10.4.3 Webtjener.......................................... 315 10.5 Koblingsløsninger (mellomvare).............................. 315 10.5.1 ASP.NET.......................................... 316 10.5.2 JSP............................................... 316 10.5.3 PHP.............................................. 316 10.6 Databasemotor............................................ 317 10.7 Eksempler på bruk av PHP mot MySQL........................ 317 10.7.1 Oppretting en database i MySQL........................ 317 10.7.2 Laging av webgrensesnitt i HTML...................... 318 10.7.3 Låsing av tabellen................................... 320 10.7.4 Laging av PHP-skriptene.............................. 321 10.8 Semistrukturelle databaser og XML........................... 326 10.8.1 Semistrukturelle data................................. 326 10.8.2 XML.............................................. 327 10.8.3 Forskjellen mellom HTML og XML..................... 329 10.8.4 XML-teknologi..................................... 329 10.8.5 XML Schema....................................... 331 10.8.6 Et eksempel på et XML Schema........................ 333 10.8.7 Bruk av nøkler i XML-dokument....................... 336 10.8.8 XQuery............................................ 338 10.8.9 Lagring av XML i databaser........................... 344

14 Databaser Referanser.................................................... 347 Forslag til videre lesning.......................................... 349 Stikkord...................................................... 351