1 / 15

Zaporedna datoteka

Zaporedna datoteka. Lastnosti zap. datoteke. zapisi logične datoteke se preslikajo v zapise fizične datoteke tako, da so urejeni (naraščajoče /padajoče) po vrednosti KLJUČA ključ je lahko tudi sestavljen iz več podatkovnih elementov

naida-vang
Download Presentation

Zaporedna datoteka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zaporedna datoteka

  2. Lastnosti zap. datoteke • zapisi logične datoteke se preslikajo v zapise fizične datoteke tako, da so urejeni (naraščajoče /padajoče)po vrednosti KLJUČA • ključ je lahko tudi sestavljen iz več podatkovnih elementov Logična urejenost zapisov je v fizični datoteki predstavljena: s fizičnim zaporedjem zapisov z uporabo kazalcev: • urejenost fizičnih blokov s kazalci • urejenost zapisov s kazalci s faktorizacijo

  3. 1.Urejenost s fizičnim zaporedjem • struktura fiz. zapisov == struktura log. zapisov • ureditev zapisov je predstavljena z njihovim fizičnim zaporedjem v datoteki problem = ažuriranje • GOSTA DATOTEKA • dodajanje/brisanje zapisovprepisovanje stare datoteke v novo (zamudno) • primerna le za branje zapisov in spreminjanje podatkov, ki NISO v ključu • REDKA DATOTEKA • omogoča hitrejše dodajanje/brisanje zapisov • ob kreiranju novega bloka / začetnem vpisu ohrani nekaj prostih polj

  4. Reorganizacija redke datoteke • Kdaj? - ko se kakšen blok povsem napolni / preventivno • Kako? - kreiraj novo fizično datoteko, ki vsebuje vse zapise stare datoteke, pri tem pa so v fizičnih blokih spet predvidena prazna polja za dodajanje novih zapisov • Čas? - razmeroma dolgotrajen postopek izvedi takrat, ko podatkovna baza ni aktivna • Kako zagotoviti pravočasnost reorganizacije?  tekoči nadzor zasedenosti blokov • Primernost fizičnega zaporedja zapisov  le za nevezane zapise

  5. 2.1. Urejenost fizičnih blokov s kazalci • Kako ? - vsakemu bloku dodaj kazalec, ki kaže na logično naslednji blok • V zaporedje (verigo) blokov lahko na poljubnem mestu vključimo nov prazen blok  odpade potreba po reorganizaciji. • dodajanje zapisa v popolnoma zaseden blok: • v ‘verigo’ dodaj nov blok • zapisezasedenega bloka in dodani zapis enakomerno razporediš v oba bloka • uporabi pravilo: naj bo zasedena vsaj polovica poljvsakega bloka preprečiš slabo izkoriščenost prostora • Primerno: redke datoteke / nevezani zapisi

  6. 2.2. Urejenost zapisov s kazalci Kdaj? – ko so zapisi zaporedne fizične datoteke vezani na polje Kako?zaporedje zapisov znotraj bloka uredi (poveži) s kazalci primer – logičnemu zapisu tip Oseba = (Maticna_stevilka : desetiški(6), Ime : znakovni(20), Naslov : znakovni(30)) Ključ = (Maticna_stevilka) : razločevalni se priredi tip fizičnega zapisa: tip Oseba = (Maticna_stevilka : desetiški(6), Ime : znakovni(20), Naslov : znakovni(30), Kazalec : kazalčni)) Ključ = (Maticna_stevilka) : razločevalni

  7. Urejenost zapisov s kazalci (nad.) • kazalec v posameznem zapisu = naslov polja, v katerem se nahaja logično naslednji zapis • v bloku se nahaja veriga zapisov • veriga se prične s kazalcem, ki je sestavni del metapodatkov bloka • ta kazalec kaže na logično prvi zapis • veriga se konča z zapisom, ki vsebuje slepi kazalec (NULL) • DODAJANJE ZAPISA • ciljni blok ima še kakšno prosto polje - enostavno izvedljivo • ciljni blok je zaseden dodani zapis se shrani v prosto polje, ki se nahaja na posebnem področju imenovanem prelivno področje. • Uporabljata se dve vrsti prelivnih področij: lokalna prelivna področjain globalno prelivno področje

  8. Prelivna področja Lokalna prelivna področja rezervirani deli blokov fizične datoteke, ki se ob inicializaciji datoteke ne izkoristijo za shranjevanje zapisov (zlata rezerva ) Globalno prelivno področje blok ali skupina blokov ležečih na koncu fizične datoteke (lahko pa tudi v posebni prelivni datoteki - v tem primeru je logična datoteka shranjena v osnovni (zaporedni) datoteki in v prelivni (neurejeni) datoteki)

  9. Primerjava: globalna  lokalna prelivna področja • slabost lokalnih prelivnih področij: • slaba izkoriščenost pomnilnega prostora po inicializaciji datoteke • omejena kapaciteta • prednost lokalnih prelivnih področij: • hitrost dostopa do zapisov - zapis najdemo vedno v prebranem ciljnem bloku • slabost globalnih prelivnih področij: • Potrebno branje dodatnega bloka (ali celo iskanje druge datoteke po datotečnem seznamu) • prednost globalnih prelivnih področij: • po velikosti (skoraj) ni omejeno (po potrebi se lahko razširi z novimi bloki)

  10. 3. Faktorizacija • preslikava zapisov logične datoteke v dva dela: • na fizične zapise, ki vsebujejo ključe logičnih zapisov in kazalce, • na fizične zapise, ki vsebujejo preostale dele logičnih zapisov • fizične zapise shranimo v dveh fizičnih datotekah, ki ju poimenujemo datoteka Ključ in datoteka Ostali-podatki. • datoteka ključ je zaporedna datoteka • datoteka Ostali-podatki pa neurejena datoteka

  11. Primer faktorizacije Tipu logičnega zapisa: tip Oseba = (MaticnaStevilka:desetiški(6), Ime:znakovni(20), Naslov : znakovni(30)) Ključ = (Maticna_stevilka) : razločevalni se priredita tipa fizičnih zapisov: tip KljučOseba = (MaticnaStevilka:desetiški(6), Kazalec : kazalčni)) Ključ = (Maticna_stevilka) : razločevalni tip PodatkioOsebi = ( Ime : znakovni(20), Naslov : znakovni(30)) Uporaba faktorizacije je smiselna, če je ključ veliko krajši kot preostali del logičnega zapisa.

  12. Prednosti / slabosti faktorizacije • Prednost: če je ključ kratek, je datoteka Ključ je veliko krajša:  posamezni fizični blok ima veliko več zapisov, kot pri nefaktorizirani datoteki  pospešijo se vsi postopki ažuriranja • slabost faktorizacije: • ko najdemo iskani zapis datoteke Ključ, je potrebno prebrati še en blok datoteke Ostali_podatki, da pridemo do vseh podatkovnih elementov logičnega zapisa • težave, če se pogosto spreminja vrednost ključa (počasnost) DODAJANJE ZAPISOV • shranimo zapis tipa ostali_podatki v neurejeno datoteko Ostali_podatki • dodamo zapis tipa ključ s kazalcem v zaporedno datoteko Ključ, pri čemer kaže kazalec na shranjeni zapis 'ostali podatki' BRISANJE ZAPISA • zadošča, da izbrišemo le ustrezni zapis iz datoteke Ključ ( 'ostali podatki postanejo nedostopni). • če želimo optimalno izkoristiti datoteko Ostali_podatki, je potrebno ustrezno polje, označiti kot prosto polje

  13. Iskanje zapisov zaporedne datoteke(algoritmi) • zaporedno iskanje O(n) • dvojiško iskanje O(log2n) • statistično iskanje • neposredno iskanje • uporabno za iskanje po ključu; • pri razločevalnem ključu se iskanje konča, ko najdemo prvi ustrezni zapis • ključ ni razločevalenpoišči še preostale zapise z enako vrednostjo ključa

  14. Statistično iskanjepogoj: poznavanje razporeditve vrednosti ključev zapisov Postopek: • domeno ključev razdelimo na n intervalov • za vsak interval ugotovimo % pripadajočih zapisov • porazdelitev zapisov prikaži s porazdelitveno tabelo • s pomočjo porazdelitvene tabele določi ciljni blok • ciljni blok = osnova za nadaljnje iskanje zapisa • glede na vrednost ključev prvega in zadnjega zapisa v bloku nadaljuj z iskanjem: • znotraj bloka • z zaporednim iskanjem po naslednjih blokih ali • z vzvratnim zaporednim iskanjem po predhodnih blokih

  15. Neposredno iskanjepogoj: pričakovano število zapisov v datoteki število možnih vrednosti razločevalnega ključa Kako?- za vsak zapis predvidi eno polje v datoteki  lega zapisa v datoteki je neposredno odvisna od vrednosti ključa zapisa; določena je s funkcijo: naslov_polja = f(vrednost_ključa) Funkcija f je bijektivna! Postopek • s pomočjo funkcije izračunaj naslov polja (št. fizičnega bloka, odmik) • preberi fizični blok • preveri, ali je polje z izračunanim naslovom zasedeno ali ne

More Related