PORÓWNANIE WYDAJNOŚCI METOD DOSTĘPU DO BAZ SQL W ŚRODOWISKU.NET COMPARISON OF DATABASE ACCESS METHOD PERFORMANCE IN.NET FRAMEWORK

Wielkość: px
Rozpocząć pokaz od strony:

Download "PORÓWNANIE WYDAJNOŚCI METOD DOSTĘPU DO BAZ SQL W ŚRODOWISKU.NET COMPARISON OF DATABASE ACCESS METHOD PERFORMANCE IN.NET FRAMEWORK"

Transkrypt

1 PORÓWNANIE WYDAJNOŚCI METOD DOSTĘPU DO BAZ SQL W ŚRODOWISKU.NET Mirosław Kordos i Justyna Żynda Akademia Techniczno-Humanistyczna w Bielsku-Białej Streszczenie. Artykuł zawiera przegląd i analizę metod dostępu do relacyjnej bazy danych na serwerach MS SQL Server 2008R2 oraz MS SQL Server 20 CTP ze środowiska.net 4.0 oraz porównanie ich wydajności. Zaprezentowano w nim opis poszczególnych metod, omówienie aplikacji testowej oraz wyniki przeprowadzonych testów i wnioski z nich wynikające. Słowa kluczowe: bazy danych, ORM COMPARISON OF DATABASE ACCESS METHOD PERFORMANCE IN.NET FRAMEWORK Abstract. Article presents overview and analysis of MS SQL Server 2008R2 and MS SQL Server 20 CTP databases access methods in.net 4.0 framework as well as their performance comparison. Additionally, this paper contains description of individual methods, review of test application and results of conducted measurements as well as conclusions. Keywords: databases, ORM Wprowadzenie Do korzystania z najpopularniejszych relacyjnych baz danych można użyć kilku metod, których działanie nie ogranicza się tylko do przekazywania poleceń do silnika bazy lub pobierania danych. Język C# niejako wymusza pisanie oprogramowania w sposób obiektowo zorientowany, dla którego występuje zjawisko impedancji obiektowo-relacyjnej (object-relational impedance mismatch) rozwiązaniem tego problemu są metody realizujące mapowanie obiektowo-relacyjne (ORM object-relational mapping). Umożliwiają one pracę na relacyjnie składowanych danych udostępniając je jako obiekty. Korzystanie z nich pociąga za sobą wykonywanie dodatkowego kodu odpowiedzialnego za przekształcenie struktury relacyjnej na obiektową (i na odwrót) oraz za tłumaczenie zapytań definiowanych w kodzie, na przykład za pomocą LINQ, na język SQL natywny dla silników bazodanowych. Oprócz obiektowej struktury, zaletami metod realizujących ORM jest między innymi samodzielne zarządzanie przez nie połączeniami do bazy danych. Są one uważane za wygodniejsze, ale niekoniecznie równie wydajne jak metody bardziej bezpośrednie.

2 Porównywane metody ADO.NET ADO.NET jest częścią platformy.net. Dostarcza narzędzia umożliwiające podłączenie do bazy danych, wykonywanie komend oraz pozyskiwanie danych. ADO.NET składa się z dwóch głównych komponentów: dostawcy danych (Data Provider) i obiektów Data Set. Rysunek : Architektura ADO.NET Dostawca danych odpowiada za podłączenie do bazy danych i manipulację danymi. W skład dostawcy danych wchodzą cztery klasy. Połączenie z bazą danych nawiązuje i zamyka obiekt klasy Connection. Do wykonywania zapytań, przesyłania instrukcji i wywoływania procedur składowanych służy klasa Command. Obiekt klasy DataReader dostarcza odczytywany wierszami strumień danych. DataAdapter to klasa która umożliwia zapisanie danych do obiektu Data Set, który umożliwia przechowywanie danych bez utrzymywania połączenia z bazą. Data Set zawiera obiekty Data Table posiadają one strukturę podobną do tabel w relacyjnej bazie danych. W ADO.NET możliwe są dwa sposoby dostępu do danych: z otwartym połączeniem i odłączony. W tym pierwszym aplikacja korzysta z danych dostarczonych bezpośrednio przez dostawcę danych, natomiast w sposobie odłączonym dostawca danych przekazuje dane do obiektu Data Set. LINQ TO SQL Data Classes LINQ TO SQL jest częścią platformy.net realizującą mapowanie obiektowo-relacyjne.

3 Zapytania do bazy danych definiowane są jako integralna część kodu programu w języku LINQ. Podczas działania programu LINQ TO SQL tłumaczy je na kod SQL i wysyła do bazy danych, zwrócone wyniki przekształcane są na obiekty którymi można manipulować. LINQ TO SQL umożliwia także wywoływanie procedur składowanych. Źródło danych reprezentuje obiekt DataContext, poszczególne tabele - wygenerowane klasy. ADO.NET Entity Framework Podobnie jak LINQ TO SQL, Entity Framework jest narzędziem ORM udostępnia fizyczny schemat bazy danych w postaci abstrakcyjnego schematu pojęciowego, niwelując impedancję pomiędzy relacyjną bazą danych i obiektowo-zorientowanym językiem programowania. W przeciwieństwie do LINQ TO SQL, które mapuje schemat bazy danych na klasy w sposób bezpośredni, Entity Framework umożliwia stworzenie modelu danych luźno sprzężonego ze schematem bazy. Przykładowo możliwe jest mapowanie kilku tabel do pojedynczej klasy i odwrotnie. Kolejną właściwością Entity Framework, której brakuje LINQ TO SQL, jest bezpośrednia obsługa relacji wiele do wiele. Obiekt ObjectContext umożliwia wykonywanie manipulacji danymi poprzez obiekty encji. Aplikacja testowa Dla potrzeb aplikacji zaprojektowano trzy schematy baz danych. Pierwszy stanowiący uproszczony model systemu zamówień, drugi abstrakcyjny, z niewielką ilością tabel i relacji oraz trzeci analogiczny z drugim ale ze zwiększoną ilością tabel i relacji. Bazy zostały wypełnione danymi stworzonymi w sposób losowy, w oparciu o generator liczb pseudo-losowych zaimplementowany w bibliotekach systemowych.net klasę Random. Zapytania SELECT realizowane są przy użyciu klasy Data Reader (poprzez zapytanie oraz wywołanie procedury składowanej), klasy Data Set (poprzez zapytanie oraz wywołanie procedury składowanej), klas mapujących LINQ TO SQL i metody reprezentującej procedurę składowaną oraz encji Entity Framework. Zapytania INSERT wykonywane są przy pomocy klasy Data Reader (poprzez zapytanie oraz wywołanie procedury składowanej), klas mapujących LINQ TO SQL i metody reprezentującej procedurę składowaną oraz encji Entity Framework. Zapytania UPDATE wykonywane są przy pomocy klasy Data Reader (poprzez zapytanie oraz wywołanie procedury składowanej), klas mapujących LINQ TO SQL i metody reprezentującej procedurę składowaną oraz encji Entity Framework. Do pomiaru czasu wykonywania poszczególnych zapytań użyto klasy StopWatch z przestrzeni nazw System.Diagnostics. Przed każdym pomiarem tworzono obiekt klasy StopWatch, pomiar rozpoczynając wywołaniem metody Start a kończąc metodą Stop. Czas pomiaru wskazuje właściwość Elapsed. Pod uwagę brano tylko sam czas wykonywania zapytania. Czas trwania nawiązywania połączenia, tworzenia obiektów niezbędnych do wykonania komendy, generowania danych nie był

4 mierzony. Testy przeprowadzono na komputerze z 32 bitowym systemem Windows 7, procesorem Intel Pentium 4 3,00 GHz, dwoma dyskami ATA 70 i 20 GB. Zaprezentowane wyniki pochodzą z testów na MS SQL Server 2008 R2, wyniki testów przeprowadzonych na MS SQL Server 20 CTP były zbliżone. Analiza wyników Zapytania SELECT Zapytanie pierwsze Zapytanie pierwsze zwraca wszystkie dane z tabeli. W przypadku schematu pierwszego z tabeli DBKlienci, w drugim schemacie z tabeli DB2T oraz w trzecim z tabeli DB3T. Zapytanie w SQL dla pierwszego schematu bazy: SELECT * FROM DBKlienci; Odpowiadające mu zapytanie LINQ: List<DBKlienci> klienci = (from k in dc.dbkliencis select k).tolist(); W tym przypadku dla każdego stanu bazy DB najszybsze okazały się metody Data Reader oraz Data Reader wywołujący procedurę składowaną. Średnie geometryczne czasów ich wykonywania są do siebie bardzo zbliżone, odchylenia standardowe również są niewielkie. Trzecie w kolejności najszybszego wykonywania jest wywoływanie procedury składowanej za pomocą LINQ TO SQL. Następnie bardzo zbliżone do siebie czasami wykonywania dla większości stanów bazy danych LINQ TO SQL, Data Adapter i wywoływanie przez niego procedury składowanej. Dla większości stanów bazy danych najwolniej radziło sobie Entity Framework, ale dla wierszy w tabeli DBKlient jego miejsce zajął Data Adapter, którego średnia czasów wykonywania gwałtownie wzrosła, wzrosło również odchylenie standardowe co wskazuje na duży rozrzut czasów wykonywania przez niego zapytania. Dla bazy DB2 czasy wykonywania zapytania pierwszego są niższe, zmniejszyły się także różnice pomiędzy szybkością działania poszczególnych metod dla i wierszy różnica między szybkością działania najszybszej metody DataReader i wywoływanej przez nią procedury składowanej a pozostałymi metodami bardzo się zmniejszyła. Spadek wydajności był stały na co wskazuje brak wzrostu odchylenia standardowego. Niezmieniona w stosunku do pomiarów dla DB pozostała kolejność metod od najszybszej do najwolniejszej: metody DataAdapter + DataSet, wywoływana przez nie procedura składowana oraz LINQ TO SL uzyskały zbliżone czasy, trochę lepiej radziła sobie procedura składowana wywoływana przez LINQ TO SQL. Najgorzej wypadło Entity Framework. Różnice pomiędzy działaniem najszybszej i najwolniejszej metody wynoszą od do 25 sekund.

5 Czas w sekundach (średnia geometryczna) 00 0 T T_SPR OC 0, Ilość wierszy w tabeli Klient Rysunek 2: Wykres czasów wykonywania pierwszego zapytania SELECT dla bazy DB , T T_SPROC 0, Ilość wierszy w tabeli T Rysunek 3: Wykres średnich geometrycznych czasów zapytania SELECT typu pierwszego dla bazy DB2 Dla bazy DB3 czasy wykonywania zapytania pierwszego są najwyższe. Podobnie jak w dwóch poprzednich schematach najlepiej wypadła metoda DataReader i wywoływana przez nią procedura składowana. Następną najbardziej wydajną metodą jest procedura składowana wywoływana przez LINQ TO SQL ale dla większej ilości wierszy w bazie jej miejsce zajmuje Entity Framework, który dla mniejszej ilości wierszy wypada najgorzej. LINQ TO SQL, DataAdpater z DataSet oraz procedura składowana przez niego wywoływana wypadają najgorzej dla większej ilości wierszy. Różnice między najlepszym a najgorszym wynikiem wynoszą od,9 sekundy do 203 sekund. Wraz

6 ze wzrostem wierszy w bazie odnotowano zdecydowany wzrost odchylenia standardowego. Ta nierównomierność w najmniejszym stopniu dotyczyła metody Data Reader oraz wywoływanej przez nią procedury składowanej , T T_SPROC Ilość wierszy w tabeli T Rysunek 4: Wykres średnich geometrycznych czasów wykonywania pierwszego zapytania SELECT dla bazy DB3 Zapytanie drugie Drugie zapytanie łączy dwie tabele i zlicza ilość wierszy dla których istnieje powiązanie z daną wartością. Wartości są zliczane dla wierszy spełniających zdefiniowany warunek. Dla tabel z pierwszego schematu zapytanie łączy tabelę DBProdukty z tabelą DBZamowieniaPozycje i zwraca nazwy produktów których ceny jednostkowe są większe od 00 oraz ilość pozycji zamówień na których znajduje się dany produkt. W SQL: SELECT DBProdukty.nazwa, count(id_pozycja) FROM DBZamowieniaPozycje JOIN DBProdukty ON DBZamowieniaPozycje.id_produkt = DBProdukty.id_produkt WHERE DBProdukty.cena_jednostkowa > 00 GROUP BY DBProdukty.id_produkt, DBProdukty.nazwa; oraz w LINQ: var produkty = (from p in dc.dbprodukties where p.cena_jednostkowa > 00 group p by p.id_produkt into g select new { nazwa = g.select(y => y.nazwa), ilosc = g.select(x => x.dbzamowieniapozycjes.select(z => z.id_pozycja).count()) }).ToList();

7 Dla drugiego i trzeciego schematu tabelom DBProdukty i DBZamowieniaPozycje odpowiadają kolejno tabele DB2T i DB2T2 oraz DB3T i DB3T2. Wykonanie zapytania drugiego zajmowało więcej czasu najmniej przy wywoływaniu procedury składowanej za pomocą Data Readera na równi z użyciem Data Readera z komendą zdefiniowaną w obiekcie SqlCommand jak i wywoływaniem procedury składowanej przez LINQ TO SQL. Nieco gorzej radził sobie Data Adapter przy użyciu komendy jak i procedury, oraz Entity Framework. Tak jak przy wykonywaniu pierwszego zapytania czas wykonywania polecenia przez Data Adapter, oraz jego odchylnie standardowe, mocno wzrosły dla wierszy w tabeli. Najgorzej wypadła metoda LINQ TO SQL, której czas wykonywania zapytania ze złączeniami jest wręcz nieporównywalny z czasami innych metod. Z tego powodu też nie została ona umieszczona na wykresie. Średnia wykonywania zapytania przez LINQ TO SQL dla wierszy wynosi 437,30 sekund a dla wierszy 659,32. Dla takiej ilości wierszy tylko Entity Framework wykonał zapytanie w czasie większym niż sekunda: te czasy to odpowiednio,09 i 2,02 sekundy. Różnice pomiędzy czasami tych dwóch metod wynoszą w przybliżeniu 7 i 27 minut dla odpowiednio i wierszy. 00,00 0,00,00 T T_SPR OC 0, IIlość wierszy w tabeli DBKlient Rysunek 5: Wykres czasów wykonywania drugiego zapytania SELECT dla bazy DB Dla bazy DB2 kolejność najbardziej wydajnych metod jest taka sama jak dla bazy DB, a wykres prezentuje się bardzo podobnie. Czasy wykonywania są jednak nieco niższe niż w przypadku bazy DB. Tak samo jak na poprzednim wykresie pominięte zostały czasy wykonywania zapytania przez LINQ TO SQL, którego czasy dla i wierszy wynoszą 307 i 54 sekund dla czasów pozostałych metod mieszczących się odpowiednio w granicach 0,2 0,8 oraz,4,6.

8 Czas wykonywania (średnia geometryczna) , T T_SPROC Ilość wierszy w tabeli T Rysunek 6: Wykres średnich geometrycznych czasów wykonywania zapytania SELECT typu drugiego dla bazy DB2 Dla bazy DB3 wraz ze wzrostem ilości wierszy w bazie czas wykonywania zapytania przez poszczególne metody wzrasta gwałtowniej, odnotowano również wzrost odchylenia standardowego a różnica między metodami w stosunku do czasów wykonywania zmniejsza się. Najgorzej wypada Entity Framework. Najlepiej Data Reader oraz procedura składowana wywoływana przez niego i przez LINQ TO SQL , T T _SPROC Ilość wierszy w tabeli T Rysunek 7: Wykres średnich geometrycznych czasów wykonywania zapytania SELECT typu drugiego dla bazy DB3

9 Zapytanie trzecie Trzecie zapytanie łączy trzy tabele. Zwraca sumę wartości operacji mnożenia z powiązanych wierszy. Dla pierwszego schematu zapytanie zwraca imię klienta i sumę wartości jego zamówień obliczanych jako iloczyn ceny i ilości zakupionych produktów zapisanych w pozycjach zamówień. Zapytanie trzecie w SQL: SELECT DBKlienci.imie, sum(dbzamowieniapozycje.cena * ilosc) FROM DBKlienci JOIN DBZamowienia ON DBKlienci.id_klient=DBZamowienia.id_klient JOIN DBZamowieniaPozycje ON DBZamowienia.id_zamowienie = DBZamowieniaPozycje.id_zamowienie GROUP BY DBKlienci.id_klient, DBKlienci.imie; Odpowiadające zapytanie w LINQ: var klienci = (from k in dc.dbkliencis join z in dc.dbzamowienias on k.id_klient equals z.id_klient join zp in dc.dbzamowieniapozycjes on z.id_zamowienie equals zp.id_zamowienie group zp by k.id_klient into g select new { klient = g.select(x => x.dbzamowienia.dbklienci.imie), suma = g.sum(y => y.cena * y.ilosc) } ).ToList(); Dla drugiego i trzeciego schematu tabelom DBKlienci, DBZamowienia, DBZamowieniaPozycje odpowiadają kolejno tabele DB2T, DB2T2 i DB2T3 oraz DB3T, DB3T2 i DB3T3. Czasy wykonywania zapytania trzeciego są nieco wyższe, najszybciej wykonywały je procedura składowana wywoływana przez Data Reader, procedura wywoływana przez LINQ TO SQL i komenda Data Reader. Niewiele dłużej zapytanie wykonywał Data Adapter przy użyciu komendy i procedury składowanej. Dla wierszy zwiększyły się różnice w czasach wykonywania zapytania przez Data Adapter i średnia czasu wykonywania przez niego zapytania. Zwiększyła się również różnica w czasie wykonywania zapytania przy użyciu Entity Framework w stosunku do szybszych metod, wciąż jednak nie tak drastyczna jak czasy wykonywania zapytania przez LINQ TO SQL, dla którego dodanie kolejnego złączenia pogłębiło przepaść dzielącą je od pozostałych metod. Różnice pomiędzy wykonywaniem zapytania przez Entity Framework i LINQ TO SQL dla i wierszy wynoszą 20 i 80 minut.

10 Czas w sekundach (średnia geometryczna) 000,00 00,00 0,00,00 T T_SPR OC 0, Ilość wierszy w tabeli DBKlient Rysunek 8: Wykres czasów wykonywania trzeciego zapytania SELECT dla bazy DB Wyniki pomiarów dla schematu DB2 są analogiczne w stosunku do wyników dla DB. Wykres prezentuje się bardzo podobnie jednak średnie czasy wykonywania zapytania są mniejsze. Podobnie jak w przypadku DB różnica między LINQ TO SQL i pozostałymi metodami jest diametralna T T_SPROC 0, Ilość wierszy w tabeli DB2T R ysunek 9: Wykres średnich geometrycznych czasów wykonywania zapytania SELECT typu trzeciego dla bazy DB2 Wyniki wykonania zapytania trzeciego dla DB3 są bardzo podobne do wyników zapytania drugiego dla tej samej bazy. Podobnie jak w poprzednim przypadku wraz ze wzrostem ilości wierszy w bazie odnotowano bardziej gwałtowny przyrost czasów wykonywania zapytania dla

11 wszystkich metod oraz zmniejszenie różnicy pomiędzy poszczególnymi czasami w stosunku do czasu wykonywania. Wraz ze wzrostem ilości wierszy rośnie również odchylenie standardowe. Dla większości przypadków najlepiej wypada metoda Data Reader oraz procedura składowana wywoływana przez niego i LINQ TO SQL , T T_SPROC Ilość wierszy w tabeli DB3T Rysunek 0: Wykres średnich geometrycznych czasów wykonywania zapytania SELECT typu trzeciego dla bazy DB3 Zapytania INSERT Podczas wykonywania zapytania INSERT do tabeli zapisywane są nowe wiersze z losowo utworzonymi wartościami. Zapytanie wykonywane jest dla różnej ilości jednorazowo zapisywanych wierszy. Dla schematu pierwszego dane dodawane są do tabeli DBKlienci, zapytanie w SQL wygląda następująco: INSERT INTO [DBKlienci] ([mail], [imie], [nazwisko], [miejscowosc], [ulica], W schemacie drugim i trzecim dane są dodawane odpowiednio do tabeli DB2T oraz DB3T. Po wykonaniu zapytania wiersze są usuwane aby następne zapytania były wykonywane na bazie w identycznym stanie. Zapytania INSERT wszystkie metody wykonywały w dość zbliżonym czasie, wzrastającym wraz z ilością dodawanych do bazy wierszy. Czasy wykonywania tworzą dwie grupy metod których średnie czasy wykonania niewiele się różnią. W grupie szybszej znalazły się metody Command i wywołanie przez nią procedury składowanej oraz Entity Framework. W grupie wolniejszej znalazło się LINQ TO SQL i wywoływana przez nią procedura składowana. Różnice w czasach pomiędzy tymi dwoma grupami wynoszą od do 20 sekund.

12 Czas w sekundach (średnia geometryczna) 00 0 COMMAND COMMAND_SPROC 0, Ilość dodawanych wierszy Rysunek : Wykres czasów wykonywania zapytania INSERT dla wierszy w tabeli DBKlient Zwiększenie ilości wierszy w bazie danych nie wpłynęło znacząco na czas wykonywania zapytań INSERT COMMAND COMMAND_SPROC 0, Ilość dodawanych wierszy Rysunek 2: Wykres czasów wykonywania zapytania INSERT dla wierszy w tabeli DBKlient Wykres czasów dodawania wierszy do tabeli w bazie DB2 jest bardzo podobny do wykresu dla bazy DB. Czasy wykonywania zapytania przez poszczególne metody plasują się takiej samej kolejności. Średnie czasów są jednak nieco mniejsze.

13 Czas w sekundach (średnia geometryczna) 00 0 COMMAND COMMAND_SPROC 0, Ilość dodawanych wierszy Rysunek 3: Wykres średnich geometrycznych czasów wykonywania zapytania INSERT dla wierszy w tabeli DB2T Podobnie do czasów wykonywania zapytania INSERT dla bazy DB2 prezentują się wyniki dla bazy DB3. Zwiększyła się różnica między czasami wykonania zapytania przez Command oraz wywołaną przez niego procedurę i Entity Framework. Czasy wykonania zwiększyły się dla wszystkich metod. Spadek wydajności procedury wywołanej przez LINQ TO SQL jest związany ze wzrostem odchylenia standardowego COMMAND COMMAND_SPROC 0, Ilość dodanych wierszy Rysunek 4: Wykres średnich geometrycznych czasów wykonywania zapytania INSERT dla wierszy w tabeli DB3T

14 Zapytania UPDATE Podczas wykonywania zapytania UPDATE z tabeli losowo wybrany zostaje wiersz którego wartości zostaną zaktualizowane przez nowe, otrzymane losowo. Zapytania wykonywane są dla różnej ilości jednorazowo aktualizowanych wierszy. W pierwszym schemacie aktualizowane są dane w tabeli DBProdukty, w języku SQL zapytanie przedstawia się następująco: UPDATE [DBProdukty] SET [cena_jednostkowa] WHERE id_produkt W schemacie drugim i trzecim aktualizowane są odpowiednio tabele DB2T i DB3T. Wraz ze wzrostem ilości wierszy w bazie, wzrost czasów wykonywania zapytania UPDATE właściwy dla wzrostu ilości aktualizowanych wierszy nie jest stały dla metod Command, wywoływania przez Command procedury składowanej oraz wywoływania procedury składowanej przez LINQ TO SQL. Dla każdej ilości aktualizowanych wierszy metody te zajmują różne pozycje na liście najlepszych czasów. Jedynie dwie skrajne pozycje są zajmowane przez te same metody w większości przypadków. Najlepsze okazało się Entity Framework, wzrost czasu wykonywania przez nie zapytania wraz ze wzrostem ilości aktualizowanych danych jest stabilny. Tak samo jak w przypadku najgorzej wypadającej metody LINQ TO SQL. Różnica między najgorszą i najlepszą metodą wynosi od 2 do 68 sekund COMMAND COMMAND_SPROC 0, Ilość aktualizowanych wierszy Rysunek 5: Wykres czasów wykonywania zapytania UPDATE dla wierszy w tabeli DBProdukt

15 Czas w sekundach (średnia geometryczna) 00 0 COMMAND COMMAND_SPROC 0, Ilość aktualizowanych wierszy Rysunek 6: Wykres czasów wykonywania zapytania UPDATE dla wierszy w tabeli DBProdukt Czasy wykonywania zapytania UPDATE dla bazy DB2 są większe niż dla bazy DB, ale kolejność wyników dla poszczególnych metod jest podobna. Najlepiej wypadają metody Command, wywoływana przez nią procedura oraz Entity Framework. Najgorzej LINQ TO SQL. Różnice pomiędzy metodami wynoszą od 3,5 do 44 sekund COMMAND COMMAND_SPROC 0, Ilość aktualizowanych wierszy Rysunek 7: Wykres średnich geometrycznych czasów wykonywania zapytania UPDATE dla wierszy w tabeli DB2T

16 Podobnie jak w przypadku dwóch poprzednich schematów zapytanie UPDATE dla bazy DB3 najszybciej wykonują metody Command, wywoływana przez nią procedura składowana oraz Entity Framework. Najwolniej LINQ TO SQL. Średnie czasy dla wszystkich metod są najwyższe COMMAND COMMAND_SPROC 0, Ilość aktualizowanych wierszy Rysunek 8: Wykres średnich geometrycznych czasów wykonywania zapytania UPDATE dla wierszy w tabeli DB3T Podsumowanie W większości przeprowadzonych testów metody ORM osiągały gorszą wydajność niż metody bezpośrednie. Najgorzej wypadło LINQ TO SQL, które w wielu sytuacjach znacznie odstawało od reszty metod. Jego wydajność znacząco pogarszały bardziej skomplikowane zapytania oraz większa ilość danych. Wywoływanie przez LINQ TO SQL procedur składowanych może stanowić rozwiązanie problemu bardzo kiepskiej wydajności dla rozbudowanych zapytań. LINQ TO SQL to proste narzędzie które dobrze sprawdzi się dla niewielkich aplikacji korzystających z małych ilości danych. Przy użyciu LINQ TO SQL warto używać procedur składowanych. Entity Framework dla zapytań SELECT i INSERT nie wypadało najlepiej, ale jego wydajność nie odbiegała znacząco od innych metod. Natomiast dla zapytań UPDATE Entity Framework znajdował się w czołówce najlepszych metod. Wraz ze wzrostem skomplikowania zapytania oraz ilości danych jego wydajność nie spadała drastycznie. To narzędzie o sporych możliwościach, które może konkurować z metodami bezpośrednimi. Data Adapter i Data Set ze względu na możliwość korzystania z danych bez konieczności utrzymywania połączenia z bazą najlepiej sprawdzi się w aplikacji korzystającej z rzadko zmieniających się danych. Wydajność tej metody jest gorsza od Data Reader'a, ale w większości przypadków lepsza od metod ORM. W większości testów najbardziej wydajną metodą okazał się Data Reader i Command oraz wywoływanie przez nie procedury składowanej. Nie dostarczają one takich udogodnień jak metody ORM, ale zapewniają najlepszą wydajność.

17 References. Paul Nielsen, Uttam Parui and Mike White, Microsoft SQL Server 2008 Bible, Wiley, Ray Rankins, Paul T. Bertucci, Chris Gallelli and Alex T. Silverstein, Microsoft SQL Server 2008 R2 Unleashed, Sams Publishing, 200

Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy 2015-12-18 1 Języki i paradygmaty - 9 Architektura ADO.NET - zestaw abstrakcyjnych klas, które udostępniają

Bardziej szczegółowo

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2 AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie Wydział Geologii, Geofizyki i Ochrony Środowiska Wydajnośd w bazach danych Grzegorz Surdyka Informatyka Stosowana Kraków, 9 Spis treści. Wstęp...

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Wirtualne przedsiębiorstwo II Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate Łukasz Macierzyński 157588 Daniel Nikończuk 157621 Kacper Oko 157626 Agenda 1. Co to jest mapowanie obiektowo-relacyjne

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych) Spis treści Wstęp... xi Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych) 1 Program SQL Server Management Studio oraz język Transact SQL... 3 Omówienie programu SQL Server Management

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania Przedmiot: Bazy danych Rok: III Semestr: V Rodzaj zajęć i liczba godzin: Studia stacjonarne Studia niestacjonarne Wykład 30 21 Ćwiczenia Laboratorium 30 21 Projekt Liczba punktów ECTS: 4 C1 C2 C3 Cel przedmiotu

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: ADMINISTROWANIE INTERNETOWYMI SERWERAMI BAZ DANYCH Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Programowanie aplikacji internetowych Rodzaj zajęć: wykład,

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Language INtegrated Query (LINQ)

Language INtegrated Query (LINQ) Języki Programowania na Platformie.NET (część 2) http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl Zastosowanie LINQ pozwala na dostęp do danych w formie podobnej do SQL. Możliwy jest dostęp do danych:

Bardziej szczegółowo

Projektowanie bazy danych przykład

Projektowanie bazy danych przykład Projektowanie bazy danych przykład Pierwszą fazą tworzenia projektu bazy danych jest postawienie definicji celu, założeń wstępnych i określenie podstawowych funkcji aplikacji. Każda baza danych jest projektowana

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Bazy danych stanowią obecnie jedno z ważniejszych zastosowań komputerów. Podstawowe zalety komputerowej bazy to przede wszystkim szybkość przetwarzania danych, ilość dostępnych

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ

RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ RELACYJNE BAZY DANYCH I ICH ZNACZENIE W SYSTEMACH INFORMACJI GEOGRAFICZNEJ 1. ELEMENTY SYSTEMU INFORMACJI GEOGRAFICZNEJ DANE GEOGRAFICZNE

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Instrukcja laboratoryjna cz.6

Instrukcja laboratoryjna cz.6 Programowanie aplikacji internetowych 2013/2014 Instrukcja laboratoryjna cz.6 Technologia Silverlight cz.2 Prowadzący: Tomasz Goluch Wersja: 3.0 I. Model danych (tworzenie bazy na podstawie modelu). Cel:

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008 JDBC w LoXiMie Interfejs Java Database Connectivity dla systemu LoXiM Adam Michalik 2008 Sterownik JDBC co to jest? Sterownik JDBC to zbiór klas implementujących interfejsy opisane w specyfikacji JDBC

Bardziej szczegółowo

Relacyjne bazy danych a XML

Relacyjne bazy danych a XML Relacyjne bazy danych a XML Anna Pankowska aniap@amu.edu.pl Internet, SQLiXMLwbiznesie Internet nieoceniony sposób komunikacji z klientami, pracownikami i partnerami handlowymi przyspiesza transakcje finansowe

Bardziej szczegółowo

Programowanie w MS Visual Studio 2005 z wykorzystaniem MS SQL Server 2005

Programowanie w MS Visual Studio 2005 z wykorzystaniem MS SQL Server 2005 Programowanie w MS Visual Studio 2005 z wykorzystaniem MS SQL Server 2005 Lekcja 3 Zapisywanie i anulowanie zmian wprowadzonych w DataGridView do pliku z Bazą Danych. Formatowanie DataGridView. Wymagania:

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

SZKOLENIE: Administrator baz danych. Cel szkolenia

SZKOLENIE: Administrator baz danych. Cel szkolenia SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.

Bardziej szczegółowo

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA DANYCH NA URZĄDZENIACH MOBILNYCH I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu obsługi baz danych i języka SQL

Bardziej szczegółowo

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Bazy danych Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI Wszechnica Poranna Trzy tematy: 1. Bazy danych - jak je ugryźć? 2. Język SQL podstawy zapytań. 3. Mechanizmy wewnętrzne baz danych czyli co

Bardziej szczegółowo

Szpieg 2.0 Instrukcja użytkownika

Szpieg 2.0 Instrukcja użytkownika Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Problem magazynowania i przetwarzania wielkoformatowych map i planów geologicznych. Promotor: dr inż. Adam Piórkowski Autorzy: Jakub Osiadacz

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Mechatronika Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych Rodzaj zajęć: wykład, laboratorium BAZY DANYCH I SYSTEMY EKSPERTOWE Database and expert systems Forma

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. Zanim ktokolwiek postanowi użyd tego w swoim projekcie, należy zaznaczyd

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl)

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl) mysql relacyjna baza danych wstęp Materiały pomocnicze do laboratorium z przedmiotu: Techniki Informatyczne Stanisław Flaga () Wydział Inżynierii Mechanicznej i Robotyki Katedra Automatyzacji Procesów

Bardziej szczegółowo

Ref. 7 - Język SQL - polecenia DDL i DML

Ref. 7 - Język SQL - polecenia DDL i DML Ref. 7 - Język SQL - polecenia DDL i DML Wprowadzenie do języka SQL. Polecenia generujące strukturę bazy danych: CREATE, ALTER i DROP. Polecenia: wprowadzające dane do bazy - INSERT, modyfikujące zawartość

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń. Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia BAZY DANYCH LABORATORIUM Studia niestacjonarne I stopnia Gdańsk, 2011 1. Cel zajęć Celem zajęć laboratoryjnych jest wyrobienie praktycznej umiejętności tworzenia modelu logicznego danych a nastepnie implementacji

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

Pomiar czasu przetwarzania rozproszonych zapytań w ewoluujących silnikach serwerów baz danych SQL Microsoft Server

Pomiar czasu przetwarzania rozproszonych zapytań w ewoluujących silnikach serwerów baz danych SQL Microsoft Server Alicja KILIŃSKA WIŚNIEWSKA Politechnika Koszalińska Wydział Informatyki i Elektroniki E-mail: alicja@hardrex.pl Pomiar czasu przetwarzania rozproszonych zapytań w ewoluujących silnikach serwerów baz danych

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET dostęp do bazy danych Baza Microsoft SQL Server Compact

Bardziej szczegółowo

Operacja Teta-złączenia. v1 v1 Θ v2

Operacja Teta-złączenia. v1 v1 Θ v2 Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, =,

Bardziej szczegółowo

Komunikator internetowy w C#

Komunikator internetowy w C# PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja elektronicznego dziennika ocen ucznia Autor: Grzegorz Dudek wykonanego w technologii ASP.NET We współczesnym modelu edukacji, coraz powszechniejsze

Bardziej szczegółowo

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych

Przestrzenne bazy danych. Definicja i cechy przestrzennych baz danych Przestrzenne bazy danych Definicja i cechy przestrzennych baz danych Zakres wykładów Wstęp do przestrzennych baz danych Typy geometryczne Funkcje geometryczne Modelowanie danych Metody rozwiązywania problemów

Bardziej szczegółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład XII. optymalizacja w relacyjnych bazach danych Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Bazy danych Database Kierunek: Rodzaj przedmiotu: obieralny Rodzaj zajęć: wykład, laboratorium Matematyka Poziom kwalifikacji: I stopnia Liczba godzin/tydzień: 2W, 2L Semestr: III Liczba

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ zajęcia 1: 2. Procedury składowane

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012: Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU

Hurtownie danych. Przetwarzanie zapytań. http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Hurtownie danych Przetwarzanie zapytań. Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/hur ZAPYTANIA NA ZAPLECZU Magazyny danych operacyjnych, źródła Centralna hurtownia danych Hurtownie

Bardziej szczegółowo

Projekt: MS i CISCO dla Śląska

Projekt: MS i CISCO dla Śląska Projekt: MS i CISCO dla Śląska Ścieżki szkoleniowe planowane do realizacji w projekcie Administracja bazami danych Katowice, październik 2012 Projekt jest współfinansowany przez Unię Europejską w ramach

Bardziej szczegółowo

System zarządzania firmą specyfikacja techniczna.

System zarządzania firmą specyfikacja techniczna. System zarządzania firmą specyfikacja techniczna. 1. Zakres funkcjonalności Funkcjonalność aplikacji została podzielona na 3 grupy: Zbiór podstawowych danych dane kontrahentów, typy dokumentów, magazynów,

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Imię i Nazwisko Data Ocena. Laboratorium 7

Imię i Nazwisko Data Ocena. Laboratorium 7 Imię i Nazwisko Data Ocena Laboratorium 7 Celem tego ćwiczenia jest pokazanie, że w MoscowML można pisać aplikacje użytkowe, np. prosty interpreter języka SQL (MLSQL) Listy i krotki Różnica pomiędzy krotkami

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle 2010-10-21

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle 2010-10-21 Organizacja zajęć BAZY DANYCH II WYKŁAD 1 Wykładowca dr inż. Agnieszka Bołtuć, pokój 304, e-mail: aboltuc@ii.uwb.edu.pl Liczba godzin i forma zajęć: 15 godzin wykładu oraz 30 godzin laboratorium Konsultacje:

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

Wstęp. Opis ten dotyczy wydziałów orzeczniczych. Wstęp. Opis ten dotyczy wydziałów orzeczniczych. W związku z przekształceniem 79 Sądów w Wydziały Zamiejscowe i związane z tym liczne zapytania odnośnie strony technicznej i sposobu przygotowania baz danych

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

Bardziej szczegółowo

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows

Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Instrukcje instalacji pakietu IBM SPSS Data Access Pack dla systemu Windows Spis treści Rozdział 1. Przegląd......... 1 Wstęp................. 1 Wdrażanie technologii Data Access........ 1 Źródła danych

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

Proces ETL MS SQL Server Integration Services (SSIS)

Proces ETL MS SQL Server Integration Services (SSIS) Proces ETL MS SQL Server Integration Services (SSIS) 3 kwietnia 2014 Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie

Bardziej szczegółowo

PL 198457 B1. ABB Sp. z o.o.,warszawa,pl 17.12.2001 BUP 26/01. Michał Orkisz,Kraków,PL Mirosław Bistroń,Jarosław,PL 30.06.

PL 198457 B1. ABB Sp. z o.o.,warszawa,pl 17.12.2001 BUP 26/01. Michał Orkisz,Kraków,PL Mirosław Bistroń,Jarosław,PL 30.06. RZECZPOSPOLITA POLSKA (12) OPIS PATENTOWY (19) PL (11) 198457 (13) B1 (21) Numer zgłoszenia: 340813 (51) Int.Cl. G06F 17/21 (2006.01) G06Q 10/00 (2006.01) Urząd Patentowy Rzeczypospolitej Polskiej (22)

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

BACKUP BAZ DANYCH MS SQL

BACKUP BAZ DANYCH MS SQL BACKUP BAZ DANYCH MS SQL SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje Podstawowe... 2 Krok 2: Dane... 3 Krok 3: Planowanie... 4 Krok 4: Zaawansowane... 5 Przywracanie baz

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie WCF Data Services Obsługa żądania OData Podstawy języka OData Narzędzia i biblioteki Gdzie można skorzystać z OData OData w Web API

Bardziej szczegółowo

Manipulowanie danymi przy użyciu DAO

Manipulowanie danymi przy użyciu DAO Manipulowanie danymi przy użyciu DAO DAO Data Access Objects Korzystając z obiektów DAO można manipulować danymi z kodu procedur VBA np. Otwarta baza danych jest reprezentowana przez obiekt Database TableDef

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo