Forord - Dbsys.info

Download Report

Transcript Forord - Dbsys.info

Forord
Læreboken er skrevet for kurs i databaser ved universiteter og høgskoler. Den
tar for seg både design, implementasjon og drift av databasesystemer, med
særlig vekt på bruk av SQL, og forutsetter ikke forkunnskaper i informatikk.
De fleste informatikkstudier inneholder ett eller flere kurs i databaser og
datamodellering. Tradisjonelt har slike kurs blitt plassert et stykke ut i studiet,
og standard lærebøker gjenspeiler dette. Det er imidlertid god grunn til å
undervise i databaser og digital representasjon av data tidlig. Min undervisningserfaring tilsier at begynnerstudenter har lettere for å forstå datamaskinen som lagringsenhet enn som beregningsenhet.
Det finnes mange og gode lærebøker om databaser, men de som er omfattende nok for høyere utdanning krever som regel en viss faglig bakgrunn,
og de aller fleste er ordrike − og engelske.
Jeg har valgt å presentere stoffet i en litt annen rekkefølge enn det som er
vanlig, ved å starte med bruk av tabeller og databasespråket SQL. Dette er
konkret stoff som lar seg teste ut på maskin. Interaktiv bruk av SQL er
morsomt og gir erfaring med anvendelser. Etter at denne «grunnmuren» er på
plass tar læreboken for seg livsløpet til et databasesystem, fra planlegging og
design til implementasjon og produksjon. Stoffet er delt inn i 16 kapitler
fordelt på 5 deler.
SQL og relasjonsdatabaser: Etter et introduksjonskapittel viser kapittel
2-5 hvordan data lar seg organisere på tabellform, og hvordan man kan bruke
spørrespråket SQL for å definere tabeller, sette inn, endre og slette data, og
særlig hvordan man kan hente ut data med utvalgsspørringer. Kapittel 6 gjør
rede for relasjonsmodellen, som utgjør det teoretiske fundamentet for relasjonsdatabaser.
Databasedesign: Utvikling av databaser starter med planlegging av tabellstrukturen, og blir gjerne utført i tre faser: begrepsmessig design, logisk design
og fysisk design. Begrepsmessige modeller, forklart i kapittel 7, er basert på
E/R (Entity/Relationship). Kapittel 8 viser hvordan E/R-diagrammer kan
oversettes til logisk tabellstruktur og forklarer normaliseringsteori, som
brukes for å unngå redundans i databaser. Kapittel 9 tar for seg tilpassing av
logisk tabellstruktur til et konkret databasehåndteringssystem (DBHS), og gjør
også rede for lagringsmedier og fysisk organisering av tabelldata og indekser.
Databaser i produksjon: Kapittel 10 tar for seg transaksjoner og de
mekanismene et DBHS har for å håndtere feilsituasjoner og samtidig aksess
fra flere brukere. Kapittel 11 beskriver oppbyggingen av et DBHS og hvilke
oppgaver en databaseadministrator utfører for å sikre stabil og effektiv drift
av systemet.
iv
Forord
Databaseapplikasjoner: Kapittel 12 utvider perspektivet fra databasesystemer til informasjonssystemer. Det gjør rede for sammenhengen mellom
et databasesystem og tilhørende applikasjoner, samt gir en introduksjon til
systemutvikling og applikasjonsutvikling. Kapittel 13 tar for seg utvikling av
web-applikasjoner med PHP og programbiblioteket Mysqli. Kapittel 14 ser på
tjenerprogrammering med lagrede rutiner og triggere i MySQL.
Utvalgte emner: Denne siste delen inneholder stoff som det ikke var
naturlig å plassere i noen av de foregående delene. Kapittel 15 tar for seg
objektrelasjonelle databaser, og objektorientert analyse og design med UML.
Sammenhengen mellom objektorientert programmering og relasjonsdatabaser
blir forklart med stoff om JDBC, Object-Relational Mapping og LINQ.
Kapittel 16 er viet XML. XML er et lagringsformat med likhetstrekk til
HTML, men blir også brukt som overføringsformat mellom databaser, og til å
representere kompliserte datastrukturer internt i databaser.
Hvert kapittel blir innledet med en kort liste av læringsmål, og avsluttet
med øvingsoppgaver og en oppsummering av viktige begreper. Flere oppgaver, løsningsforslag, eksempeldatabaser, ekstra kapitler og andre undervisningsressurser er tilgjengelig på internett:
www.universitetsforlaget.no/databasesystemer
Stoffet er i all hovedsak uavhengig av databaseverktøy. Konkrete systemer
avviker på noen punkter fra SQL-standarden. Jeg har valgt å kommentere
noen slike avvik i MySQL, SQL Server, Access og Oracle, både for å lette
praktisk bruk, men også for å vise at SQL-kode ikke alltid fungerer på tvers av
systemer. Det er fullt mulig å bruke læreboken med andre verktøy.
2. utgave: Det er lagt til en del nytt stoff i 2. utgave. Forholdet mellom
relasjonsdatabaser og objektorienterte språk er utdypet med forklaring av
Object-Relational Mapping (ORM) og LINQ. Nye oppgaver er lagt til i flere
av kapitlene. Det er også gjort en rekke mindre endringer (i hovedsak tillegg),
blant annet når det gjelder nullmerker og treverdilogikk, delspørringer i SQL,
forhold mellom flere enn to entiteter i E/R, meningsbærende identifikatorer,
håndtering av minimumsskranker i SQL, algoritmer for behandling av data på
harddisk, samt isolasjonsnivåer og optimistisk låsing i transaksjoner. Avvik fra
SQL-standarden blir nå også kommentert for SQL Server, i tillegg til MySQL,
Oracle og Access.
Noen få gjennomgripende endringer i begrepsbruk er foretatt. Blant annet
brukes forløp (schedule) i stedet for kjøreplan, minne brukes i stedet for internhukommelse, og harddisk erstatter platelager og magnetplatelager.
3. utgave: Kapitlene om databaseapplikasjoner er skrevet om, og fokuserer
nå på utvikling av web-applikasjoner. Programbiblioteket Mysqli brukes for
klientprogrammering i PHP. Tjenerprogrammering med lagrede rutiner og
triggere gjøres i MySQL. Kapittel 17 og deler av SQL-syntaksen i vedlegg A
Forord
v
er tatt ut, men begge deler ligger på nettsidene for læreboken. I tillegg er det
foretatt en del mindre rettelser og endringer.
Det er neppe til å unngå at teksten inneholder feil, selv om jeg håper at de
er få og små. Jeg vil svært gjerne ha beskjed om feil, og forslag til forbedringer
og nytt stoff. Send i så fall et e-brev til [email protected]. Rettelser
blir fortløpende lagt ut på nettsidene.
Listen med personer å takke blir stadig lengre. I alfabetisk rekkefølge: Niels
Andreas Braathen, Vidar Berg, Olav Dæhli, Geir Haugan, Roy Istad, Steinar
Opdal Iversen, Jon Kvisli, Tor Lønnestad, Sigmund Hov Moen, Jostein
Sageie, Jon Martin Sigvaldsen, Connie Skjellaug, Tore Svensson, Bjørge
Trollsås, Jørgen Tørnes, Audun Østtveit og Adrian Wielgosz har alle gitt
verdifulle tilbakemeldinger. Høgskolen i Telemark har lagt forholdene godt til
rette for skrivearbeid. Universitetsforlaget med fagkonsulent Geir B. Larsen,
designer Cecilie Mohr, markedskonsulent Trude-Kristin Mjelde, teknisk
redaktør Turid Stavn, sjefredaktør Merethe Fæhn og forlagsredaktør Eli
Valheim har gjennomført bokprosjektet på en profesjonell måte. En stor takk
til alle!
Bø i Telemark, mai 2012
Bjørn Kristoffersen