IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

1. diel - Úvod do databáz v C #

Vítam Vás pri prvej lekcie kurzu o programovaní databázových aplikácií v C# .NET. Kurz spracováva pokročilú problematiku čo možno najjednoduchšie a s čo najviac príkladmi a ilustráciami, preberieme v ňom teórii aj praxi a niekoľko prístupov, ktoré sa v C# pre prácu s databázou používajú. Kurz opisuje prácu s MS-SQL databáz v jazyku C# .NET. Na sieti sa nachádza aj podrobnejšie seriál len o MS-SQL databáze (nezávisle na jazyku).

K čomu databáze?

Možno vás napadlo, k čomu vlastne potrebujeme nejakú databázu. Dáta by sme rovnako dobre mohli ukladať do nejakých textových súborov, binárek, XML alebo niečoho podobného. Určite by to nejako fungovalo, alebo nie?

RDBMS

RDBMS - Databázy v C # - ADO.NET

Označenie databázy je vlastne nepresné a v odbornej literatúre sa stretneme s označením RDBMS (Relation DataBase Management System). Slovensky je to preložené ako "databázový systém", čo znie naozaj hrozne a preto budem ďalej používať označenie databázový stroj alebo RDBMS. Databázový stroj (teda tu MS-SQL) nie je len úložisko dát. Jedná sa o veľmi sofistikovaný a odladený nástroj, ktorý za nás rieši veľa problémov a zároveň je extrémne jednoduchý na použitie. S databázou totiž komunikujeme jazykom SQL, ktorým sú v podstate ľudsky zrozumiteľné vety. Nad týmto jazykom vzniklo mnoho nadstavieb a my sa s ním v kurze dokonca vôbec nestretneme (ak SQL neovládate, nebudete to ani potrebovať), budeme s databázou pracovať ako s objektmi pomocou technológie LINQ to SQL, od toho ako sú dáta uložené alebo vyhľadávaná budeme plne odtienené, bude to za nás riešiť databázy.

Spolu s ukladaním dát je ale potrebné ďalej riešiť mnoho ďalších vecí. Asi by nás napadlo napr. Zabezpečenia alebo optimalizácie výkonu. RDBMS toho ale robí ešte oveľa viac, rieši za nás problém súčasnej editácia rovnaké položky niekoľkými užívateľmi v rovnaký okamih, ktorý by inak mohol zapríčiniť nekonzistentnosti databázy. RDBMS dáta v tomto prípade zamkne a odomkne až po vykonaní zápisu. Ďalej umožňuje spájať niekoľko dotazov do transakcií, kedy sa séria otázok vykoná vždy celá alebo vôbec. Nestane sa, že by sa vykonala len časť. Tieto vlastnosti databázového stroja sú zhrňované skratkou ACID, poďme si ju vysvetliť.

ACID

ACID je akronym slov Atomicita (nedeliteľnosť), Consistency (validita), Isolation (izolácia) a Durability (trvanlivosť). Jednotlivé zložky majú nasledujúci význam:

  • Atomicita - Operácie v transakcii sa vykonajú ako jedna atomická (nedeliteľná) operácie. Tzn. že ak nejaká časť operácie zlyhá, vráti sa databázy do pôvodného stavu a žiadne časti transakcie nebudú vykonané. Reálny príklad je napr. Prevod peňazí na bankovom účte. Ak sa nepodarí peniaze odpočítať z jedného účtu, nebudú ani pripísané na účet druhý. Inak by bola databázy v konzistentnom stave. Ak by sme si prácu s dátami riešili sami, mohlo by sa nám toto veľmi jednoducho stať.
  • Consistency - Stav databázy po dokončení transakcie je vždy konzistentné, teda validný podľa všetkých definovaných pravidiel a obmedzení. Nikdy nenastane situácia, že by sa databázy nachádzala v nekonzistentnom stave.
  • Isolation - Operácie sú izolované a navzájom sa neovplyvňujú. Ak sa zíde v jeden okamih viac dotazov na zápis do rovnakého riadku, sú vykonávané postupne, ako vo fronte.
  • Durability - Všetky zapísané dáta sú okamžite zapísané na trvanlivá úložisko (na pevný disk), v prípade výpadku el. energie alebo iného prerušenie prevádzky RDBMS všetko zostane tak, ako bolo tesne pred výpadkom.

Databáza (presnejšie databázový stroj) je teda čierna skrinka, s ktorou naše aplikácie komunikuje a do ktorej ukladá všetky dáta. Jej použitie je veľmi jednoduché a je odladená tak, ako by sme si sami zápis dát v programe asi ťažko urobili. Vôbec sa nemusíme starať o to, ako sú dáta fyzicky uložené, s databázou komunikujeme pomocou jednoduchého dotazovacieho jazyka SQL, viď ďalej. V dnešnej dobe sa vôbec neoplatí zaťažovať sa otázkou ukladanie dát, jednoducho siahneme po hotové databázu, ktorých je obrovský výber a sú väčšinou zadarmo. O databázu občas hovoríme ako o 3. vrstve aplikácie (1. vrstva je užívateľské rozhranie, 2. vlastné logika aplikácie, 3. je práve dátová vrstva).

MS-SQL Server

Databázy v C # - ADO.NET

VC # sa pracuje takmer výlučne s databázou MS-SQL (niekedy sa technológia označuje ako T-SQL ako Transact SQL). Teoreticky možno v C# pracovať s ľubovoľnou databázou (napr. SQLite, MySQL a podobne.) Prakticky sú však všetky nástroje a technológie optimalizované pre MS-SQL (ako inak, keď je od Microsoftu :) ) A naopak nástroje pre iné databázy moc ľudí nepoužíva, ich vývoj skončil, alebo sú v alfa verzie a podobne. Výnimkou sú databázy Oracle, s ktorými MS počíta, ale ktoré sú určené pre veľké podniky a pre nás sa celkom určite nehodí. MS-SQL nie je zlá databázy a možno ju používať zadarmo. Keď si vyberieme práve tú, vyhneme sa mnohým problémom a vývoj aplikácie pôjde relatívne ľahko. Aby sme mohli s databázou pracovať, potrebujeme mať nainštalovaný MS-SQL Server, opäť platí, že verzia Express je s minimálnymi obmedzeniami zadarmo. Ja tu používam verziu 2008, ale pokojne si stiahnite novšie, najmä ak používate napr. Visual Studio 2012, sťahujte Microsoft SQL Server 2012 Express. Pravdepodobne budete opýtaný na výber balíčka, stiahnite ten najväčší, ktorý obsahuje tak databázu, tak Management Studio, čo je administračný nástroj, ktorý budeme k tvorbe databázy používať.

Relačnej databázy

MS-SQL je tzv. Relačnej databázy. Tento pojem označuje databázu založenú na tabuľkách. Každá tabuľka obsahuje položky jedného typu. Môžeme mať teda tabuľku uzivatele, ďalšiu tabuľku clanky a ďalšie potrebné komentare.

Databázovú tabuľku si môžeme predstaviť napríklad ako tabuľku v Exceli. Tabuľka uzivatele by mohla vyzerať asi takto:

Meno priezvisko dátum narodenia počet článkov
Jan Novák 11.3.1984 17
Tomáš márny 1.2.1989 6
Josef nový 20.12.1972 9
Michaela Slavíková 14.8.1990 1
Položky (konkrétne tu užívatelia) ukladáme na jednotlivé riadky, stĺpce potom označujú atribúty (vlastnosti, ak chcete), ktoré položky majú. MS-SQL databázy je typová, to znamená, že každý stĺpec má pevne stanovený dátový typ (číslo, znak, krátky text, dlhý text ...) a môže obsahovať hodnoty len tohto typu. Ak chceme s relačné databázou rozumne pracovať, každý riadok v tabuľke by mal byť opatrený unikátnym identifikátorom. U užívateľov by to mohlo byť napríklad rodné číslo, oveľa častejšie sa však používajú identifikátory umelé a to tak, že používateľa jednoducho očíslujeme. K tomu sa dostaneme neskôr.

Slovo relačné označuje vzťah (anglicky relation). Ten je medzi tabuľkami alebo medzi jednotlivými subjektmi v jednej tabuľke. To si však necháme na inokedy a zatiaľ budeme pracovať len s jednou tabuľkou zároveň.

ADO.NET

ADO.NET je knižnica, ktorá zastrešuje technológie pre prístup k dátam a práci s nimi. Je súčasťou .NET frameworku. Obsahuje poskytovateľov dát, ktorí sú navrhnutí vždy pre konkrétny typ dátového zdroja. Najprv teda musíte vybrať vhodného poskytovateľa dát pre našu databázu. My už vieme, že budeme pracovať s databázou MS-SQL, ale ich mali by ste vedieť, že rovnakým spôsobom vie C# pracovať napríklad s databázami MS Access alebo Oracle.

Prehľad poskytovateľov dát

Názov poskytovateľa menný priestor popis
SQL System.Data.SqlCli­ent určené pre SQL Server
OLEDB System.Data.OleDb vhodné pre DB MS Access
ODBC System.Data.Odbc pre prístup k DB nezávisle na OS a typu databázy
oracle System.Data.O­racleClient určené pre Oracle
Ďalšie poskytovateľa si môžete stiahnuť a doinštalovať sami (napr. MySQL zo stránok http://dev.mysql.com/...nnector/net/)

Dnešné lekciu ponechajme ako úvodný, nainštalujte si MS-SQL Server a v budúcej lekcii, Vytvorenie databázy v MS SQL Management Studio , si vytvoríme databázu, ku ktorej sa budeme z C# pripájať.


 

Všetky články v sekcii
Databázy v C # - ADO.NET
Preskočiť článok
(neodporúčame)
Vytvorenie databázy v MS SQL Management Studio
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
3 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