NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Lekce 1 - MS-SQL krok za krokem: Úvod do MS-SQL a příprava prostředí

Vítejte u prvního dílu kurzu tutoriálů k databázi Microsoft SQL Server, zkráceně MS-SQL. Kurz je určen pro všechny, co se ještě s databázemi nesetkali a potřebují s nimi pracovat ať již samostatně nebo v programovacím jazyce nebo frameworku (například v ASP.NET Core na webu nebo v C# formulářové aplikaci). Smyslem je naučit vás základy jazyka T-SQL (MS-SQL), které jsou podobné i ve všech jiných SQL databázích (MS-SQL, MySQL, SQLite, ...). Postupně si ukážeme vytváření tabulek, vkládání dat, jejich modifikaci a nakonec i výběr, vyhledávání a komplikovanější dotazy přes více tabulek.

Pracovat budeme pouze se samotnou databází a bez dalšího programovacího jazyka. Nebude to ale tak suché, jak to zní, protože budeme používat Visual Studio. Ukážeme si, jak věci naklikat (ty které jdou) a jak to samé zapsat i jako T-SQL dotaz. Z grafického rozhraní hezky pochopíte co přesně děláte a poté si to spojíte s SQL příkazem:

Po dokončení tohoto seriálu budete schopni pracovat s databází na takové úrovni, abyste dokázali vytvořit jednoduchý redakční systém nebo podobnou aplikaci.

Minimální požadavky

Pro tento kurz není třeba žádných speciálních dovedností, vše si postupně ukážeme a vysvětlíme. Stačí běžná práce s počítačem :)

Relační databáze

MS-SQL je tzv. relační databáze. Tento pojem označuje databázi založenou na tabulkách. Každá tabulka obsahuje položky jednoho typu. Můžeme mít tedy tabulku uzivatele, další tabulku clanky a další třeba komentare.

Databázovou tabulku si můžeme představit třeba jako tabulku v Excelu. Tabulka uzivatele by mohla vypadat asi takto:

Jméno Příjmení Datum narození Počet článků
Jan Novák 11.3.1984 17
Tomáš Marný 1.2.1989 6
Josef Nový 20.12.1972 9
Michaela Slavíková 14.8.1990 1

Položky (konkrétně zde uživatele) ukládáme na jednotlivé řádky, sloupce pak označují atributy (vlastnosti, chcete-li), které položky mají. MS-SQL databáze je typovaná, to znamená, že každý sloupec má pevně stanovený datový typ (číslo, znak, krátký text, dlouhý text, datum...) a může obsahovat hodnoty jen tohoto typu. Pokud chceme s relační databází rozumně pracovat, každý řádek v tabulce by měl být opatřený unikátním identifikátorem. U uživatelů by to mohlo být třeba rodné číslo, mnohem častěji se však používají identifikátory umělé a to tak, že uživatele prostě očíslujeme. K tomu se dostaneme později.

Slovo relační označuje vztah (anglicky relation). Ten je mezi tabulkami nebo mezi entitami v jedné tabulce. To si ale necháme na jindy a zatím budeme pracovat jen s jednou tabulkou zároveň.

RDBMS

Možná vás napadlo, k čemu vlastně potřebujeme nějakou databázi. Data bychom stejně dobře mohli ukládat do nějakých textových souborů, binárek, XML nebo něčeho podobného. Určitě by to nějak fungovalo, nebo ne?

Označení databáze je vlastně nepřesné a v odborné literatuře se setkáme s označením RDBMS (Relation DataBase Management System). Česky je to přeloženo jako "systém řízení báze dat", což zní opravdu hrozně a proto budu dále používat označení databázový stroj nebo RDBMS. Databázový stroj (tedy zde MS-SQL) není jen úložiště dat. Jedná se o velmi sofistikovaný a odladěný nástroj, který za nás řeší spoustu problémů a zároveň je extrémně jednoduchý k použití. S databází totiž komunikujeme jazykem SQL, kterým jsou v podstatě lidsky srozumitelné věty. Jazyk databáze MS-SQL je T-SQL, T označuje transact, protože podporuje transakce, ale to až dále.

Spolu s ukládáním dat je ale třeba dále řešit mnoho dalších věcí. Asi by nás napadlo například zabezpečení nebo optimalizace výkonu. RDBMS toho ale dělá ještě mnohem více. Řeší za nás problém současné editace stejné položky několika uživateli ve stejný okamžik, který by jinak mohl zapříčinit nekonzistenci databáze. RDBMS data v tomto případě zamkne a odemkne až po vykonání zápisu. Dále umožňuje spojovat několik dotazů do transakcí, kdy se série dotazů vykoná vždy celá nebo vůbec. Nestane se, že by se vykonala jen část. Tyto vlastnosti databázového stroje jsou shrnovány zkratkou ACID, pojďme si ji vysvětlit.

ACID

ACID je akronym slov Atomicity (nedělitelnost), Consistency (validita), Isolation (izolace) a Durability (trvanlivost). Jednotlivé složky mají následující význam:

  • Atomicity – Operace v transakci se provedou jako jedna atomická (nedělitelná) operace. Tzn. že pokud nějaká část operace selže, vrátí se databáze do původního stavu a žádné části transakce nebudou provedeny. Reálný příklad je například převod peněz na bankovním účtu. Pokud se nepodaří peníze odečíst z jednoho účtu, nebudou ani připsány na účet druhý. Jinak by byla databáze v nekonzistentním stavu. Pokud bychom si práci s daty řešili sami, mohlo by se nám toto velmi jednoduše stát.
  • Consistency – Stav databáze po dokončení transakce je vždy konzistentní, tedy validní podle všech definovaných pravidel a omezení. Nikdy nenastane situace, že by se databáze nacházela v nekonzistentním stavu.
  • Isolation – Operace jsou izolované a navzájem se neovlivňují. Pokud se sejde v jeden okamžik více dotazů na zápis do stejného řádku, jsou vykonávány postupně, jako ve frontě.
  • Durability – Všechna zapsaná data jsou okamžitě zapsána na trvanlivá úložiště (na pevný disk), v případě výpadku el. energie nebo jiného přerušení provozu RDBMS vše zůstane tak, jak bylo těsně před výpadkem.

Databáze (přesněji databázový stroj) je tedy černá skříňka, se kterou naše aplikace komunikuje a do které ukládá veškerá data. Její použití je velmi jednoduché a je odladěna tak, jak bychom si sami zápis dat v programu asi těžko udělali. Vůbec se nemusíme starat o to, jak jsou data fyzicky uložena, s databází komunikujeme pomocí jednoduchého dotazovacího jazyka SQL, viz dále. V dnešní době se vůbec nevyplatí zatěžovat se otázkou ukládání dat, jednoduše sáhneme po hotové databázi, kterých je obrovský výběr a jsou většinou zadarmo. O databázi občas hovoříme jako o 3. vrstvě aplikace (1. vrstva je uživatelské rozhraní, 2. vlastní logika aplikace, 3. je právě datová vrstva).

LocalDB vs. Microsoft SQL Server

V tomto kurzu budeme pracovat s odlehčenou verzí MS-SQL databází zvanou LocalDB. Jedná se o tzv. lokální databázi, tedy databázi, která je tvořena pouze jedním souborem. Lze ji tak snadno přenášet a nemusí nám na našem počítači běžet komplexní služba. Tato databáze se nejčastěji používá při vývoji aplikace a ve finální verzi je nahrazena.

S LocalDB budeme pracovat pomocí populárního IDE Visual Studio. IDE je zkratka pro Integrated Development Environment (integrované vývojové prostředí) a jednoduše řečeno se jedná o aplikaci, ve které píšeme zdrojový kód nebo spravujeme databáze a pomocí které potom naši aplikaci testujeme a ladíme.

Alternativně lze použít také plnohodnotný Microsoft SQL Server, ke kterému si lze doinstalovat ještě administrační nástroj SQL Server Management Studio pro tvorbu samotné databáze. Toto řešení se ovšem používá spíše na serverech a pro naše potřeby je příliš složité.

Příprava Visual Studia

Potřebovat tedy budeme pouze Visual Studio ve verzi 2022 nebo novější. To lze použít ve variantě Community, která je úplně zadarmo.

Pokud vlastníte Mac, je prvně nutné nainstalovat virtuální Windows a další postup provádět v nich.

Pokud Visual Studio ještě instalované nemáme, stáhneme u možnosti Community příslušný instalační soubor z oficiálních stránek Microsoftu a spustíme:

Stažení Visual Studio Community - MS-SQL databáze krok za krokem

Po chvilce se nám spustí Visual Studio Installer.

Pokud už Visual Studio máte z dřívějška, otevřete si Visual Studio Installer, najděte vámi používanou instalaci Visual Studia a zvolte Změnit (Modify).

Nejprve se ujistíme, že máme zaškrtnutou sadu Ukládání a zpracování dat (Data storage and processing), je třeba na obrazovce zajet kousek dolů:

Výběr sady ve Visual Studio Installer - MS-SQL databáze krok za krokem

Dále se přesuneme do záložky Jednotlivé komponenty (Individual components), kde si ověříme, že máme přidanou komponentu SQL Server Express LocalDB, např SQL Server Express 2025 LocalDB, verze se může lišit:

Výběr LocalDB ve Visual Studio Installer - MS-SQL databáze krok za krokem

Visual Studio je vhodné používat v anglickém jazyce. Usnadní nám to orientaci v dokumentaci a návodech, které jsou rovněž v angličtině. V další záložce Jazykové sady (Language packs) si proto před spuštěním instalace přidáme angličtinu, pokud ji ještě nemáme:

Výběr angličtiny ve Visual Studio Installer - MS-SQL databáze krok za krokem

Instalaci spustíme kliknutím na tlačítko Instalovat (Install), případně Změnit (Modify).

Po instalaci

Pokud se Visual Studio po instalaci neotevřelo, spustíme si jej. Možnost přihlášení můžeme klidně přeskočit:

Visual Studio přihlášení - MS-SQL databáze krok za krokem

Poté zvolíme režim zobrazení, v němž budeme pracovat, a Visual Studio spustíme:

Visual Studio barevný režim a spuštění - MS-SQL databáze krok za krokem

Zobrazí se nám standardní úvodní obrazovka.

Nastavení angličtiny

Jestliže Visual Studio nemáme v angličtině, zvolíme Pokračovat bez kódu:

Úvodní obrazovka Visual Studia v češtině - MS-SQL databáze krok za krokem

Dále si otevřeme nastavení přes nabídku Nástroje a položku Možnosti...:

Zobrazení nastavení Visual Studia - MS-SQL databáze krok za krokem

Zde přejdeme do sekce ProstředíMezinárodní nastavení, kde si jako Jazyk zvolíme English:

Změna jazyka ve Visual Studiu - MS-SQL databáze krok za krokem

Změnu potvrdíme tlačítkem OK, vypneme Visual Studio a znovu jej spustíme:

Úvodní obrazovka Visual Studia v angličtině - MS-SQL databáze krok za krokem

Tím máme naše vývojové prostředí připravené.

Než se pustíte do čtení příští lekce, MS-SQL krok za krokem: Vytvoření databáze a tabulky, připravte si Visual Studio :)


 

Všechny články v sekci
MS-SQL databáze krok za krokem
Přeskočit článek
(nedoporučujeme)
MS-SQL krok za krokem: Vytvoření databáze a tabulky
Článek pro vás napsal Michal Žůrek - misaz
Avatar
Uživatelské hodnocení:
716 hlasů
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.
Aktivity