

BJØRN KRISTOFFERSEN Databasesystemer
BjørnKristoffersen Databasesystemer
6.utgave
Universitetsforlaget
©H.Aschehoug&Co.(W.Nygaard)ASvedUniversitetsforlaget2025
1.utgave2007
2.utgave2009
3.utgave2012
4.utgave2016
5.utgave2020
ISBN978-82-15-07453-5
Materialetidennepublikasjoneneromfattetavåndsverklovensbestemmelser.UtensærskiltavtalemedrettighetshaverneerenhvereksemplarfremstillingogtilgjengeliggjøringbaretillattidenutstrekningdeterhjemletilovellertillattgjennomavtalemedKopinor,interesseorganforrettighetshaveretilåndsverk.Utnyttelseistridmedlovelleravtalekanmedføre erstatningsansvaroginndragning,ogkanstraffesmedbøterellerfengsel.
Henvendelseromdenneutgivelsenkanrettestil:
UniversitetsforlagetAS
Postboks508Sentrum
0105Oslo
www.universitetsforlaget.no
Omslag:CecilieMohr
Sats:BjørnKristoffersen
Trykkoginnbinding:MediehusetAndvordAS
Bokenersattmed:LatinModern11pkt.(brødtekst)
Papir:90gArcticMatt
Kapitler
ISQLogrelasjonsdatabaser
1Introduksjon
2Spørringermoténtabell
3Lageogbruketabeller
4Spørringermotfleretabeller
5Avansertespørringer
6Relasjonsmodellen
IIDatabasedesign
7DatamodelleringmedER
8Normaliseringogdatabasedesign
9Filerogindekser
IIIDatabaseriproduksjon
10Transaksjoner
11Databaseadministrasjon
IVApplikasjonsutvikling
12Databaserogweb
13Lagredeprogrammer
VNoSQL-databaser
14Hierarkiskedataformater
15ViaobjektertilNoSQL
Forord
Lærebokenerskrevetforinnføringskursidatabaserveduniversiteterog høgskoler.Dentarforsegbådedesign,implementeringogdriftavdatabasesystemer,medsærligvektpåbrukavspørrespråketSQL.Bokenforutsetterikkeforkunnskaperiinformatikk.
JegharvalgtåstartemedeninnføringiSQL.Detteerkonkretstoffsom girerfaringmedanvendelser.Etteratdenne“grunnmuren”erpåplass,er detlettereåforklaremerabstraktetemaer.Stoffeterdeltinni15kapitler fordeltpå5deler.
SQLogrelasjonsdatabaser Ienrelasjonsdatabaseerdataorganisertitabeller.DenførstedelentarforsegbrukavSQLforådefineretabeller, setteinn,endreogslettedatasamtåhenteutdatamedutvalgsspørringer.
Databasedesign Foråutvikleennydatabaselagermanførstenmodell. DatamodelleringmedER(EntityRelationship)girenslagsarkitekttegningavdatabasen.Normaliseringbrukesforåsikreatmodellengirengodtabellstrukturutendobbeltlagring.Fysiskorganisering medindeksererviktigforåsikreraskresponstid.
Databaseriproduksjon Endatabasekanhamangesamtidigebrukereog eriproduksjonoverlangtid.Detblirforklarthvilkemekanismeret databasesystemharforåhåndterefeilsituasjonerogfleresamtidige brukeresamthvilkeoppgaverendatabaseadministratorutførerforå sikrestabilogeffektivdriftavsystemet.
Applikasjonsutvikling Sluttbrukerejobbersomregelmedetsystemvia spesialutvikledeapplikasjoner(programmer).Temaidennedelener utviklingavwebapplikasjonermedfokuspådatabaseprogrammering,ogbrukavlagrederutinerogtriggerepådatabasetjeneren.
NoSQL-databaser ViserførstpåJSONogXMLsomlagringsformatfor semistrukturertedata,ogderetterpåobjektrelasjonelledatabaserog NoSQL-databaser,spesieltdokumentdatabaser.
Hvertkapittelblirinnledetmedenkortlisteavlæringsmålogavsluttet medøvingsoppgaverogenoppsummeringavviktigebegreper.Flereoppgaver,løsningsforslag,eksempeldatabaser,andreundervisningsressurser ogrettelserliggerpånett: dbsys.info/Databasesystemer
Stoffeterihovedsakuavhengigavdatabaseverktøy.LærebokeninneholderlikevelkommentarerogtipsforbrukavMySQL,PostgreSQL,SQL ServerogOracle,bådeforålettepraktiskbruk,menogsåforåviseatSQLkodeikkealltidfungererpåtversavsystemer.Deterfulltmuligåbruke lærebokenmedandreverktøy.
JegvilsærligtakkeMustafaAlqaisy,EgilPaulinAndersen,KetilDanielsen, OlavDæhli,EspenHelgerud,StianHelgerud,RoyM.Istad,LasseJenssen,JonKvisli,DagToppeLarsen,PerLauvås,HåvardMyrbakken,TomasSandnesogUweEgbertWolterforfagligekommentarerogsamarbeid knyttettildettebokprosjektet.UniversitetetiSørøst-Norgeharlagtforholdenegodttilretteforskrivearbeid.UniversitetsforlagetmeddesignerCecilieMohr,markedskonsulentJelenaDoublinskaia,manuskoordinatorMaria Westervoll,produksjonskoordinatorSyverHolenogforlagsredaktørMaria Almaashargjennomførtbokprosjektetpåenprofesjonellmåte.
Mangeharbidrattmedverdifulleinnspilltilmanusog/ellernettsider: NielsAndreasBraathen,VidarBerg,ViktorDanielsen,AntoninDeJesus, StefanOlavEkehaug,StianFlage,OleEinarFlaten,AlexandraElenaBülow Gran,CathrineMarieHaga,GeirHaugan,SteinarOpdalIversen,LawrenceKamara,AnnikenKarlsen,HyojungKim,KnutKvaal,AlaMehersia, TorLønnestad,SigmundHovMoen,HåvardNordlieMathisen,Kristine VikeNerås,TrineNormann,AnjaHeggenRotevatn,JosteinSageie,Hans ChristianSandblåst,JonMartinSigvaldsen,MartinSjursen,ConnieSkjellaug,Kjell-OlafSlagnes,KristineSmaadal,EspenSolnørdal,LarsAndreas Strand,ToreSvensson,JørgenTellnes,IdaKatrineBørstadThoresen,BjørgeTrollsås,JørgenTørnes,TaraldVestbøstad,BenjaminWaltersperger,ØysteinWendelborg,AdrianWielgosz,AudunØsttveitogMariAarak.En stortakktilalle!
BøiTelemark,juni2025
BjørnKristoffersen
Kapittel1 Introduksjon
Læringsmål
• Kjennetilviktigeanvendelseravdatabasesystemer.
• Kjennetiloppgaveneetdatabasesystemhar.
• Kjennetilhvordanetdatabasesystemblirutviklet.
• Forståhovedprinsippenefordigitalrepresentasjonavdata.
Detteførstekapitteleterenkortintroduksjontilviktigedatabasetemaer.Vi beskriverførsthvadatabaserbrukestil,oghvordannyedatabaserutvikles,førvisernærmerepåteknologiensombrukesforåjobbemeddatabaser.Derettergirvieninnføringidigitalrepresentasjonavdata.Tilslutt beskrivervinoenaktuelledatabaseverktøysomkanbrukessammenmed læreboken.
1.1Databaser
1.1.1TabellerogSQL
En database erensamlinglogiskrelatertedatasombrukesforetbestemt formål.Genereltkandataorganiserespåmangeforskjelligemåter.I relasjonsdatabaser,somviskalfokuserepå,erdataalltidorganiserti tabeller, somvistifigur1.1.
SQL eretspråkspesieltutformetforarbeidmeddatabaser.VikanbrukeSQLforålage spørringer somhenterutdatafratabeller.

Figur1.1:Endatabasetabellmedelevdata.
Herereteksempelpåenspørringsomfiltrererelevtabellenoverslikatkun navnettiljenteneblirvist,sortertpåetternavn:
SELECT Fornavn,Etternavn FROM Elev WHERE Kjønn='J' ORDERBY Etternavn
SQL-kodeblirbehandletogutførtavet databasesystem,somvistifigur 1.2.Deallerflestesystemer“forstår”SQL.Somdatabasebrukerbetyrdette atmanikkeblirlåsttiletbestemtverktøy.VedålæreSQLkanmanjobbe meddeflestedatabasesystemer.

Figur1.2:Kommunikasjonmellombrukerogdatabasesystem.
SQLkanbrukestilmangeforskjelligedatabaseoppgaver.Detfinneskommandoerforålagenyetabeller,foråleggetil,endreogslettedata,ogfor åtildelebrukererettighetermotdatabasen.EnhverprofesjonelldatabasebrukerbørkunneSQL.Dettegjelderbådeutviklereogpersonermedansvarfordagligdriftavdatabasesystemer,ogtilenvissgradogsåavanserte sluttbrukere.
1.1.2Bruksområder
Databasesystemerblirbenyttetisågodtsomalletyperorganisasjoner.Her ernoeneksempler:
Handel Enhverbedriftsomselgervarerellertjenester,harbehovforålagredataomsinekunderoghvadebestiller.Effektivbehandlingav varebestillingeravhengeravgodlagerstyring.Bedriftenmåvitehvilkevarersomerpålagerihvorstoremengder.Elektroniskhandel, eller e-handel,gårenkeltsagtutpåågikundenetilgangtilbedriftensbestillingssystemviainternett.Ennettkundesomleggerenvare ihandlekurven,oppdatererdatabasentilbedriften.
Bibliotek Etbibliotekmåvitehvilkebøkersomstårihyllene,hvilkebøker somerpåutlån,oghvilkepersonersomerregistrertsomgyldigelåntakere.Deterønskeligåkunneforetauliketypersøkiboksamlingen, f.eks.påforfatterellertema.
Bank Enbankmålagredataomsinekundersamtdereskontoeroglån. Allebevegelsermellomkontoermåtasvarepå.Bankenesdatabasesystemerkanbrukesibutikkerogfraulikeapperogenheter,ogeret eksempelpånyttenavåknyttedatabasersammeninettverk.
Sykehus Forhverpasientblirdetopprettetenjournalsominneholderpersonopplysninger,ogsometterhvertblirutvidetmeddataomdiagnoseogmedisinering.Pasientadministrativesystemerereksempler påpersonregistre.Folkeregisteret,kunderegistre,studentregistreog strafferegistreerandresystemerisammekategori.
Kommune Etateneienkommuneharansvarforåvedlikeholdedataom bygninger,eiendommer,veierogrørsystemer.Slikestedfestededata kanpresenteresiformavkart.Deteretterhvertblittvanligålagre kartdataidatabaser.
Billettbestilling Bestillingssystemerbrukesimangebransjer,somf.eks. reisebyråer,hoteller,teatreogkinoer.Etteatermåkunnereservere etbestemtsetepåenbestemtforestillingaventeateroppsetningfor enkundesomleggerinnenbestilling.
Sosialemedier SystemersomFacebookogInstagramlagrerstoremengderdataomsinebrukere.Detteinkludereralleinnleggogbilder, hvemsomervennmedhvem,hvemsomfølgerhvem,oghvemsom likerhvilkeinnlegg.Flereavdissevirksomheteneharutvikletegne databaseløsninger,såkalte NoSQL-databaser
Forskning Datasamletinniforskningsprosjekterbliroftelagretidatabaser.Hererdetbehovforåeksporteredatatilsystemerforstatistisk analyseogpresentasjon.
Iprinsippetkunnedeflesteorganisasjonenenevntoverklartsegmedmanuellesystemer.Ipraksiserimidlertiddatamengdenesåstoreogkravene tilbehandlingsåstrengebådemedhensyntilsikkerhet,kvalitetoghurtighetatorganisasjoneneikkevillefungereutendatabasesystemer.Visierda atdatabasesystemeneer virksomhetskritiske.Mangeavdissesystemene måværeidøgnkontinuerligdrift(24/7-systemer=24timer/døgn,7dager/uke).
Endatabaseinneholderenlangrekkedetaljopplysningersomenvirksomhettrengeridagligdrift,menkanogsåbrukesmerstrategisk,som illustrertmeddensåkalteDIKW-pyramidenifigur1.3,rettnokutenetlag forvisdom(W).Statistikktrukketutfradatabaserdanneretbeslutningsgrunnlagforledelsenienvirksomhet,f.eks.vedåvisehvordansalgethar utvikletsegietterkantavenmarkedsføringskampanje. BI (BusinessIntelligence)erensamlebetegnelsepåteknikkersomtrekkerutnyttiginformasjonfraulikedatakilderforåavdekketrenderogmønstre.

Figur1.3:DIK(W)-pyramiden:Data–Information–Knowledge–Wisdom. InnenBIerdetaktueltåbrukebådeegnedatabaserogeksternedatakilder.Vikantenkeossenhotellkjedesomkobleroffentligedataomværog flytrafikkmedgeografiskplasseringavhotellenesineforånåkundersom trengerovernattingpågrunnavdårligværogavlysteflyvninger,elleren nettbutikksomforeslårgavekjøptilfølgernesinepåFacebookbasertpå hobbyenetilvennenederes. BigData (Stordata)erenmerkelapppå(meget)storedatasettsomblantannetbrukestilBI. Datascience (datavitenskap)eretfagområdesombrukerstatistikkogmaskinlæringforåtrekke utkunnskapfrastoredatasett.
1.1.3Databasebrukere,verktøyogapplikasjoner
Endatabaseersomregelendelavet informasjonssystem.Systemetsom helhetbeståravmennesker,maskiner,nettverkogprogramvare–ogkan involverebådemanuelleogautomatiserterutiner.Selvomviharfokus påtabellerogSQL,såerdetmervanligatbrukerejobbermeddatabasenietgrafiskbrukergrensesnittvedbrukavulikeverktøyogapplikasjoner.En applikasjon eretprogramutvikletforenbestemtanvendelse. Brukergrensesnittetergjernebygdoppavmenyer,skjemaer(skjermbilder) ograpporter.Ettimeplanleggingssystemogetlagersystemerbeggeapplikasjoner.Mangeapplikasjonerbrukeretdatabasesystemforpermanent lagringavdata.
Brukerneavetdatabasesystemkandelesinnitregrovekategorier: utviklere, administratorer og sluttbrukere.Foråutføreoppgavenesinetrengerdeforskjelligeverktøyogapplikasjoner,somdanneretekstra“lag” mellombrukerenogselvedatabasen.Detvildaværeapplikasjonensom kommuniserermeddatabasesystemetvedhjelpavSQL,sefigur1.4.

Sluttbrukereerpersonersombrukerdatabasesystemetnårdeteridaglig drift.Enkonsulentietreisebyråsomreservererplasserietbestillingssystem,ellerensalgsdirektørsomhenterutenstatistikk,erbeggesluttbrukere.Databasererenintegrertdelavstandardforretningssystemer.Løsningerforlønn,personal,regnskapoglagerstyringernoengenerelleeksempler.
Utviklereerensamlebetegnelsepåpersonersomdeltarunderutviklingenavetinformasjonssystem.Manlagerførsten modell avsystemet. Deretterblirmodellenrealisert,somvilsiatdatabasenblirdefinert,og applikasjonerbeståendeavskjermbilder,menysystemerograpporterblir programmert.Detervanligåbrukebetegnelsen systemutviklere eller systemanalytikere omdemsomlagermodellen,mensrealiseringenavmodellenblirutførtav programmerere. Databasedesigner erenmerspesialisertbetegnelsepådemsomutformerstrukturentildatabaser.Detfinnesen langrekkeverktøylagetspesieltforutviklere,bådeforåtegnedatamodellerogforprogrammering.Slikeverktøykanf.eks.genereredatabaserog
Figur1.4:Databasebrukere.
programkodefravisuellemodeller,ellergiprogrammerereinnsynistrukturenoginnholdettildatabasen.
Databaseadministratoren (DBA)haransvaretforatdatabasesystemet fungerernårdetersattiproduksjon.DBAharblantannetansvarforsikkerhetskopiering,brukeradministrasjonogoptimaliseringavsystemet.I mindreorganisasjonervilDBAogsåkunneværeutvikler,ellereventuelt hadriftsansvarogsåformaskinpark,nettverkogandreprogramsystemer. DetfinnestotalverktøyforenDBAdermanf.eks.kanovervåkebelastningenpåsystemet,starteogstoppesystemet,tasikkerhetskopiavdatabasen elleropprettenyebrukere.
BådeutviklereogDBA,ognoenavansertesluttbrukere,vilhabehovfor åjobbemerdirektemeddatabasenvedhjelpavSQL.Manbrukergjerne eninteraktiv SQL-editor dermankanskriveinnSQL-kommandoerogfå disseutførtavdatabasesystemet.Editorengjenkjennergrammatikkentil SQLogvilgibeskjedomeventuelleskrivefeilogleggepåfargekodingforå lettelesbarheten.EnSQL-editoreraltsåeteksempelpåetdatabaseverktøy ifigur1.4.
1.1.4Databaseobjekterogmetadata
Endatabaseinneholderuliketyper databaseobjekter:
Tabeller Datablirlagretitabeller.Detertabellenevijobbermednårvi registrererdataidatabasen.Tabelleneutgjørdatagrunnlagetforapplikasjoner,spørringerograpporter.
Views Spørringerbrukesforådefineretabeller,leggetil,endreogslette datafratabeller,ogforåhenteutdatafratabeller.Spørringerkan lagesvedhjelpavSQL.Et view eren“virtuelltabell”definertveden spørring.
Lagredeprogrammer ForåutvikleapplikasjonererdetvanligåkombinereSQLmedgenerelleprogrammeringsspråksomJava,C#,Python ellerPHP.Noenslikeprogrammerblirlagretogutførtpådatabasetjeneren.En trigger blirutførtautomatiskavdatabasesystemetibestemtesituasjoner.
Metadata er“dataomdata”.Endatabasevilitilleggtilselvedatabaseobjekteneinneholdebeskrivelseravhvordantabellerogviewserdefinert.

Figur1.5:Dataogbeskrivelseravdata.
Metadatablirlagreti systemkatalogen.Forhvertabellvilsystemkatalogen inneholdenavnetpåtabellen,navnpåkolonneneoghvaslagstypedata somerlagretideenkeltekolonnene(tall,tekstogdatoerereksempler).
Nårmanoppretterennytabell,blirmetadataomtabellenautomatisk lagtinnisystemkatalogen.Systemkatalogenerofteorganisertsomensamlingtabeller.DetgjørdetmuligåhenteutmetadatavedhjelpavSQL.
Dataom brukere oghvilke rettigheter dehartilåbrukedatabasen,blir ogsålagretisystemkatalogen.Noenbrukereharkanskjetilgangtilhele databasen,mensandrebarehartilgangtilnoenfåtabeller.Determuligå skillemellom leserettigheter og skriverettigheter.Leserettighetergirinnsyn,menikketillatelsetilåendredata.DBAharmyndighettilådefinere nyebrukeremedbrukernavnogpassord,ogåtildelebrukererettigheter pådatabaseobjekter.DetfinnesegnekommandoeriSQLforbrukeradministrasjon.
1.1.5Livsløpettiletdatabasesystem
Systemutvikling erenprosesssomlederfraetbehovellerenidétiletkonkretsystem.Detkaninnebæreåbyggeetheltnyttsystemtilerstatningfor manuellerutiner,elleråvidereutvikleeteksisterendesystemmednyeller endretfunksjonalitet.Prosesseninvolvererflerepersonermedforskjellige typerkompetanse.
Systemutviklingkreverplanleggingogoppfølgingavaktiviteter.Klassiskesystemutviklingsmetoderdelergjerne“livsløpet”tiletinformasjonssysteminnifasersomvistifigur1.6.Enkeltsagtkanvisiatarbeidetstarter medåanalysere hva systemetskalgjøre,førmanserpå hvordan systemet kanbyggesopp.

Figur1.6:Klassisksystemutviklingsmetodikk:Frabehovtilferdigsystem.
Forstudie Erdetbehovforetnyttellervidereutvikletsystem?Forstudiet hartilhensiktåavdekkeproblemerogbehov,ogidentifiseremuligetiltaksomkanforbedrehvordanvirksomhetenfungerer.Ettmulig tiltakkanværeatdetblirutvikletetnyttinformasjonssystem,eventueltateteksisterendesystemblirforbedret,ellerutvidetmedny funksjonalitet.Deterogsåmuligåkonkluderemedatdet ikke erhensiktsmessigåsetteigangetutviklingsprosjekt.
Analyse Hvaskalsystemetgjøre?Manmåsetteseginniogbeskrivede arbeidsoppgavenesomblirutførtivirksomheten,ogsomnåheltellerdelvisskalbliendelavdetnyesystemet.Detkanbetyatmanmå studerehvordantilsvarendeoppgaverblirutførtmanuelt,intervjue brukereavsystemet,sepåskjemaerogdokumentersomgirkunnskapomrutinerogdata.Denneinnsamlingenavfaktaogkravfører framtilensåkalt kravspesifikasjon.

Design Hvordanbørsystemetbyggesopp?Viskalsærligsepåhvordan selvedatabasenbørorganiseres.Fokusliggerdapåhvilkeopplysningersomskallagres,oghvordandisseopplysningenekanorganiseres itabeller.Manutviklerenvisuellmodellavdatabaseniformaven datamodell. ER stårforEntityRelationshipogeretvisueltspråkfor åbeskriveslikedatamodeller,sefigur1.7.Mansjekkermodelleni henholdtilvissekvalitetskriterier,blantannetvedhjelpav norma-
Figur1.7:Endatamodell.
liseringsteori,somsikreratsammeinformasjonikkeblirdupliserti databasen. UML (UnifiedModelingLanguage)eretmeromfattende modelleringsspråksomogsåkanbrukesveddesignavapplikasjonenesomskaljobbemeddatabasen.
Implementering Lagsystemet!Dennefasenførerframtilkonkretedatabaserogkjørbareapplikasjoner.Datamodellenblirrealisertiformav tabellertilbassetetbestemtsystem.Littforenkletkanvisettelikhetstegnmellomimplementeringog programmering (eller applikasjonsutvikling eller“koding”).
Testing Sjekkatsystemetvirkerihenholdtilspesifikasjonene!Etinformasjonssystemerbygdoppframindredeler. Enhetstesting (unittesting)sjekkerathverenkeltdeloppførersegsomforventet,mens integrasjonstester sjekkeratdeulikedelenefungerersammen.Før systemetkantasibruk,gjørmanen stresstest foråsjekkeatsystemetfungerermedrealistiskdatamengdeogantallbrukere.En godkjenningstest erenavsluttendetestavdetferdigesystemet,deroppdragsgiverakseptereratfunksjonalitetensamsvarermedkravspesifikasjonen.
Produksjon Systemetblirtattibruk.Etterhvertkandetoppståbehovfor videreutviklingavsystemet.Hvisdetersnakkomstørreendringer, erdetaktueltåorganiserearbeidetsometnyttutviklingsprosjekt.

Figur1.8:Smidigogiterativsystemutvikling.
Klassiskesystemutviklingsmetoderleggerstorvektpåpresisbeskrivelse avkravtilsystemetførmangårigangmedimplementering. Smidigemetoder leggeristedetopptilatmanbyggerenforenkletversjonavsystemet sombrukereavsystemetkanstudereogforeslåendringertil,gjerneiflere omganger.Manleggeraltsåopptilen iterativ prosess,somillustrertifigur 1.8.
Ensmidigtilnærmingerkarakterisertvedmangeogsmåleveranser, mindrevektpåplanleggingogdokumentasjonistarten,ogmervektpå testingogtilbakemeldingerfrabrukereunderveis.Smidigmetodikk,som f.eks. Scrum,hariøkendegradblitttattibrukutoverpå2000-talletoger nådenvanligstemåtenåjobbepånårmanskalutvikleIT-løsninger.Dettefårkonsekvenserfordatabasefaget,bådenårdetgjelderdatabasedesign ogapplikasjonsutviklingmotdatabaser.Deterstørrefokuspåkontinuerligutviklingogforbedringavkjørbarkode,ogtilsvarendemindrefokus pådetaljertekravspesifikasjoner.Deterikkeblittmindreviktigåutvikle godedatamodeller,mendetskjeriterativtiflererunder,ogforatdetskal væreeffektivt,måmanautomatiskkunneoversetteframogtilbakemellom modellerogkode.
1.1.6Personvern
ITgriperstadigsterkereinnifolksliv,entendeterpåjobbenellerprivat. Detblirdermednaturligogviktigatdetutvikleslovverksombeskytter enkeltindividet.
Forkortelsen GDPR stårforGeneralDataProtectionRegulationogeret regelverksomstyrerinnsamling,lagringogbrukav personopplysninger iEU.INorgefikkvinypersonopplysningslovi2018.Lovengirvirksomheterplikterogenkeltpersonerrettigheter.Deninneholderbådenasjonale reglerogpersonvernforordningeniEU,dvs.GDPR.
Medpersonopplysningermenesalleopplysningersomkanknyttestil enenkeltperson.Fødselsnummer,navn,adresse,kontonummer,telefonnummeroge-postadresseeropplagtopplysningersomkanidentifisereen enkeltperson.Mendetkanogsåværemuligåidentifiserepersonerfraf.eks. bilderogvideoopptak.Vedåkombinereflerekilderkandatadulegger igjenvedsøkpånettetogpasseringavbomstasjoner,ogsåblipersonopplysninger.Detgjelderekstrastrengereglerhvisdetersnakkom sensitive personopplysninger,f.eks.opplysningerknyttettilreligion,politiskoppfatning,etnisitet,seksuelleforholdellerlovovertredelser.
Envirksomhetsombehandlerpersonopplysninger,harinformasjonsplikt.Manskalforklarehvilkeopplysningersomblirlagret,oghvade brukestil.Personenemanskalsamleinnopplysningerom,mågietaktivtsamtykke.Enkeltpersonerharsterkerettigheternårdetgjelderinnsyn iegnepersonopplysningerogmulighetforåfåslettetpersonopplysninger omsegselv.Manskalikkesamleinnflereopplysningerennnødvendig, ikkelagreopplysningeneoverlengretidennnødvendig,ogmanskalikke brukeopplysningenetilandreformålenndetmanharopplystom.
Innebygdpersonvern gårutpåatgodeprinsipperforpersonverntas mediallefaseneunderutviklingavetsystem.Mangesystemerbruker nåskytjenesteristørreellermindregrad.Bådebehandlingoglagringav datakandermedforegåpåstoredatasentreutenforvirksomheten,kanskje lokalisertiandrelandmedetannetlovverk.
Lovverketregulererhvilkesanksjonersomsamfunnetkanileggeen virksomhetvedbruddpåpersonopplysningsloven.Detereksemplerpåat virksomheterharfåttstorebøtervedbruddpåregelverket.Itilleggkommertapavomdømmenårslikesakerkommerutimedia.
Personvernoginformasjonssikkerheterkompleksesaksområderhvor deteravgjørendeåholdesegoppdatert.Datatilsynethargodeveiledere forarbeidmedpersonverniuliketyperavvirksomheter,ogsåIT-bedrifter.
1.1.7Kunstigintelligens
Kunstigintelligens (KI)påvirkeralledeleravsamfunnet,bådepågodtog vondt.FareneogutfordringenevedKIerblitttydelige;utfordringermed falskenyheterimodernedemokratier,brukavintelligenteovervåkingssystemeridiktaturer,enormtenergiforbrukforådrivedestoreKI-tjenestene, våpenkappløpmedselvstyrtedroner–forånevnenoeneksempler.I2025 vedtokEU KI-forordningen (AIAct),somregulererbrukavKIogskalsørgeforatIT-systemersombrukerKI,ertrygge,etiskeogtransparente(altså atdeer“gjennomsiktige”idenforstandatdetermuligåforståellerforklaresystemet).Mandelerinnslikesystemeritrekategorier:1)systemersom erforfarligeogmåforbys,2)systemersomharhøyrisikoogmåunderleggesstrengekrav,og3)systemersomharminimalrisiko.Iandredelerav verdenblirKIregulertilangtmindregrad.
KIvilopplagtfåenøkendebetydningogsåfordatabasefaget.Generative språkmodeller,innebygdi chatboter og kopiloter,eristandtilågenererekodefrainstruksjonerinaturligspråk,såkalte prompter.Kodemåher forståsividforstand,altfraSQL-spørringer,viaprogramkodeformobilappertilformellebeskrivelseravdatamodeller.KIkangenereredatabaserfor ulikedomenerfraenklebeskjeder,ogbefolkedatabasetabellermedstore mengderrealistisketestdata.Iutviklingsprosjekterkanmanvedhjelpav KIrasktbyggeprototyperavdatabaseneogtilhørendeapplikasjoner.
DatabasesystemerblirsmarterevedatKIbyggesinn.Systemeneblir selvistandtilåutnytteulikelagringsmedierogandremaskinressurserpå denmesteffektivemåten,utførespørreoptimalisering,oppdageogvisualiseremønstreistoredatasett,ellerautomatisererutineoppgaver.Oppgaver
somtidligerebleutførtmanueltavdatabaseadministratorerogutviklere, larsegheltellerdelvisautomatisere.
Studentersomskallæredatabasefaget,kanogbørbrukeKIforlæring.Det erimidlertidlittforlettåbrukeKItilåspytteutsvarpåøvingsoppgaver, bådeinnenSQL,databasedesignognormalisering.Foråbliistandtilå brukeKIprofesjonelt,måogsådagensstudenterlæredetgrunnleggendei selvefaget,demåforstådeviktigsteprinsippeneogsammenhengene,og detkrevermengdetreningovertid.EngodtilnærmingeråbrukeKIsom enslagslæringsassistent.Mankanf.eks.mateslikesystemermedenoppgaveogsittegetløsningsforslag,ogderetterbesystemetomkonstruktiv tilbakemeldingutenå“gibort”svaret.Tilsluttihvertkapittelfinnerduen ellerflereoppgavermedforslagtilhvordandukanbrukeKIforåjobbe medfagstoffet.Disseermerket: LæringmedKI.
1.2Databasehåndteringssystemer
1.2.1Oppgaverogarkitektur
Et databasehåndteringssystem,ofterefererttilsomDBMSfradenengelske betegnelsenDataBaseManagementSystem,eretprogramsomkanutføre alleslagsoperasjonermotdatabasen.ForholdetmellometDBMSogen databasetilsvarerforholdetmellomentekstbehandler,f.eks.Word,oget dokument.Sombrukereervialtsåikkeidirektekontaktmeddatabasen. Begrepet databasesystem blirbruktomendatabasestyrtavettilhørende DBMS.
Vikommuniserermeddatabasesystemetvedhjelpavdetstandardisertespørrespråket SQL.DettegjelderbådenårviskriverSQLselv,ognår vijobbermeddatabasenviaulikeverktøyogapplikasjoner.AllSQL-kode blirbehandletogutførtavetDBMS,somvistifigur1.9.

Figur1.9:Databasesystem=DBMS+database.
Etdatabasesystemharsomoppgaveålagrestoremengderdataoverlang tidpåensikkermåte,ogåtilbyhensiktsmessigemekanismerforågjenfinnedataeffektivtogkorrekt,selvnåretstortantallbrukerejobbermotdatabasensamtidig.Itilleggmådatabasesystemerkunnekommuniseremed verktøyogapplikasjoner.Detteerensammensattogkomplisertoppgave:
• Etdatabasesystemmåtilbymekanismersomgjørdetenkeltåhente ut,søke,filtrereogsammenstilledatafraforskjelligetabeller.Ipraksis betyrdetteatsystemetmåstøtteSQL.
• Effektivesøkmotstoredatamengdererenkjernefunksjonidatabasesystemer,ogdeterovertidutvikletsofistikerteteknikkerforlagring ogsøketterdatapådisk.DeterensærligutfordringåutførespørringerskrevetiabstraktespråksomSQLpåeneffektivmåte.
• Databasenetilenvirksomhetinneholderverdifullinformasjonsom ikkemåkommepåavveier,ogdeterønskeligåkunnestyretilgangen tilsystemet.Systemetmågjøredetmuligåtildelebrukererettigheter tilbestemtedeleravdatabasen.
• Sidenetdatabasesystemerikontinuerligdriftoverlangtid,såer detikketilåunngåatfeiloppstår.Bådestrømbruddogdiskkrasjer hendelsersomavogtilinntreffer,ogsomsystemetmåhåndtere.
• Databasesystemerkanbrukesavmangepersonersamtidig.Meden gangennybestillingblirregistrertavenkundebehandler,erdette synligforandreibedriften,ogsalgetvilblitattmedisalgsrapportersomblirprodusert.Tokonsulenterietreisebyråkanselgereiser pådensammeflyavgangen.Databasesystemetsørgerforåsamordne detteslikatdeikkereservererdetsammesetet.Delingavdataeret viktigformålmeddatabasesystemer,ogsystemetmåhavelfunderte teknikkersomtillaterfleresamtidigebrukereutenatdeødeleggerfor hverandre.
• Detmåværemuligåutvikleapplikasjoner(iulikeprogrammeringsspråk)somkanjobbemeddatabasesystemetvedhjelpavSQLogtilhørendeprogrambiblioteker.
Detfinnesfleremåteråorganiseredatabaserogtilhørendeapplikasjoner på–flere systemarkitekturer.Deførsteflerbrukerdatabaseneblekjørtpå stormaskiner sombrukernevarkobletoppmotviaenkleterminaler.All
prosesseringoglagringforegikkpådensentralestormaskinen.Idagerbildetmersammensatt.BrukernejobberpåkraftigePC-ermedstorlagringskapasitetogregnekraft,menogsåframobiltelefonerognettbrett.

Figur1.10:Databaseklienterietnettverk.
Iendatabaseløsningbasertpå klient/tjener-arkitektur eretantallbrukermaskiner(klienter)koblettilendelt databasetjener overetnettverk, somvistifigur1.10.Mangeklienterkanaltsåjobbemeddatabasensamtidig.KlientenesenderforespørslertiltjenereniformavSQL-spørringer,og fårspørreresultatertilbakesomrespons.Detteførertilenarbeidsdelingder databasetjenerenutførerspørringer,mensbrukergrensesnittetblirhåndtert påmaskinentilhverenkeltbruker.
Iet distribuertdatabasesystem erselvedatabasenfordeltpåfleremaskiner,somergeografiskspredt.Ien webløsning erdatabasenkanskjelagretpåénmaskin,menertilgjengeligoveraltderdeternettforbindelse.Utoverpå2000-talletharmangevirksomheterflyttetalleellernoenavITsystemenesineoppi“skyen”,sombetyratdekjørerpåservereplasserti storedatasentre.Enlangrekkedatabaseløsningerertilgjengeligsomslike skytjenester.
1.2.2Brukavhurtigminneogdisk
Fysisksettbestårdatamaskineravkomplisertelektronikk.Forvårtformål erdettilstrekkeligmedenmerprinsipiellforståelseavendatamaskin,som illustrertifigur1.11.
Maskinenbestårav CPU (CentralProcessingUnit), hurtigminne og ytrelager, inn-enheter og ut-enheter.MaskinensCPU,ellerprosessor,utførerberegningerdefinertvedinstruksjoneneietprogram.Tastaturogmus ertoinn-enheter,mensskrivererenut-enhet.Entrykkfølsomskjermer bådeinn-ogut-enhet.
Ytrelagervilipraksisbeståavenellerfleredisker,ententradisjonelle harddisker medroterendemagnetplater,eller SSD (SolidStateDisk)basert påflash-teknologi.Bådehurtigminne(noengangerskrivervibareminne) ogdiskereksemplerpå lagringsmedier
Databasesystemer er skrevet for innføringskurs i databaser ved universiteter og høgskoler og gir en grundig innføring i relasjonsdatabaser, SQL, datamodellering og databaseteori. Boken forutsetter ikke forkunnskaper i informatikk.
Læreboken tar utgangspunkt i bruk av tabeller og databasespråket SQL. Etter at denne «grunnmuren» er på plass, tar boken for seg livsløpet til et databasesystem, fra planlegging og design til implementasjon og daglig drift.
SQL er et standardisert språk som kan brukes mot en rekke systemer, og stoffet er derfor i all hovedsak verktøyuavhengig. Læreboken inneholder likevel kommentarer og tips for bruk av aktuelle verktøy som MySQL, PostgreSQL, SQL Server og Oracle.
Emner som presenteres, er blant annet:
• Grundig innføring i SQL med utvalgsspørringer, definisjon av tabeller og views, innsetting, sletting, oppdatering og brukeradministrasjon
• Relasjonsmodellen: det teoretiske grunnlaget for relasjonsdatabaser
• Datamodellering med ER og UML
• Normalisering
• Filer og indekser, søkealgoritmer og spørreoptimalisering
• Databaseadministrasjon: transaksjoner, brukeradministrasjon, sikkerhetskopiering og gjenoppbygging, overvåking og optimalisering, skydatabaser
• Webapplikasjoner med databaseprogrammering
• Lagrede rutiner og triggere
• Semistrukturerte data med JSON og XML
• Objektrelasjonelle databaser og brukerdefinerte datatyper
• NoSQL-databaser med fokus på dokumentdatabaser
6. utgave er utvidet med nytt stoff om SQL, presentasjonen av databasedesign er tilpasset smidig systemutvikling, og det er lagt mer vekt på JSON og databasedesign mot NoSQL-databaser.
Læreboken har en egen nettside med oppgaver og annet tilleggsmateriale.
BJØRN KRISTOFFERSEN er cand.scient. i informatikk fra Universitetet i Oslo. Han er ansatt som førstelektor i informatikk ved Universitetet i Sørøst-Norge, hvor han underviser i databaser, programmering og web.

ISBN 978-82-15-07453-5