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], [numer_lokalu],[numer_telefonu]) 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

Politechnika Poznańska TWO

Politechnika Poznańska TWO Politechnika Poznańska TWO Data: 2009-11-24 Nr Lab.: I Prowadzący: dr inż. Szymon Wilk Mateusz Jancy Joanna Splitter Zadanie: DZIELENIE RELACYJNE Rok: I Grupa: B Semestr: I Ocena: Cel zadania: Wykonać

Bardziej szczegółowo

Wykład 4. Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy. Bazy danych 2

Wykład 4. Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy. Bazy danych 2 Wykład 4 Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy 2017-02-24 Bazy danych 2 W4 1 Architektura ADO.NET (Active Data Objects) Zestaw abstrakcyjnych

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik Technologia Przykłady praktycznych zastosowań wyzwalaczy będą omawiane na bazie systemu MS SQL Server 2005 Wprowadzenie

Bardziej szczegółowo

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ POLITECHNIKA WROCŁAWSKA KOŁO NAUKOWE KREDEK Laboratorium nr 4 TEMAT ĆWICZENIA Zapoznanie z technologią LINQ Wykonał: Mateusz Woszczyk 155693 Termin: Cz / 19.00 Data wykonania ćwiczenia: 20.11.2011 1. LINQ

Bardziej szczegółowo

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Marek Robak Wprowadzenie do języka SQL na przykładzie baz SQLite Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi. Tworzenie tabeli Pierwsza tabela W relacyjnych bazach danych jedna

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

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

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

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity

Bardziej szczegółowo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15 T-SQL dla każdego / Alison Balter. Gliwice, cop. 2016 Spis treści O autorce 11 Dedykacja 12 Podziękowania 12 Wstęp 15 Godzina 1. Bazy danych podstawowe informacje 17 Czym jest baza danych? 17 Czym jest

Bardziej szczegółowo

Pojęcie systemu baz danych

Pojęcie systemu baz danych Pojęcie systemu baz danych System baz danych- skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki. Składa się z zasadniczych elementów: 1) Danych 2) Sprzętu 3) Programów 4)

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

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny

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

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

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

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

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

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

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

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

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, 2017 Spis treści O autorze 9 Wprowadzenie 11 Lekcja 1. Zrozumieć SQL 15 Podstawy baz danych 15 Język SQL

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

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

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

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , , Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi

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

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, 2016 Spis treści Wprowadzenie Podziękowania xiii xvii 1 Podstawy zapytań i programowania T-SQL 1 Podstawy

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie Programowanie MSQL show databases; - pokazanie jakie bazy danych są dostępne na koncie show databases; - wyświetlenie wszystkich baz danych na serwerze create database nazwa; - za nazwa wstawiamy wybraną

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

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA DANYCH Z PLIKÓW MIF, SHP I ICH KONWERSJI DO POSTACI RELACYJNEJ I. Temat ćwiczenia Stworzenie biblioteki słuŝącej do wczytywania

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

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

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

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

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

Database Connectivity

Database Connectivity Oprogramowanie Systemów Pomiarowych 15.01.2009 Database Connectivity Dr inŝ. Sebastian Budzan Zakład Pomiarów i Systemów Sterowania Tematyka Podstawy baz danych, Komunikacja, pojęcia: API, ODBC, DSN, Połączenie

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

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

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

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016 Repository dodatkowa warstwa abstrakcji na obiektową warstwę dostępu do danych.

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

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

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

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

Przykładowa baza danych BIBLIOTEKA

Przykładowa baza danych BIBLIOTEKA Przykładowa baza danych BIBLIOTEKA 1. Opis problemu W ramach zajęć zostanie przedstawiony przykład prezentujący prosty system biblioteczny. System zawiera informację o czytelnikach oraz książkach dostępnych

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny Technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Laboratorium 1 Wprowadzenie, podstawowe informacje o obsłudze

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

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop. 2016 Spis treści O autorach 11 Podziękowania 12 Część I Wprowadzenie do języka SQL 13 Godzina 1. Witamy w świecie języka SQL 15

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

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej  Wydział Mechaniczny technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste

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

Projektowanie relacyjnych baz danych

Projektowanie relacyjnych baz danych Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Instytut Mechaniki i Inżynierii Obliczeniowej   fb.com/groups/bazydanychmt/ Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl fb.com/groups/bazydanychmt/ Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie

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

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

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

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

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI CELE PROJEKTU Transformacja dowolnej bazy danych w min. 3 postaci normalnej do postaci Asocjacyjnej Grafowej

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

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

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

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł mysqli ma dwa interfejsy: proceduralny i obiektowy) PostgreSQL Oracle MS

Bardziej szczegółowo

Wstęp do relacyjnych baz danych. Jan Bartoszek

Wstęp do relacyjnych baz danych. Jan Bartoszek Wstęp do relacyjnych baz danych Jan Bartoszek Agenda 1. 2. 3. 4. 5. 6. 7. Po co i dlaczego? Bazy danych & DBMS Relacje i powiązania Redundancja i jak jej uniknąć Diagramy ERD SQL Podsumowanie Czym są są

Bardziej szczegółowo

Podejście obiektowe do relacyjnych baz danych Hibernate.

Podejście obiektowe do relacyjnych baz danych Hibernate. Podejście obiektowe do relacyjnych baz danych Hibernate. Plan wykładu Czym jest Hibernate? Jakie są zalety pracy z Hibernate? Jak skonfigurować Hibernate? Jak korzystać z Hibernate? Praktyczne przykłady

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

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

Wykład 05 Bazy danych

Wykład 05 Bazy danych Wykład 05 Bazy danych Tabela składa się z: Kolumn Wierszy Wartości Nazwa Wartości Opis INT [UNSIGNED] -2^31..2^31-1 lub 0..2^32-1 Zwykłe liczby całkowite VARCHAR(n) n = długość [1-255] Łańcuch znaków o

Bardziej szczegółowo

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej   Wydział Mechaniczny technologiczny Politechnika Śląska Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny technologiczny Politechnika Śląska Laboratorium 3 (Tworzenie bazy danych z użyciem UML, proste

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne

Bardziej szczegółowo

Parametry techniczne. Testy

Parametry techniczne. Testy Dyski SSD stają się pomału podstawą każdego komputera. Dzięki swoim parametrom, które pod wieloma względami biją klasyczne konstrukcje HDD, oferują niezwykle wysoką wydajność. Przekłada się to między innymi

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

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

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

Bazy danych 2. Wykład 6

Bazy danych 2. Wykład 6 Wykład 6 ADO model bezpołączeniowy Klasa DataSet kolekcja DataTable Obiekty DataColumn Obiekty DataRow Aktualizacja bazy za pomocą obiektu DataAdapter Definiowanie powiązań między tabelami w obiekcie DataSet

Bardziej szczegółowo

SQL praca z tabelami 4. Wykład 7

SQL praca z tabelami 4. Wykład 7 SQL praca z tabelami 4 Wykład 7 1 Funkcje agregujące Informacja poszukiwana w bazie danych często musi być wyliczana na podstawie danych znajdujących się w wielu wierszach tabeli. Tak jest gdy chcemy znać

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

KARTA PRZEDMIOTU. Programowanie aplikacji bazodanowych w języku C# D1_2

KARTA PRZEDMIOTU. Programowanie aplikacji bazodanowych w języku C# D1_2 KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:

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

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Bazy danych Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2016 Plan wykładu Wstęp do baz danych Modele baz danych Relacyjne bazy danych Język SQL Rodzaje

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

Systemy baz danych. mgr inż. Sylwia Glińska

Systemy baz danych. mgr inż. Sylwia Glińska Systemy baz danych Wykład 1 mgr inż. Sylwia Glińska Baza danych Baza danych to uporządkowany zbiór danych z określonej dziedziny tematycznej, zorganizowany w sposób ułatwiający do nich dostęp. System zarządzania

Bardziej szczegółowo

Przykładowe sprawozdanie. Jan Pustelnik

Przykładowe sprawozdanie. Jan Pustelnik Przykładowe sprawozdanie Jan Pustelnik 30 marca 2007 Rozdział 1 Sformułowanie problemu Tematem pracy jest porównanie wydajności trzech tradycyjnych metod sortowania: InsertionSort, SelectionSort i BubbleSort.

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

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

Hurtownie danych. 31 stycznia 2017

Hurtownie danych. 31 stycznia 2017 31 stycznia 2017 Definicja hurtowni danych Hurtownia danych wg Williama Inmona zbiór danych wyróżniający się następującymi cechami uporządkowany tematycznie zintegrowany zawierający wymiar czasowy nieulotny

Bardziej szczegółowo

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image)

41. Zmienne lokalne muszą mieć nazwę, którą poprzedza (maksymalnie 128 znaków) oraz typ (każdy z wyjątkiem: text, ntext oraz image) Elementy języka T-SQL 40. Polecenie PRINT jest wykorzystywane do przekazania wiadomości tekstowej (maksymalna długość 8000 znaków) Przykład PRINT 'Aktualna data: '+convert(char(8),getdate()) PRINT 'Aktualny

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

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