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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

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

2 Tiedon talletuspaikkoja Levy: Pystytään noutamaan satunnainen sivu kiinteällä kustannuksella Useiden sivujen noutaminen halvempaa kuin satunnaisen sivun Nauha: Sivuja käsiteltävä peräkkäishaulla Halvempia kuin levyt, käytetään varakopiointiin Tiedostojen organisointi: Menetelmä tiedostojen tietueiden tallentamiseen massamuistiin. Tietuetunnus (rid) on riittävä tietueen fyysiseen osoittamiseen Hakemisto on tietorakenne, jonka avulla voidaan etsiä tietueiden tietuetunnuksia hakemiston hakuavaimessa annetuilla arvoilla Tietokannan hallinta, kevät 2006, Jan 2

3 Vaihtoehtoisia talletusrakenteita Useita vaihtoehtoja: Kasa (satunnaisjärjestys): Sopii erityisesti kun haetaan kaikki tietueet tiedostosta. Järjestetty tiedosto: Paras vaihtoehto jos tietueet haetaan järjestyksessä tai vain tietyn välin tietueet haetaan. Hakemistot: tietueiden organisointiin puuhun tai hajautukseen liittyvä tietorakenne Tietokannan hallinta, kevät 2006, Jan 3

4 Tietokantojen säilytys 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 Tietokannan hallinta, kevät 2006, Jan 4

5 Hakemistot Hakemisto tiedostoon nopeuttaa hakuja hakemiston hakuavainkenttiin. Mikä tahansa relaation kenttien osajoukko voi olla hakuavaimena relaatioon perustettavassa hakemistossa. Hakuavain ei ole sama kuin avain (minimaalinen joukko kenttiä relaation tietueen identifioimiseen). Hakemisto sisältää joukon tietoalkioita ja tarjoaa tehokkaan tavan hakea kaikki tietoalkiot k* annetulla avainarvolla k. Tietoalkon k* avulla voidaan löytää avaimen k tietoalkio korkeintaan yhdellä levyhaulla Tietokannan hallinta, kevät 2006, Jan 5

6 Hakemiston yleinen malli Olkoon F tiedosto, jonka tietueet ovat sivuilla P1, P2,, Pn Indeksointikenttä (index field) eli hakemistoavain (indexing key) K on yhden tai useamman kentän yhdistelmä, jonka arvoihin hakemisto perustuu. Hakemisto muodostuu tietueista (v,p), missä v on indeksointikentän arvo ja p on osoitin tiedostoon F Tietokannan hallinta, kevät 2006, Jan 6

7 B+ puu hakemistona Hakemistosivut Lehtisivut (avaimen mukaan järjestettynä) Lehtisivut sisältävät tietoalkioita ja ovat ketjutettu Hakemistosivut sisältävät hakemistoalkioita index entry P 0 K 1 P 1 K 2 P 2 K m P m Tietokannan hallinta, kevät 2006, Jan 7

8 Esimerkki B+ puusta Juuri 17 Arvot <= 17 Arvot > * 3* 5* 7* 8* 14* 16* 22* 24* 27* 29* 33* 34* 38* 39* Hae 28*? 29*? Hae > 15* and < 30* Lisäys/poisto: Etsitään oikea sivulehtitasolta ja tehdään muutos siellä. Joskus muutos periytyy hakemistosivulle Tietokannan hallinta, kevät 2006, Jan 8

9 Hajautukseen perustuvat hakemistot Sopivat yhtäsuuruusvertailuun Hakemisto on joukko soluja. Solu = pääsivu ja yksi tai useampia ylivuotosivuja. Solut sisältävät tietoalkioita. Hajautusfunktio h: h(r) = solu, mihin (tietoalkio) tietue r kuuluu. h tarkastelee hakukenttiä r:ssä Tietokannan hallinta, kevät 2006, Jan 9

10 Tietoalkio Tietoalkioon k* voidaan tallettaa: Tietue ja avainarvo k, tai <k, tietueen rid, jonka avainarvo on k>, tai <k, joukko rid:tä, joiden avainarvo on k> Tietokannan hallinta, kevät 2006, Jan 10

11 Hakemistomalleja 1/2 Päähakemisto tai toisiohakemisto: Jos hakuavain sisältää relaation pääavaimen, silloin kutsutaan päähakemistoksi. Yksikäsitteinen hakemisto: hakemisto sisältää avainehdokkaan Ryvästetty tai ryvästämätön: jos tietueiden järjestys sama tai lähes sama kuin tietoalkioiden, kutsutaan ryvästetyksi. Tiedosto voidaan ryvästää vain yhden avaimen perustella. Tietueen haun kustannus vaihtelee paljon riippuen onko tiedosto ryvästetty vai ryvästämätön Tietokannan hallinta, kevät 2006, Jan 11

12 Ryvästetty/ ryvästämätön Ryvästetty Hakemistoalkiot Ryvästämätön Tietoalkiot (Hakemisto) (datatiedosto) Tietoalkiot Tietosivut Tietosivut Tietokannan hallinta, kevät 2006, Jan 12

13 Hakemistomalleja 2/2 Tiheä (dense) hakemisto Jokaiselle tietueelle on oma hakemistotietue eli parissa (v,p) p on tietuosoite. Tietueosoite tid on muotoa (sivunumero, tietuenumero). Harva (non dense, sparse) hakemisto Hakemistotietue identifioi vain sivun eli p on sivunumero. Hakemistotietue yleensä perustietuetta lyhyempi Tietokannan hallinta, kevät 2006, Jan 13

14 Harva / Tiheä hakemisto ssn nimi dno Tiheä hakemisto Harva hakemisto nimi sivu Aalto p1 Eerola p2 p1: p2: Aalto Aaltonen Eerola Frank Hakala ssn rid (p3,1) (p2,2) (p2,3) (p3,2) Ketola p3 p3: Ketola Vainio (p1,1) (p2,1) (p1,2) Tietokannan hallinta, kevät 2006, Jan 14

15 Fyysinen tietokanta Fyysinen tietokanta (physical database) on levymuistiin sijoitettu kokoelma sivuja, jotka sisältävät tietueita. Sivu (page) on vakiokokoinen alue, joka on sijoitettu levymuistin yhteen jaksoon. Tietue (record) jakaantuu yhteen tai useampaan kenttään (field), joka voi sisältää atomisen arvon tai osoittimen Tietokannan hallinta, kevät 2006, Jan 15

16 Osoitteista Fyysisen tietokannan tietue osoitetaan parilla (p,i), missä p on tietueen sisältävän sivun tunniste ja i identifioi tietueen paikan sivun p sisällä. Fyysisen tietokannan operaatioihin kuuluu sivun tuonti keskusmuistiin ja sivun vienti keskusmuistista levyllä Sekä tuonti että vienti toteutetaan yhdellä levyoperaatiolla, joka koostuu hakuvarren asetuksesta ja levyjakson luvusta tai kirjoituksesta Tietokannan hallinta, kevät 2006, Jan 16

17 Levyn rakenne 1/2 Hakuvarsi ura jakso sektori luku /kirjoituspää Tietokannan hallinta, kevät 2006, Jan 17

18 Levyn rakenne 2/2 Levyjakso eli lohko (disk block) on yhdestä tai usemamasta peräkkäisestä sektorista koostuva levypinnan uralla. Esim: jos jakson koko on 8KB ja sektorin koko 512KB sisältää jakso 16 peräkkäistä sektoria. Levyllä yksittäinen sektori on pienin osoitettavissa oleva yksikkö Tietokannan hallinta, kevät 2006, Jan 18

19 Levyltä haku Lohkon sisällön hakemiseksi Siirretään luku/kirjoituspäät halutulle sylinterille (kaikki siirtyvät yhdessä). Odotetaan, että haluttu lohko pyörähtää luku/kirjoituspään kohdalle (pyörimisnopeus luokkaa 100 kierrosta sekunnissa). Aktivoidaan halutulla pinnalla oleva luku/kirjoituspää lukemaan dataa yleensä vain yksi pää voi olla samanaikaisesti aktiivinen. I/O prosessori siirtää luetun datan hakupyynnön yhteydessä annettuun puskuriin Tietokannan hallinta, kevät 2006, Jan 19

20 Levytiedostojen käsittely Levymuistin merkittävin huono puoli keskusmuistiin nähden on tiedon hidas saantiaika Keskusmuistissa saantiaika on kymmeniä nanosekunteja, luokkaa ns Levymuistista saantiaika on luokkaa 5 10 millisekuntia (ms) eli 5,000,000 10,000,000 ns eli M hakua keskusmuistista yhtä levyhakua kohti Tietokannan hallinta, kevät 2006, Jan 20

21 Levytiedostojen käsittely 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 puskuriin (buffer frame), jonka jälkeen tietue voidaan siirtää puskurista ohjelman työtilaan. Puskurien koon ja tiedoston sivukoon on vastattava toisiaan. Tiedoston käsittelyä varten on yleensä käytössä usean puskurin puskuriallas (buffer pool) Tietokannan hallinta, kevät 2006, Jan 21

22 Puskurointi Fyysisen tietokannan ollessa avoinna siihen liittyy keskusmuistissa sijaitseva puskuri. Puskuri (buffer) eli puskuriallas (buffer pool) on sivun kokoisista puskurikehyksistä (buffer frame) koostuva taulukko B[1,2,,N]. Jotta tietokanna sivun p sisältöä voitaisiin lukea tai kirjoittaa on sivu tuotava levylta johonkin vapaaseen puskurikehykseen B[i] Tietokannan hallinta, kevät 2006, Jan 22

23 Puskurin käsittely Sivun p käsittelyn ajaksi tietokantaa käsittelevä prosessi naulitsee (fix, pin) sivun puskuriin. Jos sivu p ei ole ennestään puskurissa, naulintakutsu fix(p) tuo p:n ensin levyltä puskuriin. Naulittua sivua puskurinhallitsijalla ei ole lupa poistaa puskurista eikä siirtää toiseen paikkaan. Sivun käsittelyn jälkeen prosessi vapauttaa naulinnan kutsumalla unfix(p) kutsulla. Sivu voidaan poistaa puskurista vasta, kun se ei ole enää naulittuna yhdellekkään prosessille Tietokannan hallinta, kevät 2006, Jan 23

24 Levytiedostojen käsittely Tiedostorakennetason näkemys: osoitettavissa olevia tietueita puskurinhallintatason näkemys: tietueet sijoitettu sivuille, sivuja käsitellään puskureiden kautta sivu 1 sivu 2 sivu allas puskuri 1 puskuri 2 sivun 2 kopio puskurissa Tietokannan hallinta, kevät 2006, Jan 24 tietueen 6 kopio työtilassa 6

25 Levytiedostojen käsittely tiedostorakenne.hae_tietue(6) { tiedostorakenne.päättele_sivu_tietueelle(6) > 2 puskurinhallinta.anna_sivu(2) { jos sivu 2 ei ole missään puskurissa puskurinhallinta.valitse_vapaa_puskuri > 2 puskurinhallinta.lataa_sivu(puskuriin 2 sivu 2) puskurinhallinta.naulitse_sivu_puskuriin puskurinhallinta.palauta_osoitin puskuriin 2 muuten puskurinhallinta.naulitse_sivu_puskuriin puskurinhallinta.palauta_osoitin_puskuriin } tiedostorakenne.päättele_tietueen_sijainti(6) tiedostorakenne.siirrä_tietue_ohjelmamuuttujaan } Tietokannan hallinta, kevät 2006, Jan 25

26 Levytiedostojen käsittely Myös kirjoitukset levylle tapahtuvat puskureiden kautta. Uusi tai muuttunut tietue siirretään puskuriin. Puskuri merkitään muuttuneeksi. Kun muuttaja on vapauttanut puskurin, puskurienhallinta siirtää puskurisa olevan sivun aikanaan levylle. Muutos voi kasvattaa sivun sisältöä niin, ettei se enää mahdu puskuriin. Tällöin otetaan tyypillisesti käyttöön ylivuotosivu, joka linkitetään alkuperäiseen sivuun Tietokannan hallinta, kevät 2006, Jan 26

27 Levytiedostojen käsittely Tietueen pituus kasvaa: sivu 1 sivu 2 sivu puskuri 1 puskuri 2 allas sivun 2 kopio puskurissa 2 korvaava: 6* Tietokannan hallinta, kevät 2006, Jan 27

28 Levytiedostojen käsittely Levyn tilanne hetkellisesti erilainen kuin puskureiden sivu 4 sivu 1 sivu 2 sivu puskuri 1 puskuri 2 linkki allas 6B sivun 4 kopio (2:n ylivuoto) puskurissa A sivun 2 kopio puskurissa 2 jaettu Tietokannan hallinta, kevät 2006, Jan 28 6A 6B

29 Levytiedostojen käsittely Sivulla voi olla useita tietueita tai Tietue voi jakautua useille sivuille. Sivukoko on ohjelmallisesti määriteltävä suure, olisi luontevaa että se olisi levyjakson koon monikerta. Jos tietue jakautuu useille sivuille käytetään usein edellisen kuvan mallin mukaista ylivuotosivua Yleensä tietoa levy yksikön ja puskureiden välillä siirretään sivu kerrallaan yhteen puskuriin. Joissain järjestelmissä on mahdollista siirtää samassa operaatiossa useamman sivun ryväs (cluster) peräkkäisissä muistiosoitteissa oleviin puskureihin Tietokannan hallinta, kevät 2006, Jan 29

30 Levytiedostojen käsittely hae tietue hae seuraava poista tietue tiedostorakennetaso hae sivu vie sivu puskurien hallinta Tietokannan hallinta, kevät 2006, Jan 30

31 Levytiedostojen käsittely Tiedostorakennetason käsittelyssä haku operaation hakukriteerinä voi olla jonkin tietoalkion arvo. Puskuritason hakuoperaatiossa sivu haetaan sivuosoitteen perusteella. Puskureiden ja apumuistin väliseen tiedonsiirtoon käytetään erillistä I/Oprosessoria. Täten yhdessä puskurissa olevaa tietoa pystytään käsittelemään samanaikaisesti kun toiseen puskuriin kohdistuu tiedonsiirtoa Tietokannan hallinta, kevät 2006, Jan 31

32 Salpauskäytäntö Fyysisen tietokannan eheyden säilyttämiseksi tietokantasivua käsittelevän prosessin on aina salvattava (latch) naulitsemansa sivu käsittelyn ajaksi. Lukusalpa (read latch) oikeuttaa lukemaan sivua ja estää samanaikaisesti päivittämästä sivua. Kirjoitussalpa (write latch) oikeuttaa kirjoittamaan sekä lukemaan sivua ja estää samanaikaisen lukemisen sekä kirjoittamisen. Salvan haltijan on vapautettava (unlatch) salpa sivun käytön jälkeen. Salpa toteutetaan puskuroituun sivuun liittyvän semaforin avulla Tietokannan hallinta, kevät 2006, Jan 32

33 Hakuaika Levyltä hakemiseen kuluva aika muodostuu: hakuvarren siirtoajasta eli kohdistusajasta (seek time, st) (sylinterille siirtyminen). aika riippuu siitä millä sylinterillä päät ovat alunperin, lyhyt siirtymä vie vähemmän aikaa, 0 levykohtainen maksimi. Usein ilmoitetaan vain keskimääräinen kohdistusaika esim. 6 ms. pyörähdysviiveestä (rotational delay, rd). Jakson siirtoaika (block transfer time, btt) Tietokannan hallinta, kevät 2006, Jan 33

34 Pyörähdysviive Jos levyn pyörimisnopeus on p kierrosta minuutissa (rpm), niin keskimääräinen pyörähdysviive on rd = (1/2)*(1/p) min = (60 * 1000)/(2*p) ms Pyörimisnopeudella p=3600 rpm on rd = 8,3 ms Tietokannan hallinta, kevät 2006, Jan 34

35 Jakson siirtoaika 1/2 Aika, joka kuluu jaksoon kuuluvien sektoreiden kulkemiseen luku /kirjoituspään ohitse. Vaihtelee jakson koon, uran koon ja pyörimisnopeuden perusteella. = levyn täyden kierroksen pyörähdysaika kerrottuna jakson pituuden suhteella koko uran pituuteen Tietokannan hallinta, kevät 2006, Jan 35

36 Jakson siirtoaika 2/2 Jos uran koko on 50 KB ja p on 3600 rpm, siirtonopeus (transfer rate, tr) on tr = (50 * 1000) / (60 * 1000/3600) = 3000 tavua/ms Jakson siirtonopeus on tällöin btt = B / tr ms ( B on jakson koko) Jakson saannin koko kustannus on siis hakuajan, pyörähdysviiveen ja siirtoajan summa st + rd + btt Tietokannan hallinta, kevät 2006, Jan 36

37 k lohkon siirtoaika Haettaessa k lohkoa, lohkojen yhteenlaskettu saantiaika on enintään k*(st+rd+btt), jos lohkot sijaitsevat satunnaisesti levyllä st+k*(rd+btt), jos lohkot sijaitsevat satunnaisesti samalla sylinterillä ja minimissään st+ rd + k * btt, jos lohkot ovat peräkkäin samalla sylinterillä Kaavojen tekijöistä st ja rd ovat samaa millisekunneissa mitattavaa kokoluokkaa ja btt noin tuhannesosa niistä (mikrosekunteja) Jos st=5ms, rd=5ms ja btt=0.02 ms ja k=1000, niin kokonaissaantiajan vaihteluväli olisi 0.030s 10.02s Tietokannan hallinta, kevät 2006, Jan 37

38 Massasiirtoaika Jos G on jaksoväli tavoissa, peräkkäisten jaksojen massasiirtonopeus (bulk transfer rate, btr) ilmaisee hyödyllisten tavujen siirtonopeuden. btr = (B / ( B + G)) * tr tavua/ms Tietokannan hallinta, kevät 2006, Jan 38

39 Tiedostot Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista osista tietoja tietueiden rakenteesta muuta hallintatietoa Tietokannan hallinta, kevät 2006, Jan 39

40 Sivun sisäinen rakenne Sivulla on ainakin: otsikkotietue sivun hallintaan tarvittavaa tietoa tietuealue itse tietueet ja vapaata tilaa tietuehakemisto tietueiden sijaintitiedot sivulla Tietokannan hallinta, kevät 2006, Jan 40

41 Sivun sisältöä 1/2 Sivun alun otsikkotietue (header) sisältää vähintään seuraavat osiot: 1)Sivun tunniste 2)Sivun tyyppi (relaatiosivu, ryppään sivu, hakemistosivu, vapaata tilaa, tietohakemistosivu) 3)Relaation, hakemiston, tms. sisäinen tunniste. 4)Linkkejä muihin sivuihin (sivutunnisteita) 5)Sivun tietuehakemiston alkioiden lukumäärä 6)Sivun vapaan tilan hallintaan tarvittavaa tietoa 7)Sivun viimeisimmän päivityksen lokikirjauksen järjestysnumero (page log sequence number, Page LSN) Tietokannan hallinta, kevät 2006, Jan 41

42 Sivun sisältöä 2/2 Sivun tietuealue sisältää sivun varsinaisen tiedon, tietosivun tapauksessa sivulle sijoitetut loogisen tietokannan monikot. Tietuealuetta täytetään otsikkotietueen jälkeen sivun alusta lukien. Sivun tietuehakemisto on sivun lopussa sijaitseva taulukko r, jonka alkio r[i] sisältää tietuealueen i:nnen tietueen tavusiirtymän tietueen alusta lukien. Tietuehakemistoalue täytetään sivun lopusta alkuun päin Tietokannan hallinta, kevät 2006, Jan 42

43 Sivun rakenne Tietueen tunnisteen (record identifier, RID) muodostaa pari sivutunniste tietueen indeksi (tietuehakemistossa) Tuple identifier (TID) = record identifier Tietokannan hallinta, kevät 2006, Jan 43

44 Tietueen rakenne Samassa tiedostossa olevat tietueet voivat olla keskenään saman pituisia, eli kiinteäpituisia (fixed length) vaihtuvapituisia (variable length) Erityyppisiä esim. kurssitietueita ja osallistujatietueita. Saman tyyppisiä, mutta tietokenttien pituus tai määrä vaihtelee. Tietueessa voi olla kiinteäpituisia tai vaihtuvapituisia kenttiä, yksikin vaihtuvapituinen kenttä tekee tietueesta vaihtuvapituisen Tietokannan hallinta, kevät 2006, Jan 44

45 Tietueen rakenne Kiinteäpituinen kenttä on jokaisessa tietueessa saman pituinen smallint, integer, float, double, date ja timestamp tyyppiset arvot tallennetaan tyypillisesti (ei kuitenkaan välttämättä) kiinteäpituisiin kenttiin. SQL:n tietotyyppi char määrittelee kiinteänpituisen merkkijonon. Sillekin kiinteäpituinen kenttä soveltuisi Tietokannan hallinta, kevät 2006, Jan 45

46 Tietueen rakenne Vaihtuvapituisia kenttiä käytetään tyypillisesti tilanteissa, joissa tietoalkioiden arvot vaihtelevat merkittävästi pituudeltaan Esimerkiksi vaihtuvapituiset merkkijonot Yleensä vaihtuvapituisilla kentillä pyritään säästämään tilaa, mutta tilansäästöä voidaan saada muutenkin esimerkiksi tiivistämällä tietueet Tietokannan hallinta, kevät 2006, Jan 46

47 Kiinteämittaiset kentät F1 F2 F3 F4 L1 L2 L3 L4 Alkuosoite (B) Osoite = B+L1+L2 i:nen kentän etsiminen ei vaadi peräkkäishakua Tietokannan hallinta, kevät 2006, Jan 47

48 Vaihtuvanmittaiset kentät Kaksi mahdollista toteutusta (# kenttä on vakiomittainen): 4 $ $ $ $ # kenttien lkm F1 F2 F3 F4 Kentät erotettu erikoismerkillä F1 F2 F3 F4 Siirtymätaulukko Tietokannan hallinta, kevät 2006, Jan 48

49 Kiinteämittaiset kentät: sivun sisältö Paikka 1 Paikka 2 Paikka N Paikka 1 Paikka 2 Vapaata tilaa Paikka N Paikka M N M pakattu tietueden lkm M Pakkaamaton, bittikartta Paikkojen lkm rid= <sivuid, paikka #> Tietokannan hallinta, kevät 2006, Jan 49

50 Vaihtuvanmittaiset kentät: sivun sisältö Rid = (i,n) Page i Rid = (i,2) Rid = (i,1) N N # paikka Tietuehakemisto Osoite Vapaan Tilan alkuun Tietokannan hallinta, kevät 2006, Jan 50

51 Oracle Oraclen tietuerakenteessa kaikki kentät ovat periaatteessa vaihtuvapituisia/valinnaisia Kentät esiintyvät tietueessa siinä järjestyksessä, missä ne on esitelty create table lauseessa (myöhemmät lisäykset tietueen loppuun). Kunkin kentän alussa on pituus 1 3 tavuna alle 250 pituiset yhdellä tavulla yli 250 kolmella tavulla, ensimmäisen pituustavun arvo 255 kertoo, että 2 seuraavaa sisältävät pituuden Jos kenttä on tyhjä (null), niin pituus on Tietokannan hallinta, kevät 2006, Jan 51

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

Tiedon talletuspaikkoja. Levymuisti. Vaihtoehtoisia talletusrakenteita. Tietokantojen säilytys. R&G Chapter 8 & 9. Useita vaihtoehtoja: Tiedon talletuspaikkoja Levymuisti R&G Chapter 8 & 9 Levy: Pystytään noutamaan satunnainen sivu kiinteällä kustannuksella Useiden sivujen noutaminen halvempaa kuin satunnaisen sivun Nauha: Sivuja käsiteltävä

Lisätiedot

D B. Tiedostojen käsittely

D B. Tiedostojen käsittely 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

Lisätiedot

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

D B. Levytiedostojen käsittely. Levytiedostojen käsittely 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

Lisätiedot

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

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

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää Levyn rakenne Levykössä (disk drive) on useita samankeskisiä levyjä (disk) Levyissä on magneettinen pinta (disk surface) kummallakin puolella levyä Levyllä on osoitettavissa olevia uria (track), muutamasta

Lisätiedot

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1 Relaatiomalliin perustuvissa tietokannoissa on standardiksi käyttöliittymäksi vakiintunut SQL-kieli SQL-kielen perustana on rivikalkyyliin mukainen kyselymalli, jota on täydennetty laajennetun relaatioalgebran

Lisätiedot

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet 3. Tietokannan hakemistorakenteet Tiedoston tietueiden haku voi perustua johonkin monesta saantipolusta (access path): - perustiedoston tiedostorakenne - hakemistot, joita voidaan tehdä käsittelytarpeiden

Lisätiedot

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet 3. Tietokannan hakemistorakenteet Tiedoston tietueiden haku voi perustua johonkin monesta saantipolusta (access path): - perustiedoston tiedostorakenne - hakemistot, joita voidaan tehdä käsittelytarpeiden

Lisätiedot

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

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

Tiedostorakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet R&G Chapter 9 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Tiedostorakenteet Tiedostojen tehokkuutta yhtä kyselyä kohti arvioidaan usein tarvittavien levyhakujen määrällä. kuten levykäsittelyn

Lisätiedot

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

Hakemistorakenteet. R & G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hakemistorakenteet R & G Chapter 10 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hakemistotyypeistä Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta

Lisätiedot

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta Hakemistotyypeistä Hakemistorakenteet R & G Chapter 10 Hakemistomerkintä sisältää hakemistoavaimen (indexing key) muodostusperustan määrittelemänä tietueesta tai tietuejoukosta tuotettu tunnus yleensä

Lisätiedot

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

Transaktiopalvelimen rakenne, s. 43. Levyjaksot, sivut ja tiedostot, s. 46. Tietokantasivujen puskurointi, s. 53. Tietokannan tila, s. 57. Fyysinen tietokanta A. Silberschatz, H. F. Korth & S. Sudarshan: Database System Concepts. Fifth Edition. McGraw-Hill, 2006, sivut 24 26, luvun 1 (introduction) kohta 1.11 (database architecture); sivut

Lisätiedot

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

Helsingin yliopisto/tktl Tietokannan hallinta kevät Harri Laine 1 D B. Yksitasoiset talletusrakenteet Yksitasoiset talletusrakenteet Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen järjestämätön peräkkäisrakenne (kasa, heap) järjestetty peräkkäisrakenne (sequential file) hajautusrakenne

Lisätiedot

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

Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen Yksitasoiset talletusrakenteet Yksitasoisia talletusrakenteita käytetään lähinnä datatietueiden talletukseen järjestämätön peräkkäisrakenne (kasa, heap) järjestetty peräkkäisrakenne (sequential file) hajautusrakenne

Lisätiedot

D B. Tietokannan hallinta kertaus

D B. Tietokannan hallinta kertaus TKHJ:n pääkomponentit metadata TKHJ:ssä Tiedostojen käsittely puskurien rooli tiedostokäsittelyssä levymuistin rakenne ja käsittely mistä tekijöistä hakuaika muodostuu jonotus jos useita samanaikaisia

Lisätiedot

2. Tietokannan tallennusrakenteet

2. Tietokannan tallennusrakenteet Tietokannan hallinta 1 2. Tietokannan tallennusrakenteet 2. Tietokannan tallennusrakenteet 2.1 Levymuisti ja sen käyttö Muistilaitteiden hierarkia: ainakin keskusmuisti levymuisti (+ muita tukimuisteja,

Lisätiedot

D B. Harvat hakemistot. Harvat hakemistot

D B. Harvat hakemistot. Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut) kohti Harvan hakemiston

Lisätiedot

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

Helsingin yliopisto/tktl Kyselykielet, s 2006 Tietokantaoperaatioiden toteutuksesta Harri Laine 1. Tiedostorakenteet. Tiedostorakenteet Tiedostorakenne määrittelee miten tietueet tallennetaan tiedostoon miten tietoja haetaan Tiedostorakenne on yksitasoinen (flat), jos se muodostuu pelkästään datatietueista. Tiedostorakenne

Lisätiedot

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

Hajautusrakenteet. R&G Chapter Tietokannan hallinta, kevät 2006, Jan 1 Hajautusrakenteet R&G Chapter 11 16.02.06 Tietokannan hallinta, kevät 2006, Jan 1 Hajautukseen perustuvat tiedostorakenteet Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen

Lisätiedot

B-puu. 3.3 Dynaamiset hakemistorakenteet

B-puu. 3.3 Dynaamiset hakemistorakenteet Tietokannan hallinta 2 3. Tietokannan hakemistorakenteet 3.3 Dynaamiset hakemistorakenteet Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa.

Lisätiedot

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

Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa. Tietokannan hallinta 35 3. Tietokannan 3.3 Dynaamiset Käsitellyt hakemistot (hajautus, ISAM): hakemisto-osa on staattinen eli ei muutu muuten kuin uudelleenorganisoinnissa. Ajan mittaan epätasapainoa:

Lisätiedot

2. Tietokannan tallennusrakenteet

2. Tietokannan tallennusrakenteet 2. Tietokannan tallennusrakenteet - tallennusrakenne = säilytysrakenne 2.1 Levymuisti ja sen käyttö 2.2 Puskurointi 2.3 Tietokannan tiedostorakenne 2.4 Järjestämätön peräkkäistiedosto (kasa) 2.5 Järjestetty

Lisätiedot

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

Hajautusrakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet. Hajautukseen perustuvat tiedostorakenteet Hajautusrakenteet R&G Chapter Hajautukseen perustuvissa tiedostorakenteissa on tavoitteena yksittäisen tietueen nopea haku. Tähän pyritään siten, että tietueen sijoituspaikan eli solun (cell, bucket) osoite

Lisätiedot

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

TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Indeksin luonti ja hävitys TKHJ:ssä on yleensä komento create index, jolla taululle voidaan luoda hakemisto Komentoa ei ole standardoitu ja niinpä sen muoto vaihtelee järjestelmäkohtaisesti Indeksi voidaan

Lisätiedot

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt 1 Muistihierarkia (4) ks. Fig. 2-18 [Tane99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen

Lisätiedot

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt 1 Muistihierarkia (4) Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen muisti on hyvin paljon

Lisätiedot

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

Helsingin yliopisto /TKTL Tietokannan hallinta Harri Laine 1 D B. Harvat hakemistot. Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut) kohti Harvan hakemiston

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

Lisätiedot

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

D B. Harvat hakemistot

D B. Harvat hakemistot Harvat hakemistot Harvassa hakemistossa on ei ole hakemistomerkintöjä jokaista tietuetta kohden vaan yksi merkintä jotain isompaa kokonaisuutta esimerkiksi sivua tai sivujoukkoa (esim. saman uran sivut)

Lisätiedot

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus. Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt Muistihierarkia (4) ks. Fig. 2-18 [Tane99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen

Lisätiedot

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu HELIA 1 (16) Luento 3.2 Suorituskyvyn optimointi jatkuu...... 2 Tietojen tallennusratkaisut... 2 Tiedon tallennuksen yksiköitä... 3 Loogiset... 3 Fyysiset... 3 Tallennusmäärittelyt Oraclessa... 5 Loogiset

Lisätiedot

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt 1 Muistihierarkia (4) Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen muisti on hyvin paljon

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tietokantaoperaatioiden toteutuksesta 3. Harri Laine 1 Tietokantojen hakemistorakenteet Hakemistorakenteiden (indeksien) tarkoituksena on nopeuttaa tietojen hakua tietokannasta. Hakemisto voi olla ylimääräinen oheishakemisto (secondary index), esimerkiksi

Lisätiedot

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 1. Luento 5 Ti Timo Männikkö Algoritmit 1 Luento 5 Ti 24.1.2017 Timo Männikkö Luento 5 Järjestetty lista Järjestetyn listan operaatiot Listan toteutus taulukolla Binäärihaku Binäärihaun vaativuus Algoritmit 1 Kevät 2017 Luento 5 Ti

Lisätiedot

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt 1 Muistihierarkia (4) ks. Fig. 4-1 [Stal99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen

Lisätiedot

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintolevyt Muut pyörivät levyt 1 Muistihierarkia (4) ks. Fig. 4-1 [Stal99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen

Lisätiedot

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

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

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

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen) 1. Avaimet 1, 2, 3 ja 4 mahtuvat samaan lehtisolmuun. Tässä tapauksessa puussa on vain yksi solmu, joka on samaan aikaan juurisolmu

Lisätiedot

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

HAAGA-HELIA Heti-09 1 (17) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Suorituskyky HAAGA-HELIA Heti-09 1 (17) Suorituskyky Suorituskyky... 2 Suorituskyvyn mittareita... 2 Tekninen ympäristö... 3 Suorituskyvyn optimointi... 4 Optimoinnin kohteet... 5 Fyysisen tason ratkaisut... 6 Indeksointi...

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

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

D B. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa. Poistot. B+ -puun tasapainotus poistossa. B+ -puun tasapainotus poistossa Poistot Alkuperäisen B+ -puun idean mukaisesti tasapainotusta tehdään myös poistossa 50 Jos datasivun täyttösuhde laskee alle puoleen ja sivun ja sen velisivun (sibling, saman isäsivun alla oleva vierussivu)

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

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

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1 Liitosesimerkki 16.02.06 Tietokannan hallinta, kevät 2006, J.Li 1 Esim R1 R2 yhteinen attribuutti C T(R1) = 10,000 riviä T(R2) = 5,000 riviä S(R1) = S(R2) = 1/10 lohkoa Puskuritilaa = 101 lohkoa 16.02.06

Lisätiedot

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tiedonhallintajärjestelmän rakenne ja Suorituskyky HELIA TIKO-05 1 (20) Tiedonhallintajärjestelmän rakenne ja Suorituskyky Tiedonhallintajärjestelmän rakenne... 2 SQL-käsittelijä... 3 Parsinta (Parser)... 3 Optimointi (Optimizer)... 3 Tilan käsittelijä...

Lisätiedot

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2)

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus (2) Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Virtuaalimuisti Kiintot Muut pyörivät t Muistihierarkia (4) ks. Fig. 4-1 [Stal99] Ulkoinen muisti on halvempaa toteuttaa per tavu Ulkoinen muisti on

Lisätiedot

Tieto ohjelmassa ja tietokoneella

Tieto ohjelmassa ja tietokoneella HELIA Tiko -05 1 (23) Tieto ohjelmassa ja tietokoneella Tiedon 3-tasomalli...2 Tieto käsitetasolla...3 Tieto loogisella tasolla...4 Tieto fyysisellä tasolla...5 Muistit...6 Päämuisti...6 Apumuisti...6

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu HELIA 1 (21) Luento 3.1 Suorituskyvyn optimointi... 2 Suunnittele... 3 Tiedonhallintajärjestelmän rakenne... 4 SQL-käsittelijä... 5 Parsinta... 5 Optimointi... 5 Tilan käsittelijä... 5 Puskurin käsittelijä

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia

Lisätiedot

Lokin ylläpito ja puskurinhallinta

Lokin ylläpito ja puskurinhallinta Lokin ylläpito ja puskurinhallinta C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh & P. Schwartz: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead

Lisätiedot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot Esim yhteinen attribuutti C Liitosesimerkki T() = 10,000 riviä T() = 5,000 riviä S() = S() = 1/10 lohkoa Puskuritilaa = 101 lohkoa 1 2 Vaihtoehdot Sisäkkäiset silmukat Liitosjärjestys:, Liitosalgoritmit:

Lisätiedot

Puuhakemistoista flash-levyllä

Puuhakemistoista flash-levyllä Puuhakemistoista flash-levyllä Antti Tikka Espoo 23.10.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 28.3.2017 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot Algoritmit 2 Kevät 2017 Luento 5 Ti 28.3.2017 2/29 B-puu Algoritmit 2 Kevät 2017 Luento 5 Ti

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

T-106.5220 Transaktionhallinta tietokantajärjestelmissä

T-106.5220 Transaktionhallinta tietokantajärjestelmissä Opetusmoniste T-106.5220 Transaktionhallinta tietokantajärjestelmissä Kevät 2009 (periodi III) Osa 1: Looginen tietokanta ja transaktiot Osa 2: Fyysinen tietokanta Osa 3: Lokin ylläpito ja puskurinhallinta

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti Luento 9 Järjestelmän ulkoinen muisti Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus 1 Muistihierarkia (4) ks. Fig 4.1 [Stal03] (ks. Fig 4.1 [Stal99]) Ulkoinen muisti on halvempaa toteuttaa

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

B + -puut. Kerttu Pollari-Malmi

B + -puut. Kerttu Pollari-Malmi B + -puut Kerttu Pollari-Malmi Tämä monista on alunperin kirjoitettu sksn 2005 kurssille osittain Luukkaisen ja Nkäsen vanhojen luentokalvojen pohjalta. Maaliskuussa 2010 pseudokoodiesits on muutettu vastaamaan

Lisätiedot

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

Lisätään avainarvo 6, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 11.6.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI OSIO 01 Peruskäsitteitä Kurssin tavoite: antaa osallistujille valmiudet ymmärtää tietokantojen periaatteet ymmärtää tietokantojen suunnittelunäkökohtia osallistua tietokantojen

Lisätiedot

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Käyttöjärjestelmät t I Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Stallings, Luku 7 KJ-I S2005 / Tiina Niklander; kalvot Auvo Häkkinen 5-1 Sisält ltöä (Luennot 5&6) Yleistä muistinhallinnasta (luku

Lisätiedot

u saantimenetelmät Kenttä (field) u bittien / tavujen muodostama looginen kokonaisuus u yksi arvo, jolla tyyppi ja pituus Tietue (record)

u saantimenetelmät Kenttä (field) u bittien / tavujen muodostama looginen kokonaisuus u yksi arvo, jolla tyyppi ja pituus Tietue (record) Käyttöjärjestelmät t I Luento 9 (&10): TIEDOSTOJÄRJESTELM RJESTELMÄ Stallings, Luku 12.1-12.7 Sisält ltöä Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi u saantimenetelmät

Lisätiedot

RJESTELMÄ Stallings, Luku KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

RJESTELMÄ Stallings, Luku KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH Käyttöjärjestelmät t I Luento 9 (&10): TIEDOSTOJÄRJESTELM RJESTELMÄ Stallings, Luku 12.1-12.7 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-1 Sisält ltöä Peruskäsitteistöä, tehtäviä ja tavoitteita

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Tietokantarakenteet ja -algoritmit 3. harjoitus

Tietokantarakenteet ja -algoritmit 3. harjoitus Tietokantarakenteet ja -algoritmit 3. harjoitus Malliratkaisut 1. Analyysivaiheen alussa alustetaan aktiivisten transaktioiden taulu (tyhjä) ja päivitettyjen sivujen taulu (samoin tyhjä) tarkistuspisteestä.

Lisätiedot

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

Lisätään avainarvo 1, joka mahtuu lehtitasolle: Helsingin Yliopisto, Tietojenkäsittelytieteen laitos Tietokannan hallinta, kurssikoe 14.5.2004, J. Lindström Ratkaisuehdotuksia 1. Hakemistorakenteet, 15p. Tutkitaan tyhjää B+-puuta, jossa jokaiselle hakemistosivulle

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Stallings, Luku

Stallings, Luku "!$#%&'#)( *"( +, /. Stallings, Luku 11.111.4 KJI S2004 / Tiina Niklander, kalvot uvo Häkkinen 7 1 021 * +3! 4 57698;:=@? I/Olaitteiden luokittelua, siirtonopeuksia Siirrännän perustekniikat Siirrännän

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1. Relaatiotietokannat Relaatiomalli Perustana rakennetason tietomalli (the relational model of data) perusteoria: E.F.Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun lopulla yleistynyt 80-luvun lopulla

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki Käyttöjärjestelmät t I Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Stallings, Luku 7 Sisält ltöä (Luennot 5&6) Yleistä muistinhallinnasta (luku 7.1) Yksinkertainen muistinhallinta a) kiinteät partitiokoot

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Sivupalvelin- ja yhteislevyjärjestelmät

Sivupalvelin- ja yhteislevyjärjestelmät Sivupalvelin- ja yhteislevyjärjestelmät C. Mohan & I. Narang 1994: ARIES/CSA: a method for database recovery in client-server architectures. Proc. of the 1994 ACM SIG- MOD Internat. Conf. on Management

Lisätiedot

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta. Tieto - data Digitaalisesti tallennettua informaatiota jostakin kohteesta Vapaamuotoinen tieto (unformatted) Esim. teksti, puhe, kuvat, Sisältö jäsentämätöntä Koneellinen käsittely vaikeaa paitsi kokonaisuutena

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

Lisätiedot

Esimerkkejä vaativuusluokista

Esimerkkejä vaativuusluokista Esimerkkejä vaativuusluokista Seuraaville kalvoille on poimittu joitain esimerkkejä havainnollistamaan algoritmien aikavaativuusluokkia. Esimerkit on valittu melko mielivaltaisesti laitoksella tehtävään

Lisätiedot

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1

Elvytys. R & G Chapter Tietokannan hallinta, kevät 2006, J. Li 1 Elvytys R & G Chapter 18 16.02.06 Tietokannan hallinta, kevät 2006, J. Li 1 Motivaatio Atomisuus: Transaktiot voivat päättyä peruutukseen ( Rollback ). Pysyvyys: Entä jos TKHJ kaatuu? (Syyt?) Halutut ominaisuudet

Lisätiedot