Tieto ohjelmassa ja tietokoneella

Samankaltaiset tiedostot
Luento 2: Tiedostot ja tiedon varastointi

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (16) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tiedonhallinta

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

HELIA 1 (1) Outi Virkki Tiedonhallinta :43

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

Tietokannanhallintajärjestelmä (DBMS)

Algoritmit 2. Luento 3 Ti Timo Männikkö

oheishakemistoja voi tiedostoon liittyä useita eri perustein muodostettuja

Algoritmit 2. Luento 3 Ti Timo Männikkö

HELIA 1 (17) Outi Virkki Tiedonhallinta

Tiedonhallintajärjestelmän rakenne ja Suorituskyky

OpenOffice.org Base 3.1.0

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

Tietokannan suunnittelu

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

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

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta

Tieto- ja tallennusrakenteet

Java-kielen perusteet

Tietokantojen suunnittelu, relaatiokantojen perusteita

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö

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

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Java-kielen perusteet

Luento 3 Tietokannan tietosisällön suunnittelu

HELIA TiKo-05 1 (10) Outi Virkki ICT03D Tieto ja tiedon varastointi yrityksessä

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

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit:

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (14) Outi Virkki Tiedonhallinta

D B. Tiedostojen käsittely

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

Tietokanta (database)

D B. Harvat hakemistot. Harvat hakemistot

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

Algoritmit 2. Luento 2 To Timo Männikkö

3. Tietokannan hakemistorakenteet

3. Tietokannan hakemistorakenteet

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

Suurten asiakasriskien ilmoittamiseen liittyvät konekielisen tietojenvälityksen ohjeet

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

Päivityspalvelu. Tietuekuvaus. Tietuekuvaus 1 (5) Päivityspalvelu. Julkinen - Public

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö

Johdanto. Kiinteistöhuoltoyhtiö tarvitsee järjestelmän huoltopyyntöjen hallinnointiin

Ohjelmoinnin perusteet Y Python

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

18. Abstraktit tietotyypit 18.1

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

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

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

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

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Ohjelmoijan binaarialgebra ja heksaluvut

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

Tietokannan suunnittelu

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

Algoritmit 2. Luento 2 Ke Timo Männikkö

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Java-kielen perusteet

Tietokannan rakenteen suunnittelu

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

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

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

A TIETORAKENTEET JA ALGORITMIT

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

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Hakemistotyypeistä. Hakemistorakenteet. Hakemiston toteutuksesta. Hakemiston toteutuksesta

Tietokantakurssit / TKTL

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

811120P Diskreetit rakenteet

HELIA 1 (14) Outi Virkki Tiedonhallinta

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

1. Skannaus ja tekstintunnistus (OCR) verkkoskannerilta

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:

CSE-A1200 Tietokannat

Algoritmit 1. Luento 5 Ti Timo Männikkö

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Ohjelmoinnin perusteet Y Python

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

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

Transkriptio:

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 Tiedon tallennuksen yksiköitä...7 Looginen taso...7 Tiedosto...7 Tietue...7 Kenttä...7 Avain (pääavain)...7 Tietotyyppi...9 Merkistöt... 10 Fyysinen taso... 11 Yhteensovitus... 12 Tiedosto-organisaatio ja saantimenetelmät... 14 Järjestämätön peräkkäistiedosto... 15 Järjestetty peräkkäistiedosto... 16 Hajarakenne... 17 Indeksointi... 19 Päähakemisto... 21 Toisiohakemisto... 22 Indeksoitu peräkkäistiedosto... 23

HELIA Tiko -05 2 (23) Tiedon 3-tasomalli Tietoa käsiteltäessä tietoa voidaan tarkastella kolmella eri abstraktiotasolla: 1. Käsitetaso 2. Looginen taso 3. Fyysinen taso Käsitteellinen taso Mitä? Tiedon nimi, ja merkitys; arvoalue riippumaton toteutusratkaisuista Looginen taso Mitä & Miten? Tiedon esitys valitulla tietomallilla / ohjelmassa sidottu käytettävään tietomalliin / ohjelmaan Fyysinen taso Miten? Tiedon esitys fyysisellä tallennusvälineella sidottu käytettävään toteutusympäristöön

HELIA Tiko -05 3 (23) Tieto käsitetasolla Käsitetasosta käytetään myös nimitystä kohdetaso täysin ohjelmistoista riippumaton kohdealueen tietojen esitys käsitetasolla tärkeitä kysymyksiä ovat mm.: o Mistä kohteista tietoja tallennetaan? o Millaisia ominaisuuksia / tietoelementtejä ko.kohteilla on? o Miten tiedot liittyvät yhteen? o Millaisia arvoja ominaisuudet / tietoelementit voivat saada? o Mitä sääntöjä tietoihin liittyy? Esim: Kohde Asiakas ominaisuudet Asiakkaan nimi Yhteyshenkilön nimi Yhteyshenkilön puh PostiOsoite LaskutusOsoite Y-tunnus yhteydet Kohde: tilaus

HELIA Tiko -05 4 (23) Tieto loogisella tasolla Loogisesta tasolta käytetään myös nimitystä rakennetaso Millaisia rakenteita tiedot muodostavat? Esimerkiksi ohjelmointikielet näkevät tiedon tietynlaisina tietorakenteina ja tietotyyppeinä, joita ne voivat käsitellä. Tiedon rakenteiseen kuvaamiseen käytetään jotain tietomallia. (Tällä kurssilla opiskellaan mm. relaatiotietomallin perusteet.) Esim. relaatio Oppilas

HELIA Tiko -05 5 (23) Tieto fyysisellä tasolla Fyysisestä tasosta käytetään myös nimitystä talletustaso Millaisina fyysisinä rakenteina tieto on tallennettu tietokoneelle (sivut, tavut, bitit jne.)? Miten tehostaa tiedon hakua tietokoneen apumuistista (hakemistorakenteet l. indeksit)? Loogisen ja fyysisen tason raja on joskus häilyvä

HELIA Tiko -05 6 (23) Muistit Päämuisti Keskusmuisti, Primary Storage Nopea Pieni Kallis Epäluotettava: Sisältö säilyy sähkön avulla (volatile) Kaikki tiedon käsittely tapahtuu keskusmuistissa Käsittelyä varten tiedot on noudettava apumuistista keskusmuistiin Kehitteillä on myös uusia ratkaisuja, jossa koko tietokanta voisi sijaita keskusmuistissa Apumuisti Secondary storage Muistivälineet Magneettilevyt Optiset levyt Magneettinauhat Suuri Hidas Halpa Luotettava: Sisältö säilyy sähkön saannista riippumatta (non-volatile)

HELIA Tiko -05 7 (23) Tiedon tallennuksen yksiköitä Looginen taso Tiedosto Joukko tietoja, jotka on tallennettu samaan paikkaan tietovälineellä ja jolla on nimi Esim. Henkilötiedosto Tiedosto koostuu yhdestä tai useammasta tietueesta Tietue Yhteen yksilöön, tapahtumaan tms. liittyvät tiedot samassa yhteydessä esitettynä Esim. yhden henkilön tiedot Tietue koostuu yhdestä tai useammasta kentästä Kenttä Kenttä sisältää tietoalkion Tietoalkio = Pienin merkityksen omaava tiedon yksikkö Esim. postinumero Avain (pääavain) Tietueen yksilöivä tieto Voi koostua yhdestä tai useammasta kentästä

HELIA Tiko -05 8 (23) Esim: tietue Hlono Etunimi Sukunimi Katuosoite postino 2565 Seija Teikäläinen Ratapiha 3 56000 2566 Maija Heikälainen Puistokatu 3 B 2567 Matti Meikälainen Fredrikinkatu 32 H 1 02450 00150 kenttä

HELIA Tiko -05 9 (23) Tietotyyppi Tietueen kentälle määritellään tietotyyppi Tietokoneessa kaikki tiedot, esitetään bittijonoina ja koneen kannalta bittijono on vain bittijono. Ihmisen / ohjelmoijan kannalta tietyt bittijonot esittävät kokonaislukuja / desimaalilukuja /merkkejä siis tiedoilla on jokin tyyppi (type). Tietotyyppi määrittää 1. millaisia arvoja tieto voi saada 2. millaisilla operaatioilla sitä voi käsitellä Eri tiedonhallintajärjestelmät, sovelluskehittimet ja ohjelmointikielet tuntevat hieman erilaisia tietotyyppejä Järjestelmä pystyy tarjoamaan automaattisesti tiedon sisältöön ja siihen kohdistettuihin operaatioihin liittyviä tarkistuksia (ts. niitä ei tarvitse itse ohjelmoida) Tavallisimmat tietotyypit Teksti / merkkijono varchar / char/ Luku number Kokonaisluku integer Desimaaliluku decimal Päivämäärä date Totuusarvo boolean

HELIA Tiko -05 10 (23) Merkistöt Merkistö on sopimus, joka määrittelee, miten eri bittiyhdistelmät (binääriluvut) tulkitaan eri merkeiksi. Merkistöjä on käytössä useita erilaisia johtuen merkistösopimusten syntyhistoriasta. 7 bittinen ASCII 60-luvulla Yhdysvalloissa kehitetty merkistö soveltuu amerikanenglannin kirjoittamiseen, mutta siinä ei ole monissa muissa kielissä tarvittavia kirjaimia (esim. ä,ö). 8-bittiset ISO 8859 merkistöt: Länsi-Eurooppa, Itä-Eurooppa, Pohjois-Eurooppa, Arabia, Kreikka, Thai jne. Unicode merkistö (esim. 16 bittinen) kattaa suurimman osan maailman kirjoitettujen kielten merkeistä. yksilöivä koodiarvo yli 90 000 kirjoitusmerkille UTF-8, UTF-16, UTF-32 Unicode tuki laajenee eri käyttöjärjestelmissä, ohjelmistokehitysympäristössä (on esim. Windows XP:ssä, ei 9x-versioissa.) Unicode provides a unique number for every character, no matter what the platform, program, nor language.

HELIA Tiko -05 11 (23) Fyysinen taso Bitti (Bit) Tietokoneen sisällä kaikki tieto esitetään 0 ja 1 koostuvina sarjoina ns. binäärilukuina Bitti pystyy tallentamaan yhden binäärinumeron siis bitin arvo voi olla joko 0 tai 1 Tavu (Byte) 8 bittiä Merkin tallennus vaatii 1-2 tavua ( 8-16 bit) Muistien koko ilmoitetaan yleensä tavuina A4:lle mahtuu n. 2 kilotavua (2 * 1024 tavua); yhteen megaan mahtuu siis n. 500 A4-arkkia Sana 1 tavu 8-bittisissä ympäristöissä 2 tavua 16-bittisissä ympäristöissä 4 tavua 32 bittisissä ympäristöissä 8 tavua 64-bittisissä ympäristöissä Sivu / Lohko (Page / Block) Yksikkö, joka siirretään kerrallaan apumuistista keskusmuistiin (ja päinvastoin) Fyysinen tietue Koko vaihtelee käyttöjärjestelmän ja laitteistoalustan mukaan

HELIA Tiko -05 12 (23) Yhteensovitus TIEDOSTO 1 1 0..* TIETUE 0..* 1..* 1..* SIVU 1 1 1..* KENTTÄ 1 1..* * TAVU 1 * BITTI Sivuun voi mahtua 1 tai useampi tietue, joskus tietue voi olla niin suuri, että sen tallennukseen tarvitaan useampi sivu Tietueen koko muodostuu kenttien kooista Kenttien koko ilmoitetaan tietotyypin (ja pituuden) avulla Tietotyyppi ja pituus ratkaisevat kentän tallennukseen tarvittavien tavujen määrän Tiedoston kuvaaja (File Header, File Descriptor) Sivujen osoitteet Tietueen kuvaus (kentät, pituudet, tyypit, järjestys, mahd. erotinmerkit)

HELIA Tiko -05 13 (23) Tietueen koko Kiinteämittainen tietue Tiedoston kaikki tietueet ovat saman mittaisia Kaikissa tietueissa on sama määrä kenttiä Vaihtuvamittainen tietue Tiedoston tietueet ovat eri mittaisia se. Tietueissa voi olla eri määrä kenttiä Kentän koko Kiinteämittainen kenttä Kentälle on määritelty kiinteä pituus Esim. char(30) Vaihtuvamittainen kenttä Kentän pituus voi vaihdella Esim. varchar(200)

HELIA Tiko -05 14 (23) Tiedosto-organisaatio ja saantimenetelmät Tiedosto-organisaatio Miten tiedot on fyysisesti järjestetty tiedostoon Saantimenetelmä Miten tietoja voidaan hakea tiedostoista ja tallentaa tiedostoihin Perustyypit 1. Peräkkäishaku 2. Suorasaanti Indeksoitu peräkkäistiedosto Hajarakenne (hash file) Käytettävissä olevat saantimenetelmät riippuvat tiedoston organisointitavasta

HELIA Tiko -05 15 (23) Järjestämätön peräkkäistiedosto Sequential file/ Heap file Yksinkertaisin organisointitapa Tietueet varastoidaan siinä järjestyksessä kuin ne ilmaantuvat 1. Uusi tietue sijoitetaan tiedoston loppuun (viimeiselle sivulle) 2. Jos sivulla ei ole tilaa, lisätään tiedostoon uusi sivu Poistetun tietueen varaamaa tilaa ei käytetä uudestaan -> tiedostoalue reikiintyy Reikiintynyt tiedosto voidaan uudelleenorganisoida määräajoin Ainut saantimenetelmä on peräkkäishaku Lisääminen on tehokasta Tietyn tiedon haku hidasta (esim. tiedon lukua, päivitystä, poistoa varten) Suurten tietuemäärien luku nopeaa Autotiedosto 1 0011 Volvo 1 0235 Audi n 0551 Renault n 1011 Toyota

HELIA Tiko -05 16 (23) Järjestetty peräkkäistiedosto Sorted file Tietueet lajitellaan yhden tai useamman kentän arvojen perusteella Tyypillisesti lajitteluperusteena käytetään pääavainta Tietueiden lisääminen ja poistaminen on järjestetyssä peräkkäistiedostossa ongelmallista, koska tietueiden järjestys on ylläpidettävä Tietyn tiedon haku puolitushakuna (esim. tiedon lukua, päivitystä, poistoa varten) Yleensä nopeampi kuin peräkkäishaku 2 4 6 8 15 19 20 22 25 27 Suurten tietuemäärien luku nopeaa (peräkkäishakuna) Järjestettyyn peräkkäistiedostoon liitetään usein indeksi (ks. Indeksoitu peräkkäistiedosto)

HELIA Tiko -05 17 (23) Hajarakenne Hash file Tietueita ei kirjoiteta tiedostoon peräkkäin Tietueet sijaitsevat satunnaisesti talletusalueella eli hajautusalueella Hajautusfunktio (Hash Function) laskee osoitteen johon tietue tallennetaan hajautuskentän perusteella (hash field) Hajautusfunktio valitaan siten, että tietueet jakautuvat tiedostossa mahdollisimman tasaisesti Ongelma on, että hajautusfunktiot eivät takaa uniikkiosoitetta Tarvitaan menetelmiä yhteentörmäysten käsittelemiseksi Autotiedosto Hajautin (=funktio) 1 0235 Audi Param. O. 2 1011 Volvo Osoitin ylivuotoalueelle 0551 3 0011 Renault 4 0551 Toyota

HELIA Tiko -05 18 (23) Tietyn tietueen haku erittäin nopeaa, mikäli hajautusfunktion valinta on onnistunut (vain vähän yhteentörmäyksiä) Haku tietyn arvovälin mukaan hidasta Haku muun kuin hajautusavaimen mukaan hidasta Suuren tietuemäärän haku peräkkäishakuna

HELIA Tiko -05 19 (23) Indeksointi Indeksi on tietorakenne, joka mahdollistaa tietyn tietueen paikallistamisen nopeasti peräkkäistiedostosta Vrt. Kirjan hakemisto Datatiedosto (Data File) sisältää loogiset tietueet Hakemistotiedosto / Indeksitiedosto (Index File) sisältää indeksitietueet Indeksitiedoston tietueessa on 2 kenttää: 1. hakukenttä (Indexing Field) 2. osoitekenttä, jonka arvona on sen lohkon osoite, missä hakukenttää vastaava tietue sijaitsee Indeksitiedoston tietueet on järjestetty hakukentän (Indexing Field) mukaan (järjestetty peräkkäistiedosto) Autotiedosto Indeksi 1 0011 Volvo 0011 1 1 0235 Audi 0235 1 n 0551 Renault 0551 n n 1011 Toyota 1011 n

HELIA Tiko -05 20 (23) Indeksitiedosto on yleensä huomattavasti pienempi kuin datatiedosto Indeksitiedostoa (tai osia siitä) voidaan säilyttää väliaikaisesti keskusmuistissa Haku indeksoidun kentän mukaan nopeaa Uusien tietueiden lisäys ja poisto työläämpää Datatiedoston lisäksi päivitettävä indeksitiedostoa

HELIA Tiko -05 21 (23) Päähakemisto Primary Index Datatiedosto on lajiteltu peräkkäistiedosto joka on järjestetty pääavaimen mukaan Pääindeksin hakukenttänä on datatiedoston pääavain Pääindeksin hakukentän arvot ovat uniikkeja / yksilöiviä Autotiedosto Pääindeksi 1 0011 Renault 0011 1 2 0235 Audi 0235 2 3 0551 Toyota 0551 3 4 1011 Volvo 1011 4 5 1200 Renault 1200 5... Pääavain

HELIA Tiko -05 22 (23) Toisiohakemisto Secondary Index Indeksi on määritelty datatiedoston kentästä, jonka mukaan datatiedostoa ei ole järjestetty (ei pääavaimen mukaisesti) Toisiohakemiston hakukentän ei tarvitse sisältää uniikkiarvoja Toisioavaimeksi valitaan kenttä / kenttiä, joiden perusteella tietoa haetaan usein Esim. Henkilön nimi Autotiedosto Toisioindeksi 1 0011 Renault Audi 2 2 0235 Audi Renault 1 3 0551 Toyota Renault 5 4 1011 Volvo Toyota 3 5 1200 Renault Volvo 4...

HELIA Tiko -05 23 (23) Indeksoitu peräkkäistiedosto Indexed sequential files Datatiedosto, jolle on määritelty pääindeksi Rakenne yhdistää peräkkäiskäsittelyn ja suorasaannin saantimenetelmät Nykyään eniten käytetty tiedosto-organisaatio