Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

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

V predchádzajúcom cvičení, Riešené úlohy k 7.-8. lekciu Databáza v C# - ADO.NET, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.

Dnes si v C# .NET tutoriáli vytvoríme databázu, s ktorou budeme po zvyšok kurzu komunikovať.

Vytvorenie databázy

Spôsobov, ako databázu vytvoriť, je mnoho. Ako nástroj môžeme používať buď SQL Server Management Studio alebo priamo Visual Studio. Ako jednoduchší spôsob sa mi zdá vytvoriť databázu priamo v Management Studiu, pretože u Visual Studia je viac postupov a ešte sa líši podľa verzií. Vytvoríme si databázu na serveri, ktorý máme nainštalovaný na našom počítači. Po nainštalovaní SQL Servera spustíme nástroj SQL Server Configuration Manager.

SQL Server Configuration Manager

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

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

Vidíme tu bežiace služby, mali by ste vidieť váš SQL Server, ktorý sme nainštalovali (a aj pri inštalácii pomenovali). Môj má názov MSSQLSERVER2008. Pokiaľ má stav "Stopped", zapnite ho. Teraz sme sa teda presvedčili, že je server na danom stroji prítomný a že ich beží.

Teraz spustíme SQL Server Management Studio.

SQL Server Management Studio

Aplikácia je administračným nástrojom, v ktorom budeme navrhovať štruktúru databázy a tiež pracovať s jej obsahom (teda s uloženými dátami).

Ako prvá nás Management Studio vyzve na zadanie údajov pre pripojenie k databáze. Ako meno servera zadáme (localdb)\MENO_VASHO_SERVERA, u mňa teda (localdb)\MSSQLSERVER2008. Po kliknutí na Connect sa k serveru pripojíme.

V ľavej časti aplikácie vidíme Object Explorer, kde sa zobrazila stromová štruktúra nášho servera. Rozbalíme položku Databases, vy tu pravdepodobne budete mať iba zložku so systémovými databázami, ja tu mám už niekoľko databáz z rôznych projektov. Na položku Databases klikneme pravým tlačidlom a zvolíme New database.

Vytvorenie novej databázy v MS SQL Management Studio - Databázy v C# - ADO.NET

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

Vytvorenie novej databázy v MS SQL Management Studio - Databázy v C# - ADO.NET

Databáza sa objaví v Object Exploreri, rozbalíme ju a rovnako tak jej položku Tables, kde máme opäť len systémové tabuľky.

O tabuľkách už bola reč minule, vieme, že takto sa dáta do relačnej databázy ukladajú (relačné databázy sa používajú takmer všade, nerelačné sú výnimkou). Budeme chcieť ukladať slovíčka do našej databázy k slovníčku. Najprv musíme vytvoriť novú tabuľku, kde definujeme stĺpce, teda vlastnosti, aké slovíčko má. Na položku Tables klikneme pravým tlačidlom a zvolíme možnosť New Table.

Vytvorenie novej tabuľky v MS SQL Management Studio - Databázy v C# - ADO.NET

Ako už bolo načrtnuté, každá položka v databáze (teda riadok v tabuľke) by mala mať unikátny identifikátor (stĺpec, v ktorom je pre každý riadok hodnota jedinečná). Na tento účel slúži tzv. primárny kľúč. Je to obyčajný stĺpec, ktorý sa najčastejšie pomenuje jednoducho Id a bude typu int. Názvy stĺpcov budeme písať s veľkým počiatočným písmenom.

Ďalej pridáme ďalšie 2 stĺpce: English a Spanish. Ide o znenie slovíčka v angličtine av španielštine. Stĺpce budú typu nvarchar(50). Ide o reťazec znakov kde 50 je maximálny počet znakov. Nepliesť s typom nchar, kde nejde o maximálnu veľkosť, ale text je vždy dlhý 50 znakov. Ešte existujú typy char a varchar (bez n), tie nepodporujú kódovanie Unicode. Pre krátky text budeme teda vždy používať typ nvarchar. Nakoniec pridáme posledný stĺpec Difficulty, značiaci obtiažnosť slovíčka. Bude typu int.

Pokiaľ vás napadla podobnosť databázovej tabuľky a triedy v jazyku C#, tak máte pravdu. Definícia tabuľky je takmer totožná s definíciou triedy, jednoducho navolíme atribúty čo 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, English (anglické znenie) a Spanish (španielske znenie). Takto budeme vo výsledku s databázou aj pracovať, ale nepredbiehajme. Vráťme sa ešte k stĺpcu Id, ten označme a vyberme dole v Column properties možnosť Is Identity (treba rozbaliť Identity Specification), ktorú nastavíme na Yes.

Vytvorenie novej tabuľky v MS SQL Management Studio - Databázy v C# - 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 a Id sa teda uvoľní, už nebude použité. Je to z toho dôvodu, že recyklácia starých Id môže spôsobiť problémy. Takto nastavený stĺpec môžeme nastaviť 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.

Nastavenie primárneho kľúča tabuľky v MS SQL Management Studio - Databázy v C# - ADO.NET

Každá tabuľka by mala mať primárny kľúč, inak nebudeme schopní jednoznačne určiť konkrétny záznam a niektoré technológie (napr. LINQ to SQL) by s tabuľkou ani nevedeli pracovať.

Nakoniec zatvoríme kartu s editorom tabuľky a budeme požiadaní, či ju chceme uložiť. To samozrejme potvrdíme a tabuľku pomenujeme Word (ako slovíčko). Tabuľky pomenovávame opäť veľkým písmenom av jednotnom čísle, ako by to bola trieda.

Vytvorenie novej tabuľky v MS SQL Management Studio - Databázy v C# - ADO.NET

Databázu máme týmto založenú. Vytvorme si ešte nejaké testovacie dáta, aby neboli prázdne. Na tabuľku klikneme pravým tlačidlom a zvolíme Edit top 200 rows (je možné, že sa popis tejto voľby líši podľa verzie Management Studia).

Vloženie dát do tabuľky v SQL Management Studio k MS-SQL databáze - Databázy v C# - ADO.NET

Teraz len vložíme niekoľko slovíčok, Id sa vypĺňa samo, stačí teda zadať anglický a španielský variant a obtiažnosť. Ja som si ich pridal len niekoľko, vy si ich pokojne naklikajte viac s rôznymi obtiažnosťami, nech máte čo najviac dát na skúšanie.

Vloženie dát do tabuľky v SQL Management Studio k MS-SQL databáze - Databázy v C# - ADO.NET

Rozšírenie

Pokiaľ vás tvorba databázy príliš neodrovnala (čo by nemala :) ), môžete si do nej pridať ešte druhú tabuľku. Vďaka tomu si budeme môcť ďalej ukázať aj pokročilejšie otázky cez viacero tabuliek. Pokiaľ chcete začať radšej jednoducho, môžete tento krok preskočiť rovnako ako pár ďalej ukázaných otázok.

Pridajte si rovnakým spôsobom tabuľku Category, ktorá bude reprezentovať kategóriu slovíčok. Opäť jej dáme stĺpec Id, ktorému nastavíme Identity na Yes a potom ho urobíme primárnym kľúčom. Čo sa týka ďalších stĺpcov, bude tu iba jeden opäť typu nvarchar(50) s názvom Title. To bude titulok kategórie (napr. "Computers", "Animals" alebo "Other"). Tabuľku uložíme ako Category.

Založenie DB tabuľky v SQL Management Studio - Databázy v C# - ADO.NET

Opäť vytvoríme testovacie dáta:

Naplnenie DB tabuľky v SQL Management Studio - Databázy v C# - ADO.NET

Teraz pridáme slovíčku väzbu na kategóriu, ktoré sa niekedy hovorí cudzí kľúč alebo relácia. 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 Column Properties mu nastavíme Default Value or Bind na 1. To je predvolená hodnota. Klikneme naň pravým tlačidlom az menu zvolíme Relationships...

Relácia v SQL Management Studio - Databázy v C# - 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 s tromi bodkami. Tu nastavíme, že sa tabuľka Word pomocou stĺpca CategoryId pripojí na primárny kľúč tabuľky Category, ktorým je Id. Potvrdíme.

Cudzí kľúč v SQL Management Studio - Databázy v C# - 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 (pravým na záložku a Save). Znovu editujte záznamy v tabuľke Word a slovíčkam nastavte kategóriu:

Vloženie dát do tabuľky v SQL Management Studio k MS-SQL databáze - Databázy v C# - ADO.NET

Číslo je samozrejme primárny kľúč do tabuľky Category, 1 teda zodpovedá záznamu "Computers", 2 "Animals" a 3 "Other".

V nasledujúcom kvíze, Kvíz - Odpojená ap., SQL otázky, Manag. Štúdio v C#-ADO.NET , si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Predchádzajúci článok
Riešené úlohy k 7.-8. lekciu Databáza v C# - ADO.NET
Všetky články v sekcii
Databázy v C# - ADO.NET
Preskočiť článok
(neodporúčame)
Kvíz - Odpojená ap., SQL otázky, Manag. Štúdio v C#-ADO.NET
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
2 hlasov
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 sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity