Šablona Závěrečné Práce
Total Page:16
File Type:pdf, Size:1020Kb
ABSTRAKT Cílem práce je seznámit čtenáře s problematikou objektově-relačního mapování. Teoretická část popisuje objektově-orientované a relační paradigmata a způsoby jejich mapování. Praktická srovnává objektově-relační frameworky pro .NET a zabývá se způsobem implementace hromadného vkládání dat pro tyto frameworky. KLÍČOVÁ SLOVA Objektově-relační mapování, ORM, .NET, C#, Relační databáze, LINQ, Entity framework, NHibernate, OpenAccess, LLBLGen, hromadné vkládání dat, Microsoft SQL ABSTRACT The aim of the thesis is to explain issues of object-relational mapping. The theoretical part describes object-oriented and relational paradigmas and ways of their mapping. The practical part compares object-relational mapping frameworks for .NET and suggests how to implement bulk insert into these frameworks. KEYWORDS Object-relational mapping, ORM, .NET, C#, relational database, LINQ, Entity framework, NHibernate, OpenAccess, LLBLGen, bulk insert, Microsoft SQL Vais, Z. Frameworky pro mapování relační databáze na objekty vhodné pro platformu .NET. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2014. 59 s., 12 s. příloh. Bakalářská práce. Vedoucí práce: doc. Ing. Ivo Lattenberg, Ph.D. PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma Frameworky pro mapování relační databáze na objekty vhodné pro platformu .NET jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářská práce dále prohlašuji, že v souvislosti s vytvořením této bakalářská práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědom následků porušení ustanovení § 11 a následujících zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb. V Brně dne .............................. .................................... (podpis autora) PODĚKOVÁNÍ Děkuji vedoucímu bakalářské práce doc. ing. Ivo Lattenbergovi, Ph.D.. za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé bakalářské práce. V Brně dne .............................. .................................... (podpis autora) OBSAH Obsah v Seznam obrázků ix Seznam tabulek x Úvod 1 1 Relační databáze a SQL 2 1.1 Systém řízení báze dat a SQL ................................................................... 2 1.2 Základní prvky relačních databází ............................................................ 2 1.3 Vazby mezi tabulkami .............................................................................. 3 1.3.1 Stupeň vazby ......................................................................................... 3 1.3.2 Kardinalita ............................................................................................ 3 1.3.3 Volitelnost ............................................................................................. 3 1.4 Nejpoužívanější databázová řešení ........................................................... 4 2 Microsoft SQL Server a SQL CE 5 2.1 Microsoft SQL Server ............................................................................... 5 2.2 Microsoft SQL Server Compact ............................................................... 6 2.3 Rozdíly mezi SQL Serverem a SQL CE ................................................... 7 3 Platforma .NET a Programovací jazyk C# 8 3.1 Microsoft .NET ......................................................................................... 8 3.1.1 Principy ................................................................................................. 8 3.1.2 Architektura a kompilační proces ......................................................... 9 3.2 Programovací jazyk C# ............................................................................. 9 3.2.1 Podporovaná paradigmata ..................................................................... 9 3.2.2 Verze a historie ................................................................................... 10 3.3 Ostatní .NET jazyky ............................................................................... 11 4 Objektově orientované programování 12 4.1 Třídy, instance a objekty ......................................................................... 12 4.2 Koncepty ................................................................................................. 12 v 4.2.1 Zapouzdření ........................................................................................ 12 4.2.2 Dědičnost ............................................................................................ 13 4.2.3 Polymorfimus ...................................................................................... 14 4.3 Vztahy mezi objekty ............................................................................... 14 4.3.1 Asociace .............................................................................................. 14 4.3.2 Agregace ............................................................................................. 15 4.3.3 Kompozice .......................................................................................... 15 5 Funkcionální programování 16 5.1 Koncepty ................................................................................................. 16 5.2 Prvky funkcionálního programování v C# .............................................. 16 5.2.1 Delegáti ............................................................................................... 16 5.2.2 Anonymní funkce ............................................................................... 16 5.2.3 Lambda výrazy ................................................................................... 16 5.2.4 Language Integrated Query ................................................................ 17 6 Objektově-relační mapování 18 6.1 Problém Impedance Mismatch ............................................................... 18 6.2 Mapování základní databázových prvků ................................................ 19 6.3 Mapování databázových vazeb na objekty ............................................. 20 6.3.1 Mapování asociačních vazeb .............................................................. 20 6.3.2 Mapování dědičnosti ........................................................................... 21 6.4 Výhody a nevýhody ................................................................................ 23 7 Objektově-relační frameworky pro .NET 24 7.1 Přehled nejvýznaměnjších projektů ........................................................ 24 7.2 Podporované databáze ............................................................................ 26 8 Srovnání vybraných ORM 27 8.1 Parametry testování ................................................................................. 27 8.1.1 Funkcionalita ...................................................................................... 27 8.1.2 Testovací databáze .............................................................................. 29 8.1.3 Testované dotazy ................................................................................ 29 8.1.4 Výkonnost ........................................................................................... 31 8.2 LINQ to SQL .......................................................................................... 31 8.2.1 Cena .................................................................................................... 31 8.2.2 Dokumentace ...................................................................................... 31 vi 8.2.3 Funkcionalita ...................................................................................... 31 8.2.4 Použití ................................................................................................. 32 8.2.5 Výkonnost ........................................................................................... 33 8.3 Entity framework .................................................................................... 34 8.3.1 Cena .................................................................................................... 34 8.3.2 Dokumentace ...................................................................................... 34 8.3.3 Funkcionalita ...................................................................................... 34 8.3.4 Použití ................................................................................................. 36 8.3.5 Výkonnost ........................................................................................... 37 8.4 NHibernate .............................................................................................. 37 8.4.1 Cena .................................................................................................... 37 8.4.2 Dokumentace ...................................................................................... 38 8.4.3 Funkcionalita ...................................................................................... 38 8.4.4 Použití ................................................................................................. 40 8.4.5 Výkonnost ..........................................................................................