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 produselor sisteme dedicate special stocrii datelor importante. n acest articol voi face o istorie a ceea ce nseamn stocare datelor cu ajutorul 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 i 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 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. 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

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, DML) limbaj de determinare a datelor (Data Definition Language, DDL) limbaj de dirijare a datelor (Data Control Language, DCL).

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 INSERT UPDATE DELETE

(selectare) (inserare) (modificare) (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 dintrun 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. Fiiere secundare, n care se nscriu datele ce nu au ncput n fiierul

Fiecare baz de date are un singur fiier primar. 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 Fiecare baz de date trebuie s aib cel puin dou fiiere. Fiierele bazei de date pot avea orice extensie dar pentru a reflecta mai obligatoriu. Ele post fi mai multe. Dimensiunea minimal a uni fiier este de 512 KB.

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 Determinarea coloanelor care accept valoare nul. Determinarea restriciilor asupra datelor i a regulilor de aplicare a Determinarea indecilor, a cheilor primare i a cheilor externe.

este nevoie de a determina i limea coloanei).

operaiilor de manipulare a datelor.

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 1-9 10-19 20-28 29-38 Volum de memorie 5 9 13 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 1 (+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).

http://facultate.regielive.ro/cursuri/calculatoare/microsoft-sql-server-120268.html? s=microsoft%20sql%20server