databasearkitektur og -implementering

70
Databasearkitektur og -implementering We shape our buildings: thereafter they shape us Winston Churchill

Upload: ingo

Post on 07-Jan-2016

38 views

Category:

Documents


5 download

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 Presentation

TRANSCRIPT

Page 1: Databasearkitektur og -implementering

Databasearkitektur og -implementering

We shape our buildings: thereafter they shape us

Winston Churchill

Page 2: Databasearkitektur og -implementering

Databasearkitektur og -implementering

En arkitektur skal Svare på spørringer innen rimelig tidMinimere databehandlingskostnadenMinimere lagringskostnadenMinimere dataoverføringskostnaden

Målene kan være motstridende

Page 3: Databasearkitektur og -implementering

Ikke skjemaarkitektur

Programanddata

Page 4: Databasearkitektur og -implementering

Arkitektur med ett skjema

Program Data

Internalschema

Page 5: Databasearkitektur og -implementering

Toskjema-arkitektur

Program Data

Internalschema

User

Externalschema

Page 6: Databasearkitektur og -implementering

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

Page 7: Databasearkitektur og -implementering

Eksternt skjema

Systemet sett fra klientens side (view)Det kan være flere view

Page 8: Databasearkitektur og -implementering

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

Page 9: Databasearkitektur og -implementering

Internt skjema

Laveste nivåGjelder lagring av og tilgang til dataInkluderer indeksering og postrekkefølge

Page 10: Databasearkitektur og -implementering

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

Page 11: Databasearkitektur og -implementering

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

Page 12: Databasearkitektur og -implementering

Databaseaksess (tilgang)

DBMSFile

managerDisk

manager

Recordrequest

Pagerequest

Readpage

command

Pageread

Pagereturned

Recordreturned

Page 13: Databasearkitektur og -implementering

Disk

Page 14: Databasearkitektur og -implementering

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.

Page 15: Databasearkitektur og -implementering

Minimere tilgangstid

Rotasjonsforsinkelsen er bestemt av diskprodusentenArmforsinkelsen kan reduseres ved å lagre filene på

Samme sporSamme spor på hver overflate• Sylinder

Page 16: Databasearkitektur og -implementering

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

Page 17: Databasearkitektur og -implementering

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

Page 18: Databasearkitektur og -implementering

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

Page 19: Databasearkitektur og -implementering

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

Page 20: Databasearkitektur og -implementering

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.

Page 21: Databasearkitektur og -implementering

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

Page 22: Databasearkitektur og -implementering

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.

Page 23: Databasearkitektur og -implementering

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.

Page 24: Databasearkitektur og -implementering

Bruk av indekser

Sekvensiell gjennomgang av en del av en filEksistenstesting

Finne ut om en post eksisterer uten å måtte hente den.

Page 25: Databasearkitektur og -implementering

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

Page 26: Databasearkitektur og -implementering

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

Page 27: Databasearkitektur og -implementering

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

Page 28: Databasearkitektur og -implementering

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

Page 29: Databasearkitektur og -implementering

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

Page 30: Databasearkitektur og -implementering

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

• •

}

}

}

Page 31: Databasearkitektur og -implementering

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

Page 32: Databasearkitektur og -implementering

Linked list

A structure for inter-file clusteringAn example of a parent/child structure

IndooroopillyRuby

•NarembeenPlum

•QueenslandDiamond

•MinnesotaGold

•GeorgiaPeach

Australia•

USA•• •

Page 33: Databasearkitektur og -implementering

Linked lists

There can be two-way pointers, forward and backward, to speed up deletionEach child can have a pointer to its parent

Page 34: Databasearkitektur og -implementering

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

Page 35: Databasearkitektur og -implementering

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

Page 36: Databasearkitektur og -implementering

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

Page 37: Databasearkitektur og -implementering

Datakodingsstandarder

ASCIIUNICODE

Page 38: Databasearkitektur og -implementering

ASCII

Hver alfabetisk, numerisk og spesialtegn er representert med en 7-bits kode. 128 mulige tegnASCII kode krever vanligvis én byte

Page 39: Databasearkitektur og -implementering

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

Page 40: Databasearkitektur og -implementering

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

Page 41: Databasearkitektur og -implementering

Nøkkelvariabler ved valg av lagringsenheter

DatavolumVolatilitet – hvor fort endrer dataene segAksesshastighetLagringskostnaderLagringsmediets pålitelighetKrav til lagringstid

Leselighet på lang sikt

Pålitelighet

Page 42: Databasearkitektur og -implementering

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

Page 43: Databasearkitektur og -implementering

Harddisker

Forseglet og permanent montertSvært påliteligeAksesstider på 4-10 msOverføringshastigheter opp til 160 Mbytes/sKapasiteter fra Gbytes til Tbytes

Page 44: Databasearkitektur og -implementering

Innmaten i en harddisk

Page 45: Databasearkitektur og -implementering

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.

Page 46: Databasearkitektur og -implementering

Speiling (Mirroring)

Data

Parity

Page 47: Databasearkitektur og -implementering

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

Page 48: Databasearkitektur og -implementering

Striping

Data

Parity

Data lagres noe på den ene og noe på den andre disken. Sikkerhet kan ivaretas med en egen paritetsdisk.

Page 49: Databasearkitektur og -implementering

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

Page 50: Databasearkitektur og -implementering

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

Page 51: Databasearkitektur og -implementering

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

Page 52: Databasearkitektur og -implementering

RAID 5

Data

Parity

Page 53: Databasearkitektur og -implementering

Andre RAID-nivåer

Se http://www.acnc.com/04_01_53.html

Page 54: Databasearkitektur og -implementering

RAID på UUS

Page 55: Databasearkitektur og -implementering

Magnetisk teknologi

Utskiftbar magnetisk diskFloppydiskMagnetisk tapeMagnetisk tapekassettMasselager

Page 56: Databasearkitektur og -implementering

Masselager på UUS

Page 57: Databasearkitektur og -implementering

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

Page 58: Databasearkitektur og -implementering

Optisk teknologi

Nyere teknologiBruker laser for å lese å skrive dataStore lagringstettheterLav kostnadDirekte tilgangEgnet for langtidslagringIngen fare for kollisjon mellom lesehode og medium

Page 59: Databasearkitektur og -implementering

Optisk teknologi

Optical storage

WORMwrite once–ready many

CD-ROMwrite once–read many

Magneto-opticalwrite many–read many

DVDmultiple formats

Page 60: Databasearkitektur og -implementering

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

Page 61: Databasearkitektur og -implementering

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)

Page 62: Databasearkitektur og -implementering

CD-RW

ReWritableLeseren må være multiread kompatibelMange nyere CD-ROM lesere takler CD-RWKlart dyrere medium enn CD-R

Page 63: Databasearkitektur og -implementering

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

Page 64: Databasearkitektur og -implementering

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

Page 65: Databasearkitektur og -implementering

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)

Page 66: Databasearkitektur og -implementering

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

Page 67: Databasearkitektur og -implementering

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

Page 68: Databasearkitektur og -implementering

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 * *** ** *** *** *

Page 69: Databasearkitektur og -implementering

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

Page 70: Databasearkitektur og -implementering

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.