Recenze knihy Databáze v C# 2008 – Průvodce programátora od Vidyaa Vrat Agarwala, věnovaná památce Jamesovi Huddlestonovi.
Ti z vás, kteří hledají jednoduchý a rychlý způsob, jak se naučit pracovat s databázemi, nebo jen praktického průvodce, jenž oživí vaše starší znalosti, by neměli přehlédnout tuto knihu. Je určena především pro začínající a pokročilé programátory věnující se programování na platformě .NET v jazyce C#.
Profesionálním programátorům bych knihu nevnucoval, přeci jenom se zde probírají hlavně zažité a funkční postupy. Ovšem jedná se o publikaci novou, a tak se v ní nachází i kapitoly věnující se technologii ADO.NET 3.5 a relačnímu jazyku LINQ.
Obsah knihy
Kniha je rozdělena do dvaceti kapitol. Každá z nich se zabývá daným tématem, to je pak rozděleno na jakýsi teoretický úvod, příklad a vysvětlení. Každá kapitola je nakonec završena shrnutím.
Příprava nástrojů a seznámení s nástroji
V první kapitole si nainstalujete nástroje, s kterými budete pracovat. Naleznete zde odkazy na Visual Studio 2008 Express a také na SQL Server Managment Studio Express (SSMSE). Nesmí chybět také testovací databáze v podobě Northwind a AdwentureWorks, které poskytuje Microsoft zdarma ke stažení. V druhé kapitole se s používanými nástroji seznámíte. Ukážete si psaní dotazů jak v SQLCMD tak SSMSE. Nakonec nesmí chybět jak jinak než „Hello World“ v podobě „Vítejte ve světě jazyka C# 3.0.“
Relační databáze
Tato kapitola se nese v teoretickém duchu. Autor se vám bude snažit vysvětlit, co to vlastně je relační databáze, kdy se používá atp. Vysvětlíte si také pojmy jako kardinalit 1:1, 1:M a M:M. Nakonec kapitoly se dozvíte něco o normalizacích a jejich nevýhodách. Já osobně nemám v oblibě takovéto kapitoly, mnohdy si z nich mnoho nevezmu, naštěstí je dlouhá jen 9 stran.
Zápis databázových dotazů
V tuto chvíli se dostáváme k programování dotazů v jazyce T-SQL. Pro vaši spokojenost byl nahrazen SQLCMD líbezným SSMSE, takže se pohodlně usaďte a začne se programovat. První příkaz, který použijete, je SELECT. Dále se pak budete probírat kupou výrazů CTE. Naučíte se zde řadit data v tabulkách podle daného kritéria, vypsat pozici řádku, sčítat počet dat, práci s datem a časem, spojování a hledání shody podle určitého vzoru.
Manipulace s daty v databázi
Poměrně krátká ale velice důležitá kapitola. Zabývat se zde budete získáváním dat z databáze pomocí příkazu SELECT. Dále pak vkládáním dat pomocí INSERT INTO, aktualizací dat příkazem UPDATE a mazáním dat z tabulky příkazem DELETE. Naučíte se zde také, jak používat porovnávací a další operátory pro stanovení dat, určených k načtení nebo jiným příkazům.
Uložené procedury
Tato kapitola se zabývá uleženími procedurami, což bych jednoduše přirovnal k funkčním třídám. Nejprve si povíte, jak takovou uloženou proceduru vytvořit. Potom se zaměříte na jejich ůpravu, změnu definice, změnu názvu a vymazání. Na konec kapitoly se poprvé ukážou střípky jazyka C# a ADO.NET v podobě konzolové aplikace pracující s uloženou procedurou.
Používáme jazyk XML
Stručnou pozvánkou do jazyka XML je tato kapitola, autor vám přednese pár poučných faktů a ukáže nezbytné základy, které by měl znát každý databázový programátor.V další části extrahujete data z databáze, pomocí jazyka T-SQL, do externě uloženého XML souboru. AčkoliV se to nezdá, XML soubor je databáze. Je tedy přirozené převádět data do a z těchto souborů, což je možné i pomocí ADO.NET a SQLX-ML.
Seznámení s transakcemi
V této kapitole se bude mluvit o transakcích neboli zabezpečeních příkazech. Ve skutečnosti se jedná o vzájemné zabezpečení, pokud jedna část transakce nebyla dokončena, automaticky se zruší druhá a naopak. AčkoliV se jedná o zajímavou funkci SQL Serveru 2005, při čtení této kapitoly mě nenapadalo praktické využití, sám autor používá především příklad bankovních převodů a objednávek.
Seznámení s knihovnou ADO.NET
Pro získávání a ukládání dat do databáze je důležitá aplikační část napsaná v ADO.NET. V této kapitole se nejprve seznámíte s principem a architekturou ADO.NET. v další části se vrhnete na způsoby připojení k databázi, knihovna ADO.NET totiž umožňuje přistupovat k několika různým druhům databází. Naučíte se tedy vytvářet poskytovatele dat (ConectingString) pro SQL Server, OLE DB a ODBC.
Tvorba připojení
Zvláštní věc, že předešlá kapitola byla především o připojení k různým typům databází. Nač tedy kapitolu o tom samém. Ovšem není tomu tak, tato kapitola je zaměřena jenom na způsob připojení databází, pomocí ADO.NET. Naleznete zde příklady připojení k databázi ODBC, OLE DB, Oracle, SQL Server a SQL Server CE a podrobné seznamy se všemi parametry připojovacích řetězců.V praktické části se pak připojíte k SQL databázi pomocí třídy SqlConnection a OleDbConnection.
Provádění příkazů
Tato kapitola je zaměřena na provádění příkazů, čistě pomocí knihovny ADO.NET. Mazání, vkládání a aktualizování dat v databázi. Je zde hodně praktických ukázek, jak vytvořit objekty s příkazem, jak nastavit objektu parametr a jak pracovat s více daty najednou. Je to takový praktický úvod k předešlé kapitole, kde se rozhodně nemusíte bát nedostatku kódu.
Objekty pro čtení dat
Již v předešlé kapitole jste se tedy setkali s objekty pro práci s daty. V této kapitole se nejprve podíváte na jakýsi obecný pohled objektů, poté se vrhnete na objekty pro čtení dat a budete provádět moře příkazů. Od těch jednoduchých, jako je pouhý výběr z databáze, až po ty složité, kde budete v jedné aplikaci mazat, vkládat, vybírat, řadit atd. Naleznete zde také kompletní tabulky s typovanými přístupovými metodami, jinými slovy, datové typy pro SQL Server a knihovny OLE DB. Naučíte se zde také získávat hodnoty sloupců podle názvu či indexu.
Datové sady a datové adaptéry
V této kapitole nasadil autor zcela jiný postup. V předešlých kapitolách jste otvírali a zavírali připojení po každém příkazu, pomocí datových sad a datových adaptérů však stačí shromáždit příkazy a odeslat je díky datovému adaptéru najednou. Ušetříte tak čas a nepřetěžujete databázi. V praktické části kapitoly vám autor ukáže naplňování a přístup k datovým sadám. Nakonec si ukážete generátor příkazů a jak naplňovat datové tabulky bez datových sad.
Windows Forms a ASP.NET
Nevím proč, ale tyto dvě kapitoly mě osobně přišly zbytečné. Nicméně programátorům, kteří se v životě nesetkali s jazykem C#, WinForms aplikacemi a ASP.NET, může být užitečná. V první z těchto dvou kapitol, tedy „Tvorba aplikací typu Windows Forms,“ se dozvíte teoretické informace o návrhu GUI a kde se nachází okno Properties. V té praktické části vám pak autor popíše, jak vložit v design módu tlačítko a ListBox. Druhá z těchto kapitol, nesoucí názeV „Budování aplikací postavených na platformě ASP.NET“, byla ještě o něco zajímavější. Seznámíte se zde s technologií ASP.NET, zjistíte také, jak přistupovat k webu pomocí protokolu FTP a nakonec si povíte něco málo o budování předloh à la MasterPage.
Ošetřování výjimek
Ošetřování chyb databázových aplikací. V úvodu kapitoly autor slibuje jiné postupy při ošetření výjimek než jaké bylo používáno v knize doposud v podobě try, catch a finaly. Ovšem po otočení stránky zjistíte, že autor zamýšlel použít try, catch a finaly.
Pomocí této kapitoly zvládnete ošetřit výjimky způsobené jak knihovnou ADO.NET, tak způsobené chybou v databázi. Dozvíte se zde také, jak vypsat chybové hlášení odkazující na patřičný řádek či databázový dotaz. Tato kapitola je velice užitečná pokud si uvědomíme, že chyby v databázích jsou velmi časté a dopouštějí se jich i odborníci.
Práce s událostmi
V této kapitole autor popisuje různé akce jako například stisknutí tlačítka či klávesy na klávesnici. Nakonec si osvojíte práce s podmínkami událostí. Tuto kapitolu bych také zařadil do těch zbytečných, není zde totiž ani zmínka o databázi či využití událostí v databázových aplikacích. Je jasné, že autor očekává vlastní iniciativu čtenářů, ale mohl se pokusit tyto stránky využít lépe.
Textová a binární data
Tato kapitola je v duchu obrázků a textových souborů. Nejprve si pomocí ADO.NET převedete obrázek na binární kód a uložíte jej i s názvem souboru do databáze. Nakonec vytvoříte WinForms aplikaci, jenž nahraje obrázky z databáze a převede je z binární soustavy zpět na objekt. V další části budete pracovat se stejným kódem, akorát upraveným pro textová data.
Technologie LINQ
Tato technologie se stala rozšířenou až s příchodem .NET 3.5. V průběhu kapitoly si vysvětlíte základy technologie LINQ a jeho jednoduché dotazy v podobě SELECT a WHERE. Představíte si také komponenty LINQ to Object, LINQ to SQL a LINQ to XML. Nakonec si ukážete i některé nové dotazy pomocí jazyka C# 2008.
Knihovna ADO.NET 3.5
Na konci knihy naleznete kapitolu zabývající se novou technologií ADO.NET 3.5, především ADO.NET 3.5 Entity Framework. NejdříV si řeknete, k čemu entitní datový model slouží a jak využít třídy generované z konceptuálního schématu. Hlavní výhodou entit je, že klientská aplikace a databáze se mohou vyvíjet nezávisle na sobě, nemusíte tedy zasahovat do zdrojového kódu aplikace, stačí když změny ošetříte v XML souboru schématu. Entitní datový model také umožňuje programovat objektově orientovaným způsobem.
O autorovi
Vidya Vrat Agarwal je nejen špičkovým databázovým specialistou, ale také profesionálním programátorem webových aplikací. Na svém kontě, jako autor knih vydaných nakladatelstvím APRESS.COM, má již řadu publikací zabývajících se tvorbou webových aplikací a databází.
Z druhé stránky je silně věřící člověk, na některých stránkách označován i jako bibliofil. Přesvědčivý důkaz je i jeho předmluva v knize, kde nešetří poděkováním jak své rodině, tak bohu a spoustu dalším lidem za zdárné dokončení. Více informací o autorovi se dozvíte na jeho blogu.
Závěr
Tuto knihu mohu doporučit, je praktická a přehledná, za každou ukázkou následuje vysvětlení. Díky tomu, že je kniha novou publikací, poskytuje jak zažité a ověřené postupy, tak nové, přicházející s knihovnou ADO.NET 3.5. k vytknutí toho tedy moc není, až na některé kapitoly, které mi přišly tak trochu zbytečné, jinak jsem byl s knihou spokojen.