Tiedostorakenteet RG Chapter 9 12122021 Tietokannan hallinta kevt
- Slides: 24
Tiedostorakenteet R&G Chapter 9 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 1
Tiedostorakenteet • Tiedostojen tehokkuutta yhtä kyselyä kohti arvioidaan usein tarvittavien levyhakujen määrällä. – kuten levykäsittelyn yhteydessä todettiin levyhakuja on kahden tyyppisiä: • satunnaishakuja ja • peräkkäishakuja 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 2
Tiedostorakenteet • Kokonaistehokkuuteen vaikuttaa myös puskureiden määrä – ’oikean levyhaun’ tarpeen todennäköisyys vähenee puskureiden määrän kasvaessa. • Myös levyjen ominaisuudet ja verkkoyhteyksien nopeus vaikuttavat kokonaistehokkuuteen. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 3
Tiedostorakenteet • Levyhakujen määrä on yksinkertainen ja selkeä tehokkuusmitta: – ei riipu laitteistosta – riippuu tiedostorakenteesta – arvioinnissa voi käyttää keskiarvoja, maksimia, jne. vrt. tietorakenteiden analyysi 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 4
Tiedostorakenteet • Tiedostorakenteen tasolla vaikuttavia tekijöitä ovat mm. – tietueiden järjestys – tietueiden sijainti suhteessa toisiinsa – miten tietueita kytketään • tiedoston sisällä • tiedostojen välillä • käytetäänkö suoria osoitepohjaisia kytkentöjä vaiko relaatiokantojen avainperustaisia epäsuoria kytkentöjä 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 5
Tiedostorakenteet • Tiedostorakenteet tarjoavat tiedostojen käsittelyyn varsinaisten datatietueiden sijoittelun lisäksi erilaisia apurakenteita (indeksejä), joilla pyritään nopeuttamaan käsittelyä. • Relaatiotietokantojen avainperusteiset kytkennät vaativat apurakenteita toimiakseen tehokkaasti. • Apurakenteet vaativat levytilaa, puskuritilaa, omia ylläpitotoimia lisäysten ja muutosten yhteydessä. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 6
Tiedostorakenteet • Tietokannan kokonaistehokkuuteen vaikuttaa myös erilaisten tietokantaoperaatioiden osuus ja jakautuma kokonaiskuormassa. – paljonko on tietyn tyyppisiä kyselyjä, milloin – paljonko on lisäyksiä, miten ne jakautuvat • Operaatioiden tarpeet voivat olla ristiriitaisia. • Kuorma ei välttämättä pysy samanlaisena vaan muuttuu ajan myötä. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 7
Järjestämätön peräkkäisrakenne (kasa) • Järjestämättömässä peräkkäisrakenteessa eli kasassa (heap) tietueet sijoitetaan peräkkäin tiiviisti tiedoston sivuille lisäysjärjestyksessä - uusi tietue lisätään aina tiedoston loppuun. • Rakenne on useissa tkhj: ssä taulujen toteutuksen perusrakenne. • Rakenne soveltuu hyvin peräkkäiskäsittelyyn, jossa tietueiden järjestyksellä ei ole merkitystä. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 8
Järjestämätön peräkkäisrakenne (kasa) • Taulun perustaminen create table –lauseella luo tyhjän kasan – Yleensä tämä tarkoittaa yhtenäisen sivualueen varaamista tiedostolle, alueen koko voi olla järjestelmän päättämä tai siihen voi vaikuttaa esim. järjestelmäparametreilla tai create table –lauseella. – Oraclen käyttää tästä alkuvarauksesta nimitystä initial extent ja sen koon voi määritellä taulukohtaisesti. – jos tiedosto kasvaa niin suureksi, ettei se enää mahdu alkuperäiselle sivualueelle otetaan käyttöön jatkoalueita. Tyypillisesti alueet kytketään ketjurakenteeksi. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 9
Järjestämätön peräkkäisrakenne (kasa) • Lisäys kasarakenteessa on nopeaa. – Haetaan tiedoston viimeinen sivu ja lisätään tietue sinne. Ellei tietue mahdu sivulle otetaan käyttöön seuraava sivu. – Korkeintaan 2 levyhakua (oletetaan kuvaajan olevan muistissa). 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 10
Järjestämätön peräkkäisrakenne (kasa) • Jos tiedostossa on N sivua, vaatii tietueen haku avaimen perusteella keskimäärin N/2 levyhakua. • Yleensä kasarakennetta ei käytetäkään yksinään, vaan sen päälle rakennetaan tiheitä indeksejä tehostamaan hakuja. – esimerkiksi Oraclessa avaimen määrittely luo automaattisesti avainperustaisen indeksin. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 11
Järjestämätön peräkkäisrakenne (kasa) • Tietueen poisto edellyttää: 1. Tietueen hakua rakenteesta. 2. Tietueen poistamista haetulta sivulta, joko merkitsemällä tietue poistetuksi tai tiivistämällä sivu. 3. Muuttuneen sivun vientiä takaisin levylle. • Poistojen seurauksena sivuille tulee tyhjää tilaa ja tiedoston täyttösuhde pienenee. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 12
Järjestämätön peräkkäisrakenne (kasa) • Jos poisto tyhjentää koko sivun, voidaan sivu liittää vapaiden sivujen ketjuun uudelleenkäytettäväksi. • Vaihtuvapituisten tietueiden muutokset voivat kasvattaa tietueen pituutta. – Tietueiden pituuden kasvuun voidaan varautua jättämällä sivuille kasvuvaraa eli sivuja ei täytetä heti aluksi tiiviisti vaan vaikkapa vain 70 prosenttisesti. – Voi käydä myös niin, että kasvanut tietue ei enää mahdu sivulle. Tällöin käytetään tyypillisesti ylivuotosivuja tietueiden ylivuotaneiden osien tallennukseen. Tietueita ei siirretä kokonaan toiselle sivulle, koska silloin jouduttaisiin ylläpitämään indeksejä. Ylivuotosivut ovat huonoja peräkkäiskäsittelyn kannalta. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 13
Järjestämätön peräkkäisrakenne (kasa) • Poistot ja muutokset degeneroivat rakennetta – rakenteesta tulee harva ja epäyhtenäinen – rakenne voidaan korjata ajoittaisin uudelleenorganisoinnein • uudelleenorganisoinnissa luodaan uusi kasarakenne ja korvataan sillä vanha • kaikki vanhan rakenteen varaan rakennetut indeksit on rakennettava uudelleen. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 14
Kasarakenne listana Tieto Sivu 1 Tieto Sivu 2 Tieto Sivu N Käytetyt sivut Otsikko sivu Tieto Sivu 1 12/12/2021 Tieto Sivu 2 Tietokannan hallinta, kevät 2006, Jan Lindström Tieto Sivu K Vapaat sivut 15
Kasarakenne hakemistona Tieto sivu 1 Otsikko sivu Tieto sivu 2 hakemisto 12/12/2021 Tieto sivu N Tietokannan hallinta, kevät 2006, Jan Lindström 16
Järjestämätön peräkkäisrakenne (kasa) • Tarkastellaan taulua employee. Oletetaan että taulussa on 8000 riviä (ei ihan pikkufirma). • Tehdään kysely select * from employee where ssn=’ 1234567’ • Joudutaan läpikäymään koko tiedosto ellei tiedetä, että ssn on avain ja keskimäärin puolet jos se on määritelty avaimeksi ja löytyy (ensimmäinen osuma on ainoa) siis keskimäärin 4000 riviä. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 17
Järjestämätön peräkkäisrakenne (kasa) • Olkoon levyn pyörimisnopeus on 100 kierrosta sekunnissa, lohkokoko 4 K tavua, uralla 50 lohkoa, levypintoja 12 sekä täyttösuhde 80%. • Yhden Employee-tietueen keskipituus voisi olla 300 tavua. • Lohkossa olisi tällöin keskimäärin 10 tietuetta, uralla 500 ja sylinterillä 6000, eli tarvitaan 2 sylinteriä ja yhteensä 16 kierrosta koko tiedoston siirtämiseen eli maksimissaan 16*10 ms=160 ms +kohdistusaika +pyörähdysviive (yht. 10 ms), eli noin 170 ms ja avainpohjaisessa haussa keskimäärin puolet tästä eli n 85 ms (olettaen, että tietue löytyy). 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 18
Järjestetty peräkkäisrakenne • Sequential file • Tietueet sijaitsevat tiedostossa jonkin kentän (esimerkiksi työntekijänumeron) mukaan järjestettyinä. – Tietueiden järjestys on jokin tyypillisesti käsittelyssä usein tarvittava järjestys – Rakenne tukee tietueiden käsittelyä peräkkäin halutussa järjestyksessä 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 19
Järjestetty peräkkäisrakenne • Lisäykset pitää järjestetyssä peräkkäisrakenteessa sijoittaa oikealle kohdalleen järjestyksessä. 10 20 30 40 50 60 70 80 90 100 45 • Pahimmassa tapauksessa pitäisi siirtää koko tiedoston loppuosa uusiin paikkoihin. • Yleensä jätetään lisäyksille tilaa sivuille – täyttösuhde jää alhaiseksi. • Jos sivulle tulee lisäys, joka ei mahdu sinne, otetaan käyttöön ylivuotosivu, joka linkitetään sivuun. Lisäysten kasautuessa ylivuotoketjusta voi tulla pitkä. 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 20
Järjestetty peräkkäisrakenne • Poistot ja muutokset tehdään kuten kasarakenteeseen. • Tietueen haku tiedostosta järjestysavaimen perusteella vaatii tiedostoa läpilukemalla saman verran levyhakuja kuin kasarakenteessa, jos tietue löytyy eli N/2. Löytymättömyys voidaan todeta keskimäärin samalla levyhakujen määrällä. Tässä suhteessa rakenne on parempi kuin kasa. • Järjestetty peräkkäisrakenne tukee myös järjestysavaimeen perustuvia arvovälihakuja sekä erisuuruusvertailuja !=, <, <= 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 21
Järjestetty peräkkäisrakenne • Järjestetty peräkkäisrakenne mahdollistaa myös binäärihaun käytön. • Periaate: – Etsi tietuetta tiedoston keskimmäiseltä (k=roof(N/2)) sivulta – Jos ei löytynyt ja avain<sivun pienin avain, jatka samalla periaatteella sivuilta 1. . k-1. – Jos ei löytynyt ja avain>sivun suurin avain, jatka samalla periaatteella sivuilta k+1. . N. – Haku päättyy kun • tietue löytyy tai • tietuetta ei löydy sivulta mutta avain sijoittuu sivun pienimmän ja suurimman avaimen väliin (ei ole tiedostossa) tai • etsintää pitäisi jatkaa tyhjästä sivujoukosta 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 22
Järjestetty peräkkäisrakenne • Binäärihaussa tarvitaan enintään roof(log 2 N) levyhakua. • (roof(x) = pienin kokonaisluku, joka on suurempi kuin x) • Aiemman esimerkin 8000 employee-tietueen tiedostossa oli 800 lohkoa, eli tietueen haku järjestysavaimen perusteella vaatisi enintään roof(log 2 800) = 10 levyhakua, joka satunnaishakuajalla laskettuna samalla n 10 ms satunnaishakuajan levyllä olisi samaa luokkaa kuin keskimääräinen saantiaika kasarakenteesta (100 ms vs 85 ms). 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 23
Järjestetty peräkkäisrakenne • Järjestetty peräkkäisrakenne ei ole tyypillinen tietokantojen yhteydessä käytetty tiedostorakenne • Vanhanaikaisissa eräsovelluksissa se oli laajasti käytetty – soveltuu erityisen hyvin tilanteisiin, jossa pitää tahdistaa usean laajan aineiston käsittely 12/12/2021 Tietokannan hallinta, kevät 2006, Jan Lindström 24
- Ketterä toimitusketju
- Petri heimonen
- Htpps //hallinta.amkvalintakoe.fi
- Karies käypä hoito
- Sopimusriskit
- The red tent book summary
- Summary of gatsby chapter 8
- Chapter 10 chapter assessment chemical reactions answers
- Chapter 11 assessment chemistry
- Chapter 9 chemical reactions test answers
- Similarity ratio definition
- Chapter 6: career readiness
- 7 ionic and metallic bonding
- Chapter 9 surface water chapter assessment answer key
- Chapter 2 chapter assessment representing motion
- Chemistry central science 14th edition
- Chapter 7 ionic and metallic bonding assessment answer key
- Section 1 population dynamics answer key
- Chapter 2 chapter assessment
- Book of philippians background
- Ionic compound properties
- Chapter 7 chapter assessment ionic compounds and metals
- Representative metal
- Zeta phi beta closing prayer
- Working with young children chapter 1