Služba SQL Database je relační databáze provozovaná na upravené verzi Microsoft SQL Serveru, jenž je hostována v prostředí Windows Azure. Hlavní výhoda spočívá v tom, že za měsíční poplatek, který se odvíjí od velikosti databáze, získáte vysoce dostupnou databázi, která je až na výjimky kompatibilní s klasickým Microsoft SQL Serverem, a nemusíte se starat o její údržbu.
Vytvoření databáze
Základní správa služby SQL Database probíhá přes webový portál stejně jako u ostatních služeb ve Windows Azure. Pro vytvoření nové SQL databáze zvolíme ve spodním menu portálu možnost přidat službu a v kategorii „Data Services“ vybereme SQL Database a dále volbu „Custom Create“, abychom měli pod kontrolou všechny parametry databáze a mohli si je současně vysvětlit:
V prvním kroku vytváření databáze určujeme:
- NAME - Název databáze, který je jeden z údajů, který budeme potřebovat, abychom se na databázi mohli posléze připojit z naší aplikace.
- EDITION - Uvedené edice WEB a BUSINESS se odlišují zejména maximálními velikostmi databáze, kdy u edice WEB je to 5 GB a u edice BUSINESS podstatně vyšších 150 GB.
- MAX SIZE – Maximální velikost databáze. Volba edice ani maximální velikosti databáze neovlivňuje cenu databáze, ta se počítá podle tzv. „database units“ čistě v závislosti na obsazeném místu v databázi. Oba parametry je možné upravovat i po vytvoření databáze. Rád bych vás však upozornil, že pokud vaše databáze naroste do maximální povolené velikosti, systém ji automaticky přepne do režimu pouze pro čtení a díky tomu budou dotazy aktualizující nebo vkládající data ukončeny výjimkou a pokud tento případ nemáte ošetřen, tak spadne i vaše aplikace.
- COLLATION – Výchozí znaková sada databáze má vyliv zejména při řazení textových záznamů (určuje pořadí písmen v abecedě), při vyhledávání v textových hodnotách (rozlišování velikosti písmen, zohledňování diakritiky) a v případě že používáte datové typy char a varchar, tak i na samotné kódování ukládaných textových hodnot. Pro češtinu se běžně používá znaková sada Czech_CI_AS (Czech, case in-sensitive, accent sensitive), která nerozlišuje při vyhledávání a řazení velikost písmen v abecedě, ale zohledňuje diakritiku. Marně budete v tomto seznamu hledat znakovou sadu UNICODE. Pro kódování textu do znakové sady unicode používejte ve vaší databázi datové typy nchar a nvarchar, které se vždy ukládají jako unicode nehledě na zvolenou znakovou sadu.
- SERVER – Určuje server, kde bude vytvářená databáze uložena. Tento pojem může být v cloudovém prostředí trochu matoucí, ale v tomto případě server označuje pouze logické seskupení databází z hlediska správy. Na kterém fyzickém serveru bude vaše databáze hostována, to pochopitelně neovlivníte, navíc jak se dozvíte později, infrastruktura Windows Azure může vaši databázi dle potřeb automaticky mezi fyzickými servery přesunovat. Pokud vytváříte vaši první databázi, budete muset vytvořit i nový server.
Při vytváření nového serveru, což je druhý krok, nastavujeme:
- LOGIN NAME – Název loginu, kterému budou přiřazeny administrátorská oprávnění pro všechny databáze v rámci daného serveru
- LOGIN PASSWORD – Heslo k vytvářenému loginu. Pokud toto heslo zapomenete, je možnost jej přes management portál resetovat.
- REGION – Určuje, ve kterém datacentru bude vaše databáze hostována. Rád bych upozornil na skutečnost, že komunikace mezi jednotlivými službami je zdarma pouze v rámci jednoho datacentra. Pokud tedy webový server umístíte do regionu „North Europe“ zatím co webový server do regionu „West Europe“, budete kromě databáze platit taky za data, která budou přenášena směrem z databáze na webserver (účtuje se vždy odchozí datová komunikace z datacentra, příchozí komunikace je zdarma) a zvýší se vám prodleva při komunikaci s databází.
- ALLOW WINDOWS AZURE SERVICES TO ACCESS THE SERVER – Pokud tuto možnost zvolíte, automaticky se ve firewallu vytvoří pravidlo, které umožní všem Windows Azure službám přistupovat k databázím na tomto serveru skrze standardní protokol TDS na portu TCP/IP 1433.
Průvodce nám následně vytvoří databázový server a založí novou databázi. Dále si ukážeme, jak se k databázi připojíme a vytvoříme v ní vlastní databázové objekty.
Připojení k databázi
Jak jsem již zmínil, tato databáze je hostována na upravené verzi SQL Serveru. Pro komunikaci se tedy využívá stejný protokol TDS (Tabular Data Stream) a samotná funkcionalita databáze SQL Database se velmi blíží klasickému SQL Serveru. K databázi se dá připojit stejnými nástroji jako k SQL Serveru, lze využít stejné konektory, které nyní využívají vaše aplikace pro komunikaci s vašim SQL Serverem.
Vaše SQL Database není volně přístupná komukoliv z internetu, chrání ji zabudovaný firewall. Proto je před připojením k databázi nutné definovat pravidlo, které povolí k databázi přístup z vaší IP adresy. Tuto konfiguraci nalezneme v detailu databázového serveru na záložce „Configure“
Správa databáze přes webové rozhraní
V rámci Windows Azure management portálu je integrovaný portál pro správu databáze. Otevřeme jej tak, že vybereme databázi v seznamu databází a ve spodním panelu příkazů zvolíme tlačítko „Manage“. V novém okně se nám otevře aplikace vytvořená v Silverlightu, která nás vyzve k přihlášení do zvolené databáze.
Přihlásíme se pomocí údajů, které jsme zadali při vytváření serveru, pod který je databáze zařazena.
Po přihlášení jsou zobrazeny základní informace o databázi, včetně její aktuální velikosti. V levém panelu se můžeme přepínat mezi hlavními skupinami operací s databází – administrace a návrh. V rámci administrace vidíme pouze základní statistické údaje o databázi a statistiku náročnosti prováděných dotazů.
Pomocí návrhových nástrojů je možné procházet seznam tabulek, vytvářet nové tabulky a zobrazit v nich uložená data. Dále můžeme zadáním T-SQL kódu vytvořit i pohled a uloženou proceduru.
Důležité je, že přes tento nástroj je možné zadat a spustit libovolný dotaz (tlačítko New Query).
Možnosti tohoto nástroje vidím jako velmi omezené a jeho použití bych volil spíše v nouzových situacích, kdy nejsou dostupné jiné nástroje a je třeba rychle provést drobné úpravy v databázi.
Připojení přes SQL Server Management Studio
Po spuštění SQL Server Management Studia doplňte do dialogového okna pro připojení k serveru adresu databázového serveru, kterou naleznete v administračním portálu. Zvolte typ ověřování SQL Server Authentication a doplňte zbylé přihlašovací údaje – login a heslo.
Pokud server zamítne vaše spojení, ověřte, že máte správně nakonfigurovaný firewall před databází a že jste zadali správné přístupové údaje.
Po připojení k serveru můžete pracovat s databázemi umístěnými na databázovém serveru, na který jste připojeni. Velmi brzy si ale všimnete, že pokud pracujete s databází hostovanou ve Windows Azure, Management Studio má značně omezenou množinu funkcionality, než na co jste zvyklí při práci s SQL Serverem.
Například při vytváření nové tabulky není podporován vizuální designer a tabulku je třeba vytvořit čistě s pomocí T-SQL. Omezení se týkají i uživatelského rozhraní pro práci s daty, kdy chybí možnost data v tabulkách editovat přes UI a jedinou cestou je pouze jazyk T-SQL.
V následujícím dílu tohoto seriálu se zaměříme na způsob migrace lokální databáze z a do cloudu, na další nástroje pro vývoj databáze, a také na dostupnost a škálovatelnost této služby.