D B. Tiedostojen käsittely

Samankaltaiset tiedostot
D B. Levytiedostojen käsittely. Levytiedostojen käsittely

Levymuisti. R&G Chapter 8 & Tietokannan hallinta, kevät 2006, Jan 1

Tiedon talletuspaikkoja. Levymuisti. Vaihtoehtoisia talletusrakenteita. Tietokantojen säilytys. R&G Chapter 8 & 9. Useita vaihtoehtoja:

Tietokanta (database)

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Luento 2: Tiedostot ja tiedon varastointi

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

D B. Harvat hakemistot. Harvat hakemistot

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto

Algoritmit 2. Luento 5 Ti Timo Männikkö

VIS Online 2.0 version uudistukset

RATKI 1.0 Käyttäjän ohje

HELIA 1 (11) Outi Virkki Tiedonhallinta

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Algoritmit 2. Luento 5 Ti Timo Männikkö

Transaktiopalvelimen rakenne, s. 43. Levyjaksot, sivut ja tiedostot, s. 46. Tietokantasivujen puskurointi, s. 53. Tietokannan tila, s. 57.

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen

Helsingin yliopisto/tktl Tietokannan hallinta kevät Harri Laine 1 D B. Yksitasoiset talletusrakenteet

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet

Algoritmit 1. Luento 6 Ke Timo Männikkö

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 2. Luento 6 Ke Timo Männikkö

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1

Algoritmit 2. Luento 2 To Timo Männikkö

D B. Tietokannan hallinta kertaus

2. Tietokannan tallennusrakenteet

Algoritmit 2. Luento 6 To Timo Männikkö

LAS-TIEDOSTON SISÄLTÖ LIITE 2/1

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Tiedostojen siirto ja FTP - 1

Ohje 1 (12) Maarit Hynninen-Ojala MOODLE PIKAOHJE. Kirjautuminen Moodleen ja työtilan valitseminen

Tietorakenteet ja algoritmit

Algoritmit 1. Luento 7 Ti Timo Männikkö

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Algoritmit 1. Luento 4 Ke Timo Männikkö

RATKI 1.0 Talousraportin käyttäjän ohje

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Tiedostorakenteet.

3. Muuttujat ja operaatiot 3.1

HELIA 1 (15) Outi Virkki Tiedonhallinta

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

Algoritmit 2. Luento 3 Ti Timo Männikkö

Visma Nova. Visma Nova ASP käyttö ja ohjeet

Sisäänkirjaus Uloskirjaus. Yritystieto

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 D B. Harvat hakemistot. Harvat hakemistot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

D B. Harvat hakemistot

A TIETORAKENTEET JA ALGORITMIT

Algoritmit 2. Luento 3 Ti Timo Männikkö

Lukkarikone Pikaohjeet v. 1.0

2 Eläinlistan kautta voidaan tallentaa tietoja kuolleille eläimille

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tietokantaoperaatioiden toteutuksesta 3. Harri Laine 1

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Algoritmit 2. Luento 2 Ke Timo Männikkö

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Tieto- ja tallennusrakenteet

Seminaari: Keskusmuistitietokannat. Keskusmuistitietokantojen samanaikaisuuden hallinta Ilkka Pullinen

Kurssien lukulistojen ylläpito Nellissä ja siirto Moodleen

NOVAPOINT Soundings Editor 3.3

GDAL ja WFS: suora muunnos ogr2ogr-ohjelmalla

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

Larppa-laskutusohjelma v1.1 Ohje

eshop lisenssiopas Ohjelmistolisenssiopas 2013

Kansionäkymä listasta suuriin kuvakkeisiin

2 Konekieli, aliohjelmat, keskeytykset

Käyttöjärjestelmän rakenne

Liite 7: Asiakastietoa käsittelevä järjestelmä Sosiaalihuollon asiakastiedon arkisto. Rajapintakäyttötapaukset

DL SOFTWARE Uumajankatu 2 Umeågatan FIN VAASA/VASA FINLAND +358-(0) Fax +358-(0)

CUDA. Moniydinohjelmointi Mikko Honkonen

Asiakastietoa käsittelevä järjestelmä. Rajapintakäyttötapaukset

VÄLIMUISTITIETOISET PUSKURIT. Markus Montonen

Lue ohjeet huolellisesti ennen laitteen käyttöä.

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

Kuva: Ilpo Okkonen

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

SISÄLLYSLUETTELO. Word Sisällysluettelo

MP3 Manager Software for Sony Network Walkman

Asiakastietoa käsittelevä järjestelmä. Rajapintakäyttötapaukset

Ohjelmoinnin perusteet Y Python

Järjestelmän ulkoinen muisti I/O

Tietojen haku tuotannonohjausjärjestelmästä ja lähettäminen Minun Maatilani -ohjelmistolle MMAmmuLinkillä

TIMMI-TILAVARAUSOHJELMISTO

Versiohallinta ja Subversion Maunu Tuomainen

Sisältö. 2. Taulukot. Yleistä. Yleistä

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Transkriptio:

Tietokantojen tietoja säilytetään yleensä apumuistissa, lähinnä levymuisteissa Apumuistiin tallentamisen merkittäviä etuja keskusmuistiin nähden ovat tiedon säilyvyys (virtakatkon yli) säilytyskapasiteetin edullisuus keskusmuistiin verrattuna, ja suuremmat tallennusvolyymit keskusmuistiakin mitataan nykyään jo gigatavuissa mutta tietokantoja jopa teratavuissa 1

Levymuistin merkittävin huono puoli keskusmuistiin nähden on tiedon hidas saantiaika Keskusmuistissa saantiaika on kymmeniä nanosekunteja, luokkaa 10-50 ns Levymuistista saantiaika on luokkaa 5-10 millisekuntia (ms) eli 5,000,000-10,000,000 ns eli 100 000 1M hakua keskusmuistista yhtä levyhakua kohti 2

Tiedostoja on eri luonteisia: Tiedostoa voidaan käsitellä yhtenä kokonaisuutena (esimerkiksi kuvatiedostot), jolloin tiedosto ladataan käsittelyä varten kokonaisuudessaan keskusmuistiin ja samoin tallennetaan kokonaisuutena Tietokantojen yhteydessä tiedostot hahmotetaan yleensä tietueiden joukkoina (file of records). Käsiteltävät kokonaisuudet voivat tällöin olla yksittäisiä tietueita tai useiden tietueiden joukkoja. Kummatkin abstraktiot ovat tarjolla useimmissa ohjelmointikielissä. Tällä kurssilla käsitellään tietueiden joukko abstraktion mukaisia tiedostoja. 3

Ohjelmointikielissä tietueiden joukkoa voidaan käsitellä joko peräkkäissaantirakenteena (sequential access) tai suorasaantirakenteena (direct access) Suorasaantitiedostossa (direct access file) tietue (record) voidaan osoittaa haun (tai tallennuksen) kohteeksi tiedoston sisäisen tietuetunnuksen (record identifier, rid) (=osoitteen) perusteella. Tällainen tunnus voi olla esimerkiksi tietueen järjestysnumero tai tavuosoite tiedoston alusta laskettuna. Peräkkäissaantitiedostossa tietuetta ei voida hakea osoitteen perusteella vaan tiedostoa on käytävä läpi tietue kerrallaan alusta alkaen kunnes haluttu tietue löytyy. 4

Tyypillisiä tiedostoon kohdistuvia operaatioita ovat: avaus (open) haetaan tiedoston liittyvät metatiedot (tiedostokuvaaja, file header) ja alustetaan tiedoston käsittelyyn tarvittavat tietorakenteet sulkeminen (close) tiedoston käsittelyyn varatut resurssit vapautetaan siirtyminen alkuun (reset), vuorossa olevan tietueen osoitin siirretään tiedoston alkuun. 5

ensimmäisen ehdon täyttävän tietueen haku (find first) ensimmäinen hakuehdon täyttävä tietue haetaan ohjelman työalueelle eri tiedostorakenteet tukevat erilaisia hakuehtoja yksinkertaisimmassa tapauksessa käytettävissä on vain haku tietueen tunnisteen (osoitteen) perusteella seuraavan hakuehdon täyttävän tietueen haku (find next) 6

tietueen poisto (delete) - tietue poistetaan tiedostosta tietueen muutos (modify) jonkin tietoalkion arvon suhteen muuttunut tietue korvaa olemassa olevan tietueen tietueen lisäys (insert) tiedostoon lisätään tietue Tiedoston ylläpito-operaatioiden tarjonta riippuu tiedostorakenteesta. Kaikki rakenteet eivät esimerkiksi tue poisto-operaatiota, vaan koko tiedosto poistettavaa tietuetta lukuun ottamatta on kirjoitettava uusiksi ja tällä tiedostolla on sitten korvattava edellinen versio. 7

Apumuistiin tallennettuja tietoja ei siirretä suoraan apumuistista ohjelman työtilaan vaan siirto tapahtuu puskureiden (buffer) kautta Kun ohjelma haluaa hakea tietyn tietueen, on tietueen sisältävä sivu (page) haettava ensin johonkin puskurikehykseen (buffer frame), jonka jälkeen tietue voidaan siirtää ohjelman työtilaan. Puskurikehysten koon ja tiedoston sivukoon on vastattava toisiaan. Tiedoston käsittelyä varten on yleensä käytössä usean puskurikehyksen puskuriallas (buffer pool) 8

Tiedostorakennetason näkemys: tiedostossa on osoitettavissa olevia tietueita 1 2 3 4 5 6 7 Puskurinhallintatason näkemys: tietueet on sijoitettu sivuille, sivuja käsitellään puskureiden kautta : sivu 1 sivu 2 sivu 3 1 2 3 4 5 6 7 allas puskurikehys 1 puskurikehys 2 sivun 2 kopio kehyksessä 2 4 5 6 6 tietueen 6 kopio ohjelman työtilassa 9

Tietueen haku ohjelman käyttöön, karkea algoritmi: tiedostorakenne.hae_tietue(tietuetunnus rid, muuttuja m) { sivuosoite os = tiedostorakenne.päättele_sivu_tietueelle(rid); puskurikehys p = puskurinhallinta.anna_sivu(os); paikka offs= tiedostorakenne.päättele_sijainti(tietuelle rid, kehyksessä p); tiedostorakenne.siirrä(muutujaan m, kehyksestä p, kohdasta offs); } 10

puskurikehys puskurinhallinta.anna_sivu(os) { puskurikehys q = puskurinhallinta.missä_kehyksessä_on_sivu(os); jos (q==null) { // ei ole missään q= puskurinhallinta.valitse_vapaa_puskuri(); puskurinhallinta.lataa_sivu(puskuriin q sivu os); puskurinhallinta.naulitse(sivu os puskuriin q); } muuten { puskurinhallinta.naulitse(sivu os puskuriin q); } palauta_osoitin_puskuriin q; } 11

Puskurinhallinnan on tiedettävä minkä sivun kopioita puskurikehyksissä on ja mitkä puskurikehykset ovat vapaina tiedonsiirtoa varten. Naulitsemismenettelyllä (fix, pinning) pidetään kirjaa varatuista puskurikehyksistä naulitseminen kasvattaa kehyksen käyttäjälaskuria (pin counter). Kun sivun tarvitsija on käsitellyt sivun se ilmoittaa vapauttavansa puskurikehyksen (unfix), jolloin laskurin arvoa vähennetään. Kun yksikään prosessi ei enää tarvitse kehyksessä olevaa sivua, on kehys vapaa uudelleenkäyttöön. 12

Myös kirjoitukset levylle tapahtuvat puskureiden kautta. Uusi tai muuttunut tietue siirretään puskurikehykseen. Puskurikehys merkitään muuttuneeksi (dirty). Kun prosessi on vapauttanut kehyksen, puskurienhallinta siirtää kehyksessä olevan sivun aikanaan levylle. Muutos voi kasvattaa sivun sisältöä niin, ettei se enää mahdu kehykseen. Tällöin otetaan tyypillisesti käyttöön ylivuotosivu, joka linkitetään alkuperäiseen sivuun. 13

Tietueen pituus kasvaa: sivu 1 sivu 2 sivu 3 tiedosto 1 2 3 4 5 6 7 allas puskurikehys1 puskurikehys 2 4 5 6 sivun 2 kopio kehyksessä 2 korvaava: 6* 14

Levyn tilanne hetkellisesti erilainen kuin puskureiden sivu 4 sivu 1 sivu 2 sivu 3 1 2 3 4 5 6 7 puskurikehys 1 puskurikehys 2 linkki allas 6B 4 5 6A jaettu sivun 4 kopio (2:n ylivuoto) kehyksessä 1 sivun 2 kopio kehyksessä 2 6A 6B 15

Jos puskurialtaat eivät ole prosessikohtaisia, voi usea prosessi saada edellä hahmotellussa puskurikäsittelyssä haltuunsa osoittimen samaan puskurikehykseen ja voisi siis käsitellä puskurissa olevia tietoja. Tästä aiheutuvia samanaikaisuusongelmia hoidetaan salpojen (latch) avulla. salpoja on kahta tyyppiä lukusalpoja (read latch) - sallii muiden lukea ja kirjoitussalpoja (write latch) estää muilta kaiken prosessoinnin Vain yhdellä prosessilla voi olla kirjoitussalpa hallussaan 16

Sivulla voi olla useita tietueita tai olla vain osa tietueesta (tietue voi jakautua useille sivuille). Sivu on abstraktio fyysisen levyn lohko (block) käsitteestä. Joissakin järjestelmissä on mahdollista siirtää kerralla useampien lohkojen ryppäitä (cluster). Tällöin sivu vastaisi rypästä. Jos tietue jakautuu useille sivuille käytetään usein edellisen kuvan mallin mukaista ylivuotosivua 17

hae tietue hae seuraava poista tietue tiedostorakennetaso hae sivu lue sivu vie sivu puskurien hallinta kirjoita sivu laiteohjain piilottaa ylemmiltä tasoilta tiedon siitä onko sivu levyllä vai valmiina puskurissa loogisista osoitteista fyysisiin 18

Tiedostorakennetason käsittelyssä hakuoperaation hakukriteerinä voi olla jonkin tietoalkion arvo. Puskuritason hakuoperaatiossa sivu haetaan loogisen sivuosoitteen perusteella Yhtä puskuria voi samanaikaisesti käsitellä vain yksi prosessori. Puskureiden ja apumuistin väliseen tiedonsiirtoon käytetään erillistä I/O- prosessoria. Täten yhdessä puskurissa olevaa tietoa pystytään käsittelemään samanaikaisesti kun toiseen puskuriin kohdistuu tiedonsiirtoa. 19