SQL Server 2000 si SQL Server 2005
Pagina 1 din 1
SQL Server 2000 si SQL Server 2005
SQL Server 2000 si SQL Server 2005
Va propun ca pe parcursul a citorva episoade sa construim de la zero o
aplicatie de gestionare a unei baze de date cu CD / DVD-uri, cu o
structura relativ simpla, dar usor de extins de catre orice programator
sau impatimit de baze de date, cu niste unelte care sint relativ la
indemina. Vom folosi pentru acest tutorial ca suport al bazelor de date
produsul SQL Server, dar pentru scopul aplicatiei versiunea free (da,
scoate si Microsoft produse performante free !) a acestuia, MSDE
(Microsoft Desktop Engine) este mai mult decit suficienta. Aceasta
versiune free este disponibila pentru download de pe site-ul Microsoft.
OBSERVATIE: versiunea MSDE a SQL 2005 a fost redenumita in Microsoft SQL Server Express Edition.
Chiar daca tematica nu poate parea interesanta, ce se doreste prin
intermediul acestor tutoriale este transmiterea unor principii de
lucru, prezentarea utilitarelor cu ajutorul carora se pot implementa
aceste principii si prezentarea unui rezultat intr-o forma primara
care, evident, suporta multe imbuntatiri. Aceste imbunatatiri sint,
insa, la latitudinea fiecaruia si depind de imaginatia si nevoile
personale ale celui care dezvolta aplicatia.
NOTA: Unele notiuni nu sint acoperite de acest tutorial. Se
presupune ca cititorul are cunostinte elementare cu privire la
infrastructura unei retele, administrarea unei retele care include un
domeniu (permisiuni, useri, servicii, etc), administrarea la nivel de
baza a unui server, moduri de autentificare.
Prezentare generala a produselor si comparatii
SQL Server 2000 a reprezentat un salt major in domeniul bazelor de
date. Daca saltul de la SQL Server 6.5 la 7.0 a fost considerat de
multi specialisti ca fiind unul semnificativ, saltul de la 7.0 la 2000
(sau versiunea Cool este la fel de important, din mai multe puncte de
vedere. Cele mai importante aspecte au fost cele legate de securitate
si performanta, zone in care s-au depus eforturi semnificative.
Saltul de la SQL 2000 la SQL 2005 este, din nou, major si, pe mai multe planuri:
Mai multe editii (Express, Workgroup, Developer, Standard,
Enterprise) fata de 4 (Desktop, Developer, Standard, Enterprise,
Mobile) in SQL 2000
Notification Services
Integration Services
Reporting Services
Management tools – o integrare mai buna cu alte tool-uri de management ale MS (MOM, SMS)
Integrare puternica cu Visual Studio – interfata de administrare a
fost, de fapt, complet rescrisa folosind VS si ofera acces la obiectele
de administrare si implementare a bazelor de date prin intermediul VS
Relational Database – s-a optimizat mult database engine, s-a
imbuntatit partea de securitate, suportul pentru date structurate si
ne-structurate (XML)
Mai multe detalii despre diferente si imbunatatirile aduse in SQL 2005, se gasesc aici:
http://www.microsoft.com/sql/prodinfo/overview/whats-new-in-sqlserver2005.mspx
O vedere de ansamblu asupra produsului este disponibila aici:
http://www.microsoft.com/sql/prodinfo/overview/default.mspx.
SQL Server 2000 Standard
Pasii pentru instalarea SQL Server pentru acest tutorial vor fi
descrisi in episodul urmator. Ce dorim acum, este sa familiarizam putin
cititorul cu unele facilitati ale SQL Server, referitor la optiunile de
instalare. Aceste optiuni vor fi intilnite pe parcursul episodului 2,
cind vom instala impreuna SQL Server 200 Standard Edition, dar as dori
sa le clarificam aici, o data cu prezentarea succinta a citorva din
facilitatile oferite de SQL Server.
Instante diferite (sau mai multe servere intr-unul singur)
Sa consideram urmatorul scenariu: avem SQL Server instalat pe un server
si care ruleaza o baza de date de contabilitate. Dorim sa creem o copie
a acestui server, pentru niste teste de optimizare a performantelor,
dar nu dispunem de banii necesari achizitionarii unui server nou. Pe
serverul curent, spatiul de pe hardisk nu este o problema, este un
server cu 4 procesoare si memorie avem destula (comparativ cu
specificatiile producatorului).
Ce putem face este sa mai instalam o data SQL Server, ca o noua instanta (sau named instance).
In acest fel, vom putea experimenta diferite setari la nivel de server
(alocare de memorie, etc) fara a afecta functionarea celeilalte
instante. Acest mod de lucru este posibil datorita faptului ca fiecare
instanta ruleaza intr-un spatiu propriu de memorie si resurse hardware,
fara sa afecteze celelalte instante daca se modifica setarile uneia din
ele. Este ca si cum am avea inca un server fizic disponibil pe care sa
rulam inca un SQL Server. Identificarea unui server SQL in retea, in
scopul conectarii la acesta se face dupa numele NetBIOS asociat
acestuia. In cazul in care avem mai multe instante SQL instalate pe
acel server, identificarea acestora se va face dupa sablonul numeserver\numeinstanta.
De exemplu, avem serverul cu numele SQLDBSRV01 si avem 2 instante SQL
instalate pe acesta. Prima instanta, cea default, va fi identificata
dupa numele NetBIOS al serverului, adica SQLDBSRV01. Instanta 2 cu
numele CONTAB_DB, va fi putea fi accesata folosind identificatorul
SQLDBSRV01\CONTAB_DB.
SQL Server ruleaza ca serviciu in cadrul sistemului de operare. In
cazul in care avem mai multe instante, fiecare instanta va crea
propriul serviciu in cadrul sistemului de operare. Identificarea
acestora se face similar cu identificarea instantelor, cu urmatoarea
diferenta: numele serviciilor pentru instantele din exemplul de mai sus
sint astfel – MSSQLServer si SQLServerAgent pentru instanta default si
MSSQL$CONTAB_DB si SQLAgent$CONTAB_DB pentru instanta CONTAB_DB.
Instalarea utilitarelor client
Sa presupunem urmatorul scenariu: avem un server SQL (sau mai multe)
dar nu avem access fizic la ele pentru a le administra. Putem instala
numai utilitarele de administrare, asa-numitele Client Tools. Aceasta optiune este disponibila in faza de setup si va instala urmatoarele componente:
SQL Enterprise Manager (in cazul SQL 2000, despre care discutam)
SQL Query Analyzer
SQL Books Online
Client Network Utility
Utilitarele linie de comanda (osql, etc)
Avind aceste utilitare si detaliile de conectare la server la indemina,
un administrator se va putea conecta la orice server ar avea nevoie
pentru a efectua taskurile administrative de care este nevoie.
Editiile SQL Server si alegerea unei editii
Editiile SQL Server 2000 sint urmatoarele:
Desktop Engine (versiune free) sau MSDE
Developer Edition
Standard Edition
Enterprise Edition
Exista inca o editie a SQL Server, mai putin folosita, si anume
Personal Edition. Am avut ocazia, la un moment dat, sa instalez un
Personal Edition, este o versiune limitata ca si facilitati, din ce
teste am reusit sa fac in timpul avut la dispozitie, iar ca si
pozitionare pe lista de editii, ar fi undeva intre Desktop Engine si
Developer Edition.
Exista limitari si diferente intre editiile SQL: la volumul de resurse
hardware pe care le pot folosi, la dimensiunea bazelor de date (MSDE nu
poate folosi baze de date mai mari de 2G), la utilitarele care se
instaleaza o data cu fiecare editie (MSDE nu are Enterprise Manager)
sau la performantele SQL in cazul bazelor de date mari.
Mai multe detalii despre aceste diferente, puteti gasi in SQL Books
Online, unde va sint prezentate diferentele dintre diferitele editii
dpdv al facilitatilor incluse in fiecare dintre acestea.
Descrierea componentelor
SQL Enterprise Manager (sau EM in unele documentatii)
permite “inregistrarea” serverelor SQL intr-o lista de administrare
disponibila unui administrator. Inscrierea serverelor in aceasta lista
presupune ca userul respectiv are permisiuni pe acel server.
SQL Query Analyzer (sau QA) permite interogarea bazelor de date existente pe un server SQL folosind limbajul Transact-SQL (sau T-SQL).
SQL Books Online este documentatia SQL in format electronic.
Contine 90% din informatiile necesare unui administrator sa-si faca
munca in conditii optime.
Client Network Utility permite conifgurarea protocoalelor de
retea pe care sa le utilizeze SQL Server pentru a permite conectarea
clientilor la bazele de date gestionate de acesta.
Utilitarele linie de comanda (osql) permit interogarea
bazelor de date din linia de comanda, folosind parametri pentru a
specifica interogarea, numele serverului, numele bazei de date, etc.
Mai multe detalii despre utilitarele linie de comanda se gasesc in SQL
Books online.
Conceptul de baze de date relationale
Conceptul de baze de date relationale este indeobste cunoscut. Tot mai
des putem auzi sintagme de genul “Nu va gasesc in baza de date”, “Nu
avem produsul asta in baza de date”. As dori sa fac o clarificare
importanta, dupa parerea mea, pentru ca acest termen, de baza de date,
este destul de larg. Bazele de date, conform definitiei largi, sint o
colectie de date, inregistrari, care pot fi parcuse secvential sau dupa
un alt algoritm si care permit stocarea, regasirea si procesarea
datelor conform unor nevoie specifice. Bazele de date relationale
difera putin de aceasta definitie, prin extinderea acesteia si anume
prin introducerea termenului de relational. De exemplu, in Excel exista
conceptul de database pe o foaie de calcul. Dar nu este neaparat
relationala, sau nu este relationala 100%. SQL si alte motoare de baze
de date folosesc relationarea pentru optimizarea bazelor de date.
Sa luam un exemplu. Avem 100 de CD-uri si am vrea sa le ordonam cumva,
intr-o baza de date. Asociat unui CD, avem o serie de atribute: casa de
discuri, an aparitie, gen muzical, artist, etc. Aceasta baza de date o
putem dezvolta si implementa foarte simplu si rapid si in Excel, cu
toate detaliile. Ce se intimpla insa, cind casa de discuri este scrisa
gresit la 25 de CD-uri ? Sau genul muzical ? Trebuie parcurse toate
inregistrarile si corectate manual. Insa, folosind relatiile, in loc sa
stocam textul explicit al, sa luam un exemplu, numelui casei de
discuri, stocam un cod al acestei case de discuri in tabela de CD-uri,
iar in baza codului, regasim numele acesteia, dintr-o tabela
“relationata” prin intermediul codului. Folosind aceasta abordare,
schimbam doar numele casei de discuri in acea tabela cu casele de
discuri, iar interogarea noastra va afisa numele corect la toate inregistrarile, cu o singura modificare. In imaginea de mai jos este afisat, schematic, exemplul de mai sus:
Diagrama 1 – Tabela cu CD-urile (structura partiala) – Fara relatii, cu atributele in text clar
Diagrama 2 – Tabela cu CD-urile (structura partiala) – Cu relatii
spre tabele auxiliare, de unde se preiau textele asociate atributelor
unui CD
Din diagrama 2 se poate vedea destul de usor faptul ca daca dorim sa
schimbam ceva in denumirile unor genuri muzicale sau ale unor case de
discuri, sau sa adaugam niste atribute asociate acestor 2 tabele este
mult mai usor decit in prima varianta. Aceasta abordare are si unele
dezavantaje (orice moneda are 2 fete), dar aceste dezavantaje sint
“umbrite”, ca sa zicem asa, de usurinta in administrare. Acest proces
de separare a datelor se numeste normalizare.
Nu vom intra in detalii care tin de acest proces, pentru ca nu face
obiectul acestui tutorial, dar se gasesc destule articole pe net care
explica in detaliu si pe intelesul tuturor ce presupune normalizarea
bazelor de date si avantajele pe care aceasta le aduce.
Va propun ca pe parcursul a citorva episoade sa construim de la zero o
aplicatie de gestionare a unei baze de date cu CD / DVD-uri, cu o
structura relativ simpla, dar usor de extins de catre orice programator
sau impatimit de baze de date, cu niste unelte care sint relativ la
indemina. Vom folosi pentru acest tutorial ca suport al bazelor de date
produsul SQL Server, dar pentru scopul aplicatiei versiunea free (da,
scoate si Microsoft produse performante free !) a acestuia, MSDE
(Microsoft Desktop Engine) este mai mult decit suficienta. Aceasta
versiune free este disponibila pentru download de pe site-ul Microsoft.
OBSERVATIE: versiunea MSDE a SQL 2005 a fost redenumita in Microsoft SQL Server Express Edition.
Chiar daca tematica nu poate parea interesanta, ce se doreste prin
intermediul acestor tutoriale este transmiterea unor principii de
lucru, prezentarea utilitarelor cu ajutorul carora se pot implementa
aceste principii si prezentarea unui rezultat intr-o forma primara
care, evident, suporta multe imbuntatiri. Aceste imbunatatiri sint,
insa, la latitudinea fiecaruia si depind de imaginatia si nevoile
personale ale celui care dezvolta aplicatia.
NOTA: Unele notiuni nu sint acoperite de acest tutorial. Se
presupune ca cititorul are cunostinte elementare cu privire la
infrastructura unei retele, administrarea unei retele care include un
domeniu (permisiuni, useri, servicii, etc), administrarea la nivel de
baza a unui server, moduri de autentificare.
Prezentare generala a produselor si comparatii
SQL Server 2000 a reprezentat un salt major in domeniul bazelor de
date. Daca saltul de la SQL Server 6.5 la 7.0 a fost considerat de
multi specialisti ca fiind unul semnificativ, saltul de la 7.0 la 2000
(sau versiunea Cool este la fel de important, din mai multe puncte de
vedere. Cele mai importante aspecte au fost cele legate de securitate
si performanta, zone in care s-au depus eforturi semnificative.
Saltul de la SQL 2000 la SQL 2005 este, din nou, major si, pe mai multe planuri:
Enterprise) fata de 4 (Desktop, Developer, Standard, Enterprise,
Mobile) in SQL 2000
Notification Services
Integration Services
Reporting Services
Management tools – o integrare mai buna cu alte tool-uri de management ale MS (MOM, SMS)
fost, de fapt, complet rescrisa folosind VS si ofera acces la obiectele
de administrare si implementare a bazelor de date prin intermediul VS
imbuntatit partea de securitate, suportul pentru date structurate si
ne-structurate (XML)
Mai multe detalii despre diferente si imbunatatirile aduse in SQL 2005, se gasesc aici:
http://www.microsoft.com/sql/prodinfo/overview/whats-new-in-sqlserver2005.mspx
O vedere de ansamblu asupra produsului este disponibila aici:
http://www.microsoft.com/sql/prodinfo/overview/default.mspx.
SQL Server 2000 Standard
Pasii pentru instalarea SQL Server pentru acest tutorial vor fi
descrisi in episodul urmator. Ce dorim acum, este sa familiarizam putin
cititorul cu unele facilitati ale SQL Server, referitor la optiunile de
instalare. Aceste optiuni vor fi intilnite pe parcursul episodului 2,
cind vom instala impreuna SQL Server 200 Standard Edition, dar as dori
sa le clarificam aici, o data cu prezentarea succinta a citorva din
facilitatile oferite de SQL Server.
Instante diferite (sau mai multe servere intr-unul singur)
Sa consideram urmatorul scenariu: avem SQL Server instalat pe un server
si care ruleaza o baza de date de contabilitate. Dorim sa creem o copie
a acestui server, pentru niste teste de optimizare a performantelor,
dar nu dispunem de banii necesari achizitionarii unui server nou. Pe
serverul curent, spatiul de pe hardisk nu este o problema, este un
server cu 4 procesoare si memorie avem destula (comparativ cu
specificatiile producatorului).
Ce putem face este sa mai instalam o data SQL Server, ca o noua instanta (sau named instance).
In acest fel, vom putea experimenta diferite setari la nivel de server
(alocare de memorie, etc) fara a afecta functionarea celeilalte
instante. Acest mod de lucru este posibil datorita faptului ca fiecare
instanta ruleaza intr-un spatiu propriu de memorie si resurse hardware,
fara sa afecteze celelalte instante daca se modifica setarile uneia din
ele. Este ca si cum am avea inca un server fizic disponibil pe care sa
rulam inca un SQL Server. Identificarea unui server SQL in retea, in
scopul conectarii la acesta se face dupa numele NetBIOS asociat
acestuia. In cazul in care avem mai multe instante SQL instalate pe
acel server, identificarea acestora se va face dupa sablonul numeserver\numeinstanta.
De exemplu, avem serverul cu numele SQLDBSRV01 si avem 2 instante SQL
instalate pe acesta. Prima instanta, cea default, va fi identificata
dupa numele NetBIOS al serverului, adica SQLDBSRV01. Instanta 2 cu
numele CONTAB_DB, va fi putea fi accesata folosind identificatorul
SQLDBSRV01\CONTAB_DB.
SQL Server ruleaza ca serviciu in cadrul sistemului de operare. In
cazul in care avem mai multe instante, fiecare instanta va crea
propriul serviciu in cadrul sistemului de operare. Identificarea
acestora se face similar cu identificarea instantelor, cu urmatoarea
diferenta: numele serviciilor pentru instantele din exemplul de mai sus
sint astfel – MSSQLServer si SQLServerAgent pentru instanta default si
MSSQL$CONTAB_DB si SQLAgent$CONTAB_DB pentru instanta CONTAB_DB.
Instalarea utilitarelor client
Sa presupunem urmatorul scenariu: avem un server SQL (sau mai multe)
dar nu avem access fizic la ele pentru a le administra. Putem instala
numai utilitarele de administrare, asa-numitele Client Tools. Aceasta optiune este disponibila in faza de setup si va instala urmatoarele componente:
SQL Enterprise Manager (in cazul SQL 2000, despre care discutam)
SQL Query Analyzer
SQL Books Online
Client Network Utility
Utilitarele linie de comanda (osql, etc)
Avind aceste utilitare si detaliile de conectare la server la indemina,
un administrator se va putea conecta la orice server ar avea nevoie
pentru a efectua taskurile administrative de care este nevoie.
Editiile SQL Server si alegerea unei editii
Editiile SQL Server 2000 sint urmatoarele:
Desktop Engine (versiune free) sau MSDE
Developer Edition
Standard Edition
Enterprise Edition
Exista inca o editie a SQL Server, mai putin folosita, si anume
Personal Edition. Am avut ocazia, la un moment dat, sa instalez un
Personal Edition, este o versiune limitata ca si facilitati, din ce
teste am reusit sa fac in timpul avut la dispozitie, iar ca si
pozitionare pe lista de editii, ar fi undeva intre Desktop Engine si
Developer Edition.
Exista limitari si diferente intre editiile SQL: la volumul de resurse
hardware pe care le pot folosi, la dimensiunea bazelor de date (MSDE nu
poate folosi baze de date mai mari de 2G), la utilitarele care se
instaleaza o data cu fiecare editie (MSDE nu are Enterprise Manager)
sau la performantele SQL in cazul bazelor de date mari.
Mai multe detalii despre aceste diferente, puteti gasi in SQL Books
Online, unde va sint prezentate diferentele dintre diferitele editii
dpdv al facilitatilor incluse in fiecare dintre acestea.
Descrierea componentelor
permite “inregistrarea” serverelor SQL intr-o lista de administrare
disponibila unui administrator. Inscrierea serverelor in aceasta lista
presupune ca userul respectiv are permisiuni pe acel server.
SQL Query Analyzer (sau QA) permite interogarea bazelor de date existente pe un server SQL folosind limbajul Transact-SQL (sau T-SQL).
Contine 90% din informatiile necesare unui administrator sa-si faca
munca in conditii optime.
retea pe care sa le utilizeze SQL Server pentru a permite conectarea
clientilor la bazele de date gestionate de acesta.
bazelor de date din linia de comanda, folosind parametri pentru a
specifica interogarea, numele serverului, numele bazei de date, etc.
Mai multe detalii despre utilitarele linie de comanda se gasesc in SQL
Books online.
Conceptul de baze de date relationale
Conceptul de baze de date relationale este indeobste cunoscut. Tot mai
des putem auzi sintagme de genul “Nu va gasesc in baza de date”, “Nu
avem produsul asta in baza de date”. As dori sa fac o clarificare
importanta, dupa parerea mea, pentru ca acest termen, de baza de date,
este destul de larg. Bazele de date, conform definitiei largi, sint o
colectie de date, inregistrari, care pot fi parcuse secvential sau dupa
un alt algoritm si care permit stocarea, regasirea si procesarea
datelor conform unor nevoie specifice. Bazele de date relationale
difera putin de aceasta definitie, prin extinderea acesteia si anume
prin introducerea termenului de relational. De exemplu, in Excel exista
conceptul de database pe o foaie de calcul. Dar nu este neaparat
relationala, sau nu este relationala 100%. SQL si alte motoare de baze
de date folosesc relationarea pentru optimizarea bazelor de date.
Sa luam un exemplu. Avem 100 de CD-uri si am vrea sa le ordonam cumva,
intr-o baza de date. Asociat unui CD, avem o serie de atribute: casa de
discuri, an aparitie, gen muzical, artist, etc. Aceasta baza de date o
putem dezvolta si implementa foarte simplu si rapid si in Excel, cu
toate detaliile. Ce se intimpla insa, cind casa de discuri este scrisa
gresit la 25 de CD-uri ? Sau genul muzical ? Trebuie parcurse toate
inregistrarile si corectate manual. Insa, folosind relatiile, in loc sa
stocam textul explicit al, sa luam un exemplu, numelui casei de
discuri, stocam un cod al acestei case de discuri in tabela de CD-uri,
iar in baza codului, regasim numele acesteia, dintr-o tabela
“relationata” prin intermediul codului. Folosind aceasta abordare,
schimbam doar numele casei de discuri in acea tabela cu casele de
discuri, iar interogarea noastra va afisa numele corect la toate inregistrarile, cu o singura modificare. In imaginea de mai jos este afisat, schematic, exemplul de mai sus:
Diagrama 2 – Tabela cu CD-urile (structura partiala) – Cu relatii
spre tabele auxiliare, de unde se preiau textele asociate atributelor
unui CD
Din diagrama 2 se poate vedea destul de usor faptul ca daca dorim sa
schimbam ceva in denumirile unor genuri muzicale sau ale unor case de
discuri, sau sa adaugam niste atribute asociate acestor 2 tabele este
mult mai usor decit in prima varianta. Aceasta abordare are si unele
dezavantaje (orice moneda are 2 fete), dar aceste dezavantaje sint
“umbrite”, ca sa zicem asa, de usurinta in administrare. Acest proces
de separare a datelor se numeste normalizare.
Nu vom intra in detalii care tin de acest proces, pentru ca nu face
obiectul acestui tutorial, dar se gasesc destule articole pe net care
explica in detaliu si pe intelesul tuturor ce presupune normalizarea
bazelor de date si avantajele pe care aceasta le aduce.
cristiano_ronaldo- Level 2
-
Numarul mesajelor : 80
Warn :
Puncte : 0
Reputatie : 0
Data de inscriere : 22/05/2008
Pagina 1 din 1
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum
|
|