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:
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
.
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:
Keďže naša testovacia aplikácia pre prácu s databázou bude jednoduchý
slovníček, databázu pomenujeme SlovnicekDB
:
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...:
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é.
Do tabuľky si ďalej pridáme ďalšie tri stĺpce s názvami:
Czech
, typunvarchar(50)
pre slovenské znenie slovíčka,English
, typunvarchar(50)
, pre anglické znenie slovíčka,Difficulty
, typuint
pre obtiažnosť slovíčka.
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
:
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é Id
už nebude 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:
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
:
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:
Teraz iba vložíme niekoľko slovíčok. Id
sa vyplňuje samo,
stačí teda zadať slovenský, anglický
variant a obtiažnosť:
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í
):
Tabuľku uložíme a pomenujeme Category
.
Testovacie dáta tabuľky
Category
Do tabuľky Category
vložíme testovacie dáta:
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
:
Teraz klikneme pravým tlačidlom na stĺpec CategoryId
az menu
zvolíme Relationships...:
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 ...:
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:
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:
Čí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í.