Episodul 1 – 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 8) 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.
In episodul 2 al acestui tutorial vom trece la instalarea SQL Server 2000 Standard Edition si MS-Access, urmind ca de la episodul 3 sa trecem la exercitiul practic propus.
Dostları ilə paylaş: |