+ All Categories

TEMA 2

Date post: 17-Mar-2016
Category:
Upload: hisa
View: 42 times
Download: 1 times
Share this document with a friend
Description:
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 - PowerPoint PPT Presentation
22
TEMA 2 TEMA 2 ELS FITXERS ELS FITXERS
Transcript

TEMA 2TEMA 2

ELS FITXERSELS FITXERS

ELS FITXERSELS FITXERS

FITXER LÒGIC I FITXER FÍSIC : FITXER LÒGIC I FITXER FÍSIC : INDEPENDÈNCIA DE DADESINDEPENDÈNCIA DE DADES

FITXER LÒGIC: ACCÉS I FITXER LÒGIC: ACCÉS I TIPIFICACIÓTIPIFICACIÓ

VINCLES ENTRE NIVELLSVINCLES ENTRE NIVELLS EL FITXER SEQÜÈNCIALEL FITXER SEQÜÈNCIAL EL FITXER RELATIUEL FITXER RELATIU EL FITXER PER VALOREL FITXER PER VALOR

FITXER LÒGIC I FITXER FITXER LÒGIC I FITXER FÍSIC: INDEPENDÈNCIA DE FÍSIC: INDEPENDÈNCIA DE DADESDADES

Utilització dels fitxersUtilització dels fitxers Els fitxers considerats des de Els fitxers considerats des de

diversos nivells:diversos nivells:> Fitxer lògic> Fitxer intern> Fitxer físic

FITXER LÒGIC: ACCÉS I FITXER LÒGIC: ACCÉS I TIPIFICACIÓTIPIFICACIÓ

Seqüencial /DirectePer posició/ Per valor

TipificacióFS – Fitxer seqüencialFR – Fitxer relatiuFV – Fitxer per valor

Accés

FITXER LÒGIC : ACCÉS I FITXER LÒGIC : ACCÉS I TIPIFICACIÓTIPIFICACIÓ Fitxer seqüèncialFitxer seqüèncial

(accés seqüèncial per (accés seqüèncial per posició)posició)

Fitxer relatiuFitxer relatiu (accés directe per (accés directe per posició i seqüèncial per posició)posició i seqüèncial per posició)

Fitxer per valorFitxer per valor (accés directe per valor i (accés directe per valor i seqüèncial per valor)seqüèncial per valor)

FITXER LÒGIC: ACCÉS I FITXER LÒGIC: ACCÉS I TIPIFICACIÓTIPIFICACIÓ

SP SV DP DV

Nom Edat1 Pere 152 Laura 223 Marta 404 Jordi 30

Accès per tipus de fitxer

Exemple

Fitxer seqüencial (F.S.) XFitxer relatiu (F.R.) X XFitxer per valor (F.V.) X X

VINCLES ENTRE NIVELLSVINCLES ENTRE NIVELLS

Fitxer lògic - Fitxer intern.Fitxer lògic - Fitxer intern. Fitxer intern - Fitxer físicFitxer intern - Fitxer físic

Consistència entre nivells

VINCLES ENTRE NIVELLSVINCLES ENTRE NIVELLS Utilitzarem el binding per Utilitzarem el binding per

programa.programa. Passos a seguir:Passos a seguir:

- - Obrir i assignar canalObrir i assignar canal - Crear o manipular el - Crear o manipular el fitxerfitxer - Tancar i alliberar canals- Tancar i alliberar canals

EL FITXER SEQÜÈNCIALEL FITXER SEQÜÈNCIAL Els fitxers seqüencials (F.S.) admeten Els fitxers seqüencials (F.S.) admeten

només només accés seqüencial per posicióaccés seqüencial per posició, per , per tant són útils per a tractaments tant són útils per a tractaments seqüencials.seqüencials.

Tot element tret de l’ultim té un Tot element tret de l’ultim té un següent.següent.

Els elements s’afegeixen pel final i Els elements s’afegeixen pel final i s’obtenen en el mateix ordre en que es s’obtenen en el mateix ordre en que es van introduir.van introduir.

EL FITXER SEQÜÈNCIALEL FITXER SEQÜÈNCIAL EspecificacióEspecificació

obre : fitxer_seq x cadena x enter fitxer_seqtanca: fitxer_seq fitxer_seqcrea: fitxer_seq x cadena fitxer_seqafegeix: fitxer_seq x elem fitxer_seqmodifica: fitxer_seq x elem fitxer_seqposiciona: fitxer_seq fitxer_seqconsulta: fitxer_seq elemavança: fitxer_seq fitxer_seqfi?: fitxer_seq booleànbElems: fitxer_ seq enterbuit?: fitxer_seq booleàobert?: fitxer_seq booleànom?: fitxer_seq cadenamode: fitxer_seq enter

EL FITXER SEQÜÈNCIALEL FITXER SEQÜÈNCIAL OperacionsOperacions

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ÜÈNCIALEL FITXER SEQÜÈNCIAL Algorismes per a fitxers Algorismes per a fitxers

seqüèncialsseqüèncialsRecorregutCercaFusióConsultesModificació

EL FITXER RELATIUEL FITXER RELATIU Els fitxers relatius (F.R.) admeten Els fitxers relatius (F.R.) admeten accés accés

directe per posició i accés seqüencial directe per posició i accés seqüencial per posició.per posició.

La posició relativa des de l’inici del fitxer La posició relativa des de l’inici del fitxer ens serveix per a posicionar-nos ens serveix per a posicionar-nos directament sobre un registre.directament sobre un registre.

Els accessos es poden fer per a llegir Els accessos es poden fer per a llegir dades, escriure-les, modificar-les o dades, escriure-les, modificar-les o esborrar-les.esborrar-les.

EL FITXER RELATIUEL FITXER RELATIU Les operacions d’actualització i Les operacions d’actualització i

consulta no actuen només sobre consulta no actuen només sobre registres predeterminats. registres predeterminats.

El recorregut es basa en la posició El recorregut es basa en la posició que ocupen les dades, no en la que ocupen les dades, no en la relació antecessor-successor. relació antecessor-successor.

Estructuralment pot presentar Estructuralment pot presentar “forats” o tenir posicions indefinides.“forats” o tenir posicions indefinides.

EL FITXER RELATIUEL FITXER RELATIU EspecificacióEspecificació

obre : fitxer_rel x cadena x enter fitxer_reltanca: fitxer_rel fitxer_relcrea: fitxer_rel x cadena fitxer_relafegeix: fitxer_rel x enter x elem fitxer_relexisteix: fitxer_rel x enter booleàposiciona: fitxer_rel fitxer_relposiciona: fitxer_rel x enter fitxer_relmodifica: fitxer_rel x elem fitxer_relmodifica: fitxer_rel x enter x elem fitxer_relesborra: fitxer_rel fitxer_relesborra: fitxer_rel x enter fitxer_rel

EL FITXER RELATIUEL FITXER RELATIU Especificació (cont.)Especificació (cont.)

consulta: fitxer_rel elemconsulta: fitxer_rel x enter elemavança: fitxer_rel fitxer_relfi?: fitxer_rel booleànbElems: fitxer_rel enterbuit?: fitxer_rel booleàobert?: fitxer_rel booleànom?: fitxer_rel cadenamode: fitxer_rel enter

EL FITXER RELATIUEL FITXER RELATIU OperacionsOperacions

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)

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? ()

EL FITXER RELATIUEL FITXER RELATIU Algorismes per a fitxers relatiusAlgorismes per a fitxers relatius

Recorregut parcial ordenat per posicióRecorregut parcial ordenat per posició amb actualització.

EL FITXER PER VALOREL FITXER PER VALOR Els fitxers per valor (F.V.) admeten Els fitxers per valor (F.V.) admeten

accés directe per valor i accés accés directe per valor i accés seqüencial per valor.seqüencial per valor.

El concepte de posició és substituït El concepte de posició és substituït pel concepte de valor. pel concepte de valor.

La clau forma part dels atributs.La clau forma part dels atributs. No té registres indefinits o posicions No té registres indefinits o posicions

indefinides.indefinides.

EL FITXER PER VALOREL FITXER PER VALOR EspecificacióEspecificacióobre : fitxer_per_valor x cadena x enter fitxer_per_valortanca: fitxer_per_valor fitxer_per_valorcrea: fitxer_per_valor x cadena fitxer_per_valorafegeix: fitxer_per_valor x elemClau fitxer_per_valorexisteix?: fitxer_per_valor x elemOrd booleàposiciona: fitxer_per_valor fitxer_per_valorposiciona: fitxer_per_valor x elemOrd fitxer_per_valormodificaSeq: fitxer_per_valor x elemClau fitxer_per_valormodifica: fitxer_per_valor x elemClau fitxer_per_valoresborra: fitxer_per_valor fitxer_per_valoresborra: fitxer_per_valor x elemOrd fitxer_per_valor

EL FITXER PER VALOREL FITXER PER VALOR EspecificacióEspecificacióconsulta: fitxer_per_valor elemClauconsulta: fitxer_per_valor x elemOrd (fitxer_per_valor,

elemClau)avança: fitxer_per_valor fitxer_per_valorfi?: fitxer_per_valor booleànbElems?: fitxer_per_valor enterbuit?: fitxer_per_valor booleàobert?: fitxer_per_valor booleànom?: fitxer_per_valor cadenamode: fitxer_per_valor enter

EL FITXER PER VALOREL FITXER PER VALOR OperacionsOperacions

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)

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? ()


Recommended