indexarea bazelor de date
TRANSCRIPT
INDEXAREA BAZELOR DE DATE
Indexarea unei b.d. presupune crearea unui fisier nou, numit fisier index asociat, în care se memoreaza ordinea înregistrarilor din b.d. Accesul la o anumita înregistrare se face prin intermediul fisierului index.
Fisierele index ce pot fi asociate unei b.d. pot fi de urmatoarele doua tipuri:
-fisiere index simple (cu extensia .IDX), care contin o singura cheie de ordonare.
- fisiere index compuse (cu extensia .CDX), care memoreaza mai multe chei de ordonare, numite etichete, una singura fiind activa la un moment dat si anume eticheta activa.
Crearea unui fisier index este data de comanda INDEX.
sintaxa :
INDEX ON <expr> TO <fisier.idx> | TAG <nume eticheta> [OF <fisier.cdx>][ FOR <exp L>][ ASCENDING | DESCENDING ] [ UNIQUE ]
Unde:
<expr> cheia de ordonare (de indexare)
TAG <nume eticheta> fisier index compus poate contine mai multe chei de indexare, fiecare corespunzând unui criteriu de ordonare a b.d
Clauza FOR determina ca numai înregistrarile care respecta <exp L> sa poata fi accesate prin fisierul index respectiv. ASCENDING sau DESCENDING se folosesc pentru a preciza modul de ordonare a b.d , asociat fisierului index.
Clauza UNIQUE – daca avem doua sau mai multe înregistrari cu aceeasi cheie de indexare, determina accesul doar la prima înregistrare si blocarea accesului la celelalte.
1
1. INCHIDEREA UNUI FISIER INDEX
SET INDEX TO sau CLOSE INDEX închide toate fisierele index din zona de lucru curenta.
2. DESCHIDEREA UNUI FISIER INDEX
USE <fisier.dbf>INDEX <lista index>ORDER <nume_index>
Sau
SET INDEX TO <lista_index>[ORDER<nume_index>]
3. ACTUALIZAREA UNUI FISIER INDEX
REINDEX- permite reactualizarea bazei de date asociate
4. EXPLOATAREA UNEI BAZE DE DATE IMPREUNA CU FISIERUL INDEX
COMANDA: SEEK <exp>
Pas 1. Se deschide baza de date impreuna cu fisierul index asociat cua ajutorul comenzii:
USE NUME BAZA DATE INDEX fis_ind
Pas.2 Se introduce comanda SEEK (expresie)
Pas.3 Se introduce comanda DISPLAY (PENTRU AFISAREA INREGISTRARILOR GASITE)
OBSERVATII:
Efectul comenzii SEEK este echivalent cu efectul comenzii LOCATE FOR <cond>
5.
EXEMPLE
USE agenda
2
INDEX ON nume TO agenda1 creeaza fisierul agenda1 – fisier index simplu cu cheia de indexare nume
Fisier index compus structurat cu cheile de indexare nume, prenume, numar de telefon
INDEX ON nume TAG nume
INDEX ON prenume TAG prenume
INDEX ON nr_telefon TAG nr_telefon
SET ORDER TO 3 stabileste indexul activ
AFISAREA CAMPURILOR CALCULATE
Campurile calculate reprezinta expresii construite pe baza campurilor unei baze de date si utilizate pentru afisarea unor care nu exista fizic, dar pot fi calculate.
Ex: Fie baza de date elevi pentru care s-a memorat data nasterii. Sa se afiseze varsta fiecarui elev in parte.
1. Se deschide baza de date USE elevi2. Se introduce comanda
LIST FIELDS nume_prenume, INT ((DATE( ) – data_n)/365)
LIST nume_prenume, INT ((DATE( ) – data_n)/365)
3