SQL Server, de la zero Lecția 1 / 40

Ce este de fapt SQL Server și de ce ar trebui să-ți pese

SQL Server pe înțelesul tuturor: ce este produsul, edițiile, capcanele de licențiere și pe care s-o instalezi pe laptop astăzi.

Bun venit la lecția unu din cursul de SQL Server. Dacă citești asta într-o joi din 2026, undeva pe planetă există o instanță SQL Server veche de 20 de ani care alimentează un sistem de facturare pe care nimeni nu vrea să-l atingă. Există și un Azure SQL Database flambant nou care pornește în fundalul unei aplicații pe care probabil o folosești zilnic. SQL Server există din 1989, ceea ce în ani-software înseamnă cam o eternitate, și rulează mai multă infrastructură bancară, medicală și guvernamentală decât ar fi confortabil să știi pentru o persoană sănătoasă la cap.

Și totuși, dacă întrebi zece dezvoltatori „ce e SQL Server, mai exact?”, primești zece răspunsuri vagi care includ cuvinte precum „bază de date”, „Microsoft” și „chestia la care se conectează SSMS”. Asta nu e suficient. Așa că hai să începem de la zero.

SQL Server într-o singură propoziție

SQL Server este un motor de bază de date relațional făcut de Microsoft, care vorbește un dialect de SQL numit T-SQL și care rulează ca un serviciu Windows (sau un daemon Linux, sau un container) la care te conectezi prin rețea.

Hai să despachetăm propoziția, pentru că fiecare cuvânt își face treaba.

Motor de bază de date relațional. Stochează date în tabele cu rânduri și coloane. Tabelele se pot referenția reciproc cu chei străine. Scrii query-uri declarative în SQL („dă-mi toți clienții din Italia care au cheltuit peste 1000€ luna trecută”) și motorul se ocupă de cum ajunge la răspuns. E în contrast cu, să zicem, MongoDB (documente), Redis (key-value) sau Snowflake (un warehouse analitic columnar cu un model de execuție diferit).

T-SQL. Vine de la Transact-SQL. E dialectul SQL Server al standardului SQL, cu extensii specifice Microsoft pentru variabile, logică procedurală (IF, WHILE, TRY ... CATCH), proceduri stocate și o grămadă de funcții care nu există nicăieri altundeva (STRING_AGG, CONCAT_WS etc.). Majoritatea SQL-ului pe care-l știi din Postgres sau MySQL merge mai mult sau mai puțin. Cuvântul cheie TOP, tipul NVARCHAR, [parantezele drepte] pentru identificatori și temuta funcție IIF() sunt toate invenții T-SQL.

Un serviciu la care te conectezi prin rețea. SQL Server nu e un format de fișier ca SQLite. Nu deschizi pur și simplu un fișier .db și începi să rulezi query-uri. E un proces server care ascultă pe un port TCP (de obicei 1433), te autentifică, ține datele în memorie pentru viteză și-ți returnează rezultate. Ca să comunici cu el ai nevoie de un client: SSMS pe Windows, Azure Data Studio pe orice OS, VS Code cu extensia mssql, DBeaver dacă deja îl folosești pentru orice altceva, sau driverul de bază de date al aplicației tale.

Făcut de Microsoft, ceea ce contează. SQL Server e un produs comercial. E integrat strâns cu Windows (deși rulează și pe Linux din 2017), cu Active Directory pentru autentificare, cu Azure pentru cloud, cu PowerShell pentru automatizare, cu SSMS pentru management și cu cincisprezece ani de unelte și scripturi DBA. Dacă ești în ecosistemul Microsoft, probabil deja folosești SQL Server, fie că știi sau nu. Dacă ești în lumea Google Cloud + Python + Postgres, probabil că nu.

Familia: nu „SQL Server” ci „mai multe SQL Servere”

Când oamenii spun „SQL Server” pot însemna oricare dintre următoarele și contează care:

SQL Server (produsul on-prem)

Clasicul. Îl instalezi pe un server — fizic, VM sau container — și-l administrezi singur. Versiunile suportate în 2026: 2019, 2022 și 2025. Plătești o licență per core (mai multe despre prețuri imediat) și-l rulezi pe propriul hardware în propriul data center, sau pe un VM în Azure, AWS, sau pivnița tatălui tău.

Azure SQL Database

Versiunea cloud gestionată. Nu vezi mașina, OS-ul sau serviciul; primești doar un endpoint de bază de date. Microsoft aplică patch-uri, face backup-uri și monitorizează motorul în locul tău. Alegi un nivel de preț și plătești la oră. Majoritatea funcționalităților de pe SQL Server on-prem merg, unele nu (SQL Agent e înlocuit de Elastic Jobs, query-urile cross-database sunt limitate etc.) și există câteva funcționalități exclusive Azure pe deasupra.

Azure SQL Managed Instance

Undeva între cele două. Primești aproape întreg setul de funcționalități on-prem (inclusiv SQL Agent, query-uri cross-database, CLR), dar Microsoft administrează în continuare infrastructura de bază. Folosit mai ales de companii care migrează un parc legacy on-prem în cloud fără să rescrie totul.

SQL Server pe Azure Virtual Machines (IaaS)

Literalmente „SQL Server-ul ca produs, instalat pe un VM care se întâmplă să fie găzduit de Microsoft.” Administrezi totul mai puțin hardware-ul fizic. Există pentru migrări unde nu vrei nicio schimbare de comportament față de mediul on-prem.

Azure Synapse / Microsoft Fabric

Sunt platformele de analiză de la Microsoft care folosesc un motor de query în stil SQL Server, dar sunt produse fundamental diferite, optimizate pentru workload-uri de tip data warehouse. Vorbesc T-SQL. Nu sunt SQL Server. Dacă te trezești scriind query-uri pe Synapse Dedicated SQL Pool și un răspuns de pe Stack Overflow zice „doar folosește sp_Blitz”, n-o să meargă. Ai grijă cu ce numești „SQL Server”.

Pe parcursul cursului ne referim la SQL Server 2019+ pe orice platformă, sau Azure SQL Database și Managed Instance acolo unde funcționalitatea există. Voi semnala explicit părțile exclusiv cloud sau exclusiv on-prem când apar.

Edițiile, sau „cum vrea Microsoft să-ți cheltui banii”

În cadrul SQL Server on-prem există mai multe ediții — același motor, cu funcționalități pornite sau oprite în funcție de cât ai plătit.

Enterprise Edition. Setul complet de funcționalități. Online index rebuilds, Always On Availability Groups, compresie, partiționare-cu-tot, TDE, Query Store, Resource Governor, până la maximul OS-ului pe RAM. Preț per core și e de leșin. Aproximativ 14.000$ per core la prețul de listă pentru 2025. Un server cu două socket-uri și 32 de core-uri costă, verific notițele, cât o mașină second-hand.

Standard Edition. Majoritatea funcționalităților, unele cu restricții. RAM plafonat la 128 GB per instanță. Fără Always On Availability Groups (până când 2022 a relaxat asta), fără online index rebuilds sub Enterprise. Preț per core la aproximativ 3.500$ per core la listă. Majoritatea companiilor mici și mijlocii rulează Standard. E ok pentru 90% din workload-uri.

Web Edition. O ediție mai ieftină, gen Standard, pe care doar furnizorii de web hosting ar trebui s-o revândă. Dacă nu ești unul, n-o poți cumpăra.

Express Edition. Gratuit. Plafonat la 10 GB per bază de date, 1 socket / 4 core-uri, 1410 MB de buffer pool. Excelent pentru aplicații mici și demo-uri. Fără SQL Agent, fără backup-uri dincolo de cele manuale, fără online niciun fel. Asta ai folosi într-o mică unealtă internă.

Developer Edition. Gratuit, și are toate funcționalitățile din Enterprise. Cârligul: legal nu poți să-l folosești în producție. Există ca dezvoltatorii să învețe, să construiască și să testeze pe același set de funcționalități pe care-l vor folosi când compania lor va plăti într-un final pentru Enterprise. Asta e ediția pe care o vrei pe laptop pentru cursul ăsta. O instalăm în lecția 2.

Evaluation Edition. Un trial de 180 de zile pentru Enterprise. Există ca organizațiile mari să poată testa setul complet de funcționalități înainte de a semna licența.

Dacă citești vreodată documentația SQL Server și te întrebi „de ce tutorialul menționează Resource Governor și eu nu-l am?” — probabil ești pe Express sau Standard. Verifică SELECT @@VERSION; și o să vezi ediția chiar acolo.

Licențiere: partea pe care documentația n-o explică

Microsoft licențiază SQL Server după numărul de core-uri pentru Enterprise și Standard, cu un minim de 4 core-uri per mașină. Există un model mai vechi „Server + CAL” care încă există pentru Standard Edition, cu preț per server plus un „client access license” per utilizator sau dispozitiv. Majoritatea companiilor mari au trecut la licențierea per core pentru că cloud-ul și mașinile virtuale au făcut imposibilă auditarea per CAL.

Câteva capcane pe care merită să le știi înainte să te angajezi la Microsoft pentru următorul proiect:

  • Hyperthreading-ul contează. Pe un server fizic, fiecare core logic primește de obicei licență, ceea ce-ți dublează factura. Mașinile virtuale licențiază per vCPU alocat.
  • Azure Hybrid Benefit. Dacă deții deja licențe SQL Server cu Software Assurance, poți „aduce propria licență” în Azure și economisești semnificativ. E singurul program Microsoft care chiar economisește bani.
  • Software Assurance nu e opțional dacă vrei vreodată să folosești Always On, Power BI Report Server, stretched databases sau cluster failover. SA e taxa de abonament peste licență.
  • Developer Edition pentru dev, Express sau Standard pentru prod. Niciodată să nu pui Developer Edition în producție; e interzis contractual și auditurile de licențiere ale Microsoft nu sunt o petrecere. Express în prod e ok și legal dacă datele tale încap sub 10 GB.

Nimic din asta nu contează pentru curs. Vei instala Developer Edition pe laptop și nu vei vedea vreodată un dialog de licență. Dar dacă lucrezi într-o companie care folosește SQL Server și te-ai întrebat vreodată de ce DBA-ul tresare când cineva întreabă despre pornirea „încă unei instanțe”, e pentru că licența urmărește.

Când SQL Server e răspunsul potrivit

SQL Server e o alegere excelentă când:

  • Ai deja stack-ul Microsoft (.NET, Active Directory, servere Windows, Azure).
  • Vrei OLTP + raportare de adâncime dintr-un singur motor, fără să atașezi încă o bază de date.
  • DBA-ul tău cunoaște SQL Server și vrei să-l ții la cap.
  • Ai nevoie de funcționalități enterprise: Availability Groups, TDE, securitate granulară, audit, Query Store, Temporal Tables.
  • Construiești pe Azure și vrei o bază de date gestionată nativ cu integrare profundă în ecosistem.

SQL Server probabil nu e răspunsul potrivit când:

  • Vrei ceva gratis și nu ai nevoie de setul de funcționalități. (Postgres e alegerea evidentă.)
  • Workload-ul tău e analiză pură pe date la scară de petabyte. (Snowflake, BigQuery sau Synapse/Fabric.)
  • Ai nevoie de scrieri multi-master geo-distribuite peste continente. (Cockroach, Spanner, DynamoDB.)
  • Ești un startup de un singur om care nu vrea să mai vadă vreodată o factură de la Microsoft. (Postgres, din nou.)

Asta nu e o tiradă despre licențiere, deși cam așa sună. Răspunsul cinstit e: SQL Server e o bază de date foarte bună care costă bani reali, și ar trebui s-o folosești când banii îți cumpără ceva ce alternativele nu. Altfel folosește Postgres și bucură-te de viață.

Fă cunoștință cu Runehold, compania pentru care vei lucra

Fiecare lecție din curs folosește aceeași companie fictivă ca exemplu fir-roșu, pentru că exemplele abstracte nu se prind niciodată la fel ca cele reale.

Salută Runehold B.V. — o companie privată olandeză („besloten vennootschap”) cu sediul central în Amsterdam, fondată în 2019, având acum aproximativ 180 de angajați și venituri anuale de aproape 45 milioane €. Runehold vinde produse fizice cu temă fantastică în UE: lămpi de birou în formă de pinguin, kit-uri de spălat rufele care se împăturesc singure (prost), prosoape de bucătărie „ușor blestemate”, obiecte de colecție în ediție limitată, jocuri de societate și puzzle-uri. Depozitul central e în Poznań, Polonia, pentru că chiria e rezonabilă și curierii sunt eficienți. Există trei magazine fizice flagship — Amsterdam, Berlin, Milano — și încă două planificate pentru Paris și Madrid. Runehold vinde prin propriul site (cam 60% din venituri), prin storefront-uri Amazon/eBay UE (25%) și în magazinele fizice (15%).

Produsul de tip abonament se cheamă Runeboxes — un colet lunar curatoriat în trei nivele: Apprentice (15€/lună), Journeyman (29€/lună) și Loremaster (55€/lună). Aproximativ 22.000 de abonați activi în UE.

Echipele pe care le vei întâlni în date pe parcursul cursului:

  • Sales — clienți B2C plus un portofoliu B2B în creștere
  • Marketing — campanii plătite per țară și canal
  • Catalog — ~8.000 SKU-uri, taxonomie de produse, prețuri
  • Operations — depozit, intrări, ieșiri, inventare
  • Shipping — curieri, tracking, retururi (inclusiv coada specială „haunted returns” pentru produse care chiar se dovedesc a fi vrăjite, ceea ce se întâmplă mai des decât te-ai aștepta)
  • Retail — cele trei magazine flagship, POS în magazin
  • Customer Support — multilingv, în mare parte engleză/olandeză/germană/italiană
  • Finance — facturare, TVA (Runehold folosește EU One-Stop-Shop, mai multe despre asta mai târziu), decontări SEPA, recunoaștere de venituri
  • Engineering / Data — ăștia suntem noi
  • HR — angajați, echipe, costuri
  • Legal / Compliance — GDPR, Digital Services Act, directivele privind drepturile consumatorilor

Pe măsură ce avansează cursul, vei vedea tabele precum Sales.Order, Catalog.Product, Inventory.Stock, Shipping.Shipment, Finance.Invoice, Support.Ticket. Fiecare e o piesă din operațiunea reală a Runehold. Acronimele care fac afacerea să meargă — CAC (Customer Acquisition Cost), LTV (Lifetime Value), AOV (Average Order Value), GMV (Gross Merchandise Value), NPS (Net Promoter Score), VAT (Value Added Tax), OSS (One-Stop-Shop), SEPA (Single Euro Payments Area), SKU (Stock Keeping Unit), OTIF (On Time In Full) — vor apărea ca query-uri pe care le rulăm efectiv pe aceste date, nu ca liste de vocabular.

Asta nu e o companie de manual cu trei tabele și curcubeie. E un retailer EU cât-de-cât real cu probleme cât-de-cât reale. SQL-ul pe care-l înveți scriind query-uri pentru Runehold e SQL-ul pe care l-ai scrie la o slujbă reală.

Ce presupune cursul despre setup-ul tău

Începând cu lecția 2 vom instala SQL Server 2022 Developer Edition pe laptop (Windows, Mac sau Linux, toate suportate într-un fel sau altul) și clientul SSMS sau Azure Data Studio. Fiecare exemplu de cod din curs va rula pe o instalare obișnuită de Developer Edition dacă nu spun altceva. Câteva lecții spre final (First Responder Kit, sp_WhoIsActive, deep dive-uri în Query Store) vor beneficia opțional de o mașină puțin mai puternică sau un VM, dar poți face tot cursul pe un laptop modest.

Nu ai nevoie de experiență SQL anterioară. Cursul ăsta începe de la „ce e un tabel” și se construiește în sus, presupunând că ești o persoană înclinată tehnic care n-a lucrat niciodată cu o bază de date. Dacă deja știi SQL bine, probabil poți sări peste lecțiile 1-8 și începe la 9 (joinuri). Dacă ești la nivel intermediar și vrei doar părțile specifice SQL Server, sari la modulul 4 (indexuri). Lecțiile 37-40, Emergency Kit, merită aurul lor chiar dacă faci asta de zece ani.

Rulează asta pe propria mașină — aproape

N-ai instalat încă nimic, deci nu putem rula SQL chiar acum. Dar poți deja să-ți alegi traseul pentru lecția 2:

  • Ești pe Windows? Excelent. Vei instala SQL Server Developer Edition direct.
  • Ești pe Mac? Vei rula SQL Server într-un container Docker. Merge frumos.
  • Ești pe Linux? Aceeași abordare cu Docker, sau o instalare nativă pe Ubuntu/RHEL.
  • Vrei să sari complet peste instalarea locală? Pornește un Azure SQL Database pe nivelul gratuit. Fiecare query din curs va rula și pe el.

Toate cele patru trasee durează cam 20 de minute cap-coadă. Lecția 2 trece prin fiecare, cu o notă la final despre alegerea între SSMS și Azure Data Studio ca editor.

Ne vedem acolo.

Caută