Introducció a les bases de dades

Share Embed Donate


Short Description

Download Introducció a les bases de dades...

Description

INTRODUCCIÓ A LES BASES DE DADES TEMA 1.− CONCEPTES BASICS TEMA 1.− CONCEPTES BASICS Els tres mons Mon de les concepcions − Coneixement elemental:

L'arbre És verd

Subjecte Verb Predicat

En base de dades Entitat Atribut valor

• Coneixements complexos: combinacions de coneixements elementals amb connectivitats de la lògica. Teoria dels conjunts: · Tots contra tots s'anomena un producte cartesià. · Qualsevol subconjunt del producte cartesia s'anomena correspondència. · Hi ha una corresondència que s'anomena aplicació (funció) quan cada original te una inomés una imatge. Un atribut és una aplicació entre un conjunt d'entitats i un conjunt de valors. Una entitat és qualcom real, identificable i distingible. Tipus d'aplicacions: • Aplicació injectiva: te un o cap original respecte a la imatge (la imtage te un original). • Aplicació exhaustiva: te un o varis originals. • Aplicació bijectiva: te un original sempre Son atributs identificadors. Una entitat pot tenir més d'un atribut. El domini és el conjunt de valors legals que pot prendre un atribut. Per exemple el domini de pes seria real de 0 a 200, y el domini de edat seria un enter de 0 a 150. En canvi domini no vol dir tipus, ja que aquest últim es defineix com un domini més les operacions que acepta aquest domini. El valor nul. Hi ha dos tipus de valors nuls: • Desconegut: la dada no la coneixem en el moment però el coneixerem. 1

• Inaplicacble: no coneixem la dada ni la coneixerem, per exemple preguntar per la data del servei militar a una dona. El simbol del valor nul en SQL és NULL. El temps en les bases de dades convencionals (snapshot) s'han anar modificant les dades. No tenen representació del temps el qual suposem que sempre es ara, es a dir, en la actualitat. O be permeten al dissenyador incorporar atributs utilitzant DATE i TIME (interpretació del temps en SQL/92). Hi ha dos tipus de temps: • Temps d'ocurrencia: quan pasen les coses. • Temps de representació: temps en que s'emmagatzemen els fets. El dissenyador decideix quin temps cal represnetar, un, tots dos o cap dels temps. Les base de dades temporals (encara no estandaritzades) anomenen: • al temps d'ocurrencia −−−−−−−−−−−−−−− temps vàlid. • Al temps de representació −−−−−−−−−− temps de transacció. El dissenyador decideix quin tipus de base de dades necessita, snapshot o temporal, també pot ser que no tota la base de dades hagi de ser temporal. El dissenyador escull la precisió del temps, ja sigui al dia, a l'hora, al minut al segon, etc. Un identificador és l'abreviació de l'atribut identificador. Un atribut identificador és una aplicació injectiva. Un identificador ha de ser un atribut que no hi apareixi dues vegades en tota l'informació que tenim. Exemple: Per trobar els atributs identificadors no ens hem de fixar en les anècdotes o dades, sino en les lleis. Aquest identificador ens permet identificar cada entitat, es a dir, permet distingir. Una superclau és un diversos atributs que identifquen una entitat. Exemple: alumnes (dni, num_mat, nom, adreça, telèfon) Superclau: dni, num_mat, nom, adreça, telèfon. Dni, nom, adreça Num_mat, telèfon, nom Num_mat,dni Una clau és una superclau que no te cap subconjunt propi que sigui superclau. Claus: dni Num_matr

2

Una clau candidata és qualsevol clau d'una entitat. Una clau primaria és una clau escollida entre les claus candidates, sempre n'hi ha d'haver una definida. Clau primaria: num_matr Una clau secundaria o alternativa són totes les claus candidates no escollides com clau primaria. La clau primaria pot ser un atribut identificador o més d'un atribut no identificador. Exemple: ciutats_del_mon (estat, nom, km2, num_hab) Les claus han d'identificar l'entitat, per exemple algún nombre que no es repeteixi en cap entitat o que no es repetirà, però sempre condicionat pel client. Les claus primaries s'identifiquen perque es troben subratllades. Un atribut multivalor no és una aplicació sino una correspondència. En aquests atributs poden tenir més d'un valor almateix temps, com podria ser un atribut d'idiomes, ja que cada persona pot parlar més d'una llengua. Els atributs multivalors es classifiquen en: • Fixe: te un nombre fixe de valors, aquí podriem posar un camp que contingues el nombre de vendes d'un any però classificats per messos. • Variable: te un nombre variable de valors, aquí podríem posar l'atribut idiomes en el qual no sabem quants idiomes parla una persona. Mon de les representacions La representació dels atributs multivalors en fitxers és el següent: • En atributs multivalors fixe: podriem implementar−lo amb un array determinada. • En atributs multivalors variables: podriem posar un array amb una longitud gran, però amb aquest metòde es perd molt espai. Un altre metòde seria posar un array amb una longitud normal i un punter a un fitxer on es guardaran els idiomes que no hi caben en l'array definit. La represnetació dels atributs multivalors en base de dades es fa mitjançant interrelacions. Un camp és la representació del valor d'un atribut. Un registre és la representació d'una entitat o un conjunt de camps d'una mateixa entitat. Un fitxer és la representació d'un conjunt d'entitats o be és un conjunt de registres. Amb els atributs multvalors podem diferenciar cinc tipus d'atributs: atribut univalor: un valor d'un atribut te una o diverses entitats associades. atribut identificador: un valor d'un atribut te una única entitat assignada. atribut multivalor: una entitat pot tenir més d'un valor associat en el mateix atribut. multiatribut univalor: una entitat te diversos atributs associats. multiatribut multivalor. 3

Si volem expresar diverses entitats amb els seus valors i atributs corresponents amb fitxers tindrem més compicació per representar atributs multivalor perque hi ha moltes repeticions i és molt difícil de gestionar. En canvi les base de dades permeten representar amb més facilitat els atributs multivalors, ja que es representen amb relacions. Per tant una base de dades és un conjunt d'entitats interrelacionades. Un suport és el llocfísic on està la informació: discos, cintes, CD−ROM, paper, etc. Una organització és la forma d'estructurar les dades en un suport que les emmagatzema. Un accés és la horma d'aconseguir les dades. Els difeents tipus d'accés són: • Accés seqüèncial: per arribar a un lloc cal passar per tots els anteriors. • Accés directe: per arribar a un lloc no cal passar per tots els anteriors. • D'aquest dos tipus es desprenen altres tipus: · Seqüèncial per posició · Seqüèncial per valor · Directe per posició · Seqüèncial per valor. El nivell logic és l'organització i accés a les dades des del punt de vista de l'usuari o informàtic El nivell físic és l'organització i accés a les dades en el suport. TEMA 2.− MEMORIA EXTERNA Justificació de la memòria externa Criteris Preu Velocitat (temps d'accés) Capacitat Volatilitat

Memòria interna Carisima 10−6 a 10−9 seg Poca SI

Memòria externa Barata 10−3 seg Ilimitada NO

Esquema bàsic d'E/S: Buffers, blocs i registres WA: Working area. Registres: unitat de transferència entre la memòria interna (WA) i el buffer. Bloc: unitat de transferència entre el buffer i la memòria externa. El factor de bloqueig (f) és el nombre de regsitres per bloc. El buffer és l'amorteidor de la diferència de velocitat entre la memòria interna i la memòria externa. • R/W lectura/escrptura d'un programa. • E/S lectura/escriptura en el suport de memòria externa. 4

Com a mínim tindrem un buffer per fitxer. Els buffers s'assignen a fitxers, un programa que no utilitza cap fitxer no tindrà buffer, però un programa amb N fitxers tindrà N buffers com a mínim. En tractament seqüèncial poarem dos buffers: fitxer seqüèncial sempre i en el fitxer relatiu amb lectura seqüèncial. En canvi en tractaments no seqüèncials tindrem un buffer , als fitxers relatius amb accés directe. La comanda obrir crea dinàmicament el buffer i tancar porta el darrer buffer a memòria externa i el destrueix dinàmicament. La longitud del bloc serà sempre major que la longitud dels regstres multiplicat pel factor de bloqueig, ja que un bloc té un descriptor al principi del bloc i el final de bloc. El temps de R/W d'un programa (per cada bloc) serà: • temps R/S= temps CPU+ temps E/S • temps CPU= temps de bloqueig/desbloqueig + calculs • temps E/S= temps de transferència+ temps d'accés • temps d'accés= en cinta muntatge, cercar la informació, reintents per error de paritat, rebobinar, etc. en disc temps de SEEK (trobar la pista)+ temps de SEARCH (trobar el sector). Suports Cintes El material de les cintes és una tira de plàstic magnetitzat. L'amplada d'una cinta és de 0.5 polzades i una polzada són 2,54 cm. (1 = 2,54 cm). La llargada depend de les cintes. (les cintes velles median entre 600, 1200 i 2400 peus on un peu son 12 i per tant són 30,48 cm). El reflexive stop és la marca d'inici i final de la part rabada. L'anell és el protector de seguretat. No es pot escriure en la cinta si no el te posat. Les cintes codifican la informació en tires de vuit bits més un bit de paritat. La densitat de gravació (bpi = bytes per polzada (inch)) és de 800, 1600 o 6250 bpi en les cintes antigues. L'esquema dels aramris que contenien les cintes és el següent: IBG (Inter−block−graps): és un espai entre els blocs, per aturar−se i tornar a agafar velocitat per llegir el següent bloc, l'amplada normal dels IBG és de 0.6. Tape mark és la marca d'inici i final de fitxer i inici i final d'un conjunt de blocs. Header és la informació sobre el fitxer: propietari, data de creació, data de caducitat, tipus de paritat, autoritzacions, codis (ASCII, EBCDIC, ISO, ....) longitud màxima teorica dels blocs, etc. EOF: fi de fitxer conté el número de blocs, hora final, la longitud màxima real dels blocs, etc,

5

La capacitat real en blocks d'una cinta és calcula mitjançant la següent fòrmula: L = llargaria en polzades de la cinta. B = tamany del bloc en bytes d = densitat de grabació en bpi e = IBG en polzades. La capacitat real en registres serà per tant: Cr=Cb*f. Exemple: Trobar la capacitat real d'una cinta de 2400 peus=28800, de 6250 bpi, de 0.6 d'IBG i registres de 100 bytes. • factor de bloqueig =1

blocs Cr=Cb*f= 46754 registres • factor de bloqueig= 20

blocs Cr=Cb*f= 626100 registres • factor= infinit o capacitat teorica.

blocs Cr= 1800000 registres Els rebobinats s'han de fer abans de guardar la cinta, i triguen molt. La utilitat de les cintes es presneta quan s'han de fer tractaments batch i per còpies de seguretat. El temps d'accés de les cintes esta compost pel temps de muntatge, de reintents per errors de paritat, del temps per trobar la informació, i dels rebobinats. L'adreçament en les cintes es fa per canal o per dispositiu, aquestes són més barates que els discos. La capacitat de les cintes és molt gran però s'ha de tenir en compte els IBG. L'únic accès que es pot fer és l'accés seqüèncial, són molt portables i són d'ús exclusiu per una persona, es a dir, no poden haver−hi diversos usuarios treballant al mateix temps. No es aconsellable fer actualitzacions sobe cntes degut al problema de la bruticia (no escriu−re sempre al mateix lloc de la cinta). Discos

6

Els discos es divideixen en discos magnètics i discos òptics. Discos magnètics Disk−pack: són discos posats un damunt de l'altre amb un eix comú. Els discos dels ALPHA's tene 8 plats i per tant 16 pistes. La informació en els discos s'emmagatzema per pistes i sectors. Una pista és circular i concentriques i els sectors són el mínim adreçament que pot fer el sistema operatiu (512 bytes). Els dsk−packs (en ALPHA) tenen 8 plats, la seva capacitat oscil−la entre 2,1 Gb i 4 Gb, tenen 2988 pistes i 86 sectors per pistes. Els discos tenen l'angle 0 que és el lloc on comencen tots els sectors i pistes del disc. Als discos hi ha alta densitat quan estem aprop del centre del disc (ja que cada sector te 512 bytes, i quan més aprop del centre menys perimetre per col−locar els 512 bytes), i hi ha baixa densitat quan més lluny del centre estiguem). Hi ha dos tipus de sectors: • Fixes: de 512 bytes, tots els sectors són iguals, i per atnt és fàcil accedir (sempre amb el mateix angle). • Variables: sectors de diferent mides, per tant aprofitem tot l'espai menys un tros per dir la longitud del sector que precedeix (descriptor), però són més cars i l'accés es complica (s'ha de sumar la longitud del sector a la adreça actual per trobar el següent sector. Un cilindre es forma amb totes les pistes del mateix radi. El temps d'accés es forma amb el temps de SEEK i amb el temps e SEARCH. El temps de SEEK és el temps que triga en posicionar−se el capçal sobre una pista. El temps de SEARCH és el temps de rotaió per la pista fins trobar el sector. En sistemes ALPHA el temps de SEEK mig és de 13.5 milisegons i el temps deSEARCH és de 4.5 milisegons, per tant el temps mg d'accés és de 18.5 miliseg. La velocitat de rotació és medeix en revolucions per minut (rpm), on aquestes oscil−len entre 3600, 7200 o 10000 rpm, segons els disk−packs. El temps de SEEK per anar de punta a punta d'un plat és de 27 miliseg, pero si la pista que volem es la pista sobre la que estem el temps es 0 miliseg. El temps de SEARCH per donar una volta sencera es de 9 milisegons però si tenim sort no ens hem de moure el temps serà de 0 miliseg. La minimització del temps d'accés s'aconsegueix amb la gravació per cilindres (així millorem el temps de SEEK), i si escrivim els sectors no consecutius entre si, si no continus en el temps (així millorem el temps de SEARCH), a aquest metode de escritura continu en el temps se l'anomena Interleaving factor. L'estructura d'un fitxer en un disk−pack és la següent: en la primra cara del disk−pack es troba el dirctori amb un apuntador al primer fitxer. El directori és la llista de fitxers accessibles amb el seu nom, propietari, data de creació, data de caducitat, etc. i a més un apuntador a l'inici de fitxer.

7

L'adreçament a un disc magnetic és el següent: Canal/Dispositiu/Cilindre/Plat/Cara/Sector. Els disquettes al contrari que els discos, normalment estan aturats, i la eva capacitat pot ser de doble densitat (720 Kb− 80 pistes 9 sectors per pistes) o d'alta densitat (1.44 Mb− 80 pistes, 18 sectors per pista). Discos Optics Són discos on la gravació no es fa de forma magnètica sino de forma física (amb tecnologia làser). Els diferents tipus que hi ha són els següents: • CD−ROM : capacitat de 650 Mb amb només una cara. • DVD−ROM: Digital Video Disk, amb una capcitat entre 4,7 a 17 Gb, són més ràpids que els CD−ROM's. L'origen dels CD−ROM's el trobem en els CD de audio. I aquests dispositius poden ser de només lectura (1 làser per llegir) o de lectura/escriptura (amb 2 lasers, un per llegir i un altre per escriure). Els CD−ROM només tenen una pista en espiral que va des del centre fins a fora, i la densitat de gravació és constant. CLV vs CAV: CLV és Constant Linear Velocity (la podem trobar als CD−ROM amb velocitat angular diferent) i CAV és Constant Angular Velocity (que la podem trobar als discos magnètics). L'adreçament és com segueix: Canal/Dispositiu/Minut/Segon/Sector. On cada segon conté 75 sector de 2 Kb cadascun. Les utilitats del CD−ROM, entre d'altres, són: • Transferència de software. • Emmagatzematge de dades fixes. • Emmagatzematge de dades historiques. • Imtages • ......... Els CD−ROM's tenen un baix preu, tenen una cpacitat relativament alta, gran fiabilitat i poden fer accés directe o seqüèncial. TEMA 3.− FITXERS COM A TAD'S Fitxer lògic i físic Fixetr lògic: objecte d'un programa. Un objecte és un element d'un programa que pren un valor (constant) o ve diferents valors (variable) d'un cert tipus. Un tipus abans de 1965 (ALGOL) era un domini, però després de 1965 un tipus passar a ser un domini més operacions. El TAD proporciona encapsulament: • els valors del domini només poden ser manipulats per les operacions del TAD. • Es coneix la definició de les operacions pero la seva implementació queda amagada. Els objectes poden ser: • estructurats: tupla, taula, etc. • no estructurats: enters, reals, naturals, etc. 8

Un fitxer lògic és un objecte variable d'un programa i que és una instanciació d'un TAD. Fitxer físic: és la implementació del fitxer lògic en un suport físic. Independència física de les dades La distinció entre fitxer lògic i fitxer físic es fa per obtenir independència física de les dades, que no és més que fent un canvi del suport de memòria externa o de sistema operatiu (tecnologia) no ens obliga a canviar els programes ja fets sobre aquesta tecnologia. Fitxer lògic L'accés es pot fer de quatre formes diferents: • Accés seqüèncial per posició • Accés seqüèncial per valor. • Accés directe per posició. • Accés directe per valor. Exemple: Tipificació: tipificació dels fitxers lògics segons l'accès, segons les combinacions dels quatre diferents tipus d'accés podem tenir 15 fitxers diferents, però nomès quatre ens interessen. • Fitxer seqüèncial: amb accès seqüèncial per posició. • Fitxer relatiu: amb accés seqüèncial per posició i accés directe per posició. • Fitxer per valor: amb accés directe per valor. • Fitxer seqüèncial per valor: amb accés directe per valor i accés directe seqüèncial per valor. Fitxer Fisic Implementacions Fitxers seqüèncial: implementacions amb tipus d'estructures consecutives. La contigüitat pot ser: · Contigüitat física: cintes. · Contigüitat temporal: interleaving factor. · Contigüittat lògica: apuntadors en discos. Fitxers relatius: només es pot implementar en disc. Requereix mecanismes per calcular l'adreça al dsc d'un registre que ocupa una posició determinada. El primer que hem de calcular és l'adreça relativa (longitud del registre * posició que ocupa). A partir de l'adreça relativa el sistema operatiu calculará l'adreça absoluta en el suport. Fitxer per valor i seqüèncial per valor: s'implementen amb dos fitxers relatius. En un fitxer tenim les dades i en l'altre, que és l'index, és un fitxer relatiu amb dos camps: (valor i posició). Els indexos poden ser de diferents tipus: arbres B, arbres B+, hashing, etc. Creació

9

La creació de fitxers físics es pot fer de dos formes: • Per programa: mitjançant una operació d'obrir el fitxer. En el nostre TAD aquesta operació és obrir, però en molt llengutages és open. • Per JCLC (job Control Language): és un llenguatge de control de tasques, que entre d'altres moltes coses permet crear fitxers, especificant més carcaterístiques que pe programa. Rendiment A qui preocupa el rendiment sobre el fitxer físic? Als programadors no preocupa perque treballen amb el fitxer logic, en canvi als dissenyadors si preocupa perque a més de dissenyar el fitxer logic també han de pensar amb el fitxer físic. El rendiment es mesurem per la correlació d'espai/temps del fitxer lògic respecte a l'espai/temps del fitxer físic. Espai: si tenim una base de dades de 20 bytes per rehistre y 10 registres necessitariem 200 bytes per guardar les dades però necessitem mes espai per guardar els controls del fitxer (aproximadament 250 bytes). Per tat no ens hem de passar i tampoc quedar−nos curts. El temps depen del nombre d'accessos. En el acces seqüèncial per posició es poden donar els següents casos: · Fitxer lògic: 1.− existex el registre i el fitxer està ordenat N/2 accessos. 2.− existeix el registre i el fitxer no està ordenat N/2 accesos 3.− no existeix el registre i el fitxer està ordenat N/2 accesos 4.− no existeix el registre i el fitxer no està ordenat N accesos · Fitxer físic: N/2f a N/f accesos; on f és el factor de bloqueig. Accés directe per posició o per valor: · Fitxer lògic: 1'accés sempre (donen el valor o la posició i accedim directament). · Fitxer físic: Hashing 1,2 accesos. Dicotomies: log n accessos. Arbres B logd ((n+1)/2) accesos; on d és l'ordre de l'arbre B En general es necesirtaran N accesos. Associació de fitxers lògics i físics Possibilitats 1 fitxer lògic associat amb un fitxer físic (és la situació normal e ideal).

10

1 fitxer lògic amb n fitxers físics. Poden obrir simultàneament o no els diferents fitxers. · No simultàneament: obrir (f, F1,c) . tancar(f) obrir(f, F2,c) . tancar(f) · Simultàneament: no te sentit fer−ho en fitxers físics però si en base de dades. Obrir(f,F1,c) Obrir(f,F2,c) . tancar(f) 1 fitxer físic amb n fitxers lògics: · No simultàneament: obrir (f1, F,c) . tancar(f1) obrir(f2, F,c) . tancar(f2) · Simultànemanet: obrir(f1,F,c) obrir(f2,F,c) . tancar(f1) tancar(f2) Aquesta última forma d'obrir fitxers pot produir el problema de la concurrència, que consisteix en que dos persones poden treure informació a l'hora i per tant tenir el doble d'informació. Per solucionar aquest problema apareix el concepte de transacció.

11

Transacció: és un conjunt d'operacions que s'executen com si fossin una sola. Quan es vol actualitzar un registre s'ha de bloquejar (block) fins que acaba l'actualització. I amés les actualitzacions s'han de fer en forma de transaccions. El fitxers compartits poden lligar n fitxers lògics amb un físic, i les base de dades poden lligar n fitxers lògics amb un fitxers físic. Binding Binding vol dir lligam. És el moment en que s'associa el fitxer lògic i el fitxer físic. El moment del binding pot ser: • Amb declaracions: f és fitxer físic. La comprobació de tipus es fà en la compilació. • En instruccions: es fa quan executem obrir. La comprobació de tipus es fa en execució, això dona més possibilitats d'associació). Instruccions d'un llengutage vs operacions d'un TAD Instruccions: • Els llenguatges proporcionen instruccions per treballar amb fitxers. • Són diferents per a cada llenguatge. • No estàn formalitzades. Operacions TAD • Donen una visió formal del que permet fer cada tipus de fitxer. Comparació: • Les operacions donen definicions precises per especificacions algebràiques o axiomàtiques, possibilitat d'estandarització, possiblitat de que els constructors facin implementacions diferents d'un mateix fitxer. • Les instruccions barrejen les especificacions amb les implementacions, dificultad de coneixer que fa una instrucció perque no està formalitzada i amés estàn molt lligades a la tecnologia. TEMA 4.− TAD DE FITXERS SEQ., RELATIU, PER VALOR i SEQ. PER VALOR Operacions dels fitxers Fitxer seqüencial: Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització), E (Extensió). Escriure (f, r) Llegir (f, r) Modificar (f, r) suposa lectura prèvia i modificació sense còpia. Tancar (f) 12

FDF (f) Estat (f) Fitxer relatiu Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització). Escriure (f, r, p) LlegirDirecte (f, r, p) Modificar (f, r) suposa lectura prèvia i modificació sense còpia. Esborrar (f) lectura prèvia tant directe com seqüencial. Posicionar (f, p) previ a lectura sequencial LlegirSeqüencial (f,r ) salta verges Tancar (f) FDF (f) només per LlegirSequencial. Estat (f) Fixter per valor Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització). Escriure (f, r) LlegirValor (f, r, Ci=V) Modificar (f, r) suposa lectura prèvia i modificació sense còpia. Esborrar (f) lectura prèvia. Tancar (f) FDF (f) Estat (f) Fitxer seqüèncial per valor Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització). Escriure (f, r) LlegirValor (f, r, Ci=V)

13

Modificar (f, r) suposa lectura prèvia tant per valor com sequencial. Esborrar (f) lectura prèvia, tant per valor com sequencial. Posicionar (f, Ci{= | > | >=} V) LlegirSeqüencial (f, r) posicionar prèviament. Tancar (f) FDF (f) Estat (f) En Posicionar ens apareix la gamma de claus que vol dir trobar un nom per aproximació. Pe fer un accés seqüèncial des del principi hem d'utilitzar el valor més petit (W−") o utilitzar la clau genèrica (* llegir tot). Lectures Fitxer seqüencial: • Lectura amb accés seqüencial per posició des de l'inici del fitxer. Llegir(f, r) Mentre ¬FDF(f) fer Tractar Llegir (f, r) Fmentre Fitxer relatiu • Lectura amb accés directe per posició: LlegirDirecte(f, r, pos) • Lectura amb accés seqüencial des d'una posició p. Posicionar (p) LlegirSequencial (f, r) Mentre ¬FDF(f) fer Tractar LlegirSequencial Fmentre Fitxer per valor

14

• Lectura amb accés directe per valor. LlegirValor(f, r, Ci=V) Mentre estat(f)"4 fer Tractar LlegirValor(f, r, Ci=V) Fmentre Fitxer sqüencial per valor • Lectura amb accés directe per valor: igual que la lectura amb accés directe per valor del fitxer per valor. • Lectura amb accés seqüèncial per valor. Posicionar(f, Ci {=, >, >=} V) LlegirSequencial (f, r) Mentre estat(f)"4 fer Tractar LlegirSeqüencial (f, r) Fmentre TEMA 5.− ALGORISMES DE TRACTAMENT SEQ. DE FITXERS Introducció al tractament puntual i seqüencial PUNTUAL − Usen accés directe

SEQUENCIAL − Accés seqüèncial

− S'executen on line (extracció de diners d'un caixer − S'executen en BATCH (pagament de nomines) automàtic) − S'executen sobre base de dades

− S'executen en fitxers.

Modificació en sequencies amb i sense còpia Modificació sense còpia Obrir (f, F, `A'); Llegir (f,r) Mentre ¬FDF(f) fer

15

r:=T(r); Modificar (f,r); Llegir (f,r); Fmentre Tancar (f); Modificació amb còpia Obrir (f1,F1, `L'); Obrir (f2,F, `C'); Llegir(f1, r1); Mentre ¬FDF(f1) fer r2:=T(r1); Escriure (f2,r2), LEGIR (F1,R1); Fmentre Tancar (f1); Tancar (f2); Consulta d'un valor i d'un cjt de valors Consulta d'un valor Hipotesis: F està ordenat i ci és l'identificador. Obrir (f, F, `L'); Llegir (f, r); Stop := fals Mentre ¬FDF (f) " r.ci
View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF