Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » baze de date
Organizarea si gestionarea datelor in baze de date si tabele

Organizarea si gestionarea datelor in baze de date si tabele


Organizarea si gestionarea datelor in baze de date si tabele

Pana la versiunile vizuale de Foxpro termenii de baza de date si tabel erau considerati similari, desemnand acelasi lucru. Incepand cu VFP se corecteaza utilizarea improprie a acestor termeni prin crearea unui obiect distinct numit container de baza de date (database.dbc), care poate contine unul sau mai multe tabele (table.dbf). Conceptul de baza de date container creeaza o platforma pentru extinderea definitiei traditionale a modelului relational prin introducerea dictionarului de date adaugand noi caracteristici precum:posibilitatea utilizarii unor nume lungi de campuri si tabele;

posibilitatea folosirii regulilor de validare si a declansatorilor pentru fiecare tabel prin proceduri rezidente; folosirea valorilor prestabilite; folosirea implementarii direct in tabele a integritatii referentiale (excluzand programarea ei in aplicatii).

Un alt element de noutate legat de containere il constituie procedurile stocate (trigger-ele). Acestea reprezinta secvente de program care fac parte integranta din baza de date si se incarca automat in memorie la deschiderea bazei. Ele se folosesc pentru validarea tabelelor, a valorilor unor articole sau chiar a atributelor din structura articolelor. Trigger-ele au ca principalul obiectiv pastrarea integritatii referentiale a bazei de date.



Cat priveste tipurile de date cu care se pot defini structurile tabelelor VFP, acestea pot fi selectate din lista Type din fereastra Table Designer:

Lista Type este o lista combinata cu posibilitatea defilarii elementelor sale pentru a fi selectate in functie de natura datelor ce urmeaza a fi incarcate. Tipurile de date individuale sunt:

-character (caracter) - este cel mai uzual tip de date folosit pentru introducerea sirurilor, stocand intre 1 si 254 de caractere Ascii. Alinierea standard este la stanga cu completare de spatii sau trunchiere de caractere la dreapta.

-currency (valuta) - este folosit pentru stocarea valorilor (in dolari..), pe o lungime predefinita de opt octeti cu patru pozitii zecimale.

-numeric (numeric) - este folosit pentru introducerea a maximum 20 de cifre din care 19 pot fi zecimale. Alinierea standard este la dreapta pentru datele numerice intregi si pe marca zecimala pentru cele reale. In ambele cazuri zerourile nesemnificative sunt convertite in spatii. De aceea, atunci cand sirurile numerice au doar valoare informativa (numar telefon /fax, numar cont banca, numar factura etc.) este recomandata declararea lor de tip caracter, evitand astfel suprimarea primelor zerouri).

-float (flotant) - se aseamana cu tipul numeric, doar ca in memoria interna reprezentarea este in virgula flotanta. In general sunt folosite in calculele stiintifice unde se doreste o mare precizie a rezultatelor si cand datele de intrare sunt foarte mari sau foarte mici. 

-date (data calendaristica) - este folosit pentru stocarea, implicit pe opt octeti in format standard american (ll/zz/aa) a datelor calendaristice. Acest format poate fi modificat prin comenzi de tip SET DATE <nume_format> (ex. SET DATE ansi, SET DATE mdy etc.)

-date time (data calendaristica si timp) - permite introducerea, in formatul curent pe langa data calendaristica si a timpului in formatul hh:mm:ss: AM /PM. Pentru ora valoarea poate fi intre 0 si 12, implicit AM. Timpul PM se precizeaza in mod expres de catre programator.

-double (dubla precizie) - permite stocarea datelor de pana la maximum 18 cifre, in virgula mobila, intr-un format comprimat pe opt octeti.

-integer (intreg) - permite stocarea datelor numerice ca valori binare, pe patru octeti, reducand astfel spatiul de memorie afectat si contribuind la cresterea vitezei de prelucrare.

-logical (logic) - permite stocarea pe un octet a valorii de adevar T (True) sau neadevar F (False). Din motive de compatibilitate sunt recunoscute si valorile Y, y (yes - adevar) si N, n (no - neadevar) pe care insa le converteste in T si respectiv F.

-memo (memo) - reprezinta o facilitate folosita cel mai adesea in urmatoarele situatii: datele introduse depasesc 254 caractere; datele introduse nu sunt structurate; datele introduse au un anumit grad de confidentialitate.

Datele memo sunt organizate automat intr-un fisier special cu extensia implicita .fpt si numele identic cu cel al tabelei. In acest fisier datele sunt stocate in blocuri ce au dimensiunea prestabilita la 64 octeti. Prin comanda BLOCK SIZE <expr_N> se poate modifica dimensiunea blocurilor.

Editarea, modificarea sau vizualizarea continutului campurilor memo se realizeaza in ferestre speciale deschise de utilizator cu ajutorul mouse-ului sau a combinatiilor de taste Ctrl +PgUp sau Ctrl +PgDn. Salvarea continutului ferestrelor memo se realizeaza cu ajutorul tastelor Ctrl +W sau a butonului de inchidere a ferestrei.

La vizualizarea continutului tabelei pentru campurile memo se afiseaza informatiile:-memo - pentru camp vid;Memo - pentru camp cu date.

-general (general) - reprezinta un camp memo specializat, inmagazinat in acelasi fisier cu extensia .fpt. Se foloseste in principal pentru stocarea referintelor la obiectele OLE legate.

-charater (binary) - se aseamana cu tipul caracter, datele fiind memorate insa in format binar.

-memo (binary) - se aseamana cu tipul memo datele fiind memorate insa in format binar.

1 Crearea bazelor de date

O baza de date poate fi creata prin urmatoarele modalitati:

- in modul de lucru direct folosind comanda:

CREATE DATABASE [<nume_baza_de_date> | ? ]

in care :

<nume_baza_de_date> reprezinta numele atribuit de utilizator bazei de date;

deschide o fereastra in care in zona de editare Enter se poate selecta un nume din cele afisate sau se poate tasta un nume nou.

- in modul de lucru asistat selectand succesiv: meniul File, optiunea New, butonul radio Database, pictograma New File.

Daca utilizatorul nu specifica un nume de baza de date, sistemul atribuie un nume rezervat de tipul data_numar (data1, data2 etc.) Extensia implicita este .dbc (data base container). Cand utilizatorul nu precizeaza un nume, sistemul deschide fereastra Create pentru stabilirea numelui sub care se va salva baza de date. Atat in modul direct cat si in cel asistat se deschide fereastra Database Designer, care poseda propria bara cu instrumente, iar in bara meniului sistem devine disponibil meniul Database.

Pentru activarea barei cu instrumente se foloseste meniul View din care se selecteaza Toolbars si Database Designer. Pictogramelor din aceasta bara le sunt echivalente optiuni din meniul Database (Add Table - pentru adaugarea in baza a unei noi tabele, New table - pentru crearea unei noi tabele etc.).


Dupa cum se observa din fereastra de mai sus baza de date facultate.dbc contine tabelele nom_stud.dbf si spec_stud.dbf. Intre cele doua tabele este o relatie de tip una-la-una (one to one) construita cu ajutorul cheii primare nrmatr. Folosind acest camp s-au stabilit restrictiile de integritate, asa cum rezulta din fereastra urmatoare:

Se observa ca se pot stabili trei tipuri de reguli de integritate referentiala privind actualizarea tabelelor din baza de date (modificare - updating, stergere - deleting si inserare - inserting). In exemplul luat s-a optat pentru variantele:

cascade pentru modificare (care asigura actualizarea ingeristrarilor din tabela copil atunci cand sunt modificate inregistrarile corespunzatoare din tabela parinte);

restrict pentru stergere (care blocheaza steregerea unei inregistrari din tabela parine atunci cand se incearca stergerea unei inregistrari din tabela copil);

restrict pentru inserare (care nu permite adaugarea unei noi inregistrari in tabela copil, daca nu exista o inregistrare corespunzatoare (cu aceeasi valoare de cheie primara) in tabela parinte.

2 Crearea tabelelor

Din punct de vedere fizic o baza de date este alcatuita dintr-un ansamblu de fisiere al carui nucleu il reprezinta tabelele. Tabelele la randul lor pot fi libere (free) sau incluse in baze de date.

Pentru crearea tabelelor pot fi utilizate mai multe modalitati.

In modul de lucru direct se foloseste comanda CREATE cu formatul general:

CREATE [<nume_tabel> | ?]

in care:

<nume_tabel> reprezinta numele dat de utilizator unei tabele libere;

este un parametru ce deschide o fereastra in care in zona de editare Enter Table se poate selecta un nume din cele afisate sau se poate tasta un nume nou.

In modul asistat se selecteaza succesiv: meniul File, optiunea New, butonul radio Table si pictograma New File; sau folosind optiunea New Table. din meniul Database pentru crearea unei tabele intr-o baza de date.

Daca utilizatorul nu specifica un nume de tabela, sistemul atribuie un nume rezervat de tipul table1, table2 etc. Extensia implicita este .dbf (data base file). Cand utilizatorul nu precizeaza un nume, sistemul deschide fereastra Create pentru stabilirea numelui sub care se va salva tabela.

In toate situatiile se intra in fereastra Table Designer. In cazul definirii structurii fisierelor /tabelelor libere, aceasta fereastra se prezinta astfel:

Fereastra Table Designer este organizata intr-un cadru cu trei pagini cu etichetele Fields, Indexes si Table.

Eticheta Fields permite definirea structurii tabelei ce se creeaza. Ea contine urmatoarele zone:

Name - in care se specifica numele fiecarui camp. Numele trebuie sa fie unic, sa inceapa cu o litera, si poate contine litere(a..z), cifre(0..9) si liniuta de subliniere. Pentru tabelele libere lungimea maxima este de 10 caractere.

Type - specifica tipul campului ;

Width - specifica lungimea campului; acest parametru este stabilit de utilizator numai pentru campurile numerice si de tip caracter precum si pentru cele asociate lor, celelalte avand lungimi prestabilite; pentru campurile numerice se ia in calcul inclusiv marca zecimala si numarul de zecimale;

Decimal - este precizat doar pentru datele numerice indicand numarul de zecimale;

Index - precizeaza campul cheie dupa care se obtine un index regular si ordinea ascendenta sau descendenta de accesare a inregistrarilor din tabela ;

Null -permite acceptarea valorilor null in cazul in care caseta de validare este selectata (pentru acceptarea valorilor null trebuie folosita in prealabil comanda SET NULL ON).

Eticheta Indexes contine informatii atunci cand s-au stabilit campuri chei de indexare. Dupa cum se observa si din fereastra paginii Indexes pot fi stabilite urmatoarele tipuri de indecsi: Primary, Candidate, Unique si Regular. Optiunea Primary este disponibila numai daca tabela este inclusa intr-o baza de date.

Indecsii primari Primary indexes) sunt specifici tabelelor incluse in baze de date stabilind ordinea in care se prelucreaza inregistrarile a caror campuri cheie au valori unice; daca o tabela are deja un index primar, cel creat ulterior va fi unul de tip candidat.

Indecsii candidati (Candidate indexes) pot exista atat in tabele libere cat si in tabele incluse in baze de date avand caracteristicile si functiile indecsilor primari.

Indecsii regulari (Regular indexes) admit inregistrari duplicate si determina ordinea in care se prelucreaza inregistrarile; o tabela poate avea mai multi indecsi regulari.

Indexul unic (Unique indexes) indica ordinea de prelucrare in functie de prima aparitie a valorii in campul specificat.

Eticheta Table ofera informatii statistice privind tabela care se creeaza : nume tabela, numar campuri, lungime etc.

Dupa definirea structurii pentru salvarea ei se selecteaza butonul de comanda OK. Ca efect se deschide fereastra:

Daca la intrebarea "Input data records now? " se raspunde cu Yes comanda continua cu procedura de incarcare a datelor, pe ecran fiind afisata macheta primului articol. Altfel, este salvata doar structura, articolele urmand a fi incarcate ulterior prin comenzi de adaugare.

Daca tabela se creeaza in cadrul unei baze de date, fereastra Table Designer mai contine o zona in care pot fi exploatate facilitatile specifice containerelor (validari de campuri sau articole, valori prestabilite etc.). Pentru exemplificare, in baza de date facultate.dbc s-a creat tabela note_stud pentru care s-a stabilit ca restrictie de validare la nivel de atribut, apartenenta valorilor campului nota la intervalul 1-10. Pentru cazul in care valorile date nu se regasesc in acest intervalul se va afisa mesajul utilizator de evaluare eronata "ev. eronata!".

Este posibila si fixarea unor reguli de validare la nivel de inregistrare. Pentru aceasta se foloseste Table Designer cadrul de pagina Table, care pentru a accepta, in cazul orasului Iasi, numai codul postal 6600, va avea continutul prezentat mai jos. Zona Table Comment cuprinde regula de validare si mesajul de eroare cerut de utilizator.

Pentru obtinerea tabelelor se poate folosi si comanda COPY care are mai multe formate, cele mai simple fiind:

COPY TO <nume_fisier>

[FIELDS <lista_campuri>

[FOR<conditie1>] TYPE <.extensie>]

COPY STRUCTURE TO <nume_fisier>

[FIELDS <lista_campuri>]

Comanda COPY ofera metode indirecte de obtinere a tabelelor.

Primul format asigura copierea integrala sau partiala a tabelei active (structura si articolele incarcate), in fisierul cu numele specificat in clauza TO. Implicit noul fisier este de tip .dbf.

Exemplul 1: Sa se copie tabela student.dbf intr-un nou fisier, student2.dbf si sa se vizualizeze fisierul obtinut:

USE student

COPY TO student2

USE student2

BROWSE

Exemplul 2: Sa se copie din student2.dbf intr-o noua tabela student3.dbf numai studentii din Iasi:

COPY TO student3 FOR oras = "Iasi"

USE student3

LIST

Exemplu 3: plecand de la tabela student.dbf sa se obtina un fisier Excel:

USE student

COPY TO student TYPE XLS

Cel de al doilea format al comenzii COPY asigura copierea structurii fisierului activ.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.