Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 9 - Vytvoření databáze v MS SQL Management Studio

V předešlém cvičení, Řešené úlohy k 7.-8. lekci Databáze v C# - ADO.NET, jsme si procvičili nabyté zkušenosti z předchozích lekcí.

Dnes si v C# .NET tutoriálu vytvoříme databázi, se kterou budeme po zbytek kurzu komunikovat.

Vytvoření databáze

Způsobů, jak databázi vytvořit, je mnoho. Jako nástroj můžeme používat buď SQL Server Management Studio nebo přímo Visual Studio. Jako jednodušší způsob se mi zdá vytvořit databázi přímo v Management Studiu, jelikož u Visual Studia je více postupů a ještě se liší podle verzí. Vytvoříme si databázi na serveru, který máme nainstalovaný na našem počítači. Po nainstalování SQL Serveru spustíme nástroj SQL Server Configuration Manager.

SQL Server Configuration Manager

Aplikace slouží ke zjištění a konfigurování běžících služeb. Okno aplikace vypadá následovně:

Microsoft SQL Server Configuration Manager - Databáze v C# - ADO.NET

Vidíme zde běžící služby, měli byste vidět váš SQL Server, který jsme nainstalovali (a také při instalaci pojmenovali). Můj má název MSSQLSERVER2008. Pokud má stav "Stopped", zapněte jej. Nyní jsme se tedy přesvědčili, že je server na daném stroji přítomen a že je běží.

Nyní spustíme SQL Server Management Studio.

SQL Server Management Studio

Aplikace je administračním nástrojem, ve které budeme navrhovat strukturu databáze a také pracovat s jejím obsahem (tedy s uloženými daty).

Jako první nás Management Studio vyzve k zadání údajů pro připojení k databázi. Jako jméno serveru zadáme localhost\JMENO_VASEHO_SERVERU, u mne tedy localhost\MSSQLSERVER2008. Po kliknutí na Connect se k serveru připojíme.

V levé části aplikace vidíme Object Explorer, kde se zobrazila stromová struktura našeho serveru. Rozbalíme položku Databases, vy zde pravděpodobně budete mít pouze složku se systémovými databázemi, já zde mám již několik databází z různých projektů. Na položku Databases klikneme pravým tlačítkem a zvolíme New database.

Vytvoření nové databáze v MS SQL Management Studio - Databáze v C# - ADO.NET

Jelikož naše testovací aplikace pro práci s databází bude jednoduchý slovníček, databázi pojmenujeme SlovnicekDB.

Vytvoření nové databáze v MS SQL Management Studio - Databáze v C# - ADO.NET

Databáze se objeví v Object Exploreru, rozbalíme ji a stejně tak její položku Tables, kde máme opět jen systémové tabulky.

O tabulkách již byla řeč minule, víme, že takto se data do relační databáze ukládají (relační databáze se používají téměř všude, nerelační jsou výjimkou). Budeme chtít ukládat slovíčka do naší databáze ke slovníčku. Nejprve musíme vytvořit novou tabulku, kde definujeme sloupce, tedy vlastnosti, jaké slovíčko má. Na položku Tables klikneme pravým tlačítkem a zvolíme možnost New Table.

Vytvoření nové tabulky v MS SQL Management Studio - Databáze v C# - ADO.NET

Jak již bylo nastíněno, každá položka v databázi (tedy řádek v tabulce) by měla mít unikátní identifikátor (sloupec, ve kterém je pro každý řádek hodnota jedinečná). K tomuto účelu slouží tzv. primární klíč. Je to obyčejný sloupec, který se nejčastěji pojmenuje jednoduše Id a bude typu int. Názvy sloupců budeme psát s velkým počátečním písmenem.

Ačkoli doteď jsem se snažil psát ukázkové aplikace v češtině, databázi si navrhneme v angličtině. To proto, že ke konci kurzu budeme používat technologie, které skloňují názvy tabulek a umí samozřejmě jen anglicky.

Dále přidáme další 2 sloupce: Czech a English. Jedná se o znění slovíčka v češtině a v angličtině. Sloupce budou typu nvarchar(50). Jedná se o řetězec znaků kde 50 je maximální počet znaků. Neplést s typem nchar, kde se nejedná o maximální velikost, ale text je vždy dlouhý 50 znaků. Ještě existují typy char a varchar (bez n), ty nepodporují kódování Unicode. Pro krátký text budeme tedy vždy používat typ nvarchar. Nakonec přidáme poslední sloupec Difficulty, značící obtížnost slovíčka. Bude typu int.

Pokud vás napadla podobnost databázové tabulky a třídy v jazyce C#, tak máte pravdu. Definice tabulky je téměř totožná s definicí třídy, jednoduše navolíme atributy co daná entita má. Řádky zapsané v tabulce poté můžeme chápat jako jednotlivé instance třídy. Tvoříme tedy jakoby třídu Word (slovíčko), která má vlastnosti Id, Czech (české znění) a English (anglické znění). Takto budeme ve výsledku s databází i pracovat, ale nepředbíhejme. Vraťme se ještě ke sloupci Id, ten označme a vyberme dole v Column properties možnost Is Identity (je třeba rozbalit Identity Specification), kterou nastavíme na Yes.

Vytvoření nové tabulky v MS SQL Management Studio - Databáze v C# - ADO.NET

Tím jsme určili, že sloupec Id je vždy unikátní. Management Studio nám samo nastavilo i hodnoty Identity Increment a Identity Seed na 1. To znamená, že první slovíčko v tabulce bude mít hodnotu Id 1, druhé 2 atd., databáze přiřadí automaticky každému nově vloženému slovíčku o 1 vyšší Id, o unikátnost se nám tedy stará sama. Id rostou stále, i když nějaké slovíčko vymažeme a Id se tedy uvolní, již nebude použito. Je to z toho důvodu, že recyklace starých Id může způsobit problémy. Takto nastavený sloupec můžeme nastavit jako primární klíč pro naši novou tabulku. Uděláme to jednoduše pravým kliknutím na název sloupce a zvolením možnosti Set primary key.

Nastavení primárního klíče tabulky v MS SQL Management Studio - Databáze v C# - ADO.NET

Každá tabulka by měla mít primární klíč, jinak nebudeme schopni jednoznačně určit konkrétní záznam a některé technologie (např. LINQ to SQL) by s tabulkou ani neuměly pracovat.

Nakonec zavřeme kartu s editorem tabulky a budeme dotázáni, zda ji chceme uložit. To samozřejmě potvrdíme a tabulku pojmenujeme Word (jako slovíčko). Tabulky pojmenováváme opět velkým písmenem a v jednotném čísle, jako by to byla třída.

Vytvoření nové tabulky v MS SQL Management Studio - Databáze v C# - ADO.NET

Databázi máme tímto založenou. Vytvořme si ještě nějaká testovací data, aby nebyla prázdná. Na tabulku klikneme pravým tlačítkem a zvolíme Edit top 200 rows (je možné, že se popisek této volby liší podle verze Management Studia).

Vložení dat do tabulky v SQL Management Studio k MS-SQL databázi - Databáze v C# - ADO.NET

Nyní jen vložíme několik slovíček, Id se vyplňuje samo, stačí tedy zadat českou a anglickou variantu a obtížnost. Já jsem si jich přidal jen několik, vy si jich klidně naklikejte více s různými obtížnostmi, ať máte co nejvíce dat na zkoušení.

Vložení dat do tabulky v SQL Management Studio k MS-SQL databázi - Databáze v C# - ADO.NET

Rozšíření

Pokud vás tvorba databáze příliš neodrovnala (což by neměla :) ), můžete si do ní přidat ještě druhou tabulku. Díky tomu si budeme moci dále ukázat i pokročilejší dotazy přes více tabulek. Pokud chcete začít raději jednoduše, můžete tento krok přeskočit stejně jako pár dále ukázaných dotazů.

Přidejte si stejným způsobem tabulku Category, která bude reprezentovat kategorii slovíček. Opět jí dáme sloupec Id, kterému nastavíme Identity na Yes a poté ho učiníme primárním klíčem. Co se týče dalších sloupců, bude zde pouze jeden opět typu nvarchar(50) s názvem Title. To bude titulek kategorie (např. "Počítače", "Zvířata" nebo "Ostatní"). Tabulku uložíme jako Category.

Založení DB tabulky v SQL Management Studio - Databáze v C# - ADO.NET

Opět vytvoříme testovací data:

Naplnění DB tabulky v SQL Management Studio - Databáze v C# - ADO.NET

Nyní přidáme slovíčku vazbu na kategorii, které se někdy říká cizí klíč nebo relace. Vraťme se k naší tabulce Word a přidejme ji ještě jeden sloupec s názvem CategoryId. Bude typu int. V Column Properties mu nastavíme Default Value or Bind na 1. To je výchozí hodnota. Klikneme na něj pravým tlačítkem a z menu zvolíme Relationships...

Relace v SQL Management Studio - Databáze v C# - ADO.NET

V nově otevřeném okně pomocí tlačítka Add přidáme nový vztah (relaci). V položce Tables And Columns Specification klikneme na tlačítko se třemi tečkami. Zde nastavíme, že se tabulka Word pomocí sloupce CategoryId připojí na primární klíč tabulky Category, kterým je Id. Potvrdíme.

Cizí klíč v SQL Management Studio - Databáze v C# - ADO.NET

Nyní databáze ví, že pokud je např. u slovíčka ve sloupci CategoryId hodnota 1, váže se k první kategorii. Vše uložíme (pravým na záložku a Save). Znovu editujte záznamy v tabulce Word a slovíčkům nastavte kategorii:

Vložení dat do tabulky v SQL Management Studio k MS-SQL databázi - Databáze v C# - ADO.NET

Číslo je samozřejmě primární klíč do tabulky Category, 1 tedy odpovídá záznamu "Počítače", 2 "Zvířata" a 3 "Ostatní".

V následujícím kvízu, Kvíz - Odpojená ap., SQL dotazy, Manag. Studio v C#-ADO.NET , si vyzkoušíme nabyté zkušenosti z předchozích lekcí.


 

Předchozí článek
Řešené úlohy k 7.-8. lekci Databáze v C# - ADO.NET
Všechny články v sekci
Databáze v C# - ADO.NET
Přeskočit článek
(nedoporučujeme)
Kvíz - Odpojená ap., SQL dotazy, Manag. Studio v C#-ADO.NET
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
96 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity