close

Microsoft SQLServer

Mergi la navigare Mergi la căutare
Microsoft SQLServer
Parte a sistemului de management al bazelor de date relaționale
Microsoft SQL Server 1 11 Îmbunătățiri de rețea.png
Informatii generale
tip de program baza de date relațională a sistemului de management
dezvoltator microsoft
lansarea inițială 24 aprilie 1989
LicențăEULA Microsoft
Informații tehnice
Programat în C , C++
fișiere care pot fi citite
fișiere editabile
Legături

Microsoft SQL Server este un sistem de gestionare a bazelor de date relaționale dezvoltat de Microsoft .

Limbajul de dezvoltare folosit (prin linia de comandă sau prin interfața grafică a Management Studio) este Transact-SQL (TSQL), o implementare a standardului ANSI al limbajului SQL, folosit pentru a manipula și prelua date ( DML ), pentru a crea tabele și a defini relațiile dintre ei ( DDL ).

Printre cei mai proeminenti competitori ai SQL Server se numara: Oracle , MariaDB , MySQL , PostgreSQL . SQL Server a fost în mod tradițional disponibil numai pentru sistemele de operare Microsoft Windows , dar din 2016 este disponibil pentru GNU/Linux , [ 2 ] [ 3 ]​ și din 2017 și pentru Docker . [ 4 ]

Poate fi configurat să folosească mai multe instanțe pe același server fizic, prima instalare poartă de obicei numele serverului, iar următoarele - nume specifice (cu o cratimă între numele serverului și numele instalării).

Versiuni

Istoricul versiunilor [ 5 ]
Versiune An numele versiunii numele cheii
1.0
( OS/2 )
1989 SQLServer 1-0 SQL
4.21
( WinNT )
1993 SQLServer 4.21 CONTINUARE
6.0 o mie noua sute nouazeci si cinci SQLServer 6.0 SQL95
6.5 o mie nouă sute nouăzeci și șase SQLServer 6.5 Hidra
7.0 1998 SQL Server 7.0 [ 6 ] Sfinx
- 1999 Instrumente
OLAP SQL Server 7.0
Farfurie
8.0 2000 SQL Server 2000 [ 7 ] Shiloh
8.0 2003 SQL Server 2000
ediție pe 64 de biți
libertate
9,0 2005 SQL Server 2005 [ 8 ] Yukon
10.0 2008 SQL Server 2008 [ 9 ] kathmai
10.25 2010 SQL-Azure DB CloudDatabase
10.50 2010 SQL Server 2008 R2 [ 10 ] Kilimanjaro
11.0 2012 SQL Server 2012 [ 11 ] Denali
12.0 2015 SQL Server 2014 [ 12 ] SQL14 (fost Hekaton)
13.0 2016 SQLServer 2016 SQL16
14.0 2017 SQLServer 2017 v Următorul 2017
15.0 2019 SQLServer 2019 Daphne

Codul sursă original SQL Server care a fost folosit în versiunile anterioare versiunii 7.0 ar fi fost achiziționat de la Sybase , dar a fost actualizat în versiunile 7.0 și 2000 și rescris în versiunea 2005. În general, la fiecare 2-3 ani, este lansată o nouă versiune și, între aceste versiuni, sunt propuse pachete de service cu îmbunătățiri și remedieri de erori și remedieri rapide pentru probleme urgente în sistemul de securitate sau erori critice.

Disponibilitate

Microsoft SQL Server este vândut ca licență. Cu toate acestea, utilizatorii care doresc să folosească SQL Server, fiind vorba doar despre program, cum ar fi solicitarea și stocarea informațiilor, au nevoie de o CAL.

Modele de licență

Microsoft SQL Server utilizează diferite modele de licențiere, acestea sunt licențe Server + CAL și licențe Core.

Model server + CAL

Acest model de licență este o opțiune mai ieftină, este achiziționat cu licența și trebuie achiziționate licențe CAL suplimentare pentru utilizatori sau dispozitive.

Per licențe de bază

Alegând licențierea per-core, licențiați mai multe nuclee ale procesorului fizic al serverului. Cu Microsoft SQL Server 2019, cel puțin 4 nuclee trebuie să fie întotdeauna licențiate. Acest model de licență este adesea ales de companiile mari.

Licențele CAL nu sunt necesare pentru aceasta.

Licență de acces la client (CAL)

O licență de acces client are scopul de a oferi drepturi de utilizare pentru a permite utilizatorilor sau dispozitivelor să acceseze software-ul server. Aceasta înseamnă că fiecare computer sau utilizator care are nevoie de acces la software-ul server are nevoie de o CAL.

Licențe CAL de utilizator

Un utilizator CAL oferă acces la caracteristica menționată mai sus unui utilizator din rețea. Aceasta înseamnă că acest utilizator poate accesa și rețeaua serverului prin alte dispozitive.

Licențe CAL pentru dispozitiv

Un dispozitiv CAL oferă acces la un dispozitiv. Aceasta înseamnă că toți utilizatorii acestui dispozitiv se pot autentifica pentru a accesa serverul. Acest lucru este adesea benefic numai atunci când există mai mulți utilizatori decât dispozitive în cadrul unei organizații, [ 13 ]

Caracteristici

Acest sistem include o versiune redusă, numită MSDE cu același motor de bază de date , dar orientată către proiecte mai mici, care în versiunile sale din 2005 și 2008 devine SQL Express Edition , care este o ediție care este distribuită gratuit .

Este obișnuit să se dezvolte proiecte complete folosind Microsoft SQL Server și Microsoft Access prin așa-numitul ADP ( Access Data Project ). În acest fel, baza de date ( Microsoft SQL Server ) este completată, cu mediul de dezvoltare ( VBA Access), prin implementarea de aplicații cu două niveluri prin utilizarea formularelor Windows .

SQLCMD , osql sau PowerShell sunt folosite pentru a gestiona SQL prin linii de comandă .

Pentru dezvoltarea de aplicații mai complexe (trei sau mai multe straturi), Microsoft SQL Server include interfețe de acces pentru diverse platforme de dezvoltare, inclusiv .NET , dar serverul este disponibil doar pentru sistemele de operare .

Tipul NUMERIC a fost îmbunătățit pentru a fi utilizat ca identificator de coloană începând cu versiunea 2008 R2.

Programare

T-SQL

T-SQL (Transact-SQL) este principalul mijloc de interacțiune cu Server, care permite efectuarea de operațiuni cheie în SQL Server, inclusiv crearea și modificarea schemelor bazei de date, inserarea și modificarea datelor în baza de date, precum și administrarea serverul ca atare. Acest lucru se realizează prin trimiterea de instrucțiuni și declarații T-SQL care sunt procesate de server și rezultatele (sau erorile) returnate aplicației client.

Client nativ SQL

SQL Native Client este biblioteca de acces la date pentru Microsoft SQL Server versiunea 2005 și clienții ulterioare. Implementează în mod nativ suport pentru caracteristicile SQL Server, inclusiv execuția fluxului de date tabelar, suport pentru bazele de date în oglindă SQL Server, suport complet pentru toate tipurile de date acceptate de SQL Server, seturi asincrone de operațiuni, notificări de interogare, suport pentru criptare, precum și primirea mai multor seturi de rezultate într-o singură sesiune de bază de date. SQL Native Client este folosit ca extensie a pluginurilor SQL Server pentru alte tehnologii de acces la date, inclusiv ADO sau OLE DB. SQL Native Client poate fi, de asemenea, utilizat direct, ocolind straturile de acces la date.

Ediții și servicii

Fiecare ediție de SQL Server are versiuni diferite cu prețuri diferite (pentru fiecare versiune) care depind și de configurația fizică a serverului. [ 14 ] Principalele versiuni sunt prezentate mai jos:

Enterprise

Include toate caracteristicile (dezactivate in alte editii) Este tipul de versiune cu cele mai multe privilegii de pe piata.

dezvoltator

O ediție cu aceleași caracteristici ca și Enterprise, pentru a fi instalată doar într-un mediu de dezvoltare și nu în producție. Dacă este dezvoltat pentru o ediție Standard, trebuie luate în considerare caracteristicile dezactivate pentru această versiune.

Standard

O versiune limitată în funcție de configurația serverului și de caracteristicile acestuia, concepută pentru servere inferioare.

De exemplu: în versiunea 2012, ediția Enterprise acceptă un număr nelimitat de procesoare și adăugarea la cald de memorie și procesoare fără întrerupere a serviciului sau a serverului; în timp ce ediția Standard este limitată la 16 procesoare și nu acceptă „hot add”.

Express

O versiune gratuită care permite crearea de baze de date limitate cu caracteristici de bază, pentru a susține aplicații care au nevoie de o soluție simplă pentru stocarea unei cantități limitate de date sau utilizatori ale căror resurse și nevoi sunt limitate.

În versiunea 2012, această ediție poate folosi maximum 1 GB de memorie și nu poate stoca mai mult de 10 GB, funcționând pe servere cu un număr maxim de patru procesoare. Aceste limitări sunt menținute în versiunea 2014 (4 nuclee, 1 GB ram și 10 Gb per bază de date).

SQLAzure

Este o versiune de SQL Server în cloud, care vă permite să plătiți lunar pentru serviciu fără a fi nevoie să mențineți un server fizic (On Premise). Compania plătește doar pentru serviciu, iar serviciul este gestionat prin ferme de servere în diferite locuri din lume.

Cu SQL Azure nu este nevoie să instalați, să întrețineți sau să actualizați un server fizic; in ciuda faptului ca acest serviciu depinde de aspecte legate de problemele de securitate privind prezenta sa in afara companiei si disponibilitatea unei conexiuni la Internet.

Pentru o vreme, serviciul a fost extins cu opțiunea de a crea un server virtual în rețea și de a instala SQL Server, precum și unul dintre serviciile concurente și de a gestiona serverul virtual ca și cum ar fi un server fizic local (deși este nu este accesibil fizic).); și puteți face diferența între opțiunea originală care se numește PAAS ( Platform as a Service : Platform as a Service ) și noua opțiune de servere virtuale numită IAAS ( Infrastructure as a Service: Infrastructure as a Service ).

Acest serviciu este furnizat de Microsoft din 2009 și se alătură unor servicii similare de la companii terțe .

Interfata utilizator

SQL Server oferă câteva interfețe care s-au schimbat de-a lungul anilor, dintre care cele mai cunoscute sunt interfețele grafice care sunt utilizate ca instrument de dezvoltare standard pentru dezvoltatori și administratori .

Interfața grafică până în 2005 a inclus Enterprise Manager cu o vedere arborescentă a diferitelor obiecte și capacitatea de a le gestiona; și analizorul de interogări ca interfață textuală pentru a executa comenzi TSQL.

În versiunea din 2005, cele două instrumente au fost unificate într-unul singur – SQL Server Management Studio (SSMS), iar din 2008 opțiunea de a lucra cu Visual Studio – interfața standard de dezvoltare Microsoft (la diferite limbi , BI etc.). O altă interfață opțională este utilizarea liniei de comandă , cu instrumente precum SQLCmd, ISQL, OSQL care permite executarea de scripturi și procesarea în loturi . Din 2008 poate fi dezvoltat cu SQLCmd (SQL Command) prin SSMS fără interconectarea la interfața textuală Windows. O altă opțiune în domeniul scripturilor este utilizarea limbajului de scripting Powershell de la Microsoft .

În afară de interfețele standard ale SQL Server, puteți executa comenzi TSQL cu instrumente de conectare precum ODBC și OLE-DB. [ 15 ]

Servicii

Spre deosebire de sistemele de baze de date precum Microsoft Access care sunt „pasive” și conțin un fișier la care trebuie să vă conectați și executarea comenzilor se realizează pe client (calculatorul utilizatorului), în SQL Server există un număr de servicii , software. care sunt executate în memoria serverului de către sistem și, prin urmare, profită de capacitățile serverului care este mai puternic decât clienții, previn congestionarea rețelei și pot programa sarcini care rulează chiar dacă clientul nu este conectat. .

Servicii principale:

  • SQL Server - „motorul” sistemului
  • Agent SQL - Executarea sarcinilor (Jobs, scripturi programate) si trimiterea de avertismente in cazul incarcarii grele si neregulate a sistemului
  • Full-Text Filter Daemon Launcher - Utilizarea indecșilor speciali ai „Căutare text integral” pentru căutarea avansată a textului
  • SQL Browser - „Ascultătorul” dedicat comenzilor trimise și redirecționării lor către destinație
  • Server SSIS - Funcționarea SSIS ( instrumentul ETL )
  • Server SSAS - Funcționarea SSAS ( instrumentul OLAP )
  • Server SSRS - Funcționarea SSRS (instrumentul de raportare)

Capacitățile și instrumentele de bază

Baze de date

În fiecare instalare SQL Server există 4 baze de date de sistem și posibilitatea de a crea noi baze de date de către utilizator, în care datele sunt stocate în tabele.

Aceste baze de date, create de utilizatori, includ practic un fișier de date (cu sufixul mdf) cu tabelele și diferitele obiecte la nivelul bazei de date; și un fișier jurnal (cu sufixul ldf) cu tranzacții deschise și tranzacții închise, Sub rezerva modelului de recuperare selectat (toate modificările bazei de date de la ultima copie de rezervă pot fi acumulate în fișierul jurnal). Un set de fișiere de date poate fi creat în plus față de cel principal (cu sufixul ndf) pentru considerente de eficiență, partiționarea sarcinii de lucru între hard disk-uri etc.

Baze de date de sistem:

  • master - Toate procedurile, funcțiile și tabelele de sistem care sunt utilizate de toate bazele de date și care sunt instalate automat, precum și cele care au fost create de administratorii de sistem. În plus, toate definițiile referitoare la securitate la nivel de server sunt stocate în această bază de date.
  • msdb - Stocarea sarcinilor de agent, coduri CLR îmbinate în sistem, pachete SSIS și multe altele.
  • model - Șablonul bazei de date. Fiecare nouă bază de date este creată ca o copie a acestei baze de date, cu excepția cazului în care altceva a fost definit în mod explicit.
  • tempdb - Baza de date temporară care este creată din nou de fiecare dată când serviciul repornește. Este folosit pentru a stoca tabele temporare create de utilizatori sau de sistem (de exemplu, în sortare complexe).

Tabele fixe și temporare

Din perspectiva logică, datele stocate în baze de date în tabele, care prin intermediul acestora implementează teoria bazelor de date relaționale. Tabelul este împărțit în rânduri și coloane (uneori denumite înregistrări și câmpuri). Tabelele pot fi fixe sau temporare, în timp ce în al doilea caz există fizic în baza de date tempdb, și sunt șterse automat în cazul deconectării sesiunii sau conexiunii la server, în funcție de tipul tabelului temporar.

Din punct de vedere fizic, sistemul împarte fișierele bazei de date în extensii de 64 KB, fiecare în opt pagini de 8 KB. În general, fiecare Extent este atribuită unui tabel sau unui index , cu excepția tabelelor mici; și fiecare pagină este întotdeauna atribuită unui anumit tabel. Sistemul este responsabil pentru creșterea fișierelor, în funcție de setările utilizatorului, și alocarea de extensii și pagini la tabele.

Tabelele pot fi indexate. Indicii sunt stocați lângă tabel (Index Non Clustered) sau sunt tabelul în sine (Index Clustered). Indexurile ajută la găsirea datelor în tabele (cum ar fi fișierele din biblioteci), sortarea acestora și definirea cheilor primare .

Între tabele poate fi creată o relație unu-la-mulți .

În afară de tabelele utilizatorilor, există tabele care stochează metadate: date despre sistemul în sine, diferitele obiecte, drepturi, statistici despre performanța sistemului (DMV) etc.

Tipuri de date

Pentru fiecare coloană dintr-un tabel și fiecare variabilă sau parametru, se definește un tip de date care să fie stocate în aceasta, printre acestea:

  1. Numere : numere întregi și neîntregi de diferite dimensiuni și la diferite niveluri de precizie; și increment automat opțional.
  2. Texte : șiruri de diferite lungimi și capacități diferite pentru a accepta diferite limbi.
  3. Date : Date la diferite niveluri de precizie, de la zile întregi la fracții subsecunde, date susținând de la începutul secolului al XX-lea sau calendarul gregorian și capacitatea de a diferenția între diferite utilizări ale timpului.
  4. XML : Date textuale (șiruri) reprezentând seturi standard de date (standard SGML).
  5. Date binare : Date stocate ca date binare (biți și octeți), ceea ce face posibilă stocarea fișierelor grafice etc.
  6. Geografie : reprezentare standard a informațiilor geografice, cum ar fi state, zone geografice, localități; și calcule ca distanțe.
  7. Geometrie : Reprezentare standard a punctelor, liniilor, suprafețelor în plan; și relațiile dintre ele.
  8. Hierarchyid : reprezentarea standard a informațiilor ierarhice, cum ar fi lista de materiale, raportarea relațiilor dintre angajați etc.

Vizualizări

Vizualizările reprezintă, în general, comenzi de extragere a datelor, care sunt stocate fără datele (care sunt stocate în tabele). Această opțiune ne permite să creăm extrase complexe sau standard, să le stocăm ca vizualizări și să folosim vizualizările fără a fi nevoie să reintroducem comenzile sau să păstrăm codul acolo unde apar. În plus, este un mijloc foarte important de a acorda drepturi de citire selectivă (în cazul în care dorim să permitem unui utilizator să vizualizeze parțial coloanele sau rândurile unui tabel).

O vizualizare poate fi considerată un tabel virtual sau o interogare stocată. Datele accesibile printr-o vizualizare nu sunt stocate într-un alt obiect decât baza de date. Ceea ce este stocat în baza de date este o instrucțiune SELECT. Rezultatul instrucțiunii SELECT formează tabelul virtual pe care îl returnează vizualizarea. Utilizatorul poate folosi un astfel de tabel virtual referindu-se la numele vizualizării în instrucțiunile Transact-SQL, în același mod în care se face referire la tabelele. Vizualizările sunt utilizate pentru unele sau pentru toate aceste funcții:
• Restricționați accesul utilizatorului la anumite rânduri dintr-un tabel. De exemplu, permițând unui angajat să vadă numai rândurile care își salvează munca într-un tabel de urmărire a activității de lucru.
• Restricționați accesul utilizatorului la anumite coloane. De exemplu, permiteți angajaților care nu lucrează în departamentul de salarizare să vadă coloanele cu numele, biroul, telefonul și departamentele din tabelul angajaților, dar nu le permiteți să vadă coloanele cu date despre salarii sau alte informații personale.
• Combinați coloanele din mai multe tabele astfel încât să apară ca un singur tabel.
• Adăugați informații în loc să prezentați detaliile. De exemplu, prezentarea sumei unei coloane sau a valorii maxime sau minime a unei coloane.

Vizualizările sunt create prin definirea instrucțiunii SELECT care preia datele prezentate de vizualizare. Tabelele de date la care se face referire de instrucțiunea SELECT sunt cunoscute ca tabelele de bază pentru vizualizare. Vizualizările din toate versiunile de SQL Server sunt actualizabile (pot fi ținta instrucțiunilor UPDATE, DELETE sau INSERT) atâta timp cât modificarea afectează doar unul dintre tabelele de bază ale vizualizării.

Proceduri stocate

Procedurile sunt scripturi de comandă TSQL, care pot fi executate cu diferiți parametri. De exemplu, o procedură care obține numărul anului ca parametru și actualizează un tabel rezumativ al vânzărilor, cu vânzările agenților în anul respectiv, pe baza tabelului de înregistrare a vânzărilor.

Procedurile stocate pot face mult mai ușoară gestionarea bazei de date și vizualizarea informațiilor despre baza de date și utilizatorii acesteia. Procedurile stocate sunt o colecție precompilată de instrucțiuni SQL și instrucțiuni opționale de control al fluxului stocate sub un singur nume și procesate ca o unitate. Procedurile stocate sunt stocate într-o bază de date; acestea pot fi rulate din interiorul unei aplicații și permit variabile declarate de utilizator, execuție condiționată și alte funcții puternice de programare. Procedurile stocate pot conține fluxul de program, logica și interogări de bază de date. Aceștia pot accepta parametri, pot furniza rezultate ale parametrilor, pot returna seturi de rezultate unice sau multiple și pot returna valori.

Avantajele utilizării procedurilor stocate în SQL Server în locul programelor Transact-SQL stocate local pe computerele client sunt că acestea:
• Permit programarea modulară.
Puteți crea procedura o dată, o puteți stoca în baza de date și o puteți apela din program de câte ori doriți. Un specialist în programarea bazelor de date poate crea proceduri stocate, care pot fi apoi modificate independent de codul sursă al programului. Ele facilitează întreținerea.
• Permite o execuție mai rapidă.
În situațiile în care este necesară o cantitate mare de cod Transact-SQL sau dacă operațiunile sunt efectuate de mai multe ori, procedurile stocate pot fi mai rapide decât loturile de cod Transact-SQL. Procedurile sunt analizate și optimizate în momentul în care sunt create și este posibilă utilizarea unei versiuni a procedurii care se află în memorie după ce este executată pentru prima dată. Declarațiile Transact-SQL care sunt trimise de mai multe ori de la client de fiecare dată când urmează să fie executate trebuie să fie compilate și optimizate ori de câte ori sunt executate de SQL Server.
• Pot reduce traficul în rețea.
O operație care necesită sute de linii de cod Transact-SQL poate fi realizată cu o singură instrucțiune care execută codul într-o procedură, în loc să trimită sute de linii de cod în rețea.
• Pot fi folosite ca mecanism de securitate.
Utilizatorilor li se pot acorda permisiuni pentru a executa o procedură stocată, chiar dacă nu au permisiunea de a executa direct instrucțiunile procedurii.

Funcții definite de utilizator

Funcțiile sunt un obiect care combină unele capacități de vederi cu altele de proceduri. La fel ca vizualizările, ei pot extrage date și pot efectua calcule, returnând un rezultat utilizatorului sau programului care le-a executat. Pe lângă proceduri, acestea includ coduri TSQL și pot fi executate cu parametri.

Funcțiile returnează o valoare sau un set de valori.

Funcțiile definite de utilizator sunt create cu instrucțiunea CREATE FUNCTION, modificate cu instrucțiunea ALTER FUNCTIONși eliminate cu instrucțiunea DROP FUNCTION. Toate numele de funcții complet calificate (nume_database.nume_proprietar.nume_funcție) definite de utilizator trebuie să fie unice. Pentru a crea, modifica sau elimina funcții definite de utilizator, trebuie să aveți CREATE FUNCTION. Utilizatorii, alții decât proprietarul, trebuie să aibă permisiunea EXECUTE pentru o funcție și numai atunci o pot folosi într-o instrucțiune Transact-SQL. Pentru a crea sau modifica tabele cu referințe la funcții definite de utilizator în constrângerea CHECK, clauza DEFAULTsau definiția unei coloane calculate, trebuie să aveți și permisiunea REFERENCESpentru funcții. Erorile Transact-SQL care determină anularea unei instrucțiuni și continuă la următoarea instrucțiune din modul, cum ar fi declanșatoarele sau procedurile stocate, sunt tratate diferit în cadrul unei funcții. În funcții, aceste erori determină oprirea execuției funcției. Acest lucru face ca funcția care a apelat instrucțiunea să se anuleze. O funcție definită de utilizator are zero sau mai mulți parametri de intrare și returnează o valoare scalară sau un tabel. O funcție poate avea maximum 1024 de parametri de intrare. Când un parametru de funcție ia o valoare implicită, cuvântul cheie trebuie specificat DEFAULTla apelarea funcției pentru a obține valoarea implicită. Acest comportament este diferit de parametrii valorii implicite din procedurile stocate, pentru care omiterea parametrului implică specificarea valorii implicite. Funcțiile definite de utilizator nu acceptă parametrii de ieșire.

Interogări distribuite

Interogările distribuite accesează date din mai multe surse, care pot fi stocate pe un computer sau pe computere diferite. Microsoft SQL Server 2000 acceptă interogări distribuite prin OLE DB Interogările distribuite oferă utilizatorilor SQL Server acces la:
• Date distribuite stocate în mai multe instanțe SQL Server.
• Date eterogene stocate în diverse surse de date relaționale și non-relaționale accesate prin intermediul unui furnizor OLE DB.
Furnizorii OLE DB expun datele în obiecte tabulare numite seturi de rânduri. SQL Server 2000 permite ca seturile de rânduri de la furnizorii OLE DB să fie menționate în instrucțiunile Transact-SQL ca și cum ar fi un tabel SQL Server. Tabelele și vizualizările din surse de date externe pot fi referite direct în instrucțiunile Transact-SQL SELECT, INSERT, UPDATE și DELETE. Deoarece interogările distribuite folosesc OLE DB ca interfață de bază, ele accesează sistemele tradiționale DBMS relaționale cu procesoare de interogare SQL, precum și date gestionate de surse de date cu putere și sofisticare variate. Atâta timp cât software-ul proprietar expune datele într-un set de rânduri tabelar prin furnizorul OLE DB, datele pot fi utilizate în interogări distribuite. Notă: Utilizarea interogărilor distribuite în SQL Server este similară cu funcționalitatea tabelelor legate prin ODBC, acceptată anterior de Microsoft Access. Această funcționalitate este acum încorporată în SQL Server cu OLE DB ca interfață cu datele externe.

Tranzacții

O tranzacție este un set de comenzi, care este executat complet sau nu este executat deloc: totul sau nimic. De exemplu, dacă o sumă de bani a fost mutată dintr-un cont bancar în altul și ambele conturi trebuie actualizate la depunere și retragere; este obligatoriu ca ambele conturi să se actualizeze împreună, sau niciunul (în cazul în care una dintre actualizări eșuează); pentru a evita consecințele inconsistente ale unui depozit fără nicio retragere, sau invers. Prin urmare, o tranzacție este o secvență de operațiuni efectuate ca o singură unitate logică de lucru. O unitate logică de lucru trebuie să prezinte patru proprietăți, cunoscute sub numele de proprietăți ACID (atomicitate, consistență, izolare și durabilitate), pentru a se califica ca tranzacție:

  • Atomicitatea

O tranzacție trebuie să fie o unitate atomică de lucru, indiferent dacă toate modificările sale sunt aduse datelor sau nu sunt făcute niciuna.

  • Coerenţă

Când se finalizează, o tranzacție trebuie să lase toate datele într-o stare consecventă. Într-o bază de date relațională, toate regulile trebuie aplicate modificărilor tranzacțiilor pentru a menține integritatea tuturor datelor. Toate structurile de date interne, cum ar fi indexurile B-tree sau listele dublu legate, trebuie să fie corecte la sfârșitul tranzacției.

  • Izolare

Modificările efectuate prin tranzacții concurente trebuie izolate de modificările efectuate prin alte tranzacții concurente. O tranzacție vede datele în starea în care se aflau înainte de a fi modificată de o altă tranzacție concomitentă sau după finalizarea celei de-a doua tranzacții, dar nu vede o stare intermediară. Aceasta este cunoscută sub denumirea de serializare deoarece rezultatul său este capacitatea de a reîncărca datele inițiale și de a reda o serie de tranzacții pentru a se termina cu datele în aceeași stare în care erau după ce au fost efectuate tranzacțiile inițiale.

  • Durabilitate

Odată ce o tranzacție este încheiată, efectele acesteia sunt permanente în sistem. Modificările persistă chiar și în cazul unei erori de sistem.

SQL Server are o capacitate limitată de a imbrica tranzacții.

Optimizatorul

Optimizatorul este o parte a software-ului care „ia decizia” cu privire la modul în care va fi executată fiecare comandă, astfel încât execuția să fie cea mai eficientă, sau cel puțin suficient de eficientă (adică suficient de eficientă pentru a evita continuarea căutării unei alte comenzi). soluție, care și mai eficientă, prețul căutării suplimentare va „costa” mai mult decât economiile de resurse).

SQL este un limbaj declarativ , în care dezvoltatorul declară că dorește să extragă sau să actualizeze fără a fi nevoie să indice cum (spre deosebire de limbajele imperative și, prin urmare, optimizatorul joacă un rol principal, care conform statisticilor pe care sistemul le stochează despre distribuțiile de date). în tabele, indici și reguli interne; ia decizia corespunzătoare.

Privilegii și securitatea datelor

Pentru a vă conecta la SQL Server, este necesară o autentificare (utilizator la nivel de server). Când politica de securitate este definită ca Autentificare Windows și serverul este combinat cu definițiile domeniului , Login-urile sunt definite în Active Directory . Când definiția este SQL Server Authentication, autentificarea (utilizator și parola) sunt definite în SQL Server însuși. În consecință, în primul caz trebuie să te identifici cu un nume și o parolă doar atunci când te conectezi la rețea, iar apoi te conectezi automat la toate serverele care sunt Autentificare Windows (cu Login global); iar în al doilea caz trebuie să te identifici când te conectezi la fiecare server de autentificare SQL Server (de fiecare dată cu un Login local).

La nivel de bază de date, utilizatorul este identificat ca un Utilizator care este în general legat de Login (care este la nivel de server), iar privilegiile pentru Utilizator există doar la nivel de bază de date (în plus față de privilegiile de Logare). Pentru a acorda drepturi generale pot fi asistați cu liste de Roluri de Server (roluri la nivel de server) sau Roluri de bază de date (roluri specifice la nivel de bază de date), fiecare cu privilegii specifice pentru un anumit rol; și fiecare utilizator asociat cu unul dintre aceste Roluri primește privilegiile asociate acestuia. De asemenea, administratorul poate acorda anumite drepturi și poate crea alte roluri de bază de date (rolurile de server nu pot fi create).

Privilegiile la nivel de server includ abilitatea de a crea baze de date, de a utiliza Jobs, de a crea copii de siguranță și de restaurare a bazei de date, de a modifica definițiile serverului și așa mai departe. Privilegiile la nivel de bază de date fac posibilă extragerea și actualizarea datelor, crearea de obiecte precum proceduri și tabele, utilizarea acestor obiecte și așa mai departe. Ca regulă generală, puteți să acordați drepturi (Acordare), să revocați privilegii existente (Revocare) și să refuzați privilegii care încă nu există (Refuzare).

Alte instrumente de service

Pe lângă capacitățile sale elementare ca instrument de gestionare a bazelor de date relaționale (creați tabele, definiți relații între ele, gestionați tranzacții, creați indecși etc.), SQL Server acceptă o listă tot mai mare de alte instrumente de servicii; în afară de instrumentele terțe care se modifică sau completează ceea ce există.

Backup-uri și recuperări

În afară de soluțiile alternative la nivel de sistem de operare (backup fișierelor bazei de date), există un instrument încorporat în SQL Server care permite o copie de rezervă completă sau diferențială, conform modelului de recuperare predefinit în baza de date; și o recuperare completă sau la un moment dat. În afară de o copie de rezervă a bazei de date, le puteți face copii de rezervă printr-un script (cu sau fără date). Începând cu 2008, puteți comprima fișierele de rezervă.

Compresie

Începând cu 2008, a fost adăugată opțiunea de compresie, care face posibilă comprimarea dimensiunii fizice a tabelelor și indicilor și utilizarea mai eficientă a volumului hard disk-urilor și reducerea operațiunilor IO (ceea ce mărește încărcarea CPU). După cum am menționat deja, puteți comprima și fișierele de rezervă.

Replicare, disponibilitate ridicată și recuperare în caz de dezastru

Unele instrumente fac posibilă crearea de replici parțiale sau complete ale bazelor de date, îmbunătățirea disponibilității și recuperarea după dezastre; în afară de opțiunea de a face backup și a recupera bazele de date, o opțiune care se presupune a fi foarte lentă.

Copiile create de aceste instrumente pot fi folosite ca backup disponibil imediat în cazul în care sistemul eșuează, precum și o replică într-un subsistem, independent de sistemul sursă, pentru echilibrarea încărcăturii; și că actualizările rulează pe baza de date, iar recuperările pentru rapoarte rulează pe replica.

Printre aceste instrumente putem aminti replicarea care face posibilă crearea unei replici sincronizate a bazei de date, Mirroring -ul care execută în serverul oglindă fiecare actualizare care se execută în serverul de origine, Log Shipping care face posibilă stocarea unei copii sincronizate. prin intermediul fișierelor jurnal (Log) cu toate actualizările de pe serverul sursă, și a instrumentelor de înaltă disponibilitate și de recuperare în caz de dezastru (HADR, din 2012) care rezolvă problemele de oglindire în raport cu timpul de reacție la defecțiuni tehnice și disponibilitatea copiilor în timp de pace.

Agentul și programarea sarcinilor

Agentul este serviciul responsabil cu programarea sarcinilor și se ocupă de executarea acestora în mod independent. În general, execută sarcini de întreținere, sarcini ETL complexe , backup -uri etc.

Întreținere

Pentru a îmbunătăți performanța sistemului este necesară menținerea statisticilor, utilizate de optimizator, organizarea fișierelor fizice etc; și instrumente dedicate sunt utilizate în aceste scopuri, care sunt executate periodic prin sarcini programate, și în mod coordonat cu ETL și sarcinile de backup.

Servicebroker

O tehnologie care a fost adăugată în 2005 care implementează arhitectura orientată spre servicii și care permite execuții asincrone: în primul rând pentru a trimite mesaje între diferite aplicații care rulează simultan, dar și pentru a executa proceduri asincron, într-o manieră fire-and-forget - o procedură care rulează într-o sesiune diferită de sesiunea care a început-o și ambele proceduri continuă să ruleze independent una de cealaltă.

Trimite e-mailuri

SQL Server are capacitatea de a trimite e- mail prin cod. Această funcționalitate este utilizată în general pentru a trimite alerte despre probleme de sistem (de exemplu, dacă utilizarea CPU a crescut la un prag predefinit sau dacă procesul ETL a eșuat), dar și atunci când procesul s-a încheiat cu succes.

Căutare text integral

Un instrument care face posibilă indexarea coloanelor textuale ca texte și nu doar ca șiruri de caractere; și să execute căutări complexe în funcție de sensul textului și de limbă. De exemplu, căutăm un verb și vrem să obținem toate aparițiile conjugărilor sale.

Urmărire

Aceste instrumente includ Trace care face posibilă urmărirea activităților pentru a menține încărcările și eșecurile și securitatea datelor (recuperarea datelor nu este permisă), Profiler care face posibilă urmărirea comenzilor care sunt executate și a evenimentelor care au loc pe serverul și Extended Events care a fost adăugat în 2008 și modifică profilerul datorită semnăturii sale reduse (consum de resurse și influență asupra performanței serverului).

În afară de acestea, pot fi folosite 2 tipuri de declanșatoare pentru a urmări modificările și activitățile: declanșatoare DML predefinite pe tabele și vizualizări și care sunt inițiate de instrucțiuni de actualizare a datelor (Selectare / Actualizare / ștergere) și declanșatoare DDL care sunt inițiate de modificările aduse obiectele în sine (și nu datele), la nivel de bază de date sau server.

Fuziune CLR

Din 2005, puteți combina cu ușurință proceduri, funcții și funcții agregate dezvoltate în CLR în SQL Server . Trebuie să dezvoltați codul într-unul dintre instrumentele de dezvoltare .NET , să creați un fișier DLL și să îl îmbinați în sistem. Avantajul acestei tehnologii este capabilitățile sale în probleme care nu sunt exclusiv baze de date (manipularea datelor) și includ calcule complexe sau manipulări textuale ale șirurilor.

Instrumente de business intelligence

O instalare tipică include , de asemenea, instrumente de Business Intelligence ( BI ) :

SSIS (Servicii de integrare SQL Server)

Un instrument ETL care permite extragerea de date din diferite surse (nu numai SQL Server), transformarea acestor date și încărcarea (în general, dar nu neapărat, într- un depozit de date ).

SSAS (SQL Server Analysis Services)

Un instrument pentru crearea de baze de date multidimensionale (non-relaționale) , care poate fi explorată prin extragerea datelor la diferite niveluri de grupare, analizând o sumă până la detaliile acesteia și folosind MDX (un limbaj asemănător SQL, adaptat bazelor de date multidimensionale).

SSRS (SQL Server Reporting Services)

Un instrument pentru a crea și formata rapoarte, pentru a le acorda drepturi de vizualizare și pentru a le distribui. Acestea pot fi vizualizate cu un browser web și pot fi exportate în Excel , PDF etc. datele sunt de obicei extrase din depozitul de date sau OLAP.

Dezavantaje

  • De la versiunea SQL Server 2012, interogările scrise în T-SQL nu sunt compatibile cu versiunea SQL Server 2008 sau anterioară.
  • În versiunile pe 32 de biți, SQL Server utilizează extensia ferestrei de adrese (AWE) pentru a face adrese de peste 4 GB. Acest lucru vă împiedică să utilizați gestionarea dinamică a memoriei și vă permite doar să găzduiți maximum 64 GB de memorie partajată. Această limitare este exclusivă pentru sistemele de operare pe 32 de biți; pe sistemele de operare pe 64 de biți, memoria maximă care poate fi adresată în Standard Edition este de 64 Gb, iar în Enterprise Edition 4Tb

Vezi și

Referințe

  1. Guthrie, Scott (7 martie 2016). „Se anunță SQL Server pe Linux” (html) . Microsoft (în engleză) . Arhivat din original pe 7 martie 2016 . Preluat la 3 martie 2019 .  
  2. ^ a b Domínguez, Andres Zamora (25 octombrie 2017). „Microsoft SQL Server poate fi rulat acum pe Linux GNU.” (html) . Pandora FMS (în engleză) . Arhivat din original pe 24 noiembrie 2018 . Extras 24 noiembrie 2018 . «Pe 28 decembrie 2016 – sărbătoarea Sfinților Inocenți, acea zi specială în care vorbitorii de spaniolă fac glume pe tot parcursul zilei – s-a anunțat achiziția unui membru de tip „Platinum” de către compania Microsoft ® în cadrul Linux Foundation și lansarea Microsoft SQL Server®. »  
  3. Lerner, Reuve M. „SQL Server on Linux” (html) . Ghid Geek (în engleză) . Arhivat din original pe 3 august 2017 . Extras 24 noiembrie 2018 . Dar, chiar și cel mai sceptic fan open-source trebuie să recunoască că Microsoft s-a schimbat în ultimii ani. A lansat multe instrumente și biblioteci pentru dezvoltatori ca sursă deschisă și a început să includă Linux ca platformă acceptată pentru unele dintre software-ul său. »  
  4. ^ „Pregătește-te pentru SQL Server 2017” (html) . Microsoft (în engleză) . Arhivat din original la 1 mai 2017 . Extras 24 noiembrie 2018 . „Aduceți performanța și securitatea de vârf a SQL Server în containerele Windows, Linux și Docker. »  
  5. Istoricul dezvoltării SQL Server
  6. Ce este nou în Microsoft SQL Server 7
  7. Ce este nou în Microsoft SQL Server 2000
  8. Ce este nou în SQL Server 2005
  9. Ce este nou (SQL Server 2008)
  10. Ce este nou în Microsoft SQL Server 2008 R2
  11. Ce este nou în SQL Server 2012
  12. Ce este nou în SQL Server 2014
  13. „Tot ce trebuie să știți despre licențele de server SQL și licențele CAL” . Soft trader (în engleză) . 15 septembrie 2021 . Preluat la 27 septembrie 2021 . 
  14. Caracteristici acceptate de SQL Server 2014 Editions
  15. șiruri de conexiune


Link- uri externe