Sunteți pe pagina 1din 6

Microsoft SQL Server

Sistemul de gestiune a bazelor de date, Microsoft SQL Server, ajuns la versiunea a 8 a (SQL Server 2000), este un sistem
din clasa Enterprise, oferind din punct de vedere tehnologic caracteristici şi performanţe care permit dezvoltarea unor
aplicaţii la scară mare, extensibile şi performante.
Dezvoltarea aplicaţiilor de baze de date necesită limbaje de programare cât mai flexibile care să permită utilizatorului
implementarea unui set cât mai mare de funcţii şi de algoritmi de programare. În acest sens, limbajul SQL este un mediu
performant prin intermediul căruia pot fi manipulate obiectele si înregistrarile din baza de date. Totuşi SQL prezintă un
oarecare dezavantaj care constă în esenţa neprocedurală a acestuia. SQL nu include instrucţiuni condiţionale (IF) sau
instrucţiuni prin intermediul cărora pot fi repetate anumite secţiuni de cod (While).
SQL Server reprezintă un fragment dintr-un miez al unei familii de produse integrate care include dezvoltarea de unelte de
management al sistemelor, componente distribuite de sistem şi dezvoltarea deschisă de interfeţe.

Fig. 1 Uneltele şi structura SQL Server

SQL (Structured Query Language - limbaj de interogare structurat) este utilizat în comunicarea cu baza de date. Potrivit
ANSI (American National Standards Institute) SQL este limbajul standard pentru sistemele de management al bazelor de
date relaţionale. Propoziţiile SQL sunt utilizate pentru a efectua actualizări ale datelor sau retrageri de date dintr-o bază de
date. Câteva dintre sistemele de management al bazelor de date relaţionale pe care SQL le utilizează sunt: Oracle, Sybase,
Microsoft SQL Server, Access, Ingres, etc. Deşi, aproape toate sistemele de baze de date folosesc SQL, unele dintre ele au
proprile extensii adiţionale care se folosesc de obicei doar in sistemul lor. Cu toate acestea, comenzile SQL standard ca:
\"Select\", \"Insert\", \"Update\", \"Delete\", \"Create\" şi \"Drop\" sunt suficiente pentru a lucra cu baza de date.
Un sistem de bază de date relaţionale conţine unul sau mai multe obiecte (componente logice) numite tabele, care
stochează datele sau informaţile bazei de date. Tabelele sunt identificate unic prin numele lor şi conţin linii şi coloane.
Coloanele conţin numele coloanelor, tipul de date şi oricare alte atribute pentru coloane. Liniile conţin înregistrările sau
datele pentru coloane.
Implementarea fizică a fişierelor este transparentă. În mod normal, doar administratorul bazei de date lucrează cu
implementarea fizică.

Fiecare instanţă a SQL Server deţine patru baze de date sistem:


♦ Master
♦ Model
♦ Tempdb
♦ Msdb
şi una sau mai multe baze de date utilizator. Unele organizaţii au doar o bază de date utilizator care conţine toate datele;
altele au baze de date diferite pentru fiecare grup din organizaţie, iar uneori o bază de date este utilizată doar de o singură
aplicaţie.
Nu este necesară rularea mai multor copii a motorului bazei de date pentru a permite mai multor utilizatori să acceseze baza
de date pe un server. O instanţă a versiunii SQL Server Standard sau Enterprise Edition poate face faţă miilor de utilizatori
care lucrează în baze de date multiple simultan. Fiecare instanţă a SQL Server face disponibile toate bazele de date din
instanţă tuturor utilizatorilor care se conectează la instanţă, în conformitate cu permisiunile de securitate definite.
La conectarea la o instanţă SQL Server, conexiunea este asociată unei anumite baze de date de pe server. Această bază de
date se numeşte bază de date curentă. De obicei, conexiunea se face la baza de date definită ca implicită de către
administratorul de sistem; dar se poate specifica o altă bază de date la opţiunile conexiunii. Trecerea de la o bază de date la
alta se poate face prin statement-ul Transact-SQL USE database_name, sau printr-o funcţie API care modifică contextul
curent al bazei de date.
SQL Server 2000 permite detaşarea bazelor de date de la o instanţă SQL Server, şi reataşarea lor la altă instanţă, sau chiar
la aceeaşi instanţă. Dacă avem un fişier de baze de date SQL Server putem specifica la conectare, să se ataşeze acel fişier la
un anumit nume de bază de date.
3.1.2.1. Arhitectura administrativă
Fiecare nouă versiune Microsoft SQL Server incearcă să automatizeze sau să elimine repetiţia în lucrul cu bazele de date.
Datorită faptului că, administratorii bazelor de date sunt unii dintre cei mai bine antrenaţi în problemele de baze de date,
aceste îmbunătăţiri permit un timp de lucru mai mare acordat proiectării bazei de date şi problemelor de accesare a
aplicaţiilor de date.

Caracteristici:
♦ SQL Server 2000 reduce munca administrativă în multe domenii prin achiziţionarea şi eliberarea dinamică a resurselor.
Serverul achiziţionează dinamic resursele cum ar fi: memoria şi spaţiul de pe disc ori de câte ori este nevoie, şi eliberează
resursele când nu mai sunt necesare. Deşi marile sisteme OLTP cu performanţe critice sunt încă monitorizate de
administratori competenţi, SQL Server 2000 poate fi utilizat şi la implementarea bazelor de date desktop sau workgroup mici
care nu necesită atenţie permanentă din partea administratorului.
♦ SQL Server 2000 oferă un set de unelte grafice care permit administratorilor sa efectueze sarcini administrative simplu şi
eficient.
♦ SQL Server 2000 oferă un set de servicii care permit administratorilor să programeze execuţia automată a sarcinilor
repetitive.
♦ Administratorii SQL Server 2000 pot programa serverul astfel încât acesta să trateze condiţiile de excepţie, sau ce puţin să
trimită e-mail sau pagini administratorului de serviciu.
♦ SQL Server 2000 publică aceeaşi interfaţă API (Application Programming Interfaces) utilizată de SQL Server. Aceste
interfeţe suportă toate sarcinile administrative ale SQL Server.
3.1.2.2. Suport pentru dezvoltarea data tier ului
Pentru nivelul de date, avem nevoie de metode de interogare şi modificare a datelor într un regim tranzacţional care să
ofere protecţie la erori şi verificarea permanentă a integrităţii datelor.
În general, accesul la datele dintr o bază de date se face prin limbajul de manipulare a datelor (LMD). În cadrul SQL Server
se foloseşte limbajul SQL.
Nivelul de acces la date va accesa baza de date printr o interfaţă oferită de un set de proceduri stocate. Accesul prin
proceduri stocate şi nu prin cod SQL generat de nivelul de acces la date oferă siguranţă şi control asupra structurii de date.
Având în vedere că sarcina de a scrie procedurile stocate revine administratorului bazei de date, controlul asupra operaţiilor
permise, a modului de realizare a lor şi îndeplinirea condiţiilor de integritate se păstrează în mediul dezvoltatorilor bazei de
date, adică cei ce construiesc, modifică şi întreţin acea structură. Deşi distribuţia e o paradigmă modernă şi la modă, în
acest caz, luarea deciziei de a menţine controlul centralizat asupra mijloacelor de acces la baza de date oferă o siguranţă
sporită a bazei de date în sine şi a datelor conţinute de ea.
Baza de date suport a sistemului informatic universitar este o baza de date integrată, cu o structură puternic normalizată şi
care trebuie să permită acces permanent şi rapid tutror departamentelor şi structurilor universitare. Datele conţinute trebuie
bine structurate pentru a modela întregul proces şi flux de informaţii şi date ale universitaţii şi trebuie bine protejate, având
o valoare incontestabilă. Din aceste motive, accesul la baza de date se va face numai prin intermediul procedurilor stocate,
proiectate, scrise şi verificate de către administratorul bazei de date. Pentru a realiza acestea, sistemul Microsoft SQL Server
oferă posibilitatea de a crea şi rula proceduri stocate, bucăţi de cod SQL, care pot conţine interogări sau operaţii de
modificare şi ştergere, ele fiind parametrizabile şi putând întoarce rezultate programului apelant. O caracteristică foarte
importantă a sistemului este oferirea unui mediu tranzacţional sigur, acesta fiind indispensabil pentru îndeplinirea cu succes
a unor operaţii complexe asupra datelor.
3.1.2.3. Setul de comenzi SQL
Operaţia fundamentală în SQL este maparea reprezentată din punct de vedere sintactic printr-o construcţie SELECT-FROM-
WHERE. Această construcţie corespunde unei succesiuni de operatori algebrici de forma selecţie-proiecţie-cuplare, foarte
frecventă în algebra relaţională.
Clauza SELECT realizează operaţie de proiecţie şi este urmată de lista atributelor care se reţin în relaţia rezultat. Proiecţia
SQL diferă de operatorul de proiecţie din algebra relaţională prin faptul că nu elimină tuplele duplicat. Eliminarea tuplelor
duplicat se face de către utilizator, atunci când se doreşte, prin folosirea operatorului DISTINCT.
Operaţia de cuplare poate fi realizată prin clauza FROM, atunci când este urmată de o listă formată din cel puţin două nume
de relaţie, împreună cu condiţia de cuplare formulată în cazul predicatului din clauza WHERE.

3.1.2.3.1. Selecţia
Selecţia este realizată prin clauza WHERE, care, de obicei, este urmată de un predicat referitor la atributele relaţiilor folosite
în clauza FROM. Expresia care urmează această clauză poate conţine comparaţii de atribute şi/sau expresii aritmetice,
operatori logici (AND,OR,NOT), operatori pe mulţimi (UNION,INTERSECT,MINUS) şi operatori de apartenenţă la mulţimi cu
negările acestora (X IN S, X NOT IN S,S CONTAINS X, S DOES NOT CONTAIN X, unde S este o relaţie, iar X este o tuplă sau
o relaţie caz în care este vorba de incluziune între mulţimi). Expresia care urmează clauzei WHERE poate să conţină operanzi
care sunt relaţii rezultate din alte construcţii SELECT asigurându-se astfel posibilitatea imbricării acestora în interogări
complexe.
Sintaxa completă a instrucţiunii SELECT:
SELECT [DISTINCT] nume_atribut1.
FROM nume_relaţie[variabila_de_tuplă].
[WHERE condiţie_de_căutare]
[GROUP BY expresie_de_grupare]
[HAVING conditie_de_selecţie_grup]
[ORDER BY expresie_de_ordonare[ASC|DESC]]
În SQL Server se poate folosi operatorul UNION pentru a reuni rezultatele mai multor fraze SELECT într-o singură relaţie
rezultat.
Sintaxa:
{}
UNION[ALL]

UNION[ALL]

[.n]]

3.1.2.3.2. Operaţii de ştergere, inserare şi actualizare


Operatorii de ştergere , inserare şi actualizare acţionează la un moment dat doar asupra unei singure relaţii.
Operatorul SQL pentru efectuarea operaţiilor de ştergere este DELETE FROM a cărui sintaxă completă este:
DELETE
[FROM]
{ nume_tabelă |nume_vedere}
[WHERE{condiţie_căutare>
|{[CURRENTOF
{{[GLOBAL]nume_cursor} |nume_variabilă_cursor}
]}
}
]
Există două forme de operaţii de ştergere:
♦ Ştergere cu căutare - se specifică o condiţie de căutare pentru tuplele de şters
♦ Ştergere poziţionată - se foloseşte clauza CURRENT OF pentru a specifica un cursor, iar ştergerea se referă la tupla aflată
la poziţia curentă a cursorului. Acest mod de ştergere permite eliminarea dintr-o tabelă doar a uneia dintre mai multe tuple
identice.
Operatorul SQL pentru inserare este INSERT INTO şi prezintă două variante:
♦ Inserare simplă pentru inserarea unei tuple individuale
♦ Inserare multiplă pentru inserarea mai multor tuple
Comanda pentru inserare simplă are sintaxa:

INSERT INTO nume_relaţie(nume_atribut...)


VALUES(valoare)
Între valori şi numele de atribute trebuie să existe o corespondenţă unu la unu.
Comanda pentru inserare multiplă are sintaxa:
INSERT INTO nume_relaţie(nume_atribut...)
Construcţie_SELECT
Operatorul SQL pentru actualizarea tuplelor este UPDATE şi are sintaxa:
UPDATE {nume_tabelă|nume_vedere}
SET
{nume_coloană={expresie|DEFAULT|NULL}
|@variabilă=expresie
|@variabilă=coloană=expresie}[,...n]
[FROM{}[,.n]]
[WHERE{
|{[CURRENT OF
{{[GLOBAL]nume_cursor}|nume_variabilă_cursor}
]}
}
]
Operatorul de actualizare îndeplineşte două funcţii:
♦ Selectează prin condiţia de căutare din clauza WHERE tuplele care urmează a fi actualizate (în lipsa clauzei, se
actualizează implicit toate tuplele relaţiei specificate).
♦ În tuplele selectate modifică valorile atributelor specificate. Expresiile de actualizare pot conţine: constante, nume de
atribute, valoarea NULL sau expresii aritmetice construite cu acestea. În SQL este permisă chiar şi actualizarea atributelor
care fac parte dintr-o cheie primară.

3.1.2.3.3. Begin transaction, rollback transaction şi commit transaction


Aceste comenzi permit gruparea unei serii de comenzi SQL într-un bloc de tipul "totul sau nimic". Sistemul SQL Server
implementează complet conceptul ACID (Atomicitate, Consistenţă, Izolare şi Durabilitate)
Tranzacţiile asigură menţinerea într o stare consistentă a unei baze de date accesate în regim concurent şi cu posibilităţi de
apariţie a erorilor. Blocul de operaţii SQL de scriere şi citire se va executa ca o singură comandă, apariţia unei erori pe
parcursul execuţiei uneia dintre ele ducând la anularea efectelor comenzilor deja executate şi anularea tranzacţiei.
Îndeplinirea cu succes a tuturor sarcinilor din blocul de comenzi permite încheierea tranzacţiei cu succes şi scrierea pe
suport permanent a modificărilor efectuate asupra bazei de date.
Toate procedurile stocate în care apare mai mult de o comandă SQL care modifică date se vor scrie folosind o tranzacţie,
prin aceasta asigurându se consistenţa bazei de date chiar şi în cazul apariţiei unor erori.
În plus, izolarea automată a tranzacţiilor permite efectuarea operaţiilor doar dacă starea actuala a bazei de date o permite.
În regim concurenţial, s ar putea ca între momentul de timp în care un utilizator lansează o cerere şi momentul în care
aceasta se execută efectiv, baza de date să se fi modificat şi să nu mai existe condiţiile logice de a duce la bun sfârşit
cererea, chiar dacă în momentul lansării cererii, aceasta era perfect legitimă.
3.1.2.4. Crearea vederilor
Vederea este o tabelă virtuală a cărui conţinut este definit printr-o interogare. La fel ca o tabelă reală, vederea conţine un
set de coloane şi linii de date cu nume. Cu toate acestea, vederea nu există ca un set stocat de valori de date. Liniile şi
coloanele de date ale vederii provin din tabelele referenţiate în interogarea din vedere şi se obţin dinamic atunci când se
referenţiază vederea.
Vederea acţionează ca un filtru asupra tabelelor pe care le implică. Interogarea care defineşte vederea poate proveni din
unul sau mai multe tabele sau din alte vederi ale bazei de date. Se pot utiliza şi interogări distribuite pentru a defini vederi
care utilizează date din mai multe surse heterogene. Acest lucru este util dacă se doreşte combinarea structurilor de date
similare din diferite servere dintre care fiecare stocheazădate pentru diferite zone ale organizării. Nu există restricţii în ceea
ce priveşte interogările în vederi şi puţine restricţii în ceea ce priveşte modificarea datelor din ele.
Comanda pentru definirea unei vederi este CREATE VIEW şi are sintaxa:
CREATE VIEW nume_vedere(nume_atribut...)
[WITH ENCRYPTION]
AS construcţie_SELECT
[WITH CHECK OPTION]
Comanda CREATE VIEW creează în catalogul sistem o intrare corespunzătoare denumirii nume_vedere, căreia îi asociază
definiţia specificată prin comanda: lista de atribute şi construcţia SELECT. Construcţia SELECT dintr-o vedere poate avea
orice formă exceptând clauza ORDER BY. Această restricţie este impusă de necesitatea de a conferi vederilor un statut cât
mai apropiat de cel al relaţiilor de bază în care, prin definiţie, ordinea tuplelor este arbitrară. Dacă se omite lista
nume_atribut din definiţia vederii, atunci atributele acesteia vor avea aceeaşi denumire cu cele specificate în construcţia
SELECT asociată. Acest lucru este posibil doar dacă atributele din construcţia SELECT nu sunt rezultatul unor funcţii de
agregare sau al unor expresii aritmetice, caz în care este necesară specificarea întregii liste de atribute ale vederii.
3.1.2.5. Proceduri stocate
În SQL se poate vorbi despre două opţiuni de bază pentru stocarea şi executarea programelor. Programele pot fi memorate
local la nivelul aplicaţiilor care trimit comenzi către SQL Server şi prelucrează rezultatele returnate de acesta. A doua opţiune
presupune dezvoltarea şi înregistrarea programelor ca proceduri stocate în SQL Server şi crearea de aplicaţii care apelează
aceste proceduri şi prelucrează rezultatele returnate de acestea. Procedurile stocate din SQL Server sunt similare
procedurilor din alte limbaje de programare în sensul că:
♦ acceptă parametrii de intrare şi returnează valori prin parametri de ieşire către un program apelant;
♦ conţin instrucţiuni de programare care efectuează operaţii în baza de date şi pot apela, la rândul lor, alte proceduri
stocate;
♦ returnează către apelant o valoare care indică succesul sau eşecul execuiei procedurii, eventual cauza eşecului.
Avantajele utilizării procedurilor stocate:
♦ permit programarea modulară - procedura se creează o dată, se stochează în baza de date şi se apelează de câte ori
vrem în program.
♦ permit execuţie rapidă - dacă operaţia necesită un număr mare de linii de cod Transact-SQL sau se aplică repetat,
procedurile stocate pot fi mai rapide. Ele sunt parcurse şi optimizate la creare, iar o versiune in-memorz a procedurii poate fi
folosită după ce prima execuţie a procedurii. Declaraţiile Transact-SQL trimise repetat de la client la fiecare rulare sunt
compilate şi optimizate la fiecare execuţie.
♦ pot reduce traficul de reţea - o operaţie care necesită sute de linii de cod Transact-SQL poate fi efectuată printr-o singură
declaraţie care execută codul unei proceduri, decât să se trimită sute se linii de cod prin reţea.
♦ pot fi folosite ca mecanism de securitate - utilizatorii pot primi permisiunea de a executa o procedură stocată chiar dacă
nu au permisiunea de a executa direct o declaraţie a procedurii.
Procedura stocată poate fi creată prin comanda CREATE PROCEDURE care are sintaxa:
CREATE PROC[EDURE] nume_procedură[;număr]
[
{@parametru tip_de_dată}[VARYING][=valoare_implicită]
[OUTPUT]
][,n]
[WITH
{RECOMPILE
|ENCRYPTION
|RECOMPILE,ENCRYPTION}
}
[FOR REPLICATION]
AS
instrucţiuni_sql[...n]
La primul apel de execuţie a procedurii stocate are loc compilarea acesteia şi construirea unui plan de execuţie optimizat.
Lansarea în execuţie a unei proceduri stocate se realizează cu comanda EXECUTE care are sintaxa:
[[EXEC[UTE]]
{
[@valoare_retur=]{nume_procedura[;numar]|@nume_procedură
}
[[@parametru=]{valoare|@variabila[OUTPUT]|[DEFAULT]][,n]
[WITH RECOMPILE]

3.1.2.4. Securitate şi autentificare


Se poate restricţiona accesul la datele gestionate de Microsoft SQL Server 2000. Se pot impune limitări administratorilor care
au acces la datele Analysis Services prin intermediul Analysis Manager şi să efectueze funcţii administrative. Se pot impune
restricţii şi utilizatorilor care accesează date pe serverul de analiză cu ajutorul aplicaţiilor client. Se pot specifica utilizatorii
care să aibă acces la date şi tipurile de operaţii pe care le pot efectua. În plus, se pot controla permisiunile de acces ale
utilizatorilor la diferite nivele de date Analysis Services, incluzând cubul, dimensiunea şi celula cub.
Securitatea administrativă este controlată utilizând grupul Microsoft Windows NT 4.0 sau Windows 2000 numit
Administratori OLAP.
Securitatea utilizatorului final este controlată utilizând:
♦ Autentificarea pe durata conectării la serverul de analiză
♦ Rolurile bazei de date, cubului şi modelului mining definite în Analysis manager
Fiecare rol defineşte un set de utilizatori şi accesul partajat. Un rol este definit la nivelul bazei de date Analysis Services şi
apoi asignate cuburilor la care utilizatorul din rol are acces. După asignare sunt permise anumite schimbări rolului de la
nivelul cubului. Aceste schimbări nu afectează rolul de la nivelul bazei de date. De aceea, un rol poate avea o definiţie
diferită pentru fiecare cub căruia îi este asignat. Servicile de analiză permit sistemul Windows de securitate integrat.
Pentru aplicaţia noastră nu am limitat accesul la baza de date, în ideea că, baza de date va fi integrată în aplicaţia mamă:
SINU şi pentru ca acest lucru să fie posibil trebuia ca proiectul să fie accesibil persoanelor care îl vor prelua. Totuşi, am
limitat accesul la interfaţa utilizator implementată în Visual FoxPro; numai persoanele autorizate au dreptul de a efectua
operaţiile (operaţii stbilite şi implementate de noi) de doctorat asupra bazei de date.
3.1.2.5. Cerinţe minime pentru sistem
۩ Procesor - Intel Pentium sau 166MHz compatibil
۩ Sistem de operare - Windows Server 2003 (Standard Edition, Enterprise
Edition, datacenter Edition
- Windows 200 Server
- Windows 2000 Advanced Server
- Windows 2000 Datacenter Server
۩Memorie - Enterprise Edition: 64MB RAM (128MB recomandat)
- Standard Edition : 64MB
- Workgroup Edition : 64MB
۩ Hard Disk - 95-270MB pentru server şi 250MB pentru o instalare obişnuită
۩ Drive - CD-ROM
۩ Display - VGA sau un monitor de rezoluţie mai mare
۩ Altele - Microsoft Internet Explorer 5.0 sau mai recentă
- Windows 95, Windows 98, Windows Me, Windows NT 4.0, Windows
2000 sau Windows XP care să conţină software de reţea
- UNIX, Apple Macintosh şi OS/2 care necesită Open Database
Connectivity (ODBC)
3.1.2.6. SQL server 2005
Următoarea versiune SQL Server este un software de management de date şi analiză care se caracterizează prin
scalabilitate crescută, disponibilitate şi securitate a datelor riscante şi a aplicaţiilor analitice simplificând crearea, dezvoltarea
şi tratarea lor.
Având la bază puterea SQL Server 2000, noua versiune oferă o soluţie de tratare integrală a informaţilor care va ajuta
diferitele tipuri de organizări la:
♦ construirea şi dezvoltarea aplicaţilor enterprise care sunt mai scalabile, mai de încredere şi sigure.
♦ maximizarea productivităţii IT reducând complexitatea de creare, dezvoltare şi tratare a aplicaţilor de baze de date.
♦ oferă utilizatorilor posibilitatea de a folosi un mediu de dezvoltare bogat, flexibil şi modern pentru a crea aplicaţii de baze
de date mai sigure.
♦ partajarea datelor pe parcursul mai multor platforme, aplicaţii ţi dispozitive pentru a simplifica interconectarea sistemelor
interne şi externe.
♦ oferirea de soluţii inteligente şi robuste care ajută la luarea unor decizii de gestiune bine informate şi creşte
productivitatea întregii organizări.
♦ controlul costurilor fără sacrificarea performanţei, disponibilităţii sau scalabilităţii.

Copyright © Contact | Trimite referat

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