1 / 70

Databasearkitektur og -implementering

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

ingo
Download Presentation

Databasearkitektur og -implementering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. Ikke skjemaarkitektur

  4. Arkitektur med ett skjema

  5. Toskjema-arkitektur

  6. ANSI SPARC • En komité for standardisering av databaseteknologi (1972) • Fokuserte på grensesnitt • Internt • Konseptuelt • Eksternt

  7. Eksternt skjema • Systemet sett fra klientens side (view) • Det kan være flere view

  8. 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

  9. Internt skjema • Laveste nivå • Gjelder lagring av og tilgang til data • Inkluderer indeksering og postrekkefølge

  10. 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

  11. 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

  12. Databaseaksess (tilgang)

  13. Disk

  14. 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.

  15. Minimere tilgangstid • Rotasjonsforsinkelsen er bestemt av diskprodusenten • Armforsinkelsen kan reduseres ved å lagre filene på • Samme spor • Samme spor på hver overflate • Sylinder

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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.

  21. 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)

  22. 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.

  23. 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.

  24. Bruk av indekser • Sekvensiell gjennomgang av en del av en fil • Eksistenstesting • Finne ut om en post eksisterer uten å måtte hente den.

  25. 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

  26. 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

  27. B-tre • Sekvenssettet er en indeks med pekere til poster • Indexsettet er en tre-struktur som er index til sekvens-settet

  28. 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.

  29. 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

  30. 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 •

  31. 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

  32. Linked list • A structure for inter-file clustering • An example of a parent/child structure

  33. Linked lists • There can be two-way pointers, forward and backward, to speed up deletion • Each child can have a pointer to its parent

  34. 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

  35. Bitmapindekser • En bitmapindaks sparer plass og dermed diskaksesser og tid sammenliknet med en vanlig indeks.

  36. Joinindekser • Gir raskere join ved å lage en indeks for primærnøkkel/hovednøkkel-paret

  37. Datakodingsstandarder • ASCII • UNICODE

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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. Innmaten i en harddisk

  45. 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.

  46. Speiling (Mirroring)

  47. 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

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

  49. 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

  50. 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

More Related