Pokud jste četli předchozí díly, budete schopni nainstalovat a nastavit SQL Server v jedné, či více instancích. Zároveň dokážete nastavit přístup pro klienty připojující se z lokálního stroje a pro klienty připojující se přes TCP/IP protokol.
SQL Server Management Studio (SSMS)
SQL Server Management Studio je oficiálně dodávaný software na správu databází Microsoft SQL Serveru. Stejně jako databázový systém sám, i SSMS má zpětnou kompatibilitu až do verze SQL Server 2000 (8.0). Obecně tedy platí, že se lze připojit na starší nebo stejnou verzi databázového systému, nikoliv na novější.
Tento nástroj využívá naprostá většina administrátorů a vývojářů pracující s MSSQL. Pokud nalezneme některé jeho alternativy, jedná se spíš o drobnější utility pro konkrétné úkony. I když trpí některými nedostatky, nemusíte se rozhodovat, jaký nástroj na správu využít. Už jenom proto, že jeho rozhraní pokrývá naprostou většinu možností samotného SQL Serveru od zálohování přes úpravu struktur tabulek, až po optimalizaci dotazů. Navíc je zdarma ke stažení, což je velmi příjemné.
Při používání SSMS je dobré si uvědomit jednu věc – tento nástroj pouze nabízí vizuální reprezentaci k funkcím SQL Serveru. To, co dokážete udělat v SSMS jde tedy reprezentovat i pomocí textového SQL jazyka. A stejně jako vaše aplikace i SSMS komunikuje s hlavním procesem (službou) databázového systému pomocí přednastavených protokolů (viz minulý článek). Tento proces pak zajišťuje úpravy dat v datových souborech databáze.
Spuštění a přihlášení k databázovému serveru
Protože budeme s tímto nástrojem procovat po zbytek seriálu, nejdříve si projdeme jeho uživatelské rozhraní.
Spusťte si tedy nástroj SQL Server Management Studio z nabídky Start / Microsoft SQL Server 2008.
Pokud jej startujete poprvé, vyčkejte na dokončení prvotní inicializace nastavení. Nyní bychom měli vidět okno pro přihlášení k instanci databázového systému:
- První položka je zešedlá (Server type). Ta nás zatím nemusí trápit - jedná se totiž o výběr typu databáze. Konkrétně se tu může objevit po doinstalování SQL Server Compact Edition pro mobilní zařízení. Pro všechny ostatní edice a verze ale platí defaultní hodnota, tedy Database Engine.
- Server name - zde vepisujete do jakého databázového serveru se připojit. Jakým způsobem adresu skládat jsem poměrně intenzivně vysvětloval v předchozích dílech. Defaultní adresa “.\SQLEXPRESS” tedy znamená instance SQLEXPRESS na lokálním počítači.
- Authentication - k přihlašování do SQL Serveru je možné obecně použít 2 zcela odlišné způsoby: Windows Authentication (přihlášení pomocí účtů ve Windows) nebo SQL Server Authentication (přihlašování jménem a heslem definovaném v SQL Serveru). Přihlašování a bezpečnost budu probírat v jednom z dalších článků. Zatím nám postačí Windows Authentication (použije se aktuální uživatelský účet, kterým jsme přihlášeni - proto je potřeba, aby byl administrátorský a my tak měli plný přístup do databáze).
- Další volby pomocí tlačítka Options >>. Zde dostáváte možnost si zvolit konkrétní databázi, která se po přihlášení označí jako aktuální, což je pro nás zatím nepodstatné (aktuální databáze lze změnit pohodlně i po přihlášení). Další nastavení se pak týká připojení a komunikace. Zase jsou to věci pro nás celkem nepodstatné a základní nastavení je zatím zcela vyhovující.
Teď se přihlásíme. Máme vybraný server .\SQLEXPRESS (popřípadě jiný, pokud jste při instalaci experimentovali – viz. minulý článek) a zvolenou autentizaci přes účty Windows. Klepneme na Connect. Pokud je vše správně nastavené, podařilo se připojit k běžícímu databázovém serveru.
Hlavní okno SQL Server Management Studia
Po přihlášení se nám otevře hlavní okno SSMS:
Nejdůležitější bude pro nás okno Procházení objektů (Object Explorer). Díky němu lze nahlížet na databázi jako na stromovou strukturu. Jednotlivé položky jsou totiž logicky oddělené do větví. Veškeré příkazy pro práci s databází jsou pak umístěné do kontextových menu u odpovídajících položek. Takový přístup zajišťuje především jednotnost uživatelského prostředí, přehlednost, intuitivní přístup a rychlost při prochází.
Ačkoliv je pro nás pochopení funkce Object Exploreru stěžejní, netvrdím, že je nutné ihned znát všechny položky, které nabízí – to by znamenalo znát i převážnou většinu funkcí a principů, které nabízí samotný SQL Server. Z toho důvodu popíšu jen nejzákladnější větve. Ty zvýrazním obrázkem žárovky (význam “nezvýrazněných” větví budu vysvětlovat v průběhu celého seriálu, proto je zde uvádím pouze pro informaci a nevysvětluji, k čemu slouží, ani jaké mají podpoložky).
Co tedy můžeme v okně Object Exploreru najít?
| Jméno | Stručný popis větve | Vysvětlení větve | Funkce nabízející kontextové menu |
| server (SQL Server verze – uživatel) | Databázový server | Reprezentuje připojení k databázovému serveru. Text začíná adresou serveru a končí závorkou s verzí a přihlášeným uživatelem. | Ovládání služby databázového serveru, vlastnosti databázového serveru, odpojení… |
| Databases | Seznam databází | Větev obsahuje všechny databáze databázového serveru. | Vytvoření nové databáze, vytvoření databáze ze zálohy, připojení souborů databáze… |
| System Databases | Seznam systémových databází | Systémové databáze jsou interní databáze, které využívá SQL Server a jeho služby. Jejich funkce popíši později. | |
| Jméno databáze | Jedna databáze | Reprezentuje jednu databázi. Obsahuje vše potřebné pro správu. | Smazání databází, vytvoření / obnovení zálohy, přejmenování, vlastnosti… |
| Database Diagrams | Databázové diagramy | Nástroj pro vizuální znázornění tabulek a jejich vazeb. | Vytvoření diagramu, zavedení podpory diagramů… |
| Tables | Tabulky | Seznam tabulek databáze | Vytvoření nové tabulky… |
| Jméno tabulky | Tabulka | Reprezentuje jednu datovou tabulku v databázi | Úprava tabulky, zobrazení dat tabulky, smazání tabulky… |
| Columns | Sloupce tabulky | Seznam všech sloupců tabulky | Vytvoření sloupce… |
| Jméno sloupce | Sloupec | Sloupec tabulky | Smazání sloupce, úprava sloupce… |
| Keys | Klíče tabulky | Seznam všech klíčů tabulky | Vytvoření nového klíče… |
| Jméno klíče | Klíč tabulky | Klíč tabulky | Smazání klíče, úprava klíče… |
| Constraints | Validace řádků a defaultní hodnoty sloupců | Seznam všech validačních pravidel a defaultních hodnot nevyplněných sloupců. | Nové validační pravidlo… |
| Triggers | Seznam triggerů tabulky | Seznam všech automatických událostí spuštěných při modifikaci tabulky – triggerů. | Nový trigger… |
| Indexes | Seznam indexů | Seznam všech indexů zajištující rychlejší dohledání záznamů. | Vytvoření indexu… |
| Statistics | Statistiky tabulky | Seznam statistických záznamů. Jedná se o techniku k optimalizaci dotazů. | Vytvoření statistik |
| Views | Seznam pohledů | Seznam pohledů v této databází. | Vytvoření pohledu… |
| Synonyms | Seznam synonym | Seznam synonym v této databázi. | Vytvoření synonyma… |
| Programmability | Seznamy programových rozšíření databáze | Obsahuje funkce, uložené procedury, datové typy a odkazy na .NET knihovny. Reprezentuje programové rozšíření funkčnosti konkrétní databáze. | |
| Service Broker | Seznam a funkce technologie pro zasílání zpráv | Service Broker je funkce umožňující bezpečnou asynchronní komunikaci s ostatními procesy. | |
| Storage | Fulltextové katalogy | Seznam fulltextových katalogů pro provádění pokročilého vyhledávání. | |
| Security | Seznam zabezpečení databáze | Obsahuje seznam uživatelů, rolí databáze a ručně definovaných rolí. Definuje zabezpečení na úrovni databáze. | |
| Security | Seznam zabezpečení databázového serveru | Seznam přihlašovacích loginů, rolí databáze a externích účtů. Definuje bezpečnost na úrovni celého databázového serveru. | |
| Server Objects | Serverové objekty | Seznam objektů společných pro celý databázový server / instanci. | |
| Backup devices | Záložní zařízení | Seznam záložních zařízení | Nové záložní zařízení… |
| Linked servers | Seznam připojených serverů | Seznam napojení na cizí servery. Dovoluje připojovat databáze z jiné instance, či serveru. | |
| Triggers | Seznam triggerů serveru | Seznam automaticky spouštěných událostí vyvolaných změnami databázového serveru. | |
| Replication | Replikace databází | Nástroje a seznamy pro replikaci databází na jiný server. V SQL Server Express je tato funkce omezená. | |
| Management | Management databázového serveru | Nástroje a seznamy funkcí plně využitelných ve vyšších edicích (například Policy Management). | |
Tento přehled měl pouze nastínit možnosti a strukturu uspořádání větví v Object Exploreru. Jejich reálné využití a funkce budu popisovat v tematicky zaměřených kapitolách.
První kroky s databází – založení databáze
Na závěr této kapitoly vysvětlím založení nové databáze a několik souvisejících principů.
Pokud jste si pečlivě prošli tabulku popisující průzkumníka objektů (Object Explorer), víte o seznamu databází – položka Databases. Klepněte na ni pravým tlačítkem a z kontextového menu vyberte New Database pro vytvoření a připojení nové databáze.
Zobrazí se nám dialog, se kterým se budete potýkat poměrně často:
Toto okno je univerzálním dialogem pro operace nad databázemi. Ačkoliv obsah dialogu (stránky) se u jednotlivých prováděných operací mění, obecné funkce a bázový vzhled okna jsou stejné. To je důvod, proč se vyplatí si o oknu něco říct. Skládá se z těchto popsaných částí:
- Výběr stránky – ne každý dialog se vejde na jednu stránku. Proto je většinou rozdělen na jednotlivé stránky. Například právě založení databáze má stránky 3 (General, Options a Filegroups).
- Stránka – obsah dialogu se mění podle prováděné operace a zvolené stránky. Toto je místo, které slouží k nastavování konkrétní operace. Na obrázku vidíme stránku General pro zakládání nové databáze.
- Připojení – toto je společná část pro všechny dialogy – informuje o stavu připojení (k jakému serveru jsme připojeni, jakým uživatelským jménem).
- Stav operace – taktéž společný prvek. Ne všechny operace je možné provést za nezanedbatelný čas. Proto u delších operací zde vidíme z kolika procent je dokončena a případně, zda skončila neúspěchem, či úspěchem.
- Generátor scriptu / Nápověda – opět společná část pro dialogy. Tlačítko “Script” je velmi důležité – dokáže usnadnit spoustu práce. Jak už jsem zmiňovat, SQL Server Management Studio je pouze vizuální generátor SQL skriptů, které spouští proti databázi. Proto jakákoliv operace (včetně založení databáze) znamená vyvolání SQL příkazu. Toto tlačítko dokáže podle aktuálního nastavení dialogu vytvořit skript, který by se jinak provedl po klepnutí na tlačítko OK. Skript dokáže uložit do textového souboru, nového okna nebo do schránky. Nám tak dává možnost si pohodlně naklikat změny a ty pak vyexportovat do skriptu, který je znovupoužitelný. Navíc pokud neděláte s databází denně alespoň několik hodin, nebudete si chtít pamatovat všechny přepínače SQL příkazů – vše si nastavit vizuálně může být příjemné.
Ale zpět k zakládání nové databáze.
V tomto dialogu nalezneme 3 stránky – General, Options, Filegroups.
Na stránce General naleznete tyto možnosti:
- Database name – nejdůležitější a často jediné modifikované nastavení - jméno databáze – doporučuji používat pouze základní znaky. Jméno databáze nerozlišuje velikost písmen.
- Owner – vlastník databáze. Tento uživatel má neomezený přístup k databázi (stejný jako administrátor). Bezpečnost budeme probírat až později. Nechejme tuto volbu na původním nastavení.
- Database files – soubory databází. Seznam fyzických souborů, které budou databázi reprezentovat. Po dobu spuštění služby SQL Server budou zamčené hlavní instance databázové služby a nebude možné s nimi manipulovat. Každá databáze musí mít minimálně 2 soubory – datový (přípona mdf) a transakční log (přípona ldf). Jejich význam vysvětlím v dalších dílech. Soubory je možné přidávat i další – databázi je tak možné rozdělit z výkonnostních důvodů na několik souborů na různých discích. Toto nastavení opět necháváme na defaultních hodnotách – tedy vytvoření souborů mdf a lfd podle jména databáze do defaultní složky na ukládání databází (viz instalace).
Většinou nám bude takto nakonfigurovaná databáze stačit.
Pro zajímavost se ale podívejme i na druhou stránku, tedy Options. Ta nabízí celou řadu nastavení chování databáze. Jednotlivé položky nemá cenu rozebírat, dokud na ně nenarazíme. Nicméně jedná se často o nastavení velmi zásadní a jejich změna může zapříčinit nefunkčnost některých komponent, či jejich změněné chování. Proto moje rada zní: Nehrabat se v tom, pokud k tomu není důvod! Zde by mělo Collation (způsob řazení řetězců) zůstat na nastavení Server default a Recovery Mode (způsob obnovy a zachovávání změn) na Simple. Zajímavé je nastavení zpětné kompatibility - Compatibility level. To říká, jakou verzi má SQL Server vůči databázi předstírat. Jinými slovy, pokud nastavíte Compatibility level na SQL Server 2000, databáze využije maximálně funkcí z verze SQL Server 2000. Velmi užitečné, pokud chcete použít na novější verzi databázového systému starší databázi a nechcete řešit, zda je kompatibilní.
Stránka Filegroups slouží k nastavování souborových skupin – to využijeme jen při rozmístění databáze do více souborů na různé disky, popřípadě při využití funkce FILESTREAM (popíšu v samostatné kapitole).
Na závěr si konečně založme databázi pojmenovanou mojedb. Jediné nastavení bude jméno databáze na stránce General. Po potvrzení nalezneme databázi v seznamu Databases v object exploreru:
Závěr
Dnešní díl si dával za úkol seznámení s nejzákladnějšími principy s SQL Server Management Studia. Měli byste získal základní představu funkci základního okna Object Exploreru a možnostmi univerzálního dialogu pro vytvoření skriptu – v podobě dialogu založení databáze.
Pokud máte dotazy, či připomínky, neváhejte je vyslovit v diskuzi pod článkem nebo emailovou zprávou. Budu rád, když napíšete, co se chcete v dalších dílech dozvědět.