Inleiding Informatica, College 9, H 8, sheetnr. 113 March, 2001 Basiscursus Informatica 98/991 Inleiding Informatica College 9, Brookshear hoofdstuk 8: File Structures
Inleiding Informatica, College 9, H 8, sheetnr. 213 March, 2001 Basiscursus Informatica 98/992 Overzicht college 9 n 1. Rol van besturingsysteem n 2. Sequentiele files n 3. Text files (sequentieel) n 4. Indexed files n 5. Hashed files
Inleiding Informatica, College 9, H 8, sheetnr. 313 March, 2001 Basiscursus Informatica 98/993 Volgorde van behandeling n Hoofdstuk 7: organisatie van gegevens in vluchtige werkgeheugen, gezien als interne programma datastructuren n hoofdstuk 8: organisatie van gegevens op de harde schijf, gezien als de normale programma I/O n hoofdstuk 9: organisatie van complexe gegevenstructuren, met speciale software, gezien als data modellen
Inleiding Informatica, College 9, H 8, sheetnr. 413 March, 2001 Basiscursus Informatica 98/994 OS en harde schijf n Opslag op HD in eenheden ä logische versus fysieke eenheden (zie: disk dokter) n OS organiseert deze opslag ä bestandsgegevens in tabel: file descriptor (fcb) ä aanmaak, openen, afsluiten, verwijderen n OOP: bestand wordt gezien als object ä methoden voor aanmaak, toegang, etc.
Inleiding Informatica, College 9, H 8, sheetnr. 513 March, 2001 Basiscursus Informatica 98/995 Abstractie n Voor gebruiker is kennis over fysieke opslag van bestand niet nodig ä standaard procedures, commando’s n OS communiceert met programma procedures en moet weten waar het overgaat ä structuur van file, keyfield, huidige positie, soort toegang (read, write), etc. n Beperkte resources ä vrijgeven van bestanden van belang
Inleiding Informatica, College 9, H 8, sheetnr. 613 March, 2001 Basiscursus Informatica 98/996 B.v. vanuit progr. taal open (unit=10, file=‘abcd’, status=old, access=sequential) vraagt aan OS om file descriptor te maken voor de file ‘filename’ om iets met de file te doen close (unit=10) file ‘10’ is bijgewerkt en wordt afgesloten Verschil interne en externe file naam: unit=10 versus abcd Komt door verschillende syntax programmeertalen en OS
Inleiding Informatica, College 9, H 8, sheetnr. 713 March, 2001 Basiscursus Informatica 98/997 Overzicht college 9 n 1. Rol van besturingsysteem n 2. Sequentiële files n 3. Text files (sequentieel) n 4. Indexed files n 5. Hashed files
Inleiding Informatica, College 9, H 8, sheetnr. 813 March, 2001 Basiscursus Informatica 98/998 Sequential file n Gegevensopslag in serie n bv audio, video, teksten, programmacode ä volgorde wordt afgedwongen n een veel voorkomende organisatie n slecht voorbeeld: personeelsbestand n (waarom?)
Inleiding Informatica, College 9, H 8, sheetnr. 913 March, 2001 Basiscursus Informatica 98/999 Sequential file: opbouw n personeels-administratie-systeem ä personeelsgegevens voor alle medewerkers ä loop een voor een af en zoek informatie op ä sequentiële file n File = Record1, Record2,..., Recordn, EOF ä Andersen, Benjamins, Brouwer,... n Record = Field1, Field2,..., Fieldn ä Achternaam, adres, personeelsnr, dienstjaren
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9910 Sequential file: visueel n Conceptueel ä toegang tot informatie in file is sequentieel n Fysiek ä records kunnen verspreid over disk zijn Rec #1 Rec #2 Rec #3 Rec #4 EOF disk sector 1: rec#1, #2 sector 2: rec#3, #4 FILE INFO 1-2 sector1 3-4 sector
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9911 Sequential files: bewerken n Personeels-administratie updaten: ä zoek een medewerker in de file ä werk gegevens bij ä zoek een andere medewerker n Niet erg efficiënt ä elke keer opnieuw zoeken vanaf begin n Beter: bij te werken gegevens in zelfde volgorde als records in sequential file
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9912 Keyfield n Sequentiele files kunnen zijn geordend volgens een keyfield ä alphabetisch ä numeriek (bv. personeelsnummer) n Sorteer bij te werken gegevens volgens zelfde keyfield ä gegevens bijgewerkt zonder te zoeken van begin
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9913 Toegang sequentiele files n Elke programmeertaal komt met primitieven voor sequential files ä Pascal: read(File, Record), write(File, Record) n Lokatie informatie is impliciet ä record dat gelezen wordt, is het volgende record Rec #1 Rec #2 Rec #3 Rec #4 EOF
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9914 Merging van seq. files n Gegeven: studenten file (master file), sorted sorted nieuwe studenten (transaction file) Keyfield: collegekrtno n Gevraagd: nieuwe studenten-file merge eof eof eof mastertransaction
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9915 FAT n FAT = File Allocation Table n link tussen clusters en bestandsnamen ä in directory: koppeling bestandsnaam en nummer eerste cluster ä in FAT-tabel: clusternummers van vervolg ä clusters: groepen van sectoren ä 16bits FAT = 2 16 clusters = max 128 Mb ä 32 bits FAT = 2 32 clusters = max 9 Terabytes
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9916 Overzicht college 9 n 1. Rol van besturingsysteem n 2. Sequentiele files n 3. Text files (sequentieel) n 4. Indexed files n 5. Hashed files
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9917 Tekstbestanden n Minimaal logisch record van 1 teken = 1 byte n Record = 1 Field = 1 Byte ä 1 byte = 1 tekstsymbool of 1 controle teken (^m) n Alternatieve conceptualisatie: 1 record = 1 regel (eol) A B C ….. eol
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9918 ASCII - Unicode n ASCII bestand = 1 byte per symbool, max 256 verschillende tekens n Unicode = 2 bytes per symbool, max verschillende tekens n Tekst in Java gebaseerd op Unicode: alle talen representeerbaar
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9919 Binary file n Elk bestand dat geen tekstbestand is ä goed overdraagbaar tussen verschillende OSs n Einde regel code voor tekstbestanden per OS verschillend: ä Unix: line feed + carriage return ä Windows: alleen linefeed ä Apple: alleen carriage return
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9920 Manipulatie van text files n In massa-opslag: tekstfile verdeeld in multiple-byte eenheden die fysieke records vormen n Manipulatie (read/write) door software dmv buffer in centrale geheugen ä read van bytes: -retrieve aantal fysieke records -stop in buffer ä write van text file: -verzamel bytes in buffer - als fysiek record gevuld - schrijf weg naar disk
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9921 Buffer disk read write programma buffer File Info..... sector sector Wat gebeurt er als we om een stuk tekst vragen en - zit al in buffer? - zit niet in buffer? Wat gebeurt er als een bestand meerdere keren geopend wordt?
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9922 Abstracties n In programeertalen niet alleen input/output op basis van tekens van tekstbestanden: ä readChar ä readLine ä readInteger ä readFloat ä readBoolean n tekenconversie door programmeertaal
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9923 Overzicht college 9 n 1. Rol van besturingsysteem n 2. Sequentiele files n 3. Text files (sequentieel) n 4. Indexed files n 5. Hashed files
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9924 Geïndexeerde files n Sequentieel: als je een willekeurig record wilt, is het erg tijdrovend om alle records af te lopen n Idee geïndexeerde files: ä voeg aan het bestand een zoeklijst toe ä plaats alle recordsleutels in die lijst ä voorzie elke sleutel van de recordlocatie n Bv muziek CD met nummer index
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9925 Index fundamentals n Index is lijst van paren: zoeksleutel - positie n Index evt los van bestand n meerdere indexen mogelijk n sequentieel zoeken blijft mogelijk n partiële index: getrapte benadering n inverted file
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9926 (Multiple) index disk key: collegekrtno File met twee indexen: inverted file secondary key: naam Andersen Brouwer Colijn Fortuin..... primary
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9927 Andere kant medaille n Geïndexeerde bestanden hebben voordeel van directe (en sequentiële) toegang, maar... n nadeel als records toegevoegd en verwijderd worden ä updaten index, kost tijd ä multiple indexes kost nog meer tijd n Merk op: directory structuur in OS is ook index
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9928 Index organisatie n Index komt in centraal geheugen (vanaf disk) n Moet niet te groot zijn, anders past er niet in n Als te grote index ä partial index –keyfield wijs naar segment met aantal records ipv naar 1 record ä hiërarchische index –keyfield verwijst naar andere index (vgl directory stucture in OS)
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9929 Partial index Waarom gebruik je de grootste key om een segment te repre- senteren? Index keysegment locatie File opgedeeld in segmenten
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9930 Hierarchische index K U Z key subindex File opgedeeld in segmenten D G K O R U X Y Z key subindex Index B C D E F G H I J K L M N O
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9931 Overzicht college 9 n 1. Rol van besturingsysteem n 2. Sequentiele files n 3. Text files (sequentieel) n 4. Indexed files n 5. Hashed files
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9932 Hashed files n Sequential files hebben sequentiële toegang n Indexed files hebben zowel directe (random) als sequentiële toegang ä overhead van bijhouden index n Hashed files hebben alleen directe toegang (random access) ä zonder overhead van index ä locatie bepaald mbv hash algoritme
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9933 Hash principe n Bestandsruimte ingedeeld in “buckets” n Zoekruimte beperkt tot 1 bucket n Hash-algorimte rekent recordsleutel om naar bucket-nummer n Meerdere records in 1 bucket Key Hash algoritme {0,..., n} bucket#0 bucket#1 bucket#n.....
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9934 Hashing: key % 40 Keys : 14, 39, 93, 94, 133, %40= 14 39%40= 39 93%40= 13 94%40= %40= %40= 15 remainders = buckets #12#13#14#15# hash algoritme 39
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9935 Sleutelwaarde conversie Key field waarde:23x3z ASCII: Equivalent in 10-basis: Remainder na % 40: 2 Bucket nummer:2
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9936 Distributie-problemen n Als keys een bepaald patroon vertonen: ä bv. 5, 10, 20,... n En ze hebben een factor gemeenschappelijk met het aantal buckets ä bv. 5 n Dan worden alleen bepaalde buckets gevuld ä bucket 0 n Keys clusteren in bepaalde buckets ä retrieval binnen bucket is sequentieel
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9937 Clusteren n Een priemgetal als deler geeft een evenwichtiger resultaat, waarom? n Clusteren kan wel verminderd worden, maar niet voorkomen ä bij 8 x insert en 41 buckets kans op leeg bucket: (41/41)(40/41)(39/41)...(34/41) =.482 ä dus: kans op twee keys in zelfde bucket is al groter dan 0.5 bij 8 keys ä meerdere keys naar zelfde bucket: collision
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9938 Priemgetal deler ä 10%40=10 ä 50%40=10 ä 90%40=10 ä 130%40=10 ä 170%40=10 ä 210%40=10 ä 250%40=10 ä 290%40=10 ä 330%40=10 ä 370%40=10 ä 10%41=10 ä 50%41=9 ä 90%41=8 ä 130%41=7 ä 170%41=6 ä 210%41=5 ä 250%41=4 ä 290%41=3 ä 330%41=2 ä 370%41=1
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9939 Section overflow n Grote kans op collisions ä dus altijd rekening houden met clustering ä maatregelen voor mogelijke problemen n Overflow: ä bucket is vol, maar er wordt nog een key bij gehashed n Oplossing: overflow sectie gelinked aan bucket n Nadeel: efficiëntie gaat naar beneden ä sequentiële toegang in overflow sectie
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9940 Overflow #0 #1 #2 #3 #4 NIL Overflow opslaggebied Overflow pointers Opslag buckets
Inleiding Informatica, College 9, H 8, sheetnr March, 2001 Basiscursus Informatica 98/9941 Nadelen hashed files n Organisatie van buckets n vinden van goed algoritme n weinig flexibele, gefixeerde oplossing n onhandig bij hoge record-turn-around