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í.

9. diel - Vytvorenie databázy v MS SQL Management Studio

V minulej lekcii, Databáza vo VB.NET - DataSet a SqlDataAdapter , sme sa zoznámili, ako sa s databázou komunikuje pomocou tried DataSet a SqlDataAdapter.

V dnešnom Databáze-ADO.NET tutoriálu založíme databázu v nástroji SQL Server Management Studio. Vytvoríme si dve tabuľky, na ktorých si ukážeme otázky cez viac tabuliek.

SQL Server

Spôsobov, ako databázu vytvoriť, je mnoho. Ako nástroj môžeme použiť buď SQL Server Management Studio alebo priamo Visual Studio. My si skúsime vytvoriť databázu v nástroji Management Studio. Vytvoríme si databázu na serveri, ktorý máme nainštalovaný na našom počítači alebo SQL Server si teraz nainštalujeme a pomenujeme ho SQLEXPRESS. Potom spustíme nástroj SQL Server Configuration Manager.

SQL Server Configuration Manager

Aplikácia SQL Server Configuration Manager slúži na zistenie a konfigurovanie bežiacich služieb. Okno aplikácie vyzerá nasledovne:

Databáza vo VB.NET - ADO.NET

Vidíme tu bežiace služby, vrátane nášho SQL Serveru, ktorý sme nainštalovali a pomenovali ako SQLEXPRESS. Ak má náš SQL Server stav Stopped, zapneme ho. Teraz sme sa teda presvedčili, že je server na danom stroji prítomný a že už beží. Teraz spustíme SQL Server Management Studio.

SQL Server Management Studio

Aplikácia SQL Server Management Studio je administračným nástrojom, v ktorom budeme navrhovať štruktúru databázy, a tiež pracovať s uloženými dátami.

Pripojenie k serveru

Ako prvá nás Management Studio vyzve na zadanie údajov pre pripojenie k serveru, kde v políčku:

  • Server type vyberieme Database Engine,
  • Server name zadáme Název_zařízení\JMENO_VASEHO_SERVERU, napríklad: DESKTOP-MN76PU6\SQLEXPRESS,
  • Authentication vyberieme Windows Authentication.
Po kliknutí na tlačidlo Connect sa k serveru pripojíme:
Databáza vo VB.NET - ADO.NET

Založenie Databáza

V ľavej časti aplikácie vidíme okno Object Explorer, v ktorom vidíme stromovú štruktúru nášho servera. Rozbalíme položku DESKTOP-MN76PU6\SQLEXPRESS -> Databases. Na položku Databases klikneme pravým tlačidlom a zvolíme New database:

Databáza vo VB.NET - ADO.NET

Keďže naša testovacia aplikácia pre prácu s databázou bude jednoduchý slovníček, databázu pomenujeme SlovnicekDB:

Databáza vo VB.NET - ADO.NET

Databáza sa objaví v okne Object Explorer. Rozbalíme ju a rovnako tak jej položku Tables, kde zatiaľ máme len systémové tabuľky.

V relačných databázach sa dáta ukladajú do tabuliek.

Založenie tabuľky

Do databázy budeme chcieť ukladať slovíčka nášho slovníčka. Najprv musíme vytvoriť novú tabuľku. Na položku Tables klikneme pravým tlačidlom a zvolíme možnosť New -> Table...:

Databáza vo VB.NET - ADO.NET
Vloženie stĺpca pre primárny kľúč

Teraz si do tabuľky vložíme primárny kľúč.

Každá položka v databáze, teda riadok v tabuľke, by mala mať unikátny identifikátor. To je stĺpec, v ktorom je pre každý riadok hodnota jedinečná. Práve na tento účel slúži primárny kľúč.

My si teraz takýto primárny kľúč do tabuľky vložíme ako prvý stĺpec. Do políčka:

  • Column Name napíšeme názov stĺpca Id,
  • Data Type vložíme dátový typ int,
  • Allow Null necháme nezaškrtnuté.
Vloženie ďalších stĺpcov

Do tabuľky si ďalej pridáme ďalšie tri stĺpce s názvami:

  • Czech, typu nvarchar(50) pre slovenské znenie slovíčka,
  • English, typu nvarchar(50), pre anglické znenie slovíčka,
  • Difficulty, typu int pre obtiažnosť slovíčka.
Po zápise stĺpcov vyzerá tabuľka takto:
Databáza vo VB.NET - ADO.NET

Typ nvarchar(50) označuje reťazec znakov, kde 50 je maximálny počet znakov. Nepleťme si typ nvarchar s typom nchar. Pri type nchar sa nejedná o maximálnu veľkosť, ale text by bol vždy dlhý 50 znakov. Ešte existujú typy char a varchar (bez n), ktoré nepodporujú kódovanie Unicode, a preto ich nebudeme používať. Pre krátky text budeme teda vždy používať typ nvarchar.

Definícia tabuľky je takmer totožná s definíciou triedy, jednoducho navolíme atribúty, ktoré daná entita má. Riadky zapísané v tabuľke potom môžeme chápať ako jednotlivé inštancie triedy. Tvoríme teda akoby triedu Word (slovíčko), ktorá má vlastnosti Id, Czech (české znenie) a English (anglické znenie). Takto budeme vo výsledku s databázou aj pracovať.

Unikátnosť primárneho kľúča Id

Vráťme sa ešte k stĺpcu Id. Označme ho a vyberme dole v okne Column properties, v rozbaľovacom zozname Identity Specification, možnosť Is Identity, ktorú nastavíme na Yes:

Databáza vo VB.NET - ADO.NET

Tým sme určili, že stĺpec Id je vždy unikátny. Management Studio nám samo nastavilo aj hodnoty Identity Increment a Identity Seed na 1. To znamená, že prvé slovíčko v tabuľke bude mať hodnotu Id 1, druhé 2 atď... . Databáza priradí automaticky každému novo vloženému slovíčku o 1 vyššiu Id, o unikátnosť sa nám teda stará sama.

Id rastú stále, aj keď nejaké slovíčko vymažeme, uvoľnené Idnebude použité. Je to z toho dôvodu, že recyklácia starých Id môže spôsobiť problémy.

Nastavenie primárneho kľúča

Stĺpec Id teraz nastavíme ako primárny kľúč pre našu novú tabuľku. Urobíme to jednoducho pravým kliknutím na názov stĺpca a zvolením možnosti Set primary key:

Databáza vo VB.NET - ADO.NET

Každá tabuľka by mala mať primárny kľúč, aby sme boli schopní jednoznačne určiť konkrétny záznam. Niektoré technológie (napr. Entity Framework) primárny kľúč vyžadujú.

Pomenovanie tabuľky

Nakoniec zatvoríme kartu s editorom tabuľky a budeme opýtaní, či ju chceme uložiť. To samozrejme potvrdíme a tabuľku pomenujeme Word:

Databáza vo VB.NET - ADO.NET

Tabuľky pomenovávame veľkým písmenom av jednotnom čísle, ako by to bola trieda.

Testovacie dáta tabuľky Word

Tabuľku máme týmto založenú. Potrebujeme ešte nejaké testovacie dáta. Na tabuľku Word klikneme pravým tlačidlom a zvolíme Edit top 200 rows:

Databáza vo VB.NET - ADO.NET

Teraz iba vložíme niekoľko slovíčok. Id sa vyplňuje samo, stačí teda zadať slovenský, anglický variant a obtiažnosť:

Databáza vo VB.NET - ADO.NET

Založenie tabuľky Category

Pridajme si ešte druhú tabuľku, vďaka ktorej si budeme môcť ukázať aj pokročilejšie otázky cez viacero tabuliek.

Vloženie stĺpcov

Do druhej tabuľky opäť vložíme stĺpec Id, ktorému nastavíme Identity na True, a tiež ho urobíme primárnym kľúčom. Čo sa týka ďalších stĺpcov, bude tu iba jeden, opäť typu nvarchar(50) as názvom Title. To bude titulok kategórie (napr. Počítače, Zvířata alebo Ostatní):

Databáza vo VB.NET - ADO.NET

Tabuľku uložíme a pomenujeme Category.

Testovacie dáta tabuľky Category

Do tabuľky Category vložíme testovacie dáta:

Databáza vo VB.NET - ADO.NET

Tabuľka Word

Teraz pridáme slovíčku väzbu na kategóriu, ktoré sa niekedy hovorí cudzí kľúč alebo relácie. Vráťme sa k našej tabuľke Word a pridajme ju ešte jeden stĺpec s názvom CategoryId. Bude typu int. V okne Column Properties, v políčku Default Value or Bind, mu nastavíme hodnotu 1:

Databáza vo VB.NET - ADO.NET

Teraz klikneme pravým tlačidlom na stĺpec CategoryId az menu zvolíme Relationships...:

Databáza vo VB.NET - ADO.NET

V novo otvorenom okne pomocou tlačidla Add pridáme nový vzťah (reláciu). V položke Tables And Columns Specification klikneme na tlačidlo ...:

Databáza vo VB.NET - ADO.NET

Tu nastavíme, že sa tabuľka Word pomocou stĺpca CategoryId pripojí na primárny kľúč tabuľky Category, ktorým je Id a potvrdíme:

Databáza vo VB.NET - ADO.NET

Teraz databáza vie, že pokiaľ je napr. pri slovíčku v stĺpci CategoryId hodnota 1, viaže sa k prvej kategórii. Všetko uložíme kliknutím pravým tlačidlom na záložku a potom na tlačidlo Save. Znovu editujme záznamy v tabuľke Word a slovíčkam nastavme kategóriu:

Databáza vo VB.NET - ADO.NET

Číslo v stĺpci CategoryId je samozrejme primárny kľúč do tabuľky Category. Hodnota 1 teda zodpovedá záznamu Počítače, 2 Zvířata a 3 Ostatní.

V nasledujúcom cvičení, Riešené úlohy k 8.-10. lekciu Databáza vo VB.NET - ADO.NET, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Predchádzajúci článok
Databáza vo VB.NET - DataSet a SqlDataAdapter
Všetky články v sekcii
Databáza vo VB.NET - ADO.NET
Preskočiť článok
(neodporúčame)
Riešené úlohy k 8.-10. lekciu Databáza vo VB.NET - ADO.NET
Článok pre vás napísal Stanislav Zita
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity