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

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

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

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

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

Luento 2: Tiedostot ja tiedon varastointi

2. Tietokannan tallennusrakenteet

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

2. Tietokannan tallennusrakenteet

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

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

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

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

D B. Tiedostojen käsittely

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (15) Outi Virkki Tiedonhallinta

Taulukot. Jukka Harju, Jukka Juslin

OpenOffice.org Base 3.1.0

D B. Tietokannan hallinta kertaus

Tietokantakurssit / TKTL

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

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

Ohjelmointi 1 Taulukot ja merkkijonot

HELIA 1 (11) Outi Virkki Tiedonhallinta

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

3. Taulujen määrittely ja muuttaminen

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

18. Abstraktit tietotyypit 18.1

Tietokantojen suunnittelu, relaatiokantojen perusteita

HELIA 1 (17) Outi Virkki Tiedonhallinta

Pikaohje formaatin valmistamiseen

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

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

Tieto- ja tallennusrakenteet

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

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Tietorakenteet, laskuharjoitus 7, ratkaisuja

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

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

D B. Harvat hakemistot. Harvat hakemistot

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

Tietueet. Tietueiden määrittely

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Tietorakenteet ja algoritmit - syksy

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Java-kielen perusteet

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

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

Algoritmit 1. Luento 3 Ti Timo Männikkö

Java-kielen perusteet

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Tietorakenteet ja algoritmit

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

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

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

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

17. Javan omat luokat 17.1

Tieto ohjelmassa ja tietokoneella

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

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

Algoritmit 1. Luento 6 Ke Timo Männikkö

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmoinnin perusteet Y Python

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Lyhyt kertaus osoittimista

Algoritmit 2. Luento 2 Ke Timo Männikkö

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

Tietokanta (database)

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

D B. Harvat hakemistot

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

Ohjelmointiharjoituksia Arduino-ympäristössä

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

B-puu. 3.3 Dynaamiset hakemistorakenteet

Internet Protocol version 6. IPv6

CSE-A1200 Tietokannat

17. Javan omat luokat 17.1

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

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

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

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 27. lokakuuta 2009

Transkriptio:

Tietojen tallennusrakenteet 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 1

Tietojen tallennusrakenteet Tiedoston sivut sisältävät ainakin: sivuotsakkeen sivun hallintaan tarvittavaa tietoa tietuealueen varsinaiset tietueet ja vapaa tila tietuehakemiston tietueiden sijaintitioedot sivulla 2

Tietojen tallennusrakenteet Sivun alussa sijaitseva sivuotsake (page header) sisältää sivutunnisteeen (page identifier yleensä sivun järjestysnumero tiedostossa, on tiedostokuvaajan perusteella muunnettavissa fyysiseksi levyosoitteeksi tietuehakemiston alkioiden lukumäärän vapaan tilan hallintaan liittyvää tietoa mahdollisesti sivun tyypin tiedon siitä mihin tiedostoon sivu kuuluu (sisäinen tunniste) mahdollisesti linkkejä muille sivuille (esim. jatkosivun tunniste) käyttötietoa 3

Sivun rakenne tyypillisesti Sivuotsake (sivu 123), 4 tietuetta tietue 1 tietue 2 tietue 3 tietue 4 vapaata tilaa h4 h3 h2 h1 tietueiden tila ja tietuehakemisto kasvavat vastakkaisiin suuntiin tietuehakemisto node id, file_id, page_no, record_index, address 4

Sivun rakenne Tietueiden talletusalue alkaa heti sivuotsakkeen jälkeen Tietuehakemisto on taulukko, jossa on kunkin sivulle talletetun tietueen alkukohta Tietueen talletukseen käytetty tila ja tietuehakemistolle varattu tila kasvavat vastakkaisiin suuntiin. 5

Sivun rakenne Tietueen tunnisteen (record identifier, RID) muodostaa pari sivutunniste tietueen indeksi (tietuehakemistossa) Tuple identifier (TID) = record identifier 6

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 7

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 kentän pituus riippuu tietotyypistä. Esimerkiksi kokonaisluvut voitaisiin tallentaa binäärisinä 4 tavun pituisina kenttinä SQL:n tietotyyppi char määrittelee kiinteänpituisen merkkijonon. Sillekin kiinteäpituinen kenttä soveltuisi 8

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 9

Tietueen rakenne Relaation employee(name, ssn, salary, address) monikon ( Smith, John, 010263-189F, 17000, Park Avenue... ) esittäminen: kiinteänmittaisilla kentillä (alkukohta laskettavissa kun tiedetään kenttien pituudet): tyhjä tavu 20 tavua 11 tavua 4 tavua 30 tavua Smith, John 010263-189F 17000 Park Avenue 0 20 34 38 10

Tietueen rakenne Vaihtuvanmittaiselle kentälle erilaisia esitystapoja: erotinmerkkien avulla 4 Smith, John $ 010263-189F $ 17000 $ Park Avenue $ 1 13 24 30 pituuskentän avulla yksi tavu 4 11 Smith, John 11 010263-189F 5 17000 25 Park Avenue 1 2 1 14 25 31 kenttien lukumäärä 11

Tietueen rakenne siirtymätaulukon avulla 4 5 1627 32 Smith, John 010263-189F 17000 Park Avenue 1 1 5 16 27 32 12

Tietueen rakenne Usein tietueissa on sekä kiinteän että vaihtuvan pituisia osia, tällöin kiinteänmittaiset ovat yleensä tietueen alussa kiinteissä paikoissa vaihtuvanmittaisen osan alkukohta samoin kenttien järjestys (vähintään ) on kuvattava esim. sivun otsikkotietueessa 13

Tietueen rakenne 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 pituisten pituus ilmaistaan yhdellä tavulla ja 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 0. Oracle tietueessa on lisäksi alussa otsakeosa (version 8.0 laskukaavojen mukaan 3 tavua) 14

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 15

Tiedostorakenteet Kokonaistehokkuuteen vaikuttaa myös puskureiden määrä oikean levyhaun tarpeen todennäköisyys vähenee puskureiden määrän kasvaessa, koska todennäköisyys sille, että tarvittava sivu on jo puskurissa kasvaa Levyjen ominaisuudet ja verkkoyhteyksien nopeus vaikuttavat kokonaistehokkuuteen. 16

Tiedostorakenteet Levyhakujen määrä on yksinkertainen ja selkeä tehokkuusmitta: ei riipu laitteistosta riippuu tiedostorakenteesta arvioinnissa voi käyttää keskiarvoja, maksimia, jne. vrt. tietorakenteiden analyysi 17

Tiedostorakenteet Tiedostorakenteen tasolla vaikuttavia tekijöitä ovat mm. tietueiden järjestys tietueiden sijainti suhteessa toisiinsa Tyypillisesti kunkin relaatiotietokannan taulun tiedot muodostavat oman tiedostonsa. Joissakin järjestelmissä, esimerkiksi Oraclessa, tietueita voidaan haluttaessa ryvästää (cluster) siten, että usein yhdessä tarvittavat tietueet (vaikkapa opiskelijatietue ja opiskelijan suoritustietueet) sijoitetaan lähekkäin mieluiten samalle sivulle miten tietueita kytketään tiedoston sisällä tiedostojen välillä käytetäänkö suoria osoitepohjaisia kytkentöjä vaiko relaatiokantojen avainperustaisia epäsuoria kytkentöjä 18

Tiedostorakenteet Tiedostorakenteet tarjoavat tiedostojen käsittelyyn varsinaisten datatietueiden sijoittelun lisäksi erilaisia apurakenteita (indeksejä), joilla pyritään nopeuttamaan käsittelyä Relaatiotietokantojen avainperusteiset viiteavainkytkennät vaativat apurakenteita toimiakseen tehokkaasti Apurakenteet vaativat levytilaa, puskuritilaa, omia ylläpitotoimia lisäysten ja muutosten yhteydessä Apurakenteiden käyttömahdollisuudet riippuvat datatietueille valitusta organisaatiosta 19

Tiedostorakenteet indeksi 1 indeksi n perusrakenne = varsinaisten datatietueiden tiedosto Apurakenteina indeksit tarjoavat tehokkaita saantipolkuja datatietueisiin Indeksien ylläpito aiheuttaa kustannuksia 20

Tiedostorakenteet Tietokannan kokonaistehokkuuteen vaikuttaa myös erilaisten tietokantaoperaatioiden osuus ja jakautuma kokonaiskuormassa paljonko on tietyn tyyppisiä kyselyjä, milloin paljonko on lisäyksiä, muutoksia ja poistoja ja miten ne jakautuvat Operaatioiden tarpeet voivat olla ristiriitaisia Kuorma ei välttämättä pysy samanlaisena vaan muuttuu ajan myötä 21