Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Foxpro


Qdidactic » stiinta & tehnica » informatica » foxpro
Ordonarea unei baze de date - sortarea datelor, indexarea bazelor de date



Ordonarea unei baze de date - sortarea datelor, indexarea bazelor de date


Multe din cererile de informatii ale utilizatorului unei baze de date necesita parcurgerea ordonata a articolelor. Ordonarea datelor poate fi impusa de un timp scurt de regasire a unui anumit articol: o cautare (LOCATE) secventiala se poate face intr-un timp rezonabil pentru fisiere mici, dar pentru colectii mari de date tipul de raspuns la solicitate poate deveni inacceptabil de lung.

Operatia de ordonare presupune compararea articolelor intre ele si, in functie de valorile cheilor de ordonare, accesul la un articol inaintea altuia.

Criteriul de comparare intre doua articole poate fi crescator (asimilat cu un operator “>”) sau descrescator (asimilat cu operatorul “>”). Aplicat la doua valori ale unei expresii, fiecare corespunzand uneia din inregistrarile bazei de date, criteriul va da ca rezultat adevarat (da, articolele se gasesc in relatia ceruta si putem sa ne folosim asa cum se gasesc ele ca pozitie!) sau fals (nu, articolele nu verifica relatia, deci va trebui sa facem in asa fel incat sa avem acces la cel de-al doilea articol inaintea primului !).

Operatia de ordonare a unei baze de date se poate face prin doua comenzi SORT si INDEX, pe care le vom prezenta pe rand.

Sortarea datelor

SORT TO<fis.dbf>ON<camp1>[/A][/D][/C]

                                    [,<camp2>[/A][/D][/C][DESCENDING/ASCENDING]



[<domeniu>][FOR <cond>][WHILE <cond>]

Comanda rearanjeaza fizic articolele bazei de date active, depunandu-le intr-o alta baza de date indicata in comanda prin clauza TO.  Criteriul de ordonare poate fi unul sau mai multe campuri ale bazei de date.

Pentru fiecare cheie se specifica sensul ordonarii. /A=ascending (crescator) /D=descending (descrescator) /C=se foloseste pentru campuri de tip sir de caractere pentru a face compararea valorilor acestor campuri insensibila la tipul literei (majuscula sau minuscula).

Clauzele ASCENDING/DESCENDING se folosesc atunci cand toate cheile de sortare au acelasi sens, fie crescator, fie descrescator.

Daca odata cu clauzele locale de indicare a sensului asupra unei chei apar si cele globale, primele au prioritate. Operatia de rearanjare a articolelor se poate face nu pe intreaga baza de date (optiune implicita) ci pe o parte a acesteia, parte fixata prin cauzele de selectie <domeniu>, FOR, WHILE.

Aranjarea articolelor atunci cand sunt mai multe chei de sortare se face in modul urmator: pentru aceleasi valori ale primei chei se aranjeaza articolele dupa valorile celei de a doua chei. Daca si acum sunt valori egale, se trece la verificarea relatiei date de a treia cheie, s.a.m.d.

Cheile de sortare nu pot fi campuri logice sau tip memo.

Exemplu: se ordoneaza baza de date Mijloacef.dbf, cheia de ordonare fiind codul mijlocului fix, iar ordinea crescatoare. Noua baya de date se va numi Mfixe_s.dbf.


            USE mijloacef

            LIST

            SORT TO mfixe_s ON cod / AC

            USE mfixe_s

            LIST

            USE

            Sa se obtina din aceeasi baza de date, lista tuturor mijloacelor fixe care nu sunt in folosinta, in ordinea inversa a valorii, la valori egale ordinea fiind data de data instalarii, a punerii in functiune.

USE mijloacef

            LIST

            SORT TO mfixe_s ON valoare  / D, data_inst ASCENDING

                        FOR stare = . F .

            USE mfixe_s

            LIST

            USE

Sunt cateva particularitati FoxPro legate de sortare.

1. Comanda SORT are o clauza in plus si anume FIELDS <list-campuri> prin care se poate descrie structura bazei de date rezultate.

2. O alta particularitate este posibilitatea sortarii tablourilor prin functia ASORT:

ASORT (<tablou>[, <poz>[, <nr>[, <sens>]]])

Se sorteaza elementele tabloului in ordine crescatoare (daca <sens>=0 sau lipseste) sau in ordine descrescatoare (daca <sens>≠0). Pentru a se putea sorta, toate elementele trebuie sa fie de acelasi tip.

Daca masivul este unidimensional, atunci se vor sorta elementele acestuia incepand cu elementul de pe pozitia <poz>. Parametrul <nr> da numarul elementelor care vor fi supuse operatiei de sortare. Daca acesta lipseste, se vor sorta toate elementele.

Indexarea bazelor de date

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.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright