Sunteți pe pagina 1din 26

Laborator 2 Introducere in MS SQL Server 2005

1. Versiuni de licentiere SQL Server 2005


 SQL Server Enterprise Edition
SQL Server 2005 Enterprise Edition este o platforma care intruneste toate
cerintele necesare procesarii trazanctiilor online si aplicatiilor de data
warehousing.
 SQL Server Standard Edition
Standard Edition este o platforma de management si analiza a datelor dedicata
oragnizatiilor de dimensiuni mici si medii. Include functionalitatile necesare pentru
solutii e-commerce, data warehousing si line-of-business. Are solutii integrate de
business intelligence.
 SQL Server Workgroup Edition
Workgroup Edition este o solutie de management al datelor dedicata organizatiilor
mici, care au nevoie de o baza de date fara limitari in ceea ce priveste
dimensiunea si numarul de utilizatori. Poate fi folosit drept front-end pentru un
server Web sau pentru a gestiona operatiunile derulate in cadrul unui
departament al unei companii. Contine toate functionalitatile de baza ale SQL
Server si se poate face upgrade la versiunile Standard sau Enterprise.
 SQL Server Express Edition
SQL Server 2005 Express Edition este urmasul MSDE, si este o versiune gratuita
a SQL Server 2005. Este usor de folosit si poate fi usor integrata in aplicatii.
 SQL Server Developer Edition
Developer Edition permite dezvoltatorilor sa contruiasca si sa testeze orice tip de
aplicatie cu SQL Server pe platoforme pe 32 biti, ia64 si 64 de biti. Include toate
functionalitatile Enterprise Edition, dar este licentiat doar pentru dezvoltare,
testare si utilizare demonstrativa. Fiecare licenta SQL Server Developer Edition
da dreptul unui singur utilizator sa foloseasca acest sofware pe oricate sisteme
doreste. Daca se doreste folosirea pentru SQL Server Developer Edition pentru

uz comercial, se poate face upgrade la verisunea Enterprise Edition.


 SQL Server Compact Edition
SQL Server Compact este o versiune gratuita a motorului de baze de date, care
permite dezvoltatorilor sa contruiasca aplicatii mobile sau Windows Desktop
robuste, capabile sa ruleze pe toate platformele Windows: Windows XP, Vista,
Pocket PC, si Smartphone.

2. Componente SQL Server 2005


Pentru a selecta componentele care doriti sa fie instalat, folositi pagina Feature
Selection din SQL Server Installation Wizard. Niciuna dintre aceste component
nu este selectata implicit pentru instalare.

Componente
Descriere
server
SQL Server
Include motorul de baze de date, elementrul central pentru
Database
stocarea, procesarea si securizarea datelor, replicare, cautare fullEngine
text, instrumente pentru gestionarea datelor XML si relationale.
Analysis
Services

Include instrumente pentru crearea si gestionarea online


analytical processing (OLAP) si pentru aplicatii de data mining.

Reporting
Services

Include component server si client pentru crearea si gestionarea


rapoartelor in format tabular, matriceal si grafic. Reporting
Services este o plaforma extensibila care poate fi utilizata pentru
aplicatii de raportare.

Notification
Services

Notification Services este o platform pentru dezvoltarea aplicatiilor


care trimit periodic informatii personalizate abonatilor, pe diferite
dispozitive.

Integration
Services

Integration Services este un de instrumente grafice si obiecte


programabile folosite pentru mutarea, copierea si modificarea
datelor.

Componente
Descriere
client
Componente Instaleaza component pentru comunicarea intre client si server,

de conectare

precum si biblioteci pentru DB-Library, ODBC si OLE DB.

Instrumente
de gestiune
SQL Server
Management
Studio 1

Descriere
SQL Server Management Studio (SSMS), nou in Microsoft SQL
Server 2005, este un mediu integrat pentru accesarea,
configurarea, gestionarea, administrarea si dezvoltarea tutror
componentelor SQL Server. SSMS reuneste trasaturile din
Enterprise Manager, Query Analyzer, si Analysis Manager, din
versiunile precedente ale SQLServer.

SQL Server
SQL Server Configuration Manager asigura managementul
Configuration configurarilor pentru serviciile SQL Server, protocoale server si
Manager
protocoale client.
SQL Server
Profiler

SQL Server Profiler ofera o interfata grafica pentru monitorizarea


unei instante Database Engine sau Analysis Services.

Database
Database Engine Tuning Advisor ajuta la crearea unui set optim
Engine Tuning
de indecsi, vederi indexate si partitii.
Advisor
1 Internet Explorer 6.0 SP1 este necesar pentru instalarea SQL Server
Management Studio.
Instrumente de
dezvoltare

Descriere

Business Intelligence Development Studio este un mediu de


Business Intelligence
dezvoltare integrat pentru solutii Analysis Services,
Development Studio
Reporting Services si Integration Services.

Documentatie si
Descriere
exemple
SQL Server Books
Documentatie pentru SQL Server 2005.
Online
SQL Server
Samples

Modele de cod pentru Database Engine, Analysis Services,


Reporting Services siIntegration Services.

3. Crearea bazei de date


Instructiunea folosita pentru crearea unei baze de date este:
CREATE DATABASE nume_baza_de_date
In MS SQL Server 2005, bazele de date se pot crea in mod vizual. Pasii care
trebuie urmati sunt:

Din Object Explorer, click dreapta pe Databases New Database:

Se va deschide urmatoarea fereastra, in care completam numele noii


baze de date

In zona Database name introducem numele bazei de date (Companie) si


apasam OK.

Vom regasi baza de date Companie in lista de baze de date din Object
Explorer

Pasul urmator consta in crearea tabelelor.

4. Crearea tabelelor
Instructiunea folosita pentru crearea unei baze de date este:
CREATE TABLE nume_tabel
(
nume_camp1 data_type,
nume_camp2 data_type,
nume_camp3 data_type,
....
)

Restrictii SQL
O buna definire a unei baze de date trebuie sa surprinda relatiile intre tabele
si restrictiile privind valorile posibile pentru anumite campuri.
Acest obiectiv este atins prin specificarea restrictiilor de integritateimpuse
structurilor de date tabelare.
Tipuri de restrictii:

PRIMARY KEY

Restrictia precizeaza faptul ca un camp sau o asociatie de campuri reprezinta


o cheie primara. Un tabel are o singura cheie primara !

UNIQUE

Restrictie impusa oricarui camp prin care nu se accepta valori diferite de


NULL identice. Campului cheie primara i se asociaza implicit o constrangere
UNIQUE.

FOREIGN KEY

Restrictia precizeaza faptul ca un camp este o cheie externa, fiind cheie


primara a altui tabel.

NOT NULL

Restrictia precizeaza faptul ca valoare campului nu poate fi NULL pentru nici


o inregistrare.

CHECK

Restrictie privind valorile posibile ale unui camp, ce poate fi atasata unui
camp sau mai multor campuri.

DEFAULT

Restrictia DEFAULT este folosita pentru a introduce o valoare implicita


(defaullt) pentru un camp. Aceasta valoare va fi adaugata automat in toate
inregistrarile, daca nu se specifica explicit alta valoare.

In MS SQL Server 2005, tabelele se pot crea in mod vizual. Pasii care trebuie
urmati pentru crearea tabelului Angajati sunt:

In Object Explorer -> Databases, expandam baza de date Companie

Click dreapta pe Tables -> New Table

In zona de lucru va fi afisata structura specifica pentru crearea unui


tabel. Introducem numele campurilor tabelului Angajati si stabilim tipul
de date pentru fiecare dintre ele.

Pentru a salva tabelul, apasam Save. Se va deschide urmatoarea


fereastra:

Introducem numele tabelului si apasam OK. Tabelul va fi salvat in baza


de date Companie.

Adaugarea constrangerilor
 PRIMARY KEY

Campul cheie primara este AngajatID (camp de tip integer). Pentru a-i
adauga aceasta constrangere se procedeaza astfel :

Click dreapta pe campul AngajatID -> Set Primary Key

Pentru a transforma campul AngajatID in camp care se


autoincrementeaza, se procedeaza astfel :

Selectam campul corespunzator

In zona Column Properties identificam Identity Specification si


expandam

Selectam Yes in dreptul optiunii Is Identity

Folosim Identity Increment pentru a specifica cu cat se va


autoincrementa la fiecare noua inregistrare

Folosim Identity Seed pentru a specifica valoarea de la care porneste


numaratoarea

 FOREIGN KEY

Campurile FOREIGN KEY din tabelul Angajati sunt SupervizorID si


DepartamentID, insa acest lucru va fi marcat in baza de date in momentul in
care stabilim relatiile intre tabelul Angajati si tabelele unde acestea sunt chei
primare.

 NOT NULL

Campurile pentru care este obligatoriu sa introducem valori pentru fiecare


inregistrare sunt :
-

Nume
Prenume
CNP
Strada
Numar
Oras
Judet
Salariu

Pentru aceste campuri vom debifa optiunea Allow Nulls. Pentru campul cheie
primara aceasta optiune este debifata automat.

 UNIQUE
Vom adauga contrangere UNIQUE campului CNP. Pasii sunt urmatorii :

Click dreapta pe campul CNP -> Indexes/Keys

Se va deschide o noua fereastra numita Indexes/Keys

In aceasta fereastra, apasam Add


Apoi, mergem in zona General -> Columns si selectam campul pentru
care vrem sa impunem constrangerea (CNP)

Tot in zona General -> Type, selectam Unique key

Apasam Close.

 CHECK

Sexul va fi marcat prin M sau F char(1). Pentru a preveni introducerea


altor valori pentru acest camp, vom folosi o contragere de tip CHECK in care
vom specifica ca singurele valori acceptate sunt M sau F. Vom proceda
astfel :

Click dreapta pe campul Sex -> Check Constraints

Se va deschide o noua ferestra numita Check Constraints

In aceasta ferestra mergem la General -> Expression

Se va deschide o noua ferestra in care putem formula constrangerea

Introducem expresia din figura de mai sus pentru constragerea pe care


dorim sa o impunem campului Sex

Apasam OK.

 DEFAULT
Vom utiliza constrangerea DEFAULT pentru campul Sex, caruia ii vom seta
valoarea F drept valoare implicita.

Selectam campul Sex

In zona Column Properties identificam Default Valur or Binding

Setam valoarea F ca default

EXERCITII
1. Creati tabelul Departamente avand campurile : DepartamentID,
ManagerID, NumeDepartament, CodDepartament. Tabelul va avea
urmatoarele constrangeri:
PRIMARY KEY: DepartamentID (cu autoincrementare)
FOREIGN KEY: ManagerID
NOT NULL: NumeDepartament, CodDepartament
UNIQUE: CodDepartament

2. Creati tabelul Proiecte avand campurile: ProiectID, DepartamentID,


NumeProiect, CodProiect, Buget, DataLimita. Tabelul va avea urmatoarele
constrangeri:
PRIMARY KEY: ProiectID (cu autoincrementare)

FOREIGN KEY: DepartamentID


NOT NULL: NumeProiect, CodProiect
UNIQUE: CodProiect

3. Creati tabelul Intretinuti avand campurile : IntretinutID, AngajatID,


Nume, Prenume, Sex, DataNasterii. Tabelul va avea urmatoarele
constrangeri:
PRIMARY KEY: IntretinutID (cu autoincrementare)
FOREIGN KEY: AngajatID
NOT NULL: Nume, Prenume
CHECK: Sex (M, F)
DEFAULT: Sex (F)

4. Creati tabelul de legatura AngajatiProiecte avand campurile :


AngajatID, ProiectID, NrOreSaptamana. Tabelul va avea urmatoarele
constrangeri:
PRIMARY KEY: AngajatID + ProiectID (cheie primara compusa)
FOREIGN KEY: AngajatID, ProiectID
NOT NULL: NrOreSaptamana

5. Crearea relatiilor intre tabele


In MS SQL Server 2005, relatiile intre tabele se pot crea in mod vizual.
Pentru a stabili relatia intre tabelele Angajati si Departamente (cea care
indica apartenenta fiecarui angajat la un anumit departament), urmam
secventa de pasi:

Click dreapta in zona de lucru a tabelului unde se introduce cheie


externa -> Relationships

Se va deschide o noua fereastra numita Foreign Key Relationships

Apasam Add pentru a adauga o noua relatie

In zona General -> Table And Columns Specification dam click pe


butonul cu 3 puncte pentru a selecta campurile prin intermediul carora
se stabileste relatia. Se deschide o noua ferestra numita Tables and
Columns

In aceasta fereastra specificam ce tabel intra in relatie cu tabelul


Angajati, precum si campurile care definesc relatia. In cazul Angajati
Departamente, relatie de tip 1:N, cheia primara a tabelului
Departamente este introdusa in structura tabelului Angajati, unde
devine cheie externa. Astfel, in zona Primary Key Table vom selecta
tabelul Departamente, iar dedesupt selectam campul cheie primara
DepartamentID. In zona Foreign Key Table este deja selectat tabelul
Angajati (nu poate fi modificat). Noi vom selecta campul care cheie
externa provenit din tabelul Departamente, respectiv DepartamentID.

Apasam OK.

Nota: Numele relatiei este generat automat pe baza tabelelor selectate, insa
poate fi modificat.

Integritate referentiala
Integritatea referentiala este proprietatea bazei de date care garanteaza ca
oricare valoare a unei chei straine se regaseste printre valorile cheii
corespunzatoare din relatia referita.
In MS SQL Server 2005, in fereastra Foreign Key Relationships, putem
specifica ce se va intampla cu inregistrarile corespunzatoare din tabelul copil
la stergerea sau modificarea unei inregistrari din tabelul parinte. Astfel, in
zona INSERT and UPDATE Specification, exista categoriile Delete Rule si
Update Rule.

Pentru fiecare dintre cele 2 categorii exista urmatoarele optiuni disponibile:

No Action: nu permite stergerea sau modificarea in tabelul parinte


atata timp cat exista in tabelul copil inregistrari care referentiaza
acea cheie primara.

Cascade: permite stergerea sau modificarea inregistrarilor din


tabelul parinte si, dupa caz, actioneaza astfel:
o La stergere: sterge toate inregistrarile din tabelul copil care
referentiaza inregistrasrea stearsa din tabelul parinte
o La modificare: modifica automat valorile campului cheie
straina

Set NULL: asigneaza valoarea NULL campurilor cheie straina care


referentiaza inregistrarea din tabelul parinte care a fost streasa sau
modificata

Set Default: asigneaza o valoarea default campurilor cheie straina


care referentiaza inregistrarea din tabelul parinte care a fost streasa
sau modificata

EXERCITII
1. Creati restul de relatii intre tabelele bazei de date Companie.
2. Identificati constragerile de integritate referentiala si introduceti-le in baza
de date.

6. Popularea tabelelor
Comanda SQL pentru introducerea unei inregistrari noi intr-un tabel este
urmatoarea:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
sau
INSERT INTO table_name
VALUES (value1, value2, value3,...)

In MS SQL Server 2005, popularea tabelelor se poate face si in mod vizual,


astfel:

In zona Object Explorer, expandam baza de date Companie

Expandam Tables

Click dreapta pe tabelul in care dorim sa introducem date -> Open


Table

In zona de lucru va aparea structura tabelului selectat (impreuna cu


datele existente). Datele noi se introduc in campurile aferente.

Nota: Campul cheie primara AngajatID este generat automat de catre MS


SQL Server 2005 (este de tip Identity).

EXERCITII
1. Populati tabelele bazei de date Companie, tinand cont de restrictiile
impuse.

7. Erori posibile
 Incalcarea restrictiei NOT NULL
In tabelul Angajati, campul Salariu nu accepta valori NULL. Daca incercam sa
introducem o valoare NULL in acest camp, vom primi urmatorul mesaj de
eroare:

 Incalcarea restrictiei UNIQUE


In tabelul Angajati, campul CNP este definit cu restrictia UNIQUE. Daca
incercam sa introducem o valoare duplicat in acest camp, vom primi
urmatorul mesaj de eroare:

 Incalcarea restrictiei CHECK


In tabelul Angajati, campul Sex este definit cu restrictia CHECK astfel incat
sa accepte doar valorile M sau F. Daca incercam sa introducem o alta
valoare in acest camp, vom primi urmatorul mesaj de eroare:

 Incalcarea restrictiei de integritate pentru FOREIGN KEY


In tabelul de legatura AngajatiProiecte, campul AngajatID este cheie
straina.Daca incercam ca in AngajatiProiecte sa introducem o valoare a
AngajatID care nu exista in tabelul Angajati, vom primi urmatorul mesaj de
eroare:

In tabelul Angajati, nu
exista AngajatID = 4

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