120 likes | 365 Views
Introduksjon til fagfeltet. Datafiler side 2 Databasesystemer side 3-5 Databasearkitektur ANSI/SPARC side 6-7 Datamodeller side 8 Flerbruker databasesystem side 9 Klient-tjener arkitektur side 10 Datakatalog – metadata side 11 Eksempel på databasetabeller side 12.
E N D
Introduksjon til fagfeltet Datafiler side 2 Databasesystemer side 3-5 Databasearkitektur ANSI/SPARC side 6-7 Datamodeller side 8 Flerbruker databasesystem side 9 Klient-tjener arkitektur side 10Datakatalog – metadata side 11 Eksempel på databasetabeller side 12 Læreboka, kapittel 1
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
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
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
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
Databasearkitektur – ANSI/SPARCEt ideal som skal gjøre DBMS mest mulig robusteDatauavhengighet 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
Eksempel på de tre nivåene ansNr fornavn etternavn avdeling ansNr fornavn etternavn lønn ansNr fornavn etternavn lønn avdeling struct ansatt { int ansNr, char fornavn[40], char etternavn[30], float loenn, struct ansatt *neste; }; index ansNr; index avdeling; Datamodellering og databaserElse Lervik
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
Flerbruker databasesystem Kari OIe database Per Ingrid Datamodellering og databaserElse Lervik
Klient-tjener arkitektur Datamodellering og databaserElse Lervik
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
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 DefinitionLanguage (DDL) • lage tabellen • Data ManipulatonLanguage (DML) • legge inn data • søke • endre data • slette data Datamodellering og databaserElse Lervik