INDEXAREA BAZELOR DE DATE

4
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 1

Transcript of INDEXAREA BAZELOR DE DATE

Page 1: INDEXAREA BAZELOR DE DATE

   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

Page 2: INDEXAREA BAZELOR DE DATE

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

Page 3: INDEXAREA BAZELOR DE DATE

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