oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

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

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

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

D B. Harvat hakemistot. Harvat hakemistot

D B. Harvat hakemistot

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

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

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

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

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

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

D B. Tietokannan hallinta kertaus

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa

Luento 2: Tiedostot ja tiedon varastointi

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

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

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

B-puu. 3.3 Dynaamiset hakemistorakenteet

Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.

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

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

HELIA 1 (15) Outi Virkki Tiedonhallinta

2. Tietokannan tallennusrakenteet

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

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

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

D B. Tiedostojen käsittely

Tietokanta (database)

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

Tieto ohjelmassa ja tietokoneella

Kyselyiden käsittely. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1

2. Tietokannan tallennusrakenteet

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Lisätään avainarvo 1, joka mahtuu lehtitasolle:

Visual Case 2. Miika Kasnio (C9767)

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

Tietokantakurssit / TKTL

HELIA 1 (11) Outi Virkki Tiedonhallinta

Lisätään avainarvo 6, joka mahtuu lehtitasolle:

Algoritmit 1. Luento 5 Ti Timo Männikkö

Ohjelmoinnin perusteet Y Python

Helsingin yliopisto/tktl Tietokannan hallinta, s Harri Laine 1 D B. Kyselyjen käsittely ja optimointi

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Kyselyjen käsittely

PALKKA-AINEISTON SIIRTOTIEDOSTO

Nelli Tiedonhakuportaali Kemi-Tornion ammattikorkeakoulun elektronisiin aineistoihin. Onnistuneita hetkiä Nellin parissa!

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Ohjelmoinnin perusteet Y Python

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Algoritmit 2. Luento 4 Ke Timo Männikkö

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

DOORS Word DOORS SoftQA Pekka Mäkinen

Algoritmit 2. Luento 5 Ti Timo Männikkö

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

DOORSin Spreadsheet export/import

2. Käsiteanalyysi ja relaatiomalli

D B. Kyselyjen käsittely ja optimointi. Kyselyjen käsittely ja optimointi

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Algoritmit 2. Luento 4 To Timo Männikkö

KOPIOLUETTELOINTI KANSALLISKIRJASTON TIETOKANNOISTA

Webforum. Version 15.1 uudet ominaisuudet. Päivitetty:

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Lukkarikoneen käyttöohje

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Pikaohje formaatin valmistamiseen

Tietueiden etsiminen:

OpenOffice.org Base 3.1.0

Web of ScienceTM Core Collection (1987-present)

Sisällysluettelo 1 Johdanto Root, koko Opalan pääkäyttäjä

Algoritmit 2. Luento 9 Ti Timo Männikkö

Esimerkkejä vaativuusluokista

Asiakastietojen tuominen toisesta tietokannasta etaika-ohjelmistoon. Kuinka yhdistän tietoja eri asiakastietokantojen välillä

Ohjelma on tarkoitettu pankkiyhteysohjelmalla vastaanotettujen Finvoiceverkkolaskujen

Uuden työ- tai mittavälineen luominen tietokantaan

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

ASUKASKYSELYOHJE Sivu 1 / 8. Kauppalehti Tietopalvelujen asiakaspalvelu vastaa lupahakemuksen tarkastamisesta ja luvan myöntää Väestörekisterikeskus.

Transkriptio:

Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi kasarakenteen päälle rakennettu rakenne, joka tarjoaa vaihtoehtoisen saantipolun, joidenkin kyselyjen toteutukseen oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Hakemisto voi olla myös välttämätön osa tiedostorakennetta (primary index, clustered index). Tällöin tiedoston tietueet järjestellään hakemiston tarpeiden mukaisesti.

Hakemistotyypeistä Hakemisto koostuu hakemistomerkinnöistä (index entry) perustuu johonkin muodostusperustaan (indexing field), eli yhteen tai useampaan tietueen kenttään on relaatiotietokantojen yhteydessä yleensä kentän koko arvoon perustuva tietueesta on samassa hakemistossa enintään yksi hakemistomerkintä vrt. esim. tekstitietokannoissa samaan hakemistoon voi tulla useita merkintöjä saman kentän (teksti) perusteella (jokainen kentässä oleva sana aiheuttaa merkinnän)

Hakemistotyypeistä Kokonaisiin arvoihin perustuva indeksi (kenttä TEXT): Index file has index entries Data file has data records TEXT: Index file has index entries Data file has data records DATA... data file file has has... avainsanaindeksi (samasta kentästä useita merkintöjä)

Hakemistotyypeistä Hakemisto voi olla tiheä (dense) tiheässä hakemistossa on hakemistomerkintä jokaista tiedoston tietuetta kohti (taulun riviä kohti) harva (sparse) harvassa hakemistossa on yksi hakemistomerkintä jokaista tietyllä periaatteella määräytyvää tietuejoukkoa kohti

Hakemistotyypeistä Hakemistomerkintä sisältää vähintään hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta tai tietuejoukosta tuotettu tunnus yleensä suoraan kentän arvo yhden tietuetunnisteen tai joukon tietuetunnisteita (mikäli sama avain esiintyy useassa tietueessa)

Hakemiston toteutuksesta Teknisesti hakemistokin on tiedosto muodostuu sivuista (hakemistosivu) hakemistomerkinnät ovat tietueita tarvitsee käsittelyä varten puskureita koska useat tietokantahaut saattavat edellyttää hakemiston käyttöä pyrkivät tkhj:ien puskurienhallintarutiinit suosimaan hakemistosivujen säilymistä puskureissa

Hakemiston toteutuksesta Hakemisto voitaisiin toteuttaa aiemmin käsiteltyjen tiedostorakenteiden avulla kasa, järjestetty peräkkäistiedosto, hajautusrakenne näistä käytännössä käytössä on vain hajautusrakenne ns. hash index rakenteena. Hakemistoja varten on kehitetty myös erityisiä hakemistokäyttöön tarkoitettuja rakenteita (esim. B+-puu, tarkastellaan myöhemmin)

Haku hakemistoa käyttäen on kaksivaiheista ensin etsitään hakemistomerkintä hakemistosivuilta ja hakemistomerkinnän perusteella haetaan tietueen (tietueet) sisältävä sivu(t) Tietueen hakua varten tarvitaan siis vähintään kaksi levyhakua (elleivät sivut ole puskurissa) Hakemistotietuetta voidaan joutua etsimään usealta hakemistosivulta. Koska hakemistomerkinnät ovat yleensä lyhyempiä kuin varsinaiset tietueet, niitä mahtuu sivulle useampia ja sivuja on vähemmän Seuraus: hakemiston kautta on nopeampi etsiä tietuetta

Ns. lihava hakemisto (fat index) sisältää varsinaisen hakukriteeritiedon lisäksi toistettua tietokannan dataa hakemistomerkinnässä esimerkiksi opiskelijatietojen hakua varten riittäisi tehdä hakemisto opiskelijanumeron perusteella, mutta koska opiskelijanumerolla haettaessa lähes aina kysytään opiskelijan nimeä otetaan nimikin mukaan hakemiston hakemistoavaimeen jos haku kohdistuu pelkästään hakemistomerkinnästä löytyvään tietoon ei varsinaista tietuetta tarvitse hakea lainkaan. Esimerkiksi Oracle tarjoaa yhtenä vaihtoehtona taululle index only -toteutusta. Tässä ratkaisussa ei ole lainkaan datatietueita vaan kaikki data on hakemistomerkinnöissä (tulee kyseeseen B+-puu toteutuksen yhteydessä).

Muutokset tiedostossa saattavat edellyttää muutoksia hakemistoon Tietueen lisäys tiedostoon edellyttää hakemistomerkinnän lisäämistä (tai merkintöjen muuttamista) kaikkiin kyseiseen tiedostoon liitettyihin tiheisiin hakemistoihin Tietueen poisto tiedostosta edellyttää tietueeseen liittyvien hakemistomerkintöjen poistamista (tai mitätöintiä) ainakin tiheissä hakemistoissa Hakemiston muodostusperustana olevan kentän muuttaminen edellyttää hakemistomerkinnänkin muuttamista (yleensä edellisen poistoa ja uuden vientiä hakemistoon)

Jos hakemistomerkinnässä käytettävät tietuetunnisteet voivat muuttua saattaa tietueen todellinen poisto sivulta (niin että seuraavien tietueiden järjestysnumerot muuttuvat) edellyttää useiden hakemistomerkintöjen muuttamista eri hakemistosivuilla siksi tietuetunnisteet eivät yleensä muutu vaan kerran käyttöönotettu tunnus säilyy uudelleenorganisointiin asti (poistot poistoleimalla)

Tarkastellaan esimerkkinä työntekijä-taulua: työntekijänumero (avain, 10 merkkiä) nimi (enintään 40, keskimäärin 20) osoite palkka osasto_nro (4 merkkiä) jne, yht. keskimäärin 300 tavua. Taulusssa 8000 riviä. Tietoja haetaan lähinnä työntekijänumerolla, nimellä ja osastonumerolla

Olkoon osoitteen pituus 6 tavua ja hallintatietoa olisi 4 tavua yhtä hakemistomerkintää kohti tällöin merkintöjen koot olisivat a) Työntekijänumero 20 tavua b) Työntekijän nimi - keskimäärin 30 tavua c) Osastonumero tietuepituus riippuu taulukoitujen osoitteiden määrästä 4+4+n*6, jos n=200, niin 1208 tavua Jos hakemisto olisi järjestetty peräkkäistiedosto, täyttösuhde 70% niin hakemistosivuille (4KB) menisi a) 140 merkintää -> yhteensä 58 lohkoa b) 93 merkintää -> yhteensä 87 lohkoa c) 200 merkintää -> yhteensä 40/3 = 14 lohkoa

Kaikki hakemistot ovat niin pieniä, että ne kannattaa lukea peräkkäislukuna tarvittaessa a) hakuaika työntekijänumerolla olisi keskimäärin 10ms+ (1/2)*10*58/50 ms +10 ms = 25.8 ms (kohdistus+pyörähdysviive) +keskimäärin siirto + datasivu) b) Hakuaika nimellä veisi 10ms + (1/2)* 10*93/50 ms + 10 ms = 29.3 ms Näissä on oletettu, että haku tuottaa yhden osuman, jolloin päästään noin kolmannekseen kasan keskimääräisestä hakuajasta (levy sama 10 ms hajasaantiajan levy kuin aiemmin)

Haettaessa osastonumerolla osumia tulee useampia. Oletetaan että osastoja on 40, jolloin yhdellä osastolla on keskimäärin 200 työntekijää Osaston työntekijöiden haku indeksiä käyttäen veisi aikaa: 10 ms + (1/2)*10ms*14/50 + 200*(10+0.2) ms = 10ms+1.4ms+2040ms= 2051.4 ms = noin 2s Indeksistä ei ole hyötyä sillä aiemmin laskettiin koko kasan lukemiseen menevän vain n 180ms.