Sunteți pe pagina 1din 17

MICROSOFT SQL SERVER.

2.1 Istoria bazelor de date.


Cnd vine vorba despre stocarea informaiilor, pentru unii acest termen nseamn
o agenda veche n care sunt trecute toate datele importante de care au nevoie: adrese,
numere de telefon, informaii financiare s.a.m.d.. Pentru cei din domeniul IT i nu numai,
nseamn

sisteme

dedicate

special

stocrii

datelor

importante.

n acest articol voi face o istorie a ceea ce nseamn stocare datelor cu ajutorul
produselor

informatice.

Primele baze de date erau dezvoltate pe sisteme mainframe i erau manipulate de


oameni special pregtii pentru a gestiona aceste sisteme. Aceste baze de date erau
simple Sisteme de Gestiune a Bazelor de Date (SGBD). Primul Sistem de Baze de Date
Relaionale (SGBDR) a fost lansat de Oracle Corporation si folosea limbajul de interogare
SQL. Dei versiunea original a fost dezvoltat pentru sisteme VAX/VMS, Oracle a fost
unul dintre primii furnizori care a lansat o versiune si pentru sistemele PC pe sistemul de
operare

DOS.

La jumtatea anilor 80, Sybase a lansat propriul sau SGBDR - SQL Server. Acesta
avea biblioteci client pentru accesul la baza de date. Asigurnd suportul pentru proceduri
rezidente (astzi denumite proceduri stocate") si interoperabilitatea cu o diversitate de
reele, SQL Server a devenit un produs de succes n scurt timp, mai ales n mediile
client/server.
O dat cu dezvoltarea sistemelor personale (PC), au aprut i primele aplicaii de
baze de date care foloseau un singur fiier pentru a stoca toata informaia din baza de
date (denumite baze de date flat file"). Ele erau de tip Xbase, un limbaj care s-a rspndit
foarte repede fiind folosit in special la manipularea datelor. Sistemele care l-au folosit,
daca mai este nevoie sa le enumr, au fost dBase, FoxBase, FoxPro. Aceste versiuni rulau
sub sistemul MS-DOS i mprteau limitrile acestuia. Cea mai rspndit aplicaie care
folosea limbajul xBase a fost FoxPro, sistem dezvoltat de firma Fox Software. Chiar i n
zilele noastre exist firme care stocheaz alte extrem de importante n baze de date
FoxPro, iar cel mai cunoscut exemplu este cel al organizaiei care gestioneaz Euro Tunel.
Aceasta folosete o aplicaie care gestioneaz cteva sute de GB de date.
La nceputul anilor 90, firma Microsoft Corporation a lansat aplicaia Access, aplicaie
care se bazeaz n mare parte pe logica de stocare a sistemului FoxPro, sistem care
fusese achiziionat de firm n 1989. Aplicaia Access a devenit, n scurt timp, cea mai
folosit aplicaie de gestiune a bazelor de date flat file" de pe sistemele personale. Ajuns

acum la versiunea 9 (denumit 2000), sistemul de stocare s-a schimbat fiind pregtit s
fie scalat oricnd ctre o baza de date Microsoft SQL Server. Totodat, ncepnd cu
versiunea 7 i s-a adugat un limbaj de programare dedicat (Visual Basic for Applications VBA), bazat pe limbajul de programare Visual Basic. Prin intermediul acestuia se puteau
manipula datele mai uor, se puteau folosi automatisme pentru diverse interogri, afiri
etc. ncepnd cu versiunea 9, limbajul integrat este compatibil cu Visual Basic i cu
limbajul folosit de MS SQL Server.
n privina sistemelor server, piaa s-a dezvoltat uimitor de repede deoarece s-a
constatat ct de folositoare sunt sistemele dedicate acestui lucru. Oracle a lansat i i-a
dezvoltat baza de aplicaii server, astzi ajungnd la versiunea 9. ncepnd cu versiunea
8i, au fost introduse extensii orientate pe obiecte. Lansat cu ocazia Oracle OpenWorld ,
Oracle 9i reprezint cea mai complet infrastructura pregtit pentru rularea aplicaiilor
Internet. Oracle 9i include Oracle 9i Database si Oracle 9i Application Server si pachetul
de unelte de dezvoltare Oracle 9i Developer Suite.
n ceea ce privete corporaia Microsoft, aceasta a lansat tot n anul 2000 serverul
de baze de date SQL Server 2000. Aplicaia se dorete a fi un concurent direct pentru
aplicaiile Oracle, iar pentru acest fapt i s-a adugat suport 100% pentru limbajul XML
prin intermediul cruia se poate interoga direct serverul dintr-un browser (dac serverul a
fost configurat s suporte aceast facilitate).
Tot n 2000, compania IBM a lansat varianta 7 a aplicaiei DB 2. Aceasta aplicaie,
ca i Oracle, este implementata pe mai multe platforme (inclusiv Linux), fiind o aplicaie
pur obiectual. Si pentru ca am ajuns la aplicaii de baze de date obiectuale, trebuie s
amintim

de

aplicaia

companiei

Computer

Associates,

Jasmine.

Pe sistemele Linux, cel mai folosit server de baze de date este MySQL. Cu toate c
exist un alt produs gratuit (MySQL este gratuit att timp ct aplicaia dezvoltata nu este
revnduta) - PostgreSQL, MySQL rmne preferatul programatorilor de Linux. De ce?
Pentru c limbajul cel mai folosit pe partea de server web - PHP - dispune de o extensie
MySQL nglobat. Dar nu numai acest lucru a influenat folosirea MySQL. Una dintre
alegeri a fost i datorit uurinei administrrii acestui sever, el dispunnd de un client de
accesare inclus.

2.2 Descrierea general a SGBD InterBase.


Sistemul de gestiune a bazei de date (SGBD) InterBase prezint implementarea
modern a bazelor de date relaionale, bazate pe tranzacte. SGBD InterBase poate prelucra n

paralel att un volum mare de tranzacii mici ct i tranzacii cu prelucrarea de lung durat
datelor. InterBase are o tehnologie unic de delimitare a tranzaciilor, care nu blocheaz
comenzile de citire i nscriere, fiindc tranzaciile nu necesit blocarea tuplelor folosite. i
aceste tranzacii nu necesit programare adugtoare.
Arhitectura sa SuperServer mrete performana i optimizeaz resursele
sistemului, n special pentru un numr mare de utilizatori, fiindc este realizat
pe prelucrare n procese paralele. Un concept de baz a arhitecturii SuperServer
este colectarea centralizat a informaiei despre utilizatori, a statisticii despre
Baza de Date i apelurile clienilor. Aceasta permite pstrarea informaiei des
utilizate n cache i mbuntete timpul de rspuns.
Instalarea serverului necesit doar 10 MB de memorie ceea ce ne permite
s nu ne gndim la spaiu liber la instalare. Alt lucru la care nu trebuie de pierdut
timpul este ajustarea parametrilor, fiindc InterBase optimizeaz tranzaciile
pentru d-st.
S enumerm unele din posibilitile principale:

notificatorii de evenimente;

trighere;

proceduri stocate;

restricii de integritate a datelor.

Notificatorii de evenimente permit de a notifica pe cineva n cazul apariiei


unui eveniment concret, fr a apela Baza de Date n continuu. De exemplu,
InterBase poate notifica un manager, prin e-mail, c n stoc se termin un produs
oarecare.
Trigherele pot s asigure respectarea business regulilor pe server, astfel
toate aplicaiile ce folosesc date corporative respect aceste reguli automat. Cu
att mai mult c trigherele pot s automatizeze rspunsurile la evenimente pe
server, de exemplu s cear validarea datelor cnd un tuplu este schimbat.
Procedurile stocate permit mrirea vitezei de rspuns prin delegarea
lucrrilor de rutin de la client la server. Totodat procedurile stocate ncurajeaz
proiectarea modular i fac exploatarea i reutilizarea mai simpl i mai sigur
prin limitarea operaiilor la cele definite n proceduri. Funciile definite de
utilizatori extind capacitile de calcul i posibilitile de creare a operaiilor
business dorite. InterBase are o bibliotec de funcii standarde gata, astfel nu va
trebui s ncepei de la zero.

Restriciile de integritate a datelor fac posibil meninerea relaiilor dintre


tuplele pstrate n Baza de Date. InterBase asigur patru tipuri de restricii de
integritii datelor:
Unique i Primary Key: asigur s nu existe dou tuple cu acelai valori
pentru o mulime de coloane;
Integritatea referinelor n cascad: valideaz relaiile printe-copil ntre
tabele pentru asigurarea sincronizrii i modificrile sau tergerile n cascad;
Check: condiia asociat va fi validat pentru orice tuplu al tabelului;
Domain: permite crearea tipurilor noi de date i specificrii integritii la
nivel de coloane. Domeniile pot fi utilizate pentru a specifica un segment de
valori acceptabile sau o list de valori valide i o valoare implicit. Aceasta
nseamn c dup definirea domeniului, el poate fi utilizat n orice loc al
aplicaiei ca o referin la un tip de date mai sofisticat.

n 1986, InterBase a elaborat primul SQL server cu suport a dou tipuri de date
avansate. BLOb (sunet, imagine, grafic sau informaie binar) i masive multidimensionale
(pn la 16 dimensiuni ntr-un cmp). Aceasta a fcut ca InterBase s fie alegerea pentru
aplicaiile tiinifice i multimedia cum atunci att i acum. Azi, WWW i aplicaiile de
telefonie utilizeaz BLOb foarte des pentru a oferi soluii multimedia. i cu InterBase
serverul este adoptat automat la utilizarea filtrelor, compresoarelor i convertoarelor de date,
de exemplu s transforme o fotografie scanat ntr-un fiier jpeg.
S admitem c dorii s mutai Baza de Date de pe un calculator pe o
soluie Client/Server. Sau avei nevoie s lrgii aplicaia n aa mod ca s fie
utilizat de mai multe departamente. n orice caz, InterBase este o soluie ideal
fiindc el a fost proiectat n special pentru medii de Baze de Date distribuite.
InterBase poate prelucra tranzaciile multi-server. Aceast posibilitate
automat asigur ca modificrile distribuite s fie acceptate (commited) fr vreo
intervenie special din partea aplicaiei. Cnd o tranzacie se extinde pe mai
multe servere, InterBase automat apeleaz serverele pentru s se asigure c ele
lucreaz, apoi transmite instruciunea comit pentru a termina tranzacia. Pe
lng aceasta InterBase permite, dac ceva sa ntmplat, de a anula tranzacia
pe toate serverele implicate.
InterBase este implementat utiliznd ANSI SQL-92. Aceast interfa standard
reduce considerabil timpul de adoptare la InterBase a elaboratorilor noi. El se

utilizeaz

la

implementarea

procedurilor

stocate,

trigherelor,

restriciilor

declaraiilor de integritate a datelor.

2.3 Suport extins pentru aplicaiile de baze de date.


Dicionarul de date stocheaz si utilizeaz informaia despre coninutul si comportamentul
datelor din tabele. Aici se pot specifica atribute extinse de cmpuri precum valorile minim, maxim
si implicit, opiunile de formatare n afiare si editare. Este locul ideal pentru a stabili si asigura
integritatea datelor. Formele n care urmeaz s fie utilizate vor prelua instantaneu caracteristicile si
vor stabili conexiunile la selectarea cmpurilor de date.
Componentele de acces la bazele de date au fost rescrise n ntregime pstrnd ns interfaa
versiunilor precedente. Astfel, tabelele si query-urile snt completate cu proprieti si evenimente de
filtrare dinamic a datelor si ofer evenimente suplimentare pentru tratarea extins a erorilor. Exist o
proprietate care permite utilizarea facilitii de stocare n cache a modificrilor (detalii despre cache
updates mai jos). Tabelele pot face uz de tehnica special BDE de filtrare a datelor printr-o expresie
de tip SQL care garanteaz obinerea unui set editabil de nregistrri (ceea ce nu ntotdeauna este
posibil printr-un query) cu minimum de consum de memorie.
2.4 Limbajul SQL.
2.4.1 Noiuni generale.

Limbajul

SQL

(Structured

Query

Language

Limbaj

de

Interpelri

Structurat) este un set de comenzi i operatori de gestiune a bazelor de date


relaionale. Standardul pentru limbajul SQL a fost elaborat n anul 1992 de ctre
Organizaia

Internaional

de

Standardizare

ISO

(International

Standards

Organization) i Institutul Naional American de Standarde ANSI (American National


Standards Institute) i poart denumirea de SQL-92.
nainte de a ncepe expunerea propriu zis a comenzilor limbajului SQL vom
defini o serie de noiuni fundamentale ale limbajului: baza de date, tabel, index,
relaie, etc.
Baza de date este o colecie de tabele (ce conin date) i o serie de obiecte
suplimentare numite indeci, tabele virtuale, relaii ntre tabele, proceduri
ncorporate i trighere toate ele fiind definite pentru a spori eficiena gestionrii

datelor. Informaia stocat ntr-o baz de date se refer la un domeniu concret de


activitate.
Tabelul este un element al unei baze de date care reprezint un set de
date organizat n form de coloane i linii. Fiecare coloan conine un nume, tip i
lime. Coloanele se numesc cmpuri, iar liniile se articole al tabelului.
Indexul este un element al bazei de date care permite programelor de
gestiune a bazei de date de a regsi rapid a informailor necesare fr a scana
ntreg tabelul. Accesarea rapid a articolelor unui tabel se bazeaz pe valorile unei
expresii de indexare.
Dup cum am mai menionat, SQL prezint din sine un limbaj
structurat de interpelri. Acesta este un limbaj care d posibilitate de a crea baze
de date relaionale i a lucra cu ele. Baza de date este un set de informaie legat,
care se pstreaz n tabel.
Spaiul informaional devine tot mai unificat. Asta a adus la necesitatea
crerii unui limbaj standard, care s-ar putea folosi n diferite tipuri a mediilor de
calculatoare. Limbajul standard va da posibilitatea utilizatorilor, care cunosc un set
de comenzi, s le foloseasc pentru crearea, gsirea, modificarea i transferarea
informaiei - independent de faptul, c ei lucreaz la calculator personal, la o staie
lucrtoare de reea, sau la calculator universal.

n lumea calculatoarelor, utilizatorul care are limbajul dat, are un mare avantaj n
utilizarea i generalizarea informaiei dintr-un ir de surse cu ajutorul unui mare numr de
metode.
Elegana i independena de la specificul tehnologiilor informaionale, i
susinerea lui de ctre liderii industriei n sfera tehnologiei bazelor de date
relaionale, a fcut limbajul SQL limbaj standard de baz. Din aceast cauz oricine
care dorete s lucreze cu bazele de date a anilor 90, trebuie s cunoasc SQL.
Standardul SQL este determinat de ANSI (American National Standards
Institute) i n momentul de fa el este acceptat i de ISO (Organizaia
Internaional a Standardelor). ns majoritatea programelor comerciale a bazelor
de date l lrgesc fr a pune la cunotin ANSI, adugnd diverse particulariti n
acest limbaj, care, cum ei cred c ele vor fi forte folositoare. Cteodat ele ceva
schimb standardul limbajului, dar ideile bune au tendina de a se dezvolta i
curnd devin standarde a "pieei" de la sine ele n puterea folositoare a calitilor
sale.

Aplicaiile C++ Builder se adreseaz la date prin intermediul BDE (Borland


Database Engine). Tipul de acces la bazele de date variaz n funcie de tipul bazei
de date. Bazele de date locale Paradox, dBASE, MS Access i FoxPro sunt apelate de
BDE prin intermediul driver-ilor standarde. Datele din serverele SQL snt primite
datorit

utilizrii sistemului special de driver-e SQL Links. Un rol important n

prelucrarea i trimiterea interpelrii l joac sistemul de prelucrare a interpelrilor


component a procesorului BD. Toate sistemele de gestionare a bazelor de date nu
utilizeaz limbajul SQL ca mijloc principal n lucru cu datele. Cu toate acestea, BDE
cu ajutorul driver-ului standard respectiv transleaz cererile ce vin de la aplicaii
ntr-o form neleas de sistemul de gestiune al bazei de date i primete rspuns.
Deoarece cererea ctre orice BD local se execut de un singur mecanism, exist o
sintax unic SQL pentru lucru a astfel de date. Aceast variant poart denumirea
de SQL local i este o parte component din standardul SQL92.

Toate serverele BD care lucreaz cu BDE prin SQL Links sunt nite sisteme
industriale complicate i lucreaz pe baza extensiilor proprii ale limbajului. n acest caz BDE
pur i simplu transmite cererea la server, fr a o transla sau modifica. Este evident c, n
acest caz elaboratorul aplicaiei trebuie s cunoasc aceast variant SQL.

2.4.2 Componena limbajului SQL.

Limbajul SQL este destinat pentru manipularea datelor n baze de date


relaionale , determinarea structurii bazei de date i dirijarea cu drepturile de acces
la date ntr-un mediu cu muli utilizatori.
i de atta, n limbajul SQL n calitate de pri componente ntr:

limbaj de manipulare a datelor (Data Manipulation Language,

limbaj de determinare a datelor (Data Definition Language, DDL)

limbaj de dirijare a datelor (Data Control Language, DCL).

DML)

O s subliniem, c acestea nu snt limbaje aparte, ci snt diverse comenzi a


unui limbaj. Astfel de divizare sa fcut numai din punctul de vedere a diverselor
valori funcionale a comenzilor date.
Limbajul de manipulare a datelor se utilizeaz, cum se vede din denumire,
pentru manipularea datelor n tabelele bazei de date. El este format din 4 comenzi
de baz.

Comenzile de baz a limbajului SQL


Tab.2.4.2

SELECT

(selectare)

INSERT

(inserare)

UPDATE

(modificare)

DELETE

(tergere)

Din punctul de vedere a interfeei aplicate exist dou tipuri de comenzi SQL:

SQL interactiv

SQL incorporat.

SQL interactiv se utilizeaz n utilize speciale (de tipul WISQL sau DBD), care
dau posibilitatea n regim interactiv introducerea interpelrilor cu utilizarea
comenzilor SQL, trimiterea lor pentru execuie la server i pentru a primi rezultate n
fereastra care este destinat pentru aceasta. SQL incorporat se folosete n
programele aplicate, i le permite s trimit interpelri la server i s prelucreze
rezultatele primite, i cu tot mai mult combinnd orientare - set i orientarea record.

2.4.3 Operaii relaionale. Comenzile limbajului de manipulare cu datele.

Sarcina principal de pregtire a interpelrii crearea legturii dintre


sistemul de gestiune al BD care va executa interpelarea, i setul de date al
componentei TQuery respective. Dac acest lucru a fost realizat, atunci se
determin modalitatea de executare a interpelrii accesul local prin intermediul
driver-ului standard sau transmiterea textului cererii la server. Dup aceasta se
seteaz valorile pentru variabilele parametrilor interpelrii.
Dac interpelarea se execut local, atunci ea se transmite prin intermediul
driver-ului standard la sistemului de gestiune al BD respectiv pentru a fi executat
de acesta. Prin legtura creat la pregtirea interpelrii rezultatul se transmite n
setul de date al aplicaiei.
Dac interpelarea a fost adresat serverului SQL, atunci se presupune c ea
are o sintax specific, corespunztoare serverului dat. n acest caz toat pregtirea
special a parametrilor interpelrii se execut de partea serverului. BDE asigur

numai transmiterea interpelrii i ntoarcerea rezultatului de execuie la setul de


date al aplicaiei.
nc o modalitate de executare a interpelrilor pentru serverul SQL
adresarea direct la funciile API a serverului respectiv. Aceasta ns, este metoda
cea mai rapid, dar i cea mai complicat pentru elaboratori.
Cea mai important comand a limbajului de manipulare cu datele este
comanda SELECT. Dup simplitatea sintaxei ei se ascunde o mare bogie de
posibiliti.

SELECT poate, de asemenea, ntoarce date din multiple tabele, setnd lista numelor
tabelelor n clauza FROM, separate prin virgul.
Operatorul LIKE
Operatorul LIKE ne d posibilitatea de a folosi caractere speciale n text.
Caracterele speciale snt acele caractere care au o semnificaie special cnd snt
folosite n condiia de cutare. Caracterul (%) va semnifica unul sau mai multe
caractere, (_) un singur caracter.

Operatorii Logici
Toate exemplele de pn acum au inclus numai cte o condiie de cutare.
ns, n SQL avem posibilitatea de a include orice numr de condiii de cutare n
clauza WHERE combinndu-le cu ajutorul operatorilor AND sau OR.
Cnd AND apare ntre condiiile de cutare, ambele condiii trebuie s fie
adevrate pentru ca nscrierea s fie ntoars.
Cnd OR apare ntre condiiile de cutare, numai una din condiii trebuie s
fie adevrat pentru ca nscrierea respectiv s fie ntoars.
Cnd introducem condiii de cutare compuse, trebuie s inem cont de
ordinea de evaluare a condiiilor.

Funciile agregate
SQL pune la dispoziie funcii agregate care calculeaz o singur valoare
dintr-un grup de valori. Grupul de valori sunt toate datele dintr-un cmp particular
pentru setul dat de nscrieri. Funciile agregate pot fi folosite n cadrul clauzei
SELECT, sau oriunde n cadrul instruciunii SELECT unde se folosete valoarea.

Clauza HAVING
La fel ca i clauza WHERE care reduce numrul nscrierilor ntoarse de clauza
SELECT, clauza HAVING poate fi folosit pentru a reduce numrul de nscrieri
ntoarse de clauza GROUP BY. La fel ca i clauza WHERE, clauza HAVING are condiie
de cutare. n clauza HAVING condiia de cutare corespunde tipic unei funcii
agregate folosite n clauza SELECT.
De obicei, cererea ntoarce nscrieri n ordinea natural, ordine n care
nscrierile snt gsite n tabel. Deoarece pstrarea datelor n tabele este de obicei
neordonat (nesortat), rezultatul cererii va fi de asemenea nesortat. Clauza ORDER
BY

sorteaz rezultatul n acord cu cmpul specificat. Fiecare coloan din clauza

ORDER BY trebuie de asemenea s apar i n clauza SELECT a instruciunii.


INSERT
Insert nscrie unul sau mai multe tuple de date ntr-un tabel sau view
existent. Insert este una din privilegiile bazei de date controlate de ctre comenzile
GRANT i REVOKE.
Valorile sunt nscrise n tuplu n ordinea coloanelor din tabel, doar dac nu
este indicat o list de coloane vizate. Dac lista de coloane vizate prezint un
subset al coloanelor disponibile, valorile nule sau implicite automat sunt nscrise n
toate coloanele nevizate.
Dac lista opional a coloanelor vizate este omis, clauza VALUES trebuie s
asigure valori pentru introducerea n toate coloanele tabelei.
Pentru a introduce un singur tuplu de date, clauza VALUES trebuie s asigure
o list specific de valori pentru insertare.

Pentru a introduce mai multe tuple de date, trebuie s fie specificat o select expresie care
extrage datele dintr-o tabel pentru a le introduce n tabela aceasta. Coloanele selectate trebuie s
corespund cu coloanele vizate pentru introducere.
Este permis de a alege cmpuri de date din acelai tabel n care dorim s
efectum introducerea, dar aa practic nu se recomand deoarece poate cauza in
introducerea infinit de tuple.
UPDATE
Modific parial sau n ntregime tuplul existent de date dintr-un tabel sau
view. Disponibil n SQL, DSQL i isql.

UPDATE modific unul sau mai multe tuple dintr-un tabel sau view existent.
UPDATE este una din privilegiile SGBD controlate de ctre GRANT i REVOKE
DELETE
Modific parial sau n ntregime tuplul existent de date dintr-un tabel sau
view. Disponibil n SQL, DSQL i isql.

DELETE specific unul sau mai multe tuple pentru tergere din tabel sau view care poate
fi modificat. DELETE este una din privilegiile SGBD controlate de ctre GRANT i REVOKE.

2.4.4 Crearea bazelor de date n SQL Server.

Pentru crearea unei baze de date se utilizeaz comanda CREATE DATABASE. Aceast
comand permite de asemenea ataarea unei baze de date la un fiier creat anterior.
database_name numele bazei de date. Acest nume trebuie s fie unic pe server i s
corespund cerinelor standard asupra identificatoarelor. Poate avea lungimea maximal de 128
de caractere. n cazul n care utilizatorul nu specific numele fiierului log sistemul MS SQL
Server automat genereaz un nume de fiier prin adugarea unui sufix la numele bazei de date. n
asemenea cazuri numele bazei de date trebuie s aib maximum 123 caractere.
ON specific n mod explicit lista de fiiere n care va fi amplasat grupul primar de
fiiere ale bazei de date. Aici pot fi indicate att numele de fiiere ct i numele grupurilor de
fiiere.
PRIMARY specific faptul c grupul de fiiere va fi primar
n indic faptul c pot fi indicate mai multe fiiere pentru baza de date
LOG ON definete n mod explicit fiierele de nregistrare a tranzaciilor. n cazul n care
lipsete opiunea LOG ON se va crea doar un singur fiiere de nregistrare a tranzaciilor.
Numele acestui fiier va fi generat automat, iar dimensiune lui va constitui 25% din dimensiune
bazei de date.
FOR LOAD este inclus n MS SQL Server 7.0 pentru compatibilitate cu versiunile
anterioare, dar nu se recomand de a fi utilizat.
FOR ATTACH se utilizeaz pentru a crea o baz de date nou prin ataarea unei baze de
date existente. Opiune <filespec> indic fiierele care formau baza de date veche. Pentru a ataa

o baz de date veche la MS SQL Server este necesar ca s coincid codul de pagin i ordinea de
sortare (parametrii Code Page i Sort Order).
NAME logical_file_name specific numele bazei de date. Numele bazei de date nu este
necesar dac ea se creiaz prin ataarea unei de baze de date existente. Numele creat prezint un
nume de referin al bazei de date i va putea fi utilizat n orice comand Tranzact-SQL. Numele
logical_file_name trebuie s fie unic pe server.
FILENAME 'os_file_name' specific numele fizic al fiierului pe disc. Trebuie s
conin numele discului i calea de acces. Dac fiierul a fost creat ntr-o partiie RAW, atunci nu
este nevoie de a se specifica i numele directorului, se specific doar numele discului. De
asemenea nu se specific nici parametrii MAXSIZE i FILEGROWTH fiindc fiierul va ocupa
ntreaga partiie.
SIZE size specific dimensiunea iniial a bazei de date. Dac parametrul SIZE lipsete,
dimensiunea fiierului primar al bazei de date ce se creeaz va fi egal cu dimensiunea fiierului
model. Dac dimensiunea lipsete n definiia fiierului secundar sau n definiia fiierului de
nregistrare a tranzaciilor, dimensiunea predefinit va fi egal cu 1 MB. Dimensiunea implicit se
indic n MB, dar utilizatorul poate indica i dimensiunea n KB. Valoarea minimal pentru
dimensiunea unei baze de date este de 512 KB.
MAXSIZE max_size [UNLIMITE] specific dimensiune maximal a fiierului definit
n <filespec>. Aceast dimensiune de asemenea poate fi definit n KB sau MB. Dac nu a fost
indicat parametrul MAXSIZE sau dac[ a fost specificat i parametrul UNLIMITED, atunci
dimensiunea maximal a fiierului va fi egal cu dimensiunea discului.
FILEGROWTH growth_increment specific mrimea de incrementare a fiierului. De
fiecare dat cnd dimensiunea curent nu este suficient pentru nregistrarea informaiei sosite,
fiierul i va mri dimensiunile cu valoarea indicat n parametrul FILEGROWTH. Valoarea de
incrementare poate fi indicat n MB, KB sau % (n procente fa dimensiunea fiierului la
momentul incrementrii).Dac acest parametru nu a fost indicat la momentul crerii bazei de
date valoarea incrementului va fi de 10%. Valoarea calculat n procente va fi rotunjit pn la
64 KB.
Remarc

1. Crearea bazei de date cu ajutorul comenzii CREATE DATABASE are loc n dou
etape:
Se copie structura bazei de date model cu caracteristicile iniiale ale bazei
de date.

Se completeaz baza de date cu celelalte caracteristici specificate n comanda CREATE


DATABASE.
Utilizatorul poate introduce diferite modificri n baza de date model cu ajutorul
procedurii sp_dboption. Toate aceste modificri vor fi n continuare utilizate la crearea bazelor
de date noi.
2. Numrul maximal de baze de date pe un server este de 32,767
3. Orice baz de poate utiliza 3 tipuri de fiiere:

Fiiere primare, care conin definiia bazei de date i posibil date.

Fiecare baz de date are un singur fiier primar.

Fiiere secundare, n care se nscriu datele ce nu au ncput n

fiierul primar. Fiierul secundare pot fi mai multe dar poate s nu fie nici
unul, dac fiierul prima este suficient de mare ca s ncap n el ntreaga
baz de date.

Fiierul de nregistrare a tranzaciilor de asemenea este un fiier

obligatoriu. Ele post fi mai multe. Dimensiunea minimal a uni fiier este de
512 KB.

Fiecare baz de date trebuie s aib cel puin dou fiiere.

Fiierele bazei de date pot avea orice extensie dar pentru a

reflecta mai bine coninutul lor se recomand de a utiliza urmtoarele


extensii:

- mdf pentru fiierul primar;


- ndf pentru fiierele secundare;
-

ldf pentru fiierul de nregistrare a tranzaciilor.

2.4.5 Permisiunea de acces.

Comanda CREATE DATABASE permite accesul asupra bazei de date utilizatorilor cu rol
de sysadmin i dbcreator. Aceti utilizatori pot permite i altora utilizarea bazei de date
atribuindu-le rolul dbcreator. De regul comanda CREATE DATABASE este permis doar unui
numr restrns de utilizatori.
n continuare vom examina o serie de exemple de utilizare a comenzii de creare a unei
baze de date.

2.5 Crearea unui tabel.

Tabele se numesc acele obiecte ale unei baze de date n care se conin toate datele.
Definiia unui tabel reprezint un set de coloane. Tabelele sunt organizate n form de linii
Elementele de date se afl la intersecia liniilor i a coloanelor (similar cu tabelele electronice).
Fiecare linie n tabel reprezint un singur articol, fiecare coloan reprezint un cmp

al

articolului. Liniile i coloanele se mai numesc respectiv tupluri i atribute.


Pentru a crea o baz de date, mai nti de toate proiectantul trebuie s neleag de ce
tabele are nevoie, ce tipuri de date va pstra n fiecare tabel, cine va putea accesa fiecare tabel,
etc. n timpul proiectrii tabelelor vor apare i alte detalii asupra acestor obiecte.
Un mod mai eficient de proiectare const n crearea unui proiect iniial al bazei de date,
introducerea datelor i manipularea datelor. Acest mod ne permite de a determina mai uor
diferite caracteristici ale tabelelor: tipuri de date vor fi stocate, restricii se vor defini asupra
datelor, indeci, valori predefinite, reguli de inserare, eliminare i modificare a datelor. De
asemenea se vor vedea tranzaciile ce se aplic asupra bazei de date.
n rezultatul proiectrii unui tabel proiectantul trebuie s determine urmtoarele:

Tipurile de date ce vor fi stocate n tabel.

Coloanele tabelului i tipul fiecrei coloane (pentru unele tipuri

de date este nevoie de a determina i limea coloanei).

Determinarea coloanelor care accept valoare nul.

Determinarea restriciilor asupra datelor i a regulilor de aplicare

a operaiilor de manipulare a datelor.

Determinarea indecilor, a cheilor primare i a cheilor externe.

Aa dar, pentru a proiecta un tabel este necesar de tiut ce tipuri de date susine Sistemul
Microsoft SQL Server. Pot fi folosite tipurile standard de date (tipuri de baz) sau tipuri definite
de utilizator. Atribuirea unui tip de date fiecrei coloane constituie primul pas n proiectarea
oricrei baze de date. Prin definirea tipului de date a unei coloane se definete mulimea valorilor
admisibile pentru coloana respectiv.
De exemplu dac o coloan conine nume de persoane, atunci tipul acestei coloane va fi
ir de caractere, iar dac o coloan va trebuie s conine numai valori numerice, atunci tipul
coloanei respective va fi numeric. Utilizarea corect att a tipurilor de date predefinite ct i a
tipurilor de date definite de utilizator va da o mai mare garanie de integritate a datelor, deoarece
orice valoare introdus n baza de date va corespunde tipului de date definit n comanda de
creare a tabelului.

Microsoft SQL Server conine urmtoarele tipuri de date predefinite mprite n mai
multe grupe:
Date de tip Numere ntregi
bit numere ntregi care pot lua una din dou valori: 0 sau 1.
int numr ntreg cu semn pe 4 octei, valori admisibile de la -2^31 (2,147,483,648) pn 2^31 - 1 (2,147,483,647).
smallint numr ntreg cu semn pe 2 octei, valori posibile de la 2^15 (32,768) pn la 2^15 - 1 (32,767).
tinyint numr ntreg fr semn pe 1 octet, valori posibile de la 0 la 255.
Date de tip Numere zecimale cu virgula constant:
decimal numere zecimale cu virgula fixat, valori posibila ntre -10^38 -1
i 10^38 -1.
numeric sinonim cu tipul decimal.

La definirea datelor de tip decimal se indic doi parametri


p (precizia) numrul total de cifre zecimale n care se va nscrie numrul
(inclusiv partea ntreag i partea zecimal). Precizia poate lua valori de la 1 la 28 n
cazul n care SQL Serverul a fost startat n mod standard, sau de la 1 la 38 n cazul
n care serverul a fost startat cu parametrul /p.
s (scale) numrul de cifre zecimale. Poate lua valori de la 0 la p.
Volumul de memorie ocupat de o variabil de tip numeric depinde de precizie
dup cum urmeaz:
Precizia

Volum de memorie

1-9

10-19

20-28

13

29-38

17

Date de tip Unitate monetar:

money numerice zecimale cu 4 cifre dup virgul, poate lua valori n


intervalul

de

la

-2^63

(-922,337,203,685,477.5808)

pn

la

2^63

(+922,337,203,685,477.5807).
smallmoney numere zecimal cu 4 cifre dup virgul, ia valori n intervalul
de la
-214,748.3648 pn la +214,748.3647.
Date de tip Numere zecimale cu virgula mobil:
float numere zecimale cu virgula flotant n intervalul de la -1.79E + 308
pn 1a.79E + 308.
real numere zecimale cu virgula flotant n intervalul de la -3.40E + 38
pn la 3.40E + 38.
Date de tip Date calendaristice i timp:
datetime pstreaz data i ora. Data poate fi o valoarea n intervalul de la
1 ianuarie anul 1753 pn la 31 decembrie anul 9999. Timpul se definete cu
exactitate de sutimi de secunde.
smalldatetime pstreaz data i ora. Data poate lua o valoare din
intervalul de la 1 ianuarie anul 1900 pn la 6 iunie anul 2097. Timpul se pstreaz
cu exactitate de minute.
Date de tip ir de caractere
char iruri de caractere non-Unicod de lungime fixat (maximum 8000
caractere)
varchar - iruri de caractere non-Unicod de lungime variabil (maximum
8000 caractere)
text - iruri de caractere non-Unicod de lungime variabil (lungimea
maximal 2^31 sau 1 (2,147,483,647 caractere).
nchar - iruri de caractere Unicod de lungime fixat (maxium 4000
caractere)
nvarchar - iruri de caractere Unicod de lungime variabil (maxium 8000
caractere)

ntext - iruri de caractere non-Unicod de lungime variabil (lungimea


maximal 2^30 1, sau 1,073,741,823 caractere)
Date de tip iruri binare:
binary ir binar de lungime fixat (maximum 8,000 octei).
varbinary ir binar de lungime variabil (maximum 8,000 octei).
image ir binar de lungime fixat (maximum 2^31 - 1 sau 2,147,483,647
octei).

S-ar putea să vă placă și