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

Baze de date


Qdidactic » stiinta & tehnica » informatica » baze de date
Crearea bazelor de date



Crearea bazelor de date


CREAREA BAZELOR DE DATE


Crearea unei baze de date presupune reunirea tabelelor intr-o singura colectie pentru a beneficia de avantajele folosirii dictionarului de date. Acesta permite crearea sau specificarea:

cheilor primare si candidate;

relatiilor persistente dintre tabelele unei baze de date;

numelor lungi pentru tabele sau campuri*

titlurilor de campuri afisate in fereastra BROWSE si in anteturile coloanelor unei grile; *

valorilor implicite ale campurilor; *



claselor implicite ale controalelor folosite in formulare;

mastilor de intrare si a formatelor de afisare a campurilor; *

regulilor la nivel de camp si de inregistrare; *

declansatoarelor; *

procedurilor stocate;

conexiunilor la surse de date externe;

vederilor locale si externe;

comentariilor pentru fiecare camp*, tabel* si baza de date.


Gruparea tabelelor intr-o baza de date


Pentru a reuni tabelele intr-o baza de date se creaza mai intai un container baza de date pentru pastrarea tuturor obiectelor care formeaza baza de date (tabele, vederi, conexiuni sau proceduri stocate asociate).

in Project Manager se selecteaza fila Data , apoi se alege din lista Databases si se actioneaza butonul New.;

se poate folosi comanda CREATE DATABASE, cu sintaxa


CREATE DATABASE [DatabaseName | ?]

Exemplu:

CREATE DATABASE Parteneri



Adaugarea tabelelor la o baza de date

Tabelele pot fi asociate unei baze de date prin crearea lor in cadrul unei baze de date deschise in fundal sau prin adaugarea tabelelor existente la o baza de date.

in Project Manager se selecteaza fila All sau Data, din care se alege Tables si se actioneaza butonul Add.

Se foloseste comanda ADD TABLE, cu sintaxa urmatoare

ADD TABLE TableName | ?
[NAME LongTableName]

Exemplu:

OPEN DATABASE Parteneri

ADD TABLE Clienti


Eliminarea unui tabel dintr-o baza de date

in Project Manager se selecteaza numele tabelului si se actioneaza butonul Remove;

in Database Designer se selecteaza numele tabelului si se da comanda Remove din meniul Database;

se foloseste comanda REMOVE TABLE, cu sintaxa:

REMOVE TABLE TableName | ?
[DELETE] [RECYCLE]

Unde : clauza DELETE provoaca pe langa inlaturarea tabelului din baza de date si stergerea acestuia de pe disc


CREAREA TABELELOR SI LUCRUL INREGISTRARILE

Crearea unui tabel nou

Crearea unui tabel nou se refera la crearea unei structuri noi, urmand ca datele sa fie introduse fie imediat dupa salvarea acesteia fie ulterior. La proiectarea unui tabel trebuie tinut cont de urmatoarele:

pentru un anumit camp se foloseste tipul de data corespunzator felului informatiei care va fi memorata in acesta;

dimensiunea campului trebuie sa fie suficient de mare astfel incat sa corespunda informatiei ce va fi afisata;

se considera un numar corespunzator de pozitii zecimale pentru campurile Numeric si Float;

se valideaza caseta NULL, daca se doreste ca sa fie acceptat NULL ca o valoare pentru campul respectiv.


Tipuri de date in Visual FoxPro

Visual FoxPro are capacitatea de a gestiona urmatoarele tipuri de date:

Tipul campului

Dimens.

( pozitii)

Nr. pozitii zecimale


Tip data

C

n


1 octet per caracter pana la 254 caractere

Camp caracter  de dimensiune n

D



8 octeti

Data

T



8 octeti

Data sI ora

N

n

d

8 octeti in memorie;
1 - 20 octeti in tabel

Camp numeric de dimensiune n cu d pozitii zecimale

F

n

d

8 octetiin memorie;
1- 20 octeti in tabel

Camp numeric reprezentat in virgula mobila de dimensiune  n cu d pozitii zecimale

I



4 octeti


Intreg

B


d

8 octeti

Double

Y



8 octeti

Currency

L



1 octet

Logic

M



4 octeti in tabel

Memo

G



4 octeti in tabel

General


Crearea unui tabel nou

- in Project Manager se selecteaza fila cu eticheta Data.

n     Daca se creaza un tabel asociat unei baze de date se selecteaza baza, apoi Table, dupa care se actioneaza butonul New

n     Daca se creaza un tabel independent se selecteaza optiunea Free Tables si se actioneaza butonul New

butonul New deschide doua posibilitati:

folosirea asistentului - se alege butonul Table Wizard, si se urmeaza instructiunile de pe ecrane

folosirea ecranului de proiectare (Table Designer)- se alege New File, apoi in fereastra de dialog Create se introduce un nume pentru tabel, se actioneaza Save, dupa care se deschide fereastra de proiectare

- se pot crea tabele folosind comanda CREATE TABLE.

Pentru tabelele asociate unei baze de date, aceasta comanda se lanseaza dupa ce a fost deschisa in prealabil baza de date.


Exemplu:

OPEN DATABASE Personal

CREATE TABLE Salar (cnp C(13), nume c(25))

Pentru tabelele independente se utilizeaza cuvantul cheie FREE in comanda.


Exemplu:

CLOSE DATABASES

CREATE TABLE Functii FREE (codf c(4), numef c(15





Stergerea tabelelor de pe disc

a)     Stergerea tabelelor asociate unei baze de date

Daca un tabel este asociat unei baze de date, poate fi sters, ca produs secundar prin inlaturarea din baza de date sau poate fi sters de pe disc. Cele doua operatii difera, prin aceea ca inlaturarea din baza nu implica stergerea fizica a tabelului.

Stergerea unui tabel de pe disc se face astfel:

in Project Manager se selecteaza numele tabelului, apoi se actioneaza Remove urmat de Delete.

in Database Designer se selecteaza tabelul, se alege Remove din meniul Database si apoi Delete.

b) Stergerea tabelelor independente

Tabelele independente se pot sterge astfel:

in Project Manager , se selecteaza numele tabelului, se actioneaza Remove, si apoi se alege Delete.

Se utilizeaza comanda DELETE FILE .


DELETE   FILE [NumeFis | ?] [RECYCLE]

Exemplu:

USE

DELETE FILE tabel1.dbf


Adaugarea rapida a unui index regulat

Atunci cand se defineste un camp se poate stabili un index regulat pe campul respectiv specificand in caseta Index din Table Designer optiunea ascendent sau descendent. Indexul specificat este automat adaugat la fila Index si utilizeaza campul ca expresie. Pentru a modifica indexul, in fila Index se va schimba numele sau tipul indexului sau se va adauga un filtru.


Utilizarea valorii NULL

La constructia unui nou tabel, se poate specifica daca unul sau mai multe campuri pot accepta valoarea null. Pentru a controla intrarea valorii null pentru fiecare camp:

in Table Designer se selecteaza sau se sterge caseta de validare NULL pentru campul respectiv.

Se utilizeaza clauza NULL sau NOT NULL in comanda CREATE TABLE.

Exemplu:

CREATE TABLE clienti ( cli_id C(6) NOT NULL, nume_soc C(15) NOT NULL, contact C(15) NULL)


Adaugarea de comentarii la campuri

Dupa crearea unui tabel intr-o baza de date deschisa, se pot adauga descrieri ale fiecarui camp pentru a usura intelegerea si actualizarea tabelului respectiv.

in Table Designer  se introduce textul pentru comentariu in caseta Field Comment.

Se utilizeaza functia DBSETPROP ().

DBSETPROP(cName, cType, cProperty, ePropertyValue)

Exemplu:

OPEN DATABASE Parteneri

USE Clienti                                           

DBSETPROP('clienti.cli_id', 'Field', 'Comment', ; 'Campul nu poate fi nul')                 

Crearea valorilor implicite pentru campuri

Valoarea implicita se aplica atunci cand se introduc date prin intermediul unui formular, intr-o fereastra Browse, intr-o vedere sau prin program si ramane in camp pana cand se introduce o noua valoare.

Se pot stabili valori implicite atat din Table Designer cat si prin comanda, astfel:

in Table Designer, in zona Field validation se introduce valoarea corespunzatoare in caseta Default value.

in comanda CREATE TABLE se utilizeaza clauza DEFAULT.

Exemplu:

CREATE TABLE fact( cod_part C(4), cant N(5,2) DEFAULT 200.00)


Aplicarea de reguli comerciale

Se pot aplica reguli comerciale pentru datele de intrare prin crearea regulilor la nivel de camp respectiv la nivel de inregistrare. Acestea se numesc reguli de validare si controleaza datele de intrare in campurile, respectiv inregistrarile unei baze de date. Aceste reguli compara valorile introduse cu cele obtinute ca rezultat al evaluarii expresiilor definite, si in cazul in care acestea nu respecta cererile regulilor de validare sunt rejectate. Se va folosi clauza VALID in definirea unui formular sau intr-o secventa de cod.

Diferitele constrangeri asupra datelor sunt aplicate in urmatoarele situatii:

Mecanismul de validare

Nivelul

Cand se aplica

Validare pentru NULL

Camp sau coloana

Cand se iese dintr-un camp in fereastra Browse sau cand valoarea campului se schimba ca urmare a unei comenzi INSERT sau REPLACE.

Reguli la nivel de camp

Camp sau coloana

Cand se iese dintr-un camp in fereastra Browse sau cand valoarea campului se schimba ca urmare a unei comenzi INSERT sau REPLACE.

Reguli la nivel de inregistrare

inregistrare

La orice actualizare a inregistrarii

Index candidat/primar

inregistrare

La orice actualizare a inregistrarii

Clauza VALID

Formular

Cand se iese dintr-o inregistrare

Declansatoare (triggers)

Tabel

Cand valorile dintr-un tabel se modifica in urma unei comenzi INSERT, UPDATE,  sau DELETE

Constrangerile sunt activate in ordinea aparitiei lor in tabel. Prima violare a unei reguli opreste executia comenzii.


Pentru a crea o regula de validare pe camp:

in Table Designer in caseta Rule din sectiunea Field Validation se introduce expresia pentru regula dorita;

sau

in comanda CREATE TABLE se utilizeaza clauza CHECK

Pentru a insoti regula de validare pe camp cu un mesaj de eroare :

in Table Designer , in sectiunea Field validation se va introduce mesajul dorit in caseta Message;

sau

in comenzile CREATE TABLE respectiv ALTER TABLE se utilizeaza clauza CHECK si clauza ERROR.

Pentru a crea o regula de validare la nivel de inregistrare si un mesaj de ereoare :

in fila Table din Table Designer se introduc regula de validare respectiv mesajul de eroare in casetele Rules si Messages;

sau

- se foloseste clauza CHECK in comanda CREATE TABLE sau CHECK TABLE.


Exemplu: pentru a fi siguri ca angajatii unei societati sunt majori la data angajarii se poate folosi urmatoarea secventa de cod:

ALTER TABLE angajati SET CHECK dat_ang>=dat_nas +(18*365.25);

ERROR 'Angajatul trebuie sa fie major la data angajarii'

Daca se incearca introducerea unei inregistrari cu data invalida, Visual FoxPro afiseaza o eroare cu mesajul specificat si nu actualizeaza inregistrarea.

Modificarea structurii unui tabel

Inainte de a modifica structura unui tabel utilizatorul trebuie sa se asigure ca are acces exclusiv la tabelul respectiv. Structura unui tabel se poate modifica asrtfel:

in Project Manager se selecteaza numele tabelului si se alege optiunea Modify

sau

in Database Designer se selecteaza tabelul din schema si se alege optiunea Modify din meniul Database

sau

se utilizeaza comanda MODIFY STRUCTURE (MODI STRU), dupa ce in prealabil tabelul a fost deschis cu comanda USE.

USE [[NumeBaza!]Tabel | NumeVedereSQL | ?] [IN nWorkArea | cTableAlias]
[ONLINE] [ADMIN][AGAIN]   [NODATA]
[INDEX IndexFileList | ?
[ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF CDXFileName]
[ASCENDING | DESCENDING]]]]
[ALIAS cTableAlias] [EXCLUSIVE] [SHARED] [NOUPDATE]

Oricare din solutiile alese vor deschide proiectantul de tabele Table Designer.

Exemplu:

OPEN DATABASE Parteneri

USE Clienti EXCLUSIVE

MODIFY STRUCTURE


Prin program, structura unui tabel se poate modifica utilizand comanda ALTER TABLE.

a)     Adaugarea de campuri noi

in Table Designer se alege Insert

b)     Stergerea de campuri

in Table Designer se selecteaza campul dorit si se actioneaza butonul Delete

c)      Redenumirea campurilor

in Table Designer se introduce un nume nou in caseta Name pentru un camp existent

d)     setarea sau schimbarea regulilor de validare la nivel de camp sau tabel

- in fila Table din Table Designer se introduce o regula noua sau un mesaj de eroare nou in casetele Rule respectiv Message din sectiunea Record Validation.

e)     stabilirea sau modificarea valorilor implicite

in Table Designer se introduce noua valoare in caseta Default value din fila Fields


Duplicarea unui tabel

Prin utilizarea comenzilor din limbajul de manipulare se poate face o copie a structurii unui tabel, impreuna cu procedurile stocate , expresiile pentru declansatoare si valorile implicite pentru campuri. Aceste comenzi nu implica o copiere a continutului tabelelor.

se deschide tabelul original;

se foloseste comanda COPY STRUCTURE pentru a face o copie a tabelului original;

Pentru a copia date din tabelul original:

se deschide tabelul creat cu comanda precedenta

se foloseste comanda APPEND FROM

Sintaxa celor doua comenzi este urmatoarea:

COPY STRUCTURE TO NumeTabel
[FIELDS L
istaCampuris [[WITH] CDX | [WITH] PRODUCTION]
[DATABASE NumeBaza [NAME NumeTabel]]



APPEND FROM NumeTabel | ?
[FIELDS L
istaCampuri]
[FOR lExpresie]

[[TYPE] [DELIMITED [WITH Delimitator | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiator]
| DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK
| WK1 | WK3 | WKS | WR1 | WRK | CVS
| XLS | XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName]]]

[AS nCodePage]


Lucrul cu inregistrarile


a)     Adaugarea unor inregistrari

- Adaugarea de date in mod program sau in mod comanda

Prin program, se foloseste comanda APPEND BLANK. Aceasta este urmata de comanda REPLACE care inlocuieste valoarea prezenta a campului ( chiar a unuia gol) cu o noua valoare.

Comanda REPLACE necesita :

un tabel deschis, o inregistrare existenta, numele campului in care se va memora valoarea si o expresie evaluata la valoare corespunzatoare din punct de vedere al tipului de date pentru fiecare camp.

Sintaxa acesteia este:

REPLACE Camp1 WITH eExpression1 [ADDITIVE]
  [, FieldName2 WITH eExpression2 [ADDITIVE]]
  [Scope] [FOR lExpression1] [WHILE lExpression2]
  [IN nWorkArea | cTableAlias]
  [NOOPTIMIZE]

Exemplu:

OPEN DATABASE Personal     & se deschide baza de date

USE Date_id & se deschide tabelul corespunzator

APPE BLANK                            & se adauga o inregistrare cu campuri goale

REPL prenume WITH 'Adriana' & se stocheaza o valoare in camp


Adaugarea de date direct de la tastatura

Pentru adaugarea de inregistrari in mod ecran se folosste comanda APPEND. Aceasta are ca efect deschiderea ecranului CHANGE care permite utilizatorului introducerea datelor de la tastatura.

Adaugarea unor inregistrari dintr-un alt tabel

Se pot copia inregistrari din alte tabele sau fisiere, prin folosirea comenzii APPEND FROM.

Exemplu: OPEN DATABASE Personal

USE Date_pers

APPE FROM Angajati

b)     Editarea inregistrarilor dintr-un tabel

se utilizeaza comanda EDIT sau CHANGE in fereastra de comenzi

Exemplu USE Date_pers

EDIT

c) Adaugarea elementelor grafice la un tabel

Se pot stoca elemente grafice intr-un tabel Visual FoxPro prin crearea unui camp de tip General in care sa se importe sau sa se copieze elemente OLE (imagini bitmap sau diagrame).

c)      Introducerea in campuri a valorii null

- intr-o fereastra BROWSE sau intr-un formular se apasa combinatia Ctrl+0 (zero)

se foloseste particula NULL.

Exemplu:

REPLACE automobile WITH NULL

d)     stergerea inregistrarilor

Stergerea inregistrarilor dintr-un tabel are loc in doua etape: mai intai la nivel logic, prin marcare in vederea stergerii, si apoi la nivel fizic, prin stergerea efectiva de pe hard-disc. Pana la stergerea efectiva a inregistrarilor acestea pot fi recuperate prin dezactivarea marcajului pentru stergere.

marcarea inregistrarilor pentru stergere:

intr-o fereastra BROWSE se executa clic pe marcajul de stergere pentru a marca inregistrarea respectiva. Marcajul de stergere se afla la extremitatea stanga a inregistrarii (inaintea primului camp).

din meniul Table se alege optiunea Delete Records.

Daca optiunea SET DELETED este dezactivata (SET DELETED OFF), pana la stergerea efectiva a inregistrarilor de pe hard, acestea sunt vizibile inca in fereastra BROWSE, cu marcajul de stergere activat. In caz contrar, inregistrarile marcate pentru stergere sunt eliminate din fereastra BROWSE.

Activarea sau dezactibarea comenzii SET DELETED determina daca inregistrarile marcate pentru stergere sunt accesibile prin comenzi care opereaza asupra lor.


recuperarea inregistrarilor marcate pentru stergere

Daca inregistrarile nu au fost eliminate efectiv din tabel, se poate elimina marcajul pentru stergere din dreptul inregistrarilor astfel:

in fereastra Browse se executa un nou clic pe marcajul de stergere;

se foloseste comanda RECALL, care indica o serie de inregisrtrari, precum si o conditie bazata pe o expresie logica pe care inregistrarile trebuie sa le indeplineasca pentru a li se elimina marcajul de stergere.

Exemplu:

Use Produse

RECALL FOR denumire='monitor'

BROWSE


- eliminarea inregistrarilor marcate pentru stergere

Dupa ce s-au marcat inregistrarile pentru stergere. Acestea pot fi efectiv eliminate de pe hard disc cu ajutorul interfetei sau prin program.

intr-o fereastra BROWSE se alege comanda Remove Deleted Records din cadrul meniului Table;

se utilizeaza comanda PACK. Aceasta are doua clauze: MEMO si DBF, care executa operatia de stergere numai din fisierul MEMO asociat unui tabel respectiv numai din fisierul tabel. Daca este lansata comanda PACK fara clauze, inregistrarile sunt sterse atat din fisierul tabelului cat si din fisierul MEMO asociat. Fisierul din care se sterg inregistrari trebuie accesat in mod exclusiv.

Exemplu: USE Clienti EXCLUSIVE

PACK


Stergerea tuturor inregistrarilor dintr-un tabel

Daca se doreste stergerea tuturor datelor dintr-un tabel, dar pastrarea structurii acestuia, se foloseste comanda ZAP. Lansarea aceasteia este echivalenta cu lansarea comanzii DELETE ALL urmata de comanda PACK, dar este mult mai rapida. Tabelul trebuie deschis in mod EXCLUSIVE.

Inregistrarile carora li s-a aplicat comanda ZAP nu mai pot fi recuperate.




sunt propriettii stocate in fisierul .dbc, dar sunt create in procesul de construire a unei tabele sau vederi.

NULL - valoare pentru un c`mp care este @n mod curent necunoscut[ sau nu este aplicabil[ @nregistr[rii respective.

stored procedure (proceduri memorate)- proceduri memorate intr-o baza de date, ce pot contine orice comanda sau functie permisa intr-o functie definita de utilizator.




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