Download - Introduksjon til fagfeltet
LC238D Datamodellering og databaserhttp://www.aitel.hist.no/fag/_dmdb/
Introduksjon til fagfeltet
Else Lervik, august 2012 Forelesning 1, uke 34
Datafiler side 2Databasesystemer side 3-5Databasearkitektur ANSI/SPARC side 6-7Datamodeller side 8Flerbruker databasesystem side 9Klient-tjener arkitektur side 10Datakatalog – metadata side 11Eksempel på databasetabeller side 12
Læreboka, kapittel 1
Datamodellering og databaserElse Lervik
side 2
Datafiler
• Historien– papirbaserte arkiver– elektroniske arkiver
• Hva karakteriserer datafiler og et programs bruk av disse?– ofte har hver applikasjon sitt sett av filer– flere programmer / brukere kan ikke jobbe samtidig på filene– svært tungvint med annet enn sekvensielle filer– datidens maskinressurser krevde direkte tilgang
• Generelle problemer– sterk avhengighet mellom program og datafiler– all datakontroll må ligge i programmene– endringer tungvindt, programmene forutsetter dataene i bestemt format og
rekkefølge– dobbeltlagring
Datamodellering og databaserElse Lervik
side 3
Databasesystemer
• En database er en samling data som logisk hører sammen. Sammen med dataene lagres en beskrivelse av dataene (metadata, datakatalog).
• Datakatalogen gjør data og program uavhengig av hverandre.• Et databasesystem (Database Management System DBMS) er et stort programsystem
som hjelper oss å holde orden på dataene– Databasesystemet tar seg av filbehandlingen– Effektive rutiner for lagring og søking– Standardisert språk for å håndtere dataene: SQL
• Språk for å definere dataene: DDL Data Definition Language• Språk for å vedlikeholde og søke i dataene: DML Data Manipulation Language
– Ulike grupper brukere• Sentral rolle: DBA – database-administrator• Andre brukere kan gis rettigheter på forskjellige nivåer
– Sikkerhet og flerbrukerhåndtering• Kjente relasjonsdatabasesystemer
– SQL Server– MySQL– Oracle– PostgreSQL– (Java DB / Derby)
Datamodellering og databaserElse Lervik
side 4
Databasesystemets funksjonalitet
• Data må kunne lagres, endres, gjenfinnes og slettes
• Metadata må lagres og være tilgjengelig for brukerne
• Støtte for transaksjonshåndtering– En transaksjon er en enhet arbeid som må utføres i sin helhet. Kan bestå
av flere oppdateringer.
– En transaksjon er enheten ved gjenoppretting. Transaksjoner må holdes intakt.
– Systemet må sørge for låsing av data når flere brukere skal oppdatere samtidig, slik at dataene blir oppdatert korrekt.
• Sikkerhet– Dataene må beskyttes mot uautorisert bruk
– Gjenoppretting etter systemutfall
• Integritet– Krav må kunne legges i databasen
Datamodellering og databaserElse Lervik
side 5
Fordeler/ulemper ved databasesystemer
• Fordeler– Kontrollert duplisering av data, kun for å kople sammen tabeller
– Hele organisasjonen / mange applikasjoner /mange brukere har adgang til de samme dataene
– Bedre dataintegritet og sikkerhet
– Helhetssyn framfor særinteresser
– Enklere vedlikehold pga program – datauavhengighet
– Rutiner for sikkerhetskopiering og gjenoppretting
• Ulemper– Kompleks programvare som ofte krever kompetent driftspersonale
– Investeringskostnadene kan være store, men open-source-systemer (PostgreSQL, mySQL, Java DB) er konkurransedyktige
– Kan bli dyrt å flytte applikasjoner fra et system til et annet, dersom en ikke tenker standardisering og kompatibilitet
– Ytelsen i forhold til spesiallagde programmer kan i helt spesielle tilfeller være lav
Datamodellering og databaserElse Lervik
side 6
Databasearkitektur – ANSI/SPARCEt ideal som skal gjøre DBMS mest mulig robuste
Datauavhengighet er stikkordet
• skjema = databasebeskrivelse• eksternt skjema (subskjema)
– applikasjonens vindu(-er) mot databasen– brukerne er sluttbrukere
• konseptuelt skjema– modell av hele databasen– brukerne er DBA– dataene som tabeller
• internt nivå– indekser, fysisk rekkefølge av poster, etc
• fysisk nivå– oppdelingen av disken i sider, blokker
osv.
• logisk datauavhengighet– eksterne skjema uavhengig av endringer
i det konseptuelle skjema
• fysisk datauavhengighet– lagringsstrukturer må kunne endres uten
at det berører det konseptuelle skjema
Datamodellering og databaserElse Lervik
side 7
Eksempel på de tre nivåene
ansNr fornavn etternavn lønn avdeling
ansNr fornavn etternavn avdeling ansNr fornavn etternavn lønn
struct ansatt { int ansNr, char fornavn[40], char etternavn[30], float loenn, struct ansatt *neste;};index ansNr;index avdeling;
Datamodellering og databaserElse Lervik
side 8
Datamodeller
• En datamodell beskriver data, sammenhenger mellom data og krav til dataene
• Et verktøy for kommunikasjon mellom brukere/oppdragsgivere og utviklere
• Ekstern datamodell, konseptuell datamodell, intern datamodell
• Objektbasert datamodell (UML)
• Postbasert datamodell (tabellene)
Datamodellering og databaserElse Lervik
side 9
Flerbruker databasesystem
database
OIe
Per
Ingrid
Kari
Datamodellering og databaserElse Lervik
side 10
Klient-tjener arkitektur
Datakatalog - metadata
• Databasesystemet inneholder alltid en datakatalog
• En database med metadata = data om data– ”Derby system tables” i Derby Reference Manual
• Grafisk grensesnitt
• SQL-basert grensesnitt– select * from SYS.SYSCONSTRAINTS; // mulig å gjenfinne
primærnøkkelen i person-tabellen her
Datamodellering og databaserElse Lervik
side 11
Datamodellering og databaserElse Lervik
side 12
Eksempel på databasetabeller
• Lag database:– studnr, navn, adresse, postnr, poststed, emnekode, emnenavn, karakter (kun én karakter
pr. student og emne)– Hvilke tabeller?– Prøv!– Tenk objektorientert, finn objekter (klasser) og fordel attributtene.– Tegn klassediagram uten operasjoner («datamodell»)– Lag tabellene.– Hva karakteriserer en databasetabell?
• Vis enkel bruk av Java DB i NetBeans (repetisjon)– Kun én tabell med persondata (navn og nr)– SQL-setninger
• Data Definition Language (DDL)– lage tabellen
• Data Manipulaton Language (DML)– legge inn data– søke– endre data– slette data