NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

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

V dnešním Databáze - ADO.NET tutoriálu založíme databázi v nástroji SQL Server Management Studio. Vytvoříme si dvě tabulky, na kterých si ukážeme dotazy přes více tabulek.

SQL Server

Způsobů, jak databázi vytvořit, je mnoho. Jako nástroj můžeme použít buď SQL Server Management Studio nebo přímo Visual Studio. My si zkusíme vytvořit databázi v nástroji Management Studio. Vytvoříme si databázi na serveru, který máme nainstalovaný na našem počítači nebo SQL Server si nyní nainstalujeme a pojmenujeme ho SQLEXPRESS. Poté spustíme nástroj SQL Server Configuration Manager.

SQL Server Configuration Manager

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

Databáze ve VB.NET - ADO.NET

Vidíme zde běžící služby, včetně našeho SQL Serveru, který jsme nainstalovali a pojmenovali jako SQLEXPRESS. Pokud má náš SQL Server stav Stopped, zapneme jej. Nyní jsme se tedy přesvědčili, že je server na daném stroji přítomen a že již běží. Nyní spustíme SQL Server Management Studio.

SQL Server Management Studio

Aplikace SQL Server Management Studio je administračním nástrojem, ve kterém budeme navrhovat strukturu databáze a také pracovat s uloženými daty.

Připojení k serveru

Jako první nás Management Studio vyzve k zadání údajů pro připojení k serveru, kde v políčku:

  • Server type vybereme Database Engine,
  • Server name zadáme Název_zařízení\JMENO_VASEHO_SERVERU, například: DESKTOP-MN76PU6\SQLEXPRESS,
  • Authentication vybereme Windows Authentication.

Po kliknutí na tlačítko Connect se k serveru připojíme:

Databáze ve VB.NET - ADO.NET

Založení Databáze

V levé části aplikace vidíme okno Object Explorer, ve kterém vidíme stromovou strukturu našeho serveru. Rozbalíme položku DESKTOP-MN76PU6\SQLEXPRESS -> Databases. Na položku Databases klikneme pravým tlačítkem a zvolíme New database:

Databáze ve VB.NET - ADO.NET

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

Databáze ve VB.NET - ADO.NET

Databáze se objeví v okně Object Explorer. Rozbalíme ji a stejně tak její položku Tables, kde zatím máme jen systémové tabulky.

V relačních databázích se data ukládají do tabulek.

Založení tabulky

Do databáze budeme chtít ukládat slovíčka našeho slovníčku. Nejprve musíme vytvořit novou tabulku. Na položku Tables klikneme pravým tlačítkem a zvolíme možnost New -> Table...:

Databáze ve VB.NET - ADO.NET
Vložení sloupce pro primární klíč

Nyní si do tabulky vložíme primární klíč.

Každá položka v databázi, tedy řádek v tabulce, by měla mít unikátní identifikátor. To je sloupec, ve kterém je pro každý řádek hodnota jedinečná. Právě k tomuto účelu slouží primární klíč.

My si teď takový primární klíč do tabulky vložíme jako první sloupec. Do políčka:

  • Column Name napíšeme název sloupce Id,
  • Data Type vložíme datový typ int,
  • Allow Null necháme nezaškrtnuté.
Vložení dalších sloupců

Do tabulky si dále přidáme další tři sloupce s názvy:

  • Czech, typu nvarchar(50) pro české znění slovíčka,
  • English, typu nvarchar(50), pro anglické znění slovíčka,
  • Difficulty, typu int pro obtížnost slovíčka.

Po zápisu sloupců vypadá tabulka takto:

Databáze ve VB.NET - ADO.NET

Typ nvarchar(50) označuje řetězec znaků, kde 50 je maximální počet znaků. Nepleťme si typ nvarchar s typem nchar. U typu nchar se nejedná o maximální velikost, ale text by byl vždy dlouhý 50 znaků. Ještě existují typy char a varchar (bez n), které nepodporují kódování Unicode, a proto je nebudeme používat. Pro krátký text budeme tedy vždy používat typ nvarchar.

Definice tabulky je téměř totožná s definicí třídy, jednoduše navolíme atributy, které 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.

Unikátnost primárního klíče Id

Vraťme se ještě ke sloupci Id. Označme ho a vyberme dole v okně Column properties, v rozbalovacím seznamu Identity Specification, možnost Is Identity, kterou nastavíme na Yes:

Databáze ve VB.NET - 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, uvolněné Id již nebude použito. Je to z toho důvodu, že recyklace starých Id může způsobit problémy.

Nastavení primárního klíče

Sloupec Id nyní nastavíme 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:

Databáze ve VB.NET - ADO.NET

Každá tabulka by měla mít primární klíč, abychom byli schopni jednoznačně určit konkrétní záznam. Některé technologie (např. Entity Framework) primární klíč vyžadují.

Pojmenování tabulky

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:

Databáze ve VB.NET - ADO.NET

Tabulky pojmenováváme velkým písmenem a v jednotném čísle, jako by to byla třída.

Testovací data tabulky Word

Tabulku máme tímto založenou. Potřebujeme ještě nějaká testovací data. Na tabulku Word klikneme pravým tlačítkem a zvolíme Edit top 200 rows:

Databáze ve VB.NET - ADO.NET

Nyní jen vložíme několik slovíček. Id se vyplňuje samo, stačí tedy zadat českou, anglickou variantu a obtížnost:

Databáze ve VB.NET - ADO.NET

Založení tabulky Category

Přidejme si ještě druhou tabulku, díky které si budeme moci ukázat i pokročilejší dotazy přes více tabulek.

Vložení sloupců

Do druhé tabulky opět vložíme sloupec Id, kterému nastavíme Identity na True, a také 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) a s názvem Title. To bude titulek kategorie (např. Počítače, Zvířata nebo Ostatní):

Databáze ve VB.NET - ADO.NET

Tabulku uložíme a pojmenujeme Category.

Testovací data tabulky Category

Do tabulky Category vložíme testovací data:

Databáze ve VB.NET - ADO.NET

Tabulka Word

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 okně Column Properties, v políčku Default Value or Bind, mu nastavíme hodnotu 1:

Databáze ve VB.NET - ADO.NET

Nyní klikneme pravým tlačítkem na sloupec CategoryId a z menu zvolíme Relationships...:

Databáze ve VB.NET - 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 ...:

Databáze ve VB.NET - ADO.NET

Zde nastavíme, že se tabulka Word pomocí sloupce CategoryId připojí na primární klíč tabulky Category, kterým je Id a potvrdíme:

Databáze ve VB.NET - 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 kliknutím pravým tlačítkem na záložku a pak na tlačítko Save. Znovu editujme záznamy v tabulce Word a slovíčkům nastavme kategorii:

Databáze ve VB.NET - ADO.NET

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

V následujícím kvízu, Kvíz - SqlDataReader, DataSet, SqlDataAdapter ve VB-ADO.NET, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.


 

Předchozí článek
Řešené úlohy k 8.-10. lekci Databáze ve VB.NET - ADO.NET
Všechny články v sekci
Databáze ve VB.NET - ADO.NET
Přeskočit článek
(nedoporučujeme)
Kvíz - SqlDataReader, DataSet, SqlDataAdapter ve VB-ADO.NET
Článek pro vás napsal Stanislav Zita
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
Aktivity