CATEGORII DOCUMENTE |
Indexarea presupune crearea unui fisier nou numit fisier-idex, asociat bazei de date, in care se memoreaza ordinea inregistrarilor din baza de date. Accesul la baza de date se face prin intermediul acestui fisier index.
Sa luam un exemplu: o baza de date in care avem incarcate 7 materiale, cu seria, cantitatea si valoarea acestora. Indexarea acestei baze de date, dupa valoare, in ordinea crescatoare, presupune crearea fisierului MATERIAL.CDX in care se vor memora pozitiile inregistrarilor din baza de date, in ordinea dorita. Accesul la inregistrari se face prin intermediul fisierului index asociat .
Indexii pot fi depusi:
1. In fisiere simple index, care retin un singur index; ele trebuiesc deschise pentru a avea acces la acesta, fie in vederea parcurgerii ordonate a bazei de date asociate, fie pentru a reflecta si in fisierul index modificarile din baza de date. Dificultatea apare odata cu cresterea numarului de astfel de fisiere, care trebuie intretinute si actualizate.
2. In fisiere multi-index, care pot permite accesul, odata cu deschiderea multifisierului la toti membrii lui.
Fisierele multiindex pot fi:
a. Asociate bazei de date (au acelasi nume si se deschid sau se inchid odata cu baza de date, orice operatie de actualizare asupra bazei reflectandu-se automat si asupra tuturor fisierelor index membre);
b. Izolate: au nume propriu diferite de al bazei de date, sunt create prin depunerea unui prim fisier index si gestionate (deschise, actualizate, inchise) prin comenzi explicite.
Fisiere index simple:
Crearea unui fisier index simplu se face prin comanda INDEX:
Exemplu: crearea unui fisier index simplu pentru baza de date mijloacef.dbf USE mijloacef INDEX ON cod TO mijloace_n NOTE se creaza fisierul index simplu mijloace_n.idx LIST && inregistrarile sunt in ordinea campului cod USE Crearea unei etichete intr-un fisier index compus nestructurat se face astfel: USE mijloacef INDEX ON valoare TAG val_n OF mijloacef_d NOTE se creaza eticheta val_n in fisierul index compus nestructural mijloacef_d.cdx LIST USE Adaugarea unei noi etichete la fisierul index anterior: USE mijloacef INDEX ON SUBSTR ( cod, 1, 4 ) + SUBSTR ( denumire ,1 , 4 ) TAG codden OF mijloacef_d; FOR data_inst > NOTE se adauga eticheta codden la fisierul index mijloacef_d se va prdona dupa cod si denumire, doar; Primele patru caractere din aceste campuri fiind semnificative. Se selecteaza doar mijloacele; fixe ce s-au instalat dupa 1 ianuarie 1990 LIST USE Indexarea unei baye de date folosind un fisier index compus structural, in care se vor introduce patru etichete, corespunzatoare ordonarii dupa campurile bazei de date: USE mijloacef INDEX ON cod TAG tcod INDEX ON valoare TAG tvaloare INDEX ON amortizare TAG tamortizare DESCENDING INDEX ON stare TAG tstare USE Inchiderea unui fisier index se face prin inchiderea bazei de date asociata, (USE, CLOSE DATABASES), prin crearea unui alt index (INDEX ON) sau prin comenzi explicite de inchidere:
Deschiderea unui fisier index se poate face si odata cu deschiderea bazei de date careia i-a fost asociat, prin indicarea numelui de index in comanda USE. Pentru ca prin aceeasi comanda se pot deschide si alte fisiere index (simple sau multiple), vom nota lista acestora <lista-index> fara sa precizam tipul fisierului index.
Exemplu: se deschide baza de date mijloacef si odata cu ea o serie de fisiere index create in exemplele precedente. CLOSE ALL NOTE prima eticheta din mijloacef.cdx ca fi cea activa, adica ordonarea dupa cod LIST USE USE mijloacef INDEX mijloacef_n.idx, mijloacef_d.cdx , mijloacef.cdx ORDER mijloacef_n NOTE se selecteaza ca activ primul fisier index simplu, cheia de indexare fiind campul cod LIST USE USE mijloacef INDEX mijloacef ORDER TAG tvaloare NOTE se selecteaza eticheta tvaloare din fisierul index compus structural mijloacef.cdx LIST USE Deschiderea unui fisier index se poate face si prin comanda explicita: SET INDEX TO <lista-index> [ORDER <nume-index>] Exemplu: CLOSE ALL USE mijloacef SET INDEX TO mijloacef ORDER TAG tcod ADDITIVE LIST USE Chiar daca prin comanda s-a deschis o lista de fisiere index, numai primul din lista este considerat principal. Clauza ORDER fixeaza la deschidere fisierul index principal. Schimbarea ordinii de prioritate se face printr-o comanda explicita:
Exemplu: CLOSE ALL USE mijloacef INDEX mijloacef_n.idx, mijloacef_d.cdx , mijloacef.cdx SET ORDER TO 2 LIST SET ORDET TO codden OF mijloacef_d. LIST USE Comanda permite indicarea indexului principal din lista de indexi deschisi. Actualizarea unui fisier index nu se face automat daca acesta nu a fost deschis in momentul actualizarii bazei de date. O actualizare posibila se face fie prin o noua creare a fisierului fie prin comanda REINDEX:
Pentru o lista de fisiere index deschisa, comanda permite reactualizarea acestora in functie de baza de date asociata. Exemplu: USE mijloacef INDEX mijloacef_n. mijloacef_d REINDEX USE Functii standard relativ la indexare: 1) NDX ([ [<nr-zona>][, <nr-ord>] ]) intoarce numele fisierului index deschis intr-o zona specificata prin <nr-zona> (implicit zona ultim selectata) si a carui ordine in lista fisierelor active este <nr-ord>. 2) ORDER ([<nr-zona>]) intoarce numele fisierului index activ in zona data prin numarul ei; implicit este zona curenta. 3) KEY ([ [<nr-ord>][, <nr-zona>] ]) intoarce expresia cheii de indexare a fisierului index identificat prin <nr-ord> in lista deschisa in zona de lucru indicata prin numarul ei, implicit zona curenta.
DISTRIBUIE DOCUMENTUL
Comenteaza documentul:Te rugam sa te autentifici sau sa iti faci cont pentru a putea comentaCreaza cont nou Termeni si conditii de utilizare | Contact
|