Un sistem SQL Server poate fi implementat ca şi un sistem client-server sau ca şi sistem desktop ,stand-alone'. Tipul sistemului ce urmează a fi proiectat depinde de numărul de useri care accesează baza de date simultan şi de operaţiile pe care le efectuează.
Sistemul client-server
Sistemul client-server poate face parte din arhitectura 2-tier sau 3-tier. Software-ul SQL Server, independent de arhitecura, se afla pe un calculator centrat numit server de baze de date. Utilizatorii au calculatoare separate numite clienţi. În cazul sistemelor 2-tier, utilizatorii accesează serverul bazei de date prin aplicaţiile de pe calculatoarele client, iar În cazul sistemului 3-tier, prin aplicaţiile care rulează pe un calculator separat.
În special, în sistemele 2-tier, aplicaţia rulată de către clienţi acceseză direct serverul bazei de date prin intermediul reţelei. De asemenea clientul rulează codul de business logic şi codul pentru returnarea rezultatelor. Acest tip de client este cunoscut sub numele de ,thick client' . Sistemul 2-tier este eficient atunci când există un număr mic de utilizatori, deoarece fiecare conexiune necesită un volum mare de resurse ale sistemului. La creşterea numărului conexiunilor utlizator, performanţa sistemului va scădea şi atunci este preferabila folosirea unui sistem 3-tier.
Arhitectura 3-tier implică existenţa unui server de aplicaţie. În acest tip de sistem calculatoarele client rulează codul de pe serverul de aplicaţie si apoi returnează rezultatele. Clientul se numeşte în acest caz ,thin client'. Serverul de aplicaţie rulează o alicaţie pentru a realiza business logic; această aplicaţie este multithreaded, rezultatul revenind clientului.
Avantajul sistemului 3-tier este acela că permite serverului de aplicaţie să organizeze conexiunile clienţilor la serverul bazei de date. Astfel nu se pierd resurse deoarece clienţii nu au posibilitatea de a-şi realiza singuri conexiunea. Conceptul acesta se numeşte ,connection pooling' . Cerinţele clientului sunt puse într-o coadă de aşteptare, pentru eliberarea conexiunii. Odată ce s-a eliberat conexiunea, se va folosi următoarea cerere din coadă. Numărul conexiunilor care aşteaptă în coadă poate fi limitat. Se va elimina astfel necesitatea pentru un număr mare de conexiuni care epuizează rapid resursele sistemului şi scad performanţele.
Sistemul desktop
MS SQL Server poate fi folosit ca şi server de baye de date ,stand-alone' care rulează pe un calculator desktop sau un laptop. Aplicaţia clientului rulează pe acelaşi calculator pe care se stochează motorul SQL Server şi bazele de date. În sistem este implicat doar un singur calculator, clientul conectându-se local la serverul bazei de date.
Sistemul desktop este folositor în cazul în care un singur utilizator accesează baza de date sau mai multi utilizatori care folosesc calculatorul accesează baza de date în momente diferite de timp.
Fiecare instanţă a SQL Server deţine patru baze de date sistem: master, model, tempdb şi 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.