200 likes | 310 Views
?. ?. ?. ?. Fi şiere indexate Algoritmi și operații de ba z ă. Fi şiere organizate indexat. Articole şterse (logic). Fişier indexat = o pereche de fi şiere fişier de date (secvenţial ) fişier index ( secvenţial , sortat). Fi şiere organizate indexat.
E N D
? ? ? ? Fişiere indexate Algoritmiși operații de bază
Fişiere organizate indexat Articole şterse (logic) • Fişier indexat = o pereche de fişiere • fişier de date (secvenţial) • fişier index (secvenţial, sortat)
Fişiere organizate indexat • Accesul la articole: prin intermediul fișierului index • Tipuri de acces: • Secvențial următorul articol (în ordinea cheilor) • Direct după cheie • Mixt
Fişiere organizate indexat • Operaţii de prelucrare • Populare în acces secvenţial • în ordinea cheilor, scriere în acces secvenţial • cheie invalidă • Populare în acces direct • scriereîn acces direct • cheie invalidă • Consultare în acces secvenţial • în ordinea cheilor • citire în acces secvenţial, detectare sfîrşit fişier • Consultare în acces direct • cheie invalidă
Fişiere organizate indexat • Operaţii de prelucrare • Consultare în acces mixt • domeniu de chei / sfîrşit fişier • Adăugare (acces direct) • scriere în acces direct • cheie invalidă • Modificare • citire (acces secvenţial sau direct), modificare • rescriere • Ştergere în acces secvenţial / direct
Fişiere organizate indexat • Operaţii de bază (implementate prin subprograme) • Deschidere ca fişier nou (creare) • Deschidere ca fişier existent • Închidere fișier • Căutare cheie • Citire articol în acces secvenţial • Citire articol în acces direct • Scriere articol în acces secvenţial • Scriere articol în acces direct • Ştergere articol în acces secvenţial • Ştergere articol în acces direct • Sortare (şi curăţare) tabelă index
Fişiere organizate indexat Deschidere fişierexistent Închidere fişier Creare fişiernou
Fişiere organizate indexat Căutare cheie
Fişiere organizate indexat Citire în acces secvenţial Citire în acces direct
Fişiere organizate indexat • Scriere articol în acces secvențial • Articol a, cheia bacb baca < bacb
Fişiere organizate indexat Scriere în acces secvenţial
Fişiere organizate indexat • Scriere articol în acces direct • Articol a, cheia abab
Fişiere organizate indexat Scriere în acces direct
Fişiere organizate indexat • Ștergere articol în acces secvențial
Fişiere organizate indexat Ştergere în acces secvenţial
Fişiere organizate indexat Ştergere în acces direct • În funcție de scopul urmărit se poate interpreta astfel: • „vreau să nu existe în fișier un articol cu cheia cheie”: dacă un astfel de articol nu există, atunci operația de ștergere se termină cu succes, deci r=1 • „vreau să fac o ștergere”: dacă articolul cu cheia cheie nu există, atunci operația nu se efectuează, deci se termină cu „eșec” => r=0
Fişiere organizate indexat Sortare (şi curăţare) fişier index
Fişiere organizate indexat • Alte probleme de rezolvat (temă) • Recuperare articole șterse • Adăugarea unui articol în fișierul index, apoi sortare • Compactare fișier de date (eliminare articole șterse) • Parcurgere index, cu copierea articolelor de date într-un fișier nou și actualizarea articolelor din fișierul index cu noile poziții • Îmbunătățirea sortării fișierului index • La ștergere: e suficientă copierea articolelor valide într-un fișier nou • La adăugare: e suficientă mutarea unui grup de articole și inserarea articolului nou pe poziția corectă • În cazul ștergerii repetate în acces secvențial, sortarea e necesară doar o dată, la sfîrșit
Fişiere organizate indexat • Imbunătățiri • Încărcarea fișierului index în memorie • Încărcare imediat după deschidere • Salvare înainte de închidere • Utilizarea unor structuri de date mai potrivite căutării rapide (arbori) • Probleme suplimentare legate de ordinea articolelor în fișierul index
Spor la învăţat! Prelucrarea fişierelor indexate Algoritmi de prelucrare