700 likes | 883 Views
Databasearkitektur og -implementering. We shape our buildings: thereafter they shape us Winston Churchill. Databasearkitektur og -implementering. En arkitektur skal Svare på spørringer innen rimelig tid Minimere databehandlingskostnaden Minimere lagringskostnaden
E N D
Databasearkitektur og -implementering We shape our buildings: thereafter they shape us Winston Churchill
Databasearkitektur og -implementering • En arkitektur skal • Svare på spørringer innen rimelig tid • Minimere databehandlingskostnaden • Minimere lagringskostnaden • Minimere dataoverføringskostnaden • Målene kan være motstridende
ANSI SPARC • En komité for standardisering av databaseteknologi (1972) • Fokuserte på grensesnitt • Internt • Konseptuelt • Eksternt
Eksternt skjema • Systemet sett fra klientens side (view) • Det kan være flere view
Konseptuelt skjema • Database designerens view • Hele datamodellen • Inneholder alle filer (tabeller) og alle felter i tabellene • Skal være uavhengig av lagringsstrukturer og datatilgangsmekanismer • Kan inneholde beskrivelser som gjelder sikkerhet og integritet
Internt skjema • Laveste nivå • Gjelder lagring av og tilgang til data • Inkluderer indeksering og postrekkefølge
Datastruktur og datalagring • The modern world has a false sense of superiority because it relies on the mass of knowledge that it can use, but what is important is the extent to which knowledge is organized and mastered • Goethe, 1810
Datastrukturer • Målet er minst mulig diskaksess • Disker er relativt langsomme sammenliknet med indre lager • Skrive brev sammenliknet med telefon • Disken er en flaskehals • Hensiktsmessige datastrukturer kan redusere diskaksess
Disker • Data lagres som spor på en skive-overflate • En disk kan ha flere skiver som hver har to sider • Rotasjonsforsinkelse • Venting på at stedet der dataene som skal hentes kommer fram til lese/skrivehodet • I størrelsesorden 5 ms for en harddisk • Rotasjonshastighet er bestemt av diskprodusenten • Lesearmforsinkelse • Å flytte lese/skrive-hodet til sporet der dataene er lagret. • Ca 10 ms for en harddisk. • Buffer • Harddisken kan ha egen RAM der flere spor kan være forhåndslagret og der data som skal skrives kan mellomlagres.
Minimere tilgangstid • Rotasjonsforsinkelsen er bestemt av diskprodusenten • Armforsinkelsen kan reduseres ved å lagre filene på • Samme spor • Samme spor på hver overflate • Sylinder
Clustering • Poster som ofte hentes samtidig lagres sammen • Intra-fil clustering • Poster i samme fil • Sekvensiell fil • Inter-fil clustering • Poster i forskjellige filer • En nasjon og dens aksjer
Disk manager • Administrerer fysisk I/O • Ser disken som en samling sider • Har en katalog over alle sider på disken • Henter og erstatter og administrerer ledige sider
File manager • Administrerer lagring av filer • Ser disken som en samling lagrede filer • Hver fil har en unik identifikator • Hver post i en fil har en unik post-identifikator
File managerens oppgaver • Lage en fil • Slette en fil • Hente en post fra en fil • Oppdatere en post i en fil • Legge til en ny post i en fil • Slette en post fra en fil
Sekvensiell henting • Gitt en fil med 10000 poster som hver opptar en side • Spørringer som krever gjennomgang av alle poster vil kreve 10000 diskaksesser • F.eks Finn alle varer av type ’E’ • 10000*9ms=90s • Mange diskaksesser er bortkastet hvis få poster møter vilkåret.
Indeksering • Indekser gir raskere tilgang ved å redusere antall diskaksesser • Indeksen er mye mindre enn hele tabellen (kan lastes med få diskaksesser) og den er sortert (støtter dermed binærsøk)
Spørring ved hjelp av index • Les indeksen inn i indre lager (RAM) • Let gjennom indeksen for å finne poster som møter vilkåret • Hent bare poster som inneholder dataene en leter etter • Resultat: Antall diskaksesser er betydelig redusert når vilkåret slår til for få poster.
Vedlikehold av en indeks • Å føye til en post krever minst to diskaksesser: • Oppdatere fila • Oppdatere indeksen • Kompromiss • Raskere spørringer • Tregere oppdatering • Oppdatering dreier seg ofte om én post om gangen og da er tregheten ikke et problem.
Bruk av indekser • Sekvensiell gjennomgang av en del av en fil • Eksistenstesting • Finne ut om en post eksisterer uten å måtte hente den.
Multiple indekser • Finne røde varer av type 'C' • Begge indekser kan gjennomsøkes i indre lager for å identifisere poster som skal hentes Dårlig eksempel fordidet er mange varer av type C og vil være mange røde varer. Da er det lite å tjene på indeksering
B-tre • En datastruktur for indekser • Brukes ofte i relasjonsdatabaser • Grunnlag for IBM’s VSAM som DB2 bygger på • Støtter sekvensiell og direkte tilgang • Har to deler • Sekvens-settet • Index settet
B-tre • Sekvenssettet er en indeks med pekere til poster • Indexsettet er en tre-struktur som er index til sekvens-settet
En indeksnode svarer til én page på disken. Én page kan f.eks være 8 kB. Er feltet 12 byte og diskadresse 4 byte, vil indeksnoden inneholde ca 500 verdier. To nivåer med indeks kan da nå 500*500 eller 250000 sider på disken B-tre • (Fra Weiss: Algorithms and Data Structures using Java) • De to øverste nivåene i treet kan være innlastet i RAM • En post kan da finnes med kun én diskaksess. Eller to hvis tabellen er så stor at man trenger tre nivåer i indeksen.
Hashing • Er en teknikk for å redusere diskaksesser når en vil gå direkte til en gitt post. • Unngår indeks • Antall diskaksesser for å nå en post er nær én • Prinsipp: Hashfeltet blir gjort om til en hashadresse ved å beregne en hashfunksjon
Hashing hashadresse = rest ved divisjon av SSN med 10000 S S N D i s k a d d r e s s F i l e s p a c e O v e r f l o w a r e a 4 1 7 - 0 3 - 4 3 5 6 } 4 3 5 6 4 1 7 - 0 3 - 4 3 5 6 5 3 2 - 6 7 - 4 3 5 6 5 3 2 - 6 7 - 4 3 5 6 8 9 1 - 5 5 - 4 3 5 6 • • S y n o n y m c h a i n } 0 4 3 - 1 5 - 1 8 9 3 1 8 9 3 0 4 3 - 1 5 - 1 8 9 3 8 9 1 - 5 5 - 4 3 5 6 • • } 2 8 1 - 2 7 - 1 5 0 2 1 5 0 2 2 8 1 - 2 7 - 1 5 0 2 •
Ulemper ved hashing • Forskjellige verdier konverterer til samme hash-adresse • Synonymer • Lagre den posten som kolliderer i et eget overflytområde • Eller på neste ledige plass • Lange kjeder med synonymer reduserer ytelsen • Postene lagres ikke sekvensielt
Linked list • A structure for inter-file clustering • An example of a parent/child structure
Linked lists • There can be two-way pointers, forward and backward, to speed up deletion • Each child can have a pointer to its parent
Bit mapindekser • Bruker en enkelt bit heller enn mange bytes for å vise en bestemt verdi i et felt • Farge kan bare ha tre verdier og bruker dermed tre biter
Bitmapindekser • En bitmapindaks sparer plass og dermed diskaksesser og tid sammenliknet med en vanlig indeks.
Joinindekser • Gir raskere join ved å lage en indeks for primærnøkkel/hovednøkkel-paret
Datakodingsstandarder • ASCII • UNICODE
ASCII • Hver alfabetisk, numerisk og spesialtegn er representert med en 7-bits kode. • 128 mulige tegn • ASCII kode krever vanligvis én byte
UNICODE • En unik binær kode for hvert tegn, uansett hvilken plattform, hvilket program eller språk. • Jnneholder for øyeblikket 34 168 forskjellige tegn hentet fra 24 støttede språk-script • Dekker de viktigste skrevne språkene • To former for koding • Default er 16-bit formen • En 8-bits form, UTF-8, gjør den enklere å bruke med eksisterende ASCII-baserte systemer • Unicode er default koding for HTML og XML • UNICODE danner grunnlaget for software for et globalt marked
Datalagringsenheter • Kriterier for valg av datalagringsenheter til ulike formål: • On-line data • Aksesstid • Kapasitet • Back-up av filer • Sikkerhet mot datatap • Arivering av data • Langtidslagring
Nøkkelvariabler ved valg av lagringsenheter • Datavolum • Volatilitet – hvor fort endrer dataene seg • Aksesshastighet • Lagringskostnader • Lagringsmediets pålitelighet • Krav til lagringstid • Leselighet på lang sikt • Pålitelighet
Magnetisk teknologi • Opp til 50 % av hardware-kostnaden i informasjonssystemer brukes på magnetisk lagring • Et marked på $50 milliarder • Viktigste typen datalagring • En moden og utbredt teknologi • Sterke magneitske felter kan slette data • Magnetiseringen svekkes over tid
Harddisker • Forseglet og permanent montert • Svært pålitelige • Aksesstider på 4-10 ms • Overføringshastigheter opp til 160 Mbytes/s • Kapasiteter fra Gbytes til Tbytes
RAID • Redundant arrays of inexpensive or independent disks • Utnytter at store produksjonsvolumer til PC-markedet gir rimelige harddisker • Kan også gi øket sikkerhet • Gir mindre sårbarhet for feil. • Kan ikke erstatte jevnlig backup.
Speiling (Mirroring) • Write • Like kopier av en fil skrives til hver disk i arrayen • Read • Side 1 leses fra disk 1, side 2 leses fra disk 2 osv. • Sidene settes sammen i indre lager • Aksesstiden deles med antall disker i arrayen • Lese-feil • Les den ønskede siden fra en annen disk • Kompromisser • Raskere aksesstid • Større sikkerhet • Diskplass
Striping Data lagres noe på den ene og noe på den andre disken. Sikkerhet kan ivaretas med en egen paritetsdisk.
Striping • Krever minst tre disker for sikkerehet • Write • Halvparten av fila til første disk • Halparten av fila til andre disk • Paritet til tredje disk • Read • Porsjoner fra hver disk settes sammen i hukommelsen • Lesefeil • Tapte biter rekonstrueres fra paritetsdata på den tredje disken • Kompromisser • Bedret datasikkerhet • Bedre lagringskapasitet enn speiling • Tregere enn speiling
RAID levels • Alle nivåer unntatt 0 har felles trekk: • Operativsystemet ser RAID-diskene som en logisk disk • Data er distribuert på flere disker • Paritet brukes for å redde data i feilsituasjoner