220 likes | 360 Views
TEMA 2. ELS FITXERS. ELS FITXERS. FITXER LÒGIC I FITXER FÍSIC : INDEPENDÈNCIA DE DADES FITXER LÒGIC: ACCÉS I TIPIFICACIÓ VINCLES ENTRE NIVELLS EL FITXER SEQÜÈNCIAL EL FITXER RELATIU EL FITXER PER VALOR. FITXER LÒGIC I FITXER FÍSIC: INDEPENDÈNCIA DE DADES. Utilització dels fitxers
E N D
TEMA 2 ELS FITXERS
ELS FITXERS • FITXER LÒGIC I FITXER FÍSIC : INDEPENDÈNCIA DE DADES • FITXER LÒGIC: ACCÉS I TIPIFICACIÓ • VINCLES ENTRE NIVELLS • EL FITXER SEQÜÈNCIAL • EL FITXER RELATIU • EL FITXER PER VALOR
FITXER LÒGIC I FITXER FÍSIC: INDEPENDÈNCIA DE DADES • Utilització dels fitxers • Els fitxers considerats des de diversos nivells: > Fitxer lògic > Fitxer intern > Fitxer físic
FITXER LÒGIC: ACCÉS I TIPIFICACIÓ Accés Seqüencial /Directe Per posició/ Per valor Tipificació FS – Fitxer seqüencial FR – Fitxer relatiu FV – Fitxer per valor
FITXER LÒGIC : ACCÉS I TIPIFICACIÓ • Fitxer seqüèncial(accés seqüèncial per posició) • Fitxer relatiu(accés directe per posició i seqüèncial per posició) • Fitxer per valor(accés directe per valor i seqüèncial per valor)
FITXER LÒGIC: ACCÉS I TIPIFICACIÓ Accès per tipus de fitxer SP SV DP DV Exemple
Fitxer lògic - Fitxer intern. Fitxer intern - Fitxer físic VINCLES ENTRE NIVELLS Consistència entre nivells
VINCLES ENTRE NIVELLS • Utilitzarem el binding per programa. • Passos a seguir: - Obrir i assignar canal - Crear o manipular el fitxer - Tancar i alliberar canals
EL FITXER SEQÜÈNCIAL • Els fitxers seqüencials (F.S.) admeten només accés seqüencial per posició, per tant són útils per a tractaments seqüencials. • Tot element tret de l’ultim té un següent. • Els elements s’afegeixen pel final i s’obtenen en el mateix ordre en que es van introduir.
EL FITXER SEQÜÈNCIAL • Especificació
EL FITXER SEQÜÈNCIAL • Operacions f.obre (F, mode) f.tanca () f. crea (nom) f.afegeix (r) f.modifica (r) f.posiciona() f.consulta() f.avança() f.fi? () f. nbElems? () f.buit? () f.obert? () f.nom?() f.mode? ()
EL FITXER SEQÜÈNCIAL • Algorismes per a fitxers seqüèncials Recorregut Cerca Fusió Consultes Modificació
EL FITXER RELATIU • Els fitxers relatius (F.R.) admeten accés directe per posició i accés seqüencial per posició. • La posició relativa des de l’inici del fitxer ens serveix per a posicionar-nos directament sobre un registre. • Els accessos es poden fer per a llegir dades, escriure-les, modificar-les o esborrar-les.
EL FITXER RELATIU • Les operacions d’actualització i consulta no actuen només sobre registres predeterminats. • El recorregut es basa en la posició que ocupen les dades, no en la relació antecessor-successor. • Estructuralment pot presentar “forats” o tenir posicions indefinides.
EL FITXER RELATIU • Especificació
EL FITXER RELATIU • Especificació (cont.)
EL FITXER RELATIU • Operacions f.esborra() f.esborra(pos) f.consulta() f.consulta(pos) f.avança() f.fi? () f. nbElems? () f.buit? () f.obert? () f.nom() f.mode? () f.obre (F, mode) f.tanca () f. crea (nom) f.afegeix (pos, r) f.posiciona( ) f.posiciona (pos) f.existeix?( pos ) f.modifica( r ) f.modifica (pos, r)
EL FITXER RELATIU • Algorismes per a fitxers relatius Recorregut parcial ordenat per posició Recorregut parcial ordenat per posició amb actualització.
EL FITXER PER VALOR • Els fitxers per valor (F.V.) admeten accés directe per valor i accés seqüencial per valor. • El concepte de posició és substituït pel concepte de valor. • La clau forma part dels atributs. • No té registres indefinits o posicions indefinides.
EL FITXER PER VALOR • Especificació
EL FITXER PER VALOR • Especificació
EL FITXER PER VALOR • Operacions f.esborra() f.esborra(clau) f.consulta() f.consulta(clau) f.avança() f.fi? () f. nbElems? () f.buit? () f.obert? () f.nom() f.mode? () f.obre (F, mode) f.tanca () f. crea (nom) f.afegeix (r) f.existeix?( clau ) f.posiciona( ) f.posiciona (clau) f.modificaSeq( r ) f.modifica (r)