databasearkitektur og -implementering
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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 tidMinimere databehandlingskostnadenMinimere lagringskostnadenMinimere dataoverføringskostnaden
Målene kan være motstridende
Ikke skjemaarkitektur
Programanddata
Arkitektur med ett skjema
Program Data
Internalschema
Toskjema-arkitektur
Program Data
Internalschema
User
Externalschema
ANSI SPARC
En komité for standardisering av databaseteknologi (1972)
Fokuserte på grensesnittInternt
Konseptuelt
Eksternt
Storage view
Conceptuallevel
Internallevel
Externallevel
Database designer's view
Userview
Userview
Userview
Eksternt skjema
Systemet sett fra klientens side (view)Det kan være flere view
Konseptuelt skjema
Database designerens viewHele datamodellen
Inneholder alle filer (tabeller) og alle felter i tabelleneSkal være uavhengig av lagringsstrukturer og datatilgangsmekanismerKan inneholde beskrivelser som gjelder sikkerhet og integritet
Internt skjema
Laveste nivåGjelder lagring av og tilgang til dataInkluderer 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 diskaksessDisker er relativt langsomme sammenliknet med indre lager
Skrive brev sammenliknet med telefon
Disken er en flaskehalsHensiktsmessige datastrukturer kan redusere diskaksess
Databaseaksess (tilgang)
DBMSFile
managerDisk
manager
Recordrequest
Pagerequest
Readpage
command
Pageread
Pagereturned
Recordreturned
Disk
Disker
Data lagres som spor på en skive-overflateEn disk kan ha flere skiver som hver har to siderRotasjonsforsinkelse
Venting på at stedet der dataene som skal hentes kommer fram til lese/skrivehodetI størrelsesorden 5 ms for en harddiskRotasjonshastighet er bestemt av diskprodusenten
LesearmforsinkelseÅ flytte lese/skrive-hodet til sporet der dataene er lagret.Ca 10 ms for en harddisk.
BufferHarddisken 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 diskprodusentenArmforsinkelsen kan reduseres ved å lagre filene på
Samme sporSamme spor på hver overflate• Sylinder
Clustering
Poster som ofte hentes samtidig lagres sammenIntra-fil clustering
Poster i samme filSekvensiell fil
Inter-fil clusteringPoster i forskjellige filer• En nasjon og dens aksjer
STOCK
*stock codefirm namestock price
stock quantitystock dividend
stock PE
NATION
*nation codenation name
exchange rate
Disk manager
Administrerer fysisk I/OSer disken som en samling sider
Har en katalog over alle sider på diskenHenter og erstatter og administrerer ledige sider
DISK
*diskid
PAGE
*pageid
File manager
Administrerer lagring av filerSer disken som en samling lagrede filer
Hver fil har en unik identifikatorHver post i en fil har en unik post-identifikator
FILE
*fileid
RECORD
*recordid
DISK
*diskid
File managerens oppgaver
Lage en fil Slette en fil Hente en post fra en filOppdatere en post i en filLegge til en ny post i en filSlette en post fra en fil
Sekvensiell henting
Gitt en fil med 10000 poster som hver opptar en sideSpø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 diskaksesserIndeksen er mye mindre enn hele tabellen (kan lastes med få diskaksesser) og den er sortert (støtter dermed binærsøk)
CCCCEEFNNN
ITEMTYPEINDEX
ITEMTYPE ITEMNOITEM
ITEMNAME ITEMTYPE ITEMCOLOR12345678910
EENNNCCCCF
Pocket knife–NilePocket knife–ThamesCompassGeo positioning systemMap measureHat–polar explorerHat–polar explorerBoots–snakeproofBoots–snakeproofSafari chair
BrownBrown–––RedWhiteGreenBlackKhaki
Spørring ved hjelp av index
Les indeksen inn i indre lager (RAM)Let gjennom indeksen for å finne poster som møter vilkåretHent bare poster som inneholder dataene en leter etterResultat: 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 filaOppdatere indeksen
KompromissRaskere spørringerTregere oppdateringOppdatering 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 filEksistenstesting
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
ITEMCOLORINDEX
ITEMCOLOR Diskaddress
Black d9Brown d1Brown d2Green d8Khaki d10Red d6White d7– d3– d4– d5
ITEMTYPEINDEX
ITEMTYPE Diskaddress
C d6C d7C d8C d9E d1E d2F d10N d3N d4N d5
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 indekserBrukes ofte i relasjonsdatabaserGrunnlag for IBM’s VSAM som DB2 bygger påStøtter sekvensiell og direkte tilgangHar to deler
Sekvens-settetIndex settet
B-tre
Sekvenssettet er en indeks med pekere til posterIndexsettet er en tre-struktur som er index til sekvens-settet
1 4 5 6 19 20 26 28 29 32 33 34 40 42 46 50 54 57 63 67 82 86 93 94 95 96 98
•• • •• • •• •
•• •29
5 20
57
34 46 82 94
Index set
Sequence set
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.
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
Hashing
Er en teknikk for å redusere diskaksesser når en vil gå direkte til en gitt post.Unngår indeksAntall diskaksesser for å nå en post er nær énPrinsipp: Hashfeltet blir gjort om til en hashadresse ved å beregne en hashfunksjon
Hashing
hashadresse = rest ved divisjon av SSN med 10000
417-03-4356532-67-4356891-55-4356
043-15-1893
281-27-1502
417-03-4356 532-67-4356
891-55-4356
Disk address
4356
1893
1502
SSN
Synonym chain
043-15-1893
281-27-1502
Overflow areaFile space
•
•
• •
•
}
}
}
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 ytelsenPostene lagres ikke sekvensielt
Linked list
A structure for inter-file clusteringAn example of a parent/child structure
IndooroopillyRuby
•NarembeenPlum
•QueenslandDiamond
•MinnesotaGold
•GeorgiaPeach
•
Australia•
USA•• •
Linked lists
There can be two-way pointers, forward and backward, to speed up deletionEach 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
Itemcode Color Code Disk addressRed Green Blue A N
1001 0 0 1 0 1 d1
1002 1 0 0 1 0 d2
1003 1 0 0 1 0 d3
1004 0 1 0 1 0 d4
Bitmapindekser
En bitmapindaks sparer plass og dermed diskaksesser og tid sammenliknet med en vanlig indeks. Itemcode Color
Char(8)
Code
Char(1)
Disk address
1001 Blue N d1
1002 Red A d2
1003 Red A d3
1004 Green A d4
Joinindekser
Gir raskere join ved å lage en indeks for primærnøkkel/hovednøkkel-paretnation index stock index
natcode Disk address
natcode Disk address
UK d1 UK d101
USA d2 UK d102
UK d103
USA d104
USA d105
join index
nationdisk address
stockdisk address
d1 d101
d1 d102
d1 d103
d2 d104
d2 d105
Datakodingsstandarder
ASCIIUNICODE
ASCII
Hver alfabetisk, numerisk og spesialtegn er representert med en 7-bits kode. 128 mulige tegnASCII kode krever vanligvis én byte
UNICODEEn 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-scriptDekker de viktigste skrevne språkeneTo 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 XMLUNICODE 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
DatavolumVolatilitet – hvor fort endrer dataene segAksesshastighetLagringskostnaderLagringsmediets pålitelighetKrav til lagringstid
Leselighet på lang sikt
Pålitelighet
Magnetisk teknologi
Opp til 50 % av hardware-kostnaden i informasjonssystemer brukes på magnetisk lagringEt marked på $50 milliarderViktigste typen datalagringEn moden og utbredt teknologiSterke magneitske felter kan slette dataMagnetiseringen svekkes over tid
Harddisker
Forseglet og permanent montertSvært påliteligeAksesstider på 4-10 msOverføringshastigheter opp til 160 Mbytes/sKapasiteter fra Gbytes til Tbytes
Innmaten i en harddisk
RAID
Redundant arrays of inexpensive or independent disksUtnytter at store produksjonsvolumer til PC-markedet gir rimelige harddiskerKan også gi øket sikkerhetGir mindre sårbarhet for feil.Kan ikke erstatte jevnlig backup.
Speiling (Mirroring)
Data
Parity
Speiling (Mirroring)
WriteLike kopier av en fil skrives til hver disk i arrayen
ReadSide 1 leses fra disk 1, side 2 leses fra disk 2 osv.Sidene settes sammen i indre lagerAksesstiden deles med antall disker i arrayen
Lese-feilLes den ønskede siden fra en annen disk
KompromisserRaskere aksesstidStørre sikkerhetDiskplass
Striping
Data
Parity
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 sikkerehetWrite
Halvparten av fila til første diskHalparten av fila til andre diskParitet til tredje disk
ReadPorsjoner fra hver disk settes sammen i hukommelsen
LesefeilTapte biter rekonstrueres fra paritetsdata på den tredje disken
KompromisserBedret datasikkerhetBedre lagringskapasitet enn speilingTregere enn speiling
RAID levels
Alle nivåer unntatt 0 har felles trekk:Operativsystemet ser RAID-diskene som en logisk diskData er distribuert på flere diskerParitet brukes for å redde data i feilsituasjoner
RAID levels
Level 0Data er stripet (spredd) på flere diskerIngen redning når en disk svikter
Level 1Speiling: samme data på to diskerBrukes ved kritiske applikasjoner som ikke kan stoppe
Level 3Striping med paritet
Level 5En variant av stripingParitetsdata er spredd på flere diskerMindre kapasitet enn level 1Høyere I/O hastighet enn level 3
RAID 5
Data
Parity
Andre RAID-nivåer
Se http://www.acnc.com/04_01_53.html
RAID på UUS
Magnetisk teknologi
Utskiftbar magnetisk diskFloppydiskMagnetisk tapeMagnetisk tapekassettMasselager
Masselager på UUS
Solid StateTilkoples som diskstasjonerLagring på minnebrikker10 ganger raskere enn magnetisk minne, (fart begrenses av tilkoplingsmåten)Kr 20 per Mbyte (kr 1 per MB for lagringpenner)
Magnetisk disk er ca 0,005 kr per MB
Aksjehandel og video-streaming anvendelser
Optisk teknologi
Nyere teknologiBruker laser for å lese å skrive dataStore lagringstettheterLav kostnadDirekte tilgangEgnet for langtidslagringIngen fare for kollisjon mellom lesehode og medium
Optisk teknologi
Optical storage
WORMwrite once–ready many
CD-ROMwrite once–read many
Magneto-opticalwrite many–read many
DVDmultiple formats
CD-ROM
CD kan lagre både data og lydRimelig fordi samme komponenter kan brukes i CD spillere og CD-ROM stasjonerROM - read only memoryKapasitet 650 MBGanske langsomt utstyr
100 ms tilgangstid
CD-ROpptaksplaterDe fleste CD-R skrivere støtter inkremetnell skriving, hvor data kan lagres til en CD uten å fullføre sesjon eller CDMer data kan tilføres over tidCD kan ikke leses i en CD-ROM spiller før den er fullført (finalized)Billig lagringsmedium 3 for 650 MB=0,005 kr per megabyte. (Dyrere enn på harddisk)
CD-RW
ReWritableLeseren må være multiread kompatibelMange nyere CD-ROM lesere takler CD-RWKlart dyrere medium enn CD-R
WORM
Write-once read-manyPopulært for lagring av bilderHøy kapasitet
Opp til 30 GB
Relativt langsom100 - 200 ms tilgangstid
Juke-bokser for store datavolumerIkke så sikker som CD-ROM
Magneto-optisk disk
Lese-skrive-medium med høy kapasitet3.5" disk kan lagre opp til 256 MBIkke så rask som harddisk
10 ms aksesstid
KompaktPåliteligEgnet for dataoverføring, sikkerhetskopiering og arkivering
Digital Versatile Disc (DVD)
Samme fysiske størrelse som CD-ROM , men opp til 28 ganger så stor kapasitet (dvs 17 Gbytes)DVD stasjoner har sannsynligvis overføringshastigheter på ca 2,76 MB/s og aksesstid på 150 msDVD-ROM spilleren kan håndtere både CD og CD-ROMRead-only versjoner
DVD-Video (filmer)DVD-ROM (programvare)DVD-Audio (sanger)
DVD-R 3,9 GBRecordable (write once, read many)
DVD-RAM 2,6 GBSlettbar (write many, read many)
SANStorage area networkStøtter dynamisk deling av store datamengder uavhengig av operativsystem eller applikasjonKommuniserer via et hurtig Fibre Channel interface
Høyhastighetsforbindelse mellom datamaskiner
Prisene varierer i området fra $20-30,000 til 5 millioner
Levetid for lagrede data
PermanentHigh qualityNewspaper
PaperArchival quality (silver)
Medium-term filmMicrofilm
CD-R (recordable)CD-ROM (read only)
Optical disk Quarter-inch tape
VHS tapeHalf-inch tape cartridge
Half-inch reel-to-reelMagnetic tape
1 10 100 500
Storage life in years of high quality brands
Vurdering av lagringsenheter
Device Access speed
Volume Volatility Cost per megabyte
Reliability Legal standing
Solid state *** * *** * ** *
Fixed disk *** *** *** *** ** *
RAID *** *** *** ** *** *
Removable disk ** ** *** ** ** *
Floppy * * *** * * *
Tape * ** * *** ** *
Cartridge * *** * *** ** *
Mass storage * *** * *** ** *
SAN *** *** *** ** *** *
CD-ROM * ** * ** *** ***
CD-R * ** * ** *** **
CD-RW * ** * ** *** *
WORM * *** * *** *** **
Magneto-optical ** *** ** *** *** *
DVD-ROM * *** * *** *** ***
DVD-R * *** * *** *** **
DVD-RAM * *** ** *** *** *
DatakomprimeringKoding av digitale data, slik at de trenger mindre lagerplass (og mindre båndbredde)Tapsfri komprimering
Fila kan gjenopprettes slik den var
Komprimering med tapFila kan ikke gjenopprettes slik den varBrukes til bilder, audio og video
Tape eller DiskNærmer seg krysningspunkt
Men tape fortsatt billigstTape kr 700 for 300GB (kilde it-sjefen hos TV2 V2005)
Taperoboter fortsatt mye bruktDisk har store fordeler:
HurtighetHoldbarhetAlltid on-lineMen sammenkoplingsløsningene for et stort antall disker er fortsatt kostbar.