Rozdział 48 Transpers generyczna mikroarchitektura warstwy dostępu do danych 1 Wstęp

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

Download "Rozdział 48 Transpers generyczna mikroarchitektura warstwy dostępu do danych 1 Wstęp"

Transkrypt

1 Rozdział 48 Transpers generyczna mikroarchitektura warstwy dostępu do danych Streszczenie. Rozdział podejmuje tematykę nowoczesnych rozwiązań bazodanowych w aplikacjach J2EE (ang. Java 2 Platform, Enterprise Edition). Autorzy prezentują własną koncepcję mechanizmu (Transpers) służącego do przechowywania obiektów spełniających specyfikację JavaBeans w relacyjnych bazach danych. Krótki przegląd istniejących rozwiązań służy w rozdziale jako punkt wyjścia, do określenia pożądanej funkcjonalności dla mikroarchitektury. Podstawowe założenia to przezroczysty zapis obiektów, osiągnięcie minimum konfiguracji oraz współpraca z dowolnym system RDBMS. Sedno rozdziału stanowi prezentacja przyjętych rozwiązań (architektury Transpers, mechanizmu rekonfiguracji oraz hermetyzacji kluczy). 1 Wstęp Większość aplikacji biznesowych wykorzystuje relacyjne bazy danych jako sprawdzony sposób przechowywania danych. Pomimo rozwiniętych bibliotek, które mają wspierać programistów w tworzeniu aplikacji opartych na bazach danych, wiele z nich jest niskopoziomowa. Zazwyczaj użytkownik musi stworzyć obiekt reprezentujący połączenie z bazą danych, następnie stworzyć i skonfigurować obiekt realizujący zapytanie SQL oraz dokonać pewnych operacji na danych. Z tego powodu praca z bibliotekami tego typu jest źródłem wielu błędów; kod nie nadaje się do ponownego użycia, często błędem jest pozostawienie otwartych połączeń z bazą danych. Nawet doświadczeni programiści mają duże problemy z wyeliminowaniem błędów wynikających z korzystania z niskopoziomowych obiektów i metod służących do operowania na bazach danych. Autorzy rozdziału są przekonani, że przechowywanie informacji w bazie danych powinno być dla programisty przyjazną operacją. Podstawowym celem rozdziału jest zaprezentowanie Transpers autorskiej koncepcji mechanizmu do przechowywania obiektów klas w relacyjnej bazie danych. Transpers można określić jako generyczną mikroarchitekturę warstwy dostępu do danych. Nazwa pochodzi od angielskiego słowa transparence (przezroczystość) oraz ma wyrażać sposób operowania na danych przez programistę, który używa zwykłych obiektów na poziomie języka programowania, zaś wszelkie zmiany w danych systemu są odwzorowywane w docelowym RDBMS. Przemysław Krygier: Politechnika Łódzka, Wydział Elektrotechniki i Elektroniki, ul. Stefanowskiego 18/22, Łódź, Polska kcepk@wpk.p.lodz.pl Mariusz Sieraczkiewicz: FPL Sp. z o.o., ul. Piramowicza 9, Łódź, Polska m.sieraczkiewicz@fpl.pl

2 P. Krygier, M. Sieraczkiewicz 2 Czym obecnie dysponuje programista? W celu zaprezentowania mechanizmu Transpers zaprezentowane zostaną istniejące rozwiązania. 2.1 JDBC Jako przykład weźmy fragment kodu, którego zadaniem jest dodanie nowego elementu do bazy danych. Przykład został napisany w języku Java z użyciem standardowej biblioteki JDBC (ang. Java Database Conectivity), która wspiera korzystanie z relacyjnych baz danych. Narzędzie to udostępnia obiektową abstrakcję struktury danych (np. obiekty kursorów, wyników zapytań). Chociaż przytoczony fragment kodu [4] jest związany z konkretnym językiem, to jego wygląd pozostaje analogiczny w przypadku użycia podobnych bibliotek w innych językach np. ADO (ang. ActiveX Data Object) w C++. // Begin of the main part //... Statement stmt = con.createstatement(); String query = "SELECT NAME, SECONDNAME, " + "BIRTHDAY, WEIGHT, HEIGHT FROM PERSONS WHERE PERSONID = 1"; ResultSet rs = stmt.executequery(query); // Validation ommited for clarity Person person = new Person(); if ( rs.next() ) { person.setname( rs.getstring( "NAME" ) ); person.setsecondname( rs.getstring( "SECONDNAME" ) ); person.setbirthdate( rs.getdate( "BIRTHDAY" ) ); person.setweight( new Float( rs.getfloat( "WEIGHT" ) ) ); person.setheight( new Integer( rs.getint( "HEIGHT" ) ) ); } else { throw new SQLException( "Person not found." ); } //End of the main part //... W przypadku tego rozwiązania programista musi uwzględnić kilka elementów. Po pierwsze przed wykonaniem danego fragmentu kodu musi zostać stworzona tabela odpowiadająca osobom w bazie danych, ponadto należy skonfigurować i uzyskać połączenie z bazą danych, następnie stworzyć i wykonać zapytanie SQL, które zwróci pożądane dane. Dostęp do takich danych jest zwykle sekwencyjny (wzorzec iteratora) otrzymujemy obiekt, za pomocą którego możemy przemieszczać się w otrzymanym zestawie rekordów. Przemieszczaniu się po zestawie rekordów towarzyszy zwykle tworzenie docelowego obiektu na podstawie wyłuskanych danych. Korzystanie z takiego rozwiązania nie należy do najprzyjemniejszych. Zauważmy, że wydobycie listy obiektów to kilkanaście (o ile nie kilkadziesiąt) linii kodu, naszpikowanego obsługą wyjątków. Warto się zastanowić nad uproszczeniem tego podejścia, tym bardziej, że intuicyjnie wydaje się, iż nic nie powinno stać na przeszkodzie temu, aby obiektowość relacyjnych baz danych przenieść na wyższy poziom abstrakcji. 400

3 Transpers generyczna mikroarchitektura warstwy dostępu do danych 2.2 Budowa warstwowa aplikacji biznesowych Warto na chwilę przyjrzeć się tak zwanej warstwowej architekturze aplikacji biznesowych [1]. Podejście to polega na tym, aby wyraźnie odróżnić części tworzonego systemu, które są architektonicznie niezależne. Typowy podział na warstwy kształtuje się następująco: warstwa integracji (dostępu do danych), warstwa logiki biznesowej (zasadnicza część operacyjna systemu), warstwa interfejsu użytkownika (obejmująca zarówno formę zewnętrzną, z jaką ma kontakt użytkownik, jak również logikę interfejsu użytkownika). Rys. 1. Warstwy aplikacji biznesowych Dzięki takiej architekturze możemy niezależnie rozpatrywać podsystemy wchodzące w skład poszczególnych warstw oraz w razie potrzeby zmieniać ich implementacje bez wpływu na pozostałe części aplikacji. Korzystanie z bibliotek w rodzaju JDBC API prowadzi do wielu problemów w realizacji niezależnych komponentów warstwy integracji. Idealnym rozwiązaniem byłby system, który implementacyjnie pokrywałby całą przestrzeń operacji dostępnych w warstwie integracji. Jednocześnie system ten byłby dostępny programiście obiektowemu w postaci fasady z najważniejszymi operacjami bazodanowymi: dodaj, pobierz, usuń i aktualizuj. System ten miałby zapewniać niezależność implementacji operacji od rodzaju bazy danych, która stanowi źródło danych dla systemu. Sprecyzowanie oczekiwań odnośnie do optymalnego narzędzia stanowiło milowy krok przy tworzeniu Transpers biblioteki, która z powodzeniem realizuje warstwę dostępu do danych (patrz rysunek 1). 2.3 Istniejące strategie ułatwiające implementację warstwy dostępu do danych Istnieją rozwiązania, które umożliwiają korzystanie z relacyjnych baz danych poprzez obiekty z dziedziny problemu. Przykładem takiego rozwiązania, nazywanego oprogramowaniem mapowania relacyjno-obiektowego, pochodzącego z rodziny projektów Open Source jest projekt Hibernate [3]. Dzięki jego zastosowaniu programista nie musi niskopoziomowo myśleć o bazie danych. Korzystając z Hibernate'a możemy stworzyć implementację DAO (ang. Data Access Object), tzn. obiekt pomocniczy, który potrafi realizować wszystkie operacje bazodanowe związane z danym obiektem pochodzącym z dziedziny problemu. Przykład takiego wzorca można znaleźć na rysunku 2. Jest to wzorzec projektowy, który często stosuje się w aplikacjach biznesowych w celu wydzielenia odpowiedzialności operowania na danych poza obiekty warstwy biznesowej [4]. 401

4 P. Krygier, M. Sieraczkiewicz Rys. 2. Przykładowy diagram UML reprezentujący zastosowanie wzorca DAO (PersonDao) dla obiektu (Person) Przykład fragmentu operacji z klasy DAO zaimplementowanej w Hibernate zamieszczamy poniżej [2]. Session session = getsessionfactory().opensession(); Person person = (Person) session.load( Person.class, new Long( 1 ) ); session.close(); Jak widać, rozwiązanie to ma ogromną zaletę, przede wszystkim polegającą na uproszczeniu programistycznych działań do korzystania z obiektów z dziedziny problemu (co dobrze widać porównując tenże kod z pierwszym przykładem). Jednak żeby skorzystać z biblioteki Hibernate, należy odpowiednio skonfigurować mapowania obiektów na tabele baz danych, co uzyskuje się poprzez odpowiednio napisane pliki XML. Przy dużej ilości klas ilość plików mapowania rośnie proporcjonalnie do ilości klas. Ponadto konfiguracje XML wymagają sporej wiedzy związanej z bazami danych, zaś schemat bazy danych należy uprzednio stworzyć. Transpers przenosi nas do jeszcze wyższej warstwy abstrakcji. Zakładamy, że użytkownik (programista) nie jest zobligowany do innej konfiguracji niż określenia parametrów połączenia z bazą, musi mieć możliwość łatwego korzystania z operacji bazodanowych na obiektach z dziedziny problemu. Oznacza to, że system dynamicznie będzie tworzyć odpowiednie elementy schematu bazy danych (tj. tabele, klucze, ograniczenia, pola) oraz mapowania struktury przechowywanych danych na elementy docelowe w bazie danych. Na koniec warto umiejscowić system Transpers w typologii, która nieobca jest specjalistom z zakresu baz danych. Najbliższym skojarzeniem, które może się w tym przypadku nasuwać, są obiektowo-relacyjne systemy zarządzania bazami danych (ORDBMS). Umożliwiają one stosowanie uproszczonych mechanizmów obiektowych, takich jak dziedziczenie czy tworzenie metod dla obiektów bazodanowych, jednakże rozwiązania te są specyficzne dla konkretnej bazy danych oraz nie wspierają obiektowości na poziomie języka programowania. Transpers zatem należy rozumieć jako bibliotekę programistyczną, która upraszcza dostęp do danych. Pozwala na korzystanie z zaawansowanych mechanizmów obiektowych na poziomie języka programowania (m. in. dziedziczenie, polimorfizm) w sposób dla niego naturalny. Ponadto zaproponowane przez nas rozwiązane jest niezależne od docelowej bazy danych, co czyni system bardziej elastycznym. 402

5 3 Transpers Transpers generyczna mikroarchitektura warstwy dostępu do danych Podrozdział ma na celu przedstawić podstawowe aspekty proponowanego rozwiązania. 3.1 Wstęp Startowym punktem mikroarchitektury jest fabryka menedżera Transpers. Obiekt ten na podstawie bardzo prostej konfiguracji (obligatoryjne jest tylko określenie parametrów połączenia z bazą danych) tworzy pojedynczą instancję TranspersManager'a. Jest to typowe zastosowanie wzorca fabryki i wzorca singleton. TranspersMenager dostarcza wygodny i prosty zestaw metod dla programisty, który umożliwia pracę z obiektami zbudowanymi w oparciu o specyfikację JavaBeans. Na rysunku 3 przedstawiono powiązanie podstawowych obiektów w Transpers. Rys. 3. Powiązanie podstawowych obiektów Transpers Metoda add(object : Object) pozwala zapisać obiekt. Zwracaną wartością jest identyfikator obiektu (wewnętrzna unikatowa wartość na poziomie całego menedżera). Metoda get(id : Long) wydobywa obiekt na podstawie identyfikatora. Metoda getbyexample(object : Object) służy do wydobycia listy obiektów, które mają takie same wartości pól, jak przekazany obiekt. Podejście to stanowi implementację query by example. Naturalnie wszelkie nie ustawione pola w przykładowym obiekcie mogą być dowolnie ustawione wśród listy zwracanych wyników. Metoda find(criteria : Criteria) służy do zadawania złożonych zapytań, dzięki niej można szczegółowo określić, jakie są dozwolone wartości pól. Wymaga zbudowania obiektu Criteria. Metoda find(hqlquery : String) służy do niskopoziomowego zadawania zapytań. Pomysł tej metody został zaczerpnięty z Hibernate. Zapytanie musi posiadać specyficzną składnię. Metoda getall(class : Class) zwraca listę wszystkich obiektów danej klasy składowanych w menedżerze. Metoda remove(id : Long) pozwala usunąć obiekt o znanym identyfikatorze. Metoda removebyexample(object : Object) służy do kasowania obiektów. Korzystanie z tej metody jest bardzo podobne do korzystania z metody getbyexample. Przekazywany argument jest wzorcem, na podstawie którego kasowane są obiekty w bazie. 403

6 P. Krygier, M. Sieraczkiewicz Metoda update(id, object) pozwala na aktualizację obiektu w bazie o konkretnym identyfikatorze, przydatne szczególnie wówczas, gdy informacje zostają przechowywane poza systemem ( np.: eksport danych ). Metoda update(object : Object) pozwala uaktualnić składowany obiekt. Aby metoda ta nie powodowała wyjątków obiekt przekazywany jako argument musi być wcześniej wydobyty poprzez którąś z odpowiednich metod menedżera Transpers. 3.2 Architektura Podstawą naszej architektury jest fasada TranspersManager. Fasada bazuje na czterech podstawowych aspektach: metadane bazy danych, strategia hermetyzacji kluczy, generowaniu i wykonywaniu Data Definition Language, mapowaniu klas i tabel. Rys. 4. Transpers Manager zastosowanie wzorca fasady Metadane bazy danych to informacje o tym, jakie tabele zostały stworzone w bazie. Dane te są niezbędne przy inicjalizacji menedżera, ponieważ na ich podstawie wykonywane jest startowe mapowanie klas użytkownika/programisty. Strategia hermetyzacji kluczy głównym zadaniem mikroarchitektury jest dostarczenie prostego narzędzia do przechowywania obiektowych danych. Jedynym obwarowaniem, co do typów obiektów jest to, aby spełniały specyfikację JavaBeans. Nie muszą one implementować żadnego interfejsu, ani pochodzić od jakiejkolwiek klasy bazowej, zatem nie muszą mieć żadnych identyfikatorów. Z drugiej strony klucze są bardzo istotnym mechanizmem w bazie danych. Biorąc pod uwagę dwa powyższe fakty logiczną konsekwencją jest potrzeba istnienia wewnętrznego mechanizmu przechowującego klucze bazodanowe, które są typowe dla struktury bazy danych, zaś nie występują w sposób naturalny w językach obiektowych. Powinny być zatem ukryte przed programistą. Generator i wykonawca DDL to moduł odpowiadający za tworzenie i wykonywanie zapytań SQL zmieniających strukturę bazy danych. Każdy składowany obiekt w bazie musi posiadać odpowiednie mapowanie klasa->tabele bazy danych. W przypadku zapisywania obiektów nowych typów (nie podanych w konfiguracji) generator DDL pozwala wygenerować dynamicznie skrypt SQL tworzący odpowiednie struktury w bazie danych, a generator pozwala je wykonać. Generator nie wymaga szczegółowej konfiguracji, jedyną istotną dla niego informacją jest używany dialekt bazodanowy, zapytania są generowane we właściwej dla bazy składni SQL. Mapowanie klas i tabel jest jednym z kluczowych aspektów mikroarchitektury. Jest to sposób odzwierciedlenia pól obiektów na pola tabele baz danych. Implementacja przyjęta 404

7 Transpers generyczna mikroarchitektura warstwy dostępu do danych w Transpers bazuje na Hibernate narzędziu typu Open Source. Istnieje jednak możliwość dowolnej implementacji tego rozwiązania za pomocą mechanizmów niskopoziomowych. W tym przypadku zostaną one pominięte gdyż wykraczają poza ramy rozdziału. Poniżej warstwy fasady menedżera Transpers i jego komponentów istnieje warstwa oparta o Hibernate i Spring a. Spring jest szkieletem aplikacji, który w istotny sposób wspiera pracę z Hibernate, ponadto stanowi szkielet dla całej mikroarchitektury dostarczając implementacji generycznej fabryki obiektów składających się na system i jest wykorzystywany wewnętrznie. Hibernate jest zaawansowanym narzędziem, które z punktu widzenia architektury stanowi warstwę powyżej JDBC. Samo JDBC jest podstawowym mechanizmem JAVY do współpracy z bazami danych. 3.3 Mechanizm rekonfiguracji Transpers Rekonfiguracja Transpers ma miejsce w przypadku próby zapisu obiektu klasy, dla której jeszcze nie zostało utworzone wewnętrzne mapowanie. Mapowanie takie powstać może w dwóch przypadkach. Pierwszy z nich ma miejsce przy uruchomieniu Transpers, dana klasa jest wyszczególniona przy konfiguracji. Drugi przypadek tworzenia mapowania to sytuacja, w której startowa konfiguracja nie obejmuje mapowania danej klasy i należy ją utworzyć dynamicznie. Przedstawiony powyżej scenariusz może mieć miejsce w przypadku wykonania metody add(object : Object) TranspersManager'a. Jej działanie przedstawione jest schematycznie na poniższym diagramie. Rys. 5. Algorytm metody add 405

8 P. Krygier, M. Sieraczkiewicz Zgodnie z rysunkiem menedżer Transpers w przypadku zapisu obiektu nowego typu (tj. obiektu klasy, która nie była wcześniej używana w operacjach z Transpers) tworzy dynamicznie mapowanie, aktualizuje schemat bazy danych oraz zapisuje w niej obiekt. Pierwszy zapis obiektu nowego typu jest w związku z powyższym bardzo wydłużony. Opłaca się konfigurować Transpers, np. określić, jakie klasy będą zapisywane, ponieważ dynamiczne mapowanie zostanie utworzone podczas inicjalizacji menedżera Transpers. Każda utworzona definicja jest wewnętrznie składowana w menedżerze, przez cały czas jego istnienia. 3.4 Strategia hermetyzacji klucza Zgodnie z przedstawionymi wcześniej założeniami, odnośnie składowanych obiektów, dogodnym rozwiązaniem jest przechowywanie powiązań typu referencja obiektu wewnętrzny klucz Transpers. Dzięki temu podejściu można wydajnie pracować z obiektami, sprawdzać ich identyfikatory, jest to również sposób na realizację cache a dla obiektów. W oczywisty sposób istnieje konieczność uaktualniania wpisów w przedstawionym rejestrze powiązań klasie ReferenceToIDMapping. Transpers przetwarza obiekty, do których ma dostęp aplikacja, zatem nie ma sposobu na wykrycie momentu, w którym obiekt jest niszczony (w przypadku Javy klasą zarządzającą pamięcią jest GarbageCollector). Naturalnie nie stanowi to zagrożenia dla integralności powiązań kluczy z obiektami, ponieważ nawet w przypadku odnalezienia wpisu w rejestrze powiązań sprawdzane jest, czy obiekt Javy faktycznie istnieje w pamięci. Rys. 6. Diagram UML prezentujący rozwiązanie hermetyzacji kluczy 406

9 Transpers generyczna mikroarchitektura warstwy dostępu do danych Uaktualnianiem wpisów w rejestrze powiązań zajmuje się wydzielona klasa UpdatingStrategy, na której również spoczywa ciężar określenia momentu, w którym należy odświeżyć rejestr powiązań. Klasa SearchingStrategy to obiekt realizujący wyszukiwanie konkretnych powiązań (kluczy na referencje obiektów i referencji na klucze). Zanim obiekt zostanie wydobyty z bazy za pomocą Transpers musi być wcześniej zapisany. To z gruntu rzeczy proste stwierdzenie daje jednak znaczne możliwości. Weźmy jako przykład sytuację, w której programista chce zapisać zmieniony przez siebie obiekt. Wywołanie metody update(object : Object) oznacza konieczność sprawdzenia, czy istnieje powiązanie referencji obiektu z wewnętrznym kluczem Transpers. Jeżeli takie powiązanie istnieje, to klucz jest wyznaczony jednoznacznie, w przeciwnym wypadku metoda update nie ma sensu i zostaje wygenerowany odpowiedni wyjątek. 4 Podsumowanie Zdaniem autorów zapis obiektów w bazie danych powinien być tak prosty, jak: Person person = new Person(); // setting fields TranspersManager manager = context.gettranspersmanager(); Long storedobjectid = manager.add( person ); Transpers jest narzędziem, która pozwala programiście osiągnąć taką właśnie prostotę kodu. Stanowi on ideę, którą można wykorzystać w innych językach obiektowych. Jest to innowacja, jeżeli chodzi o przechowywanie obiektów w bazach danych, ponieważ pozwala w bardzo wygodny sposób składować obiekty i jednocześnie korzystać w pełni z możliwości relacyjnych baz danych (np. szybkie wyszukiwanie). Projekt Transpers jest udostępniany na zasadach open source i jest dostępny pod następującym adresem: Literatura 1. Fowler M., Architektura systemów zarządzania przedsiębiorstwem, Helion Bauer Ch., King G.: Hibernate in action., Manning Hibernate Reference Documentation Horstmann C. S., Cornell G.: Java 2. Techniki zaawansowane, Helion Raible M., Spring Live, Source Beat

10

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

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy

Bardziej szczegółowo

Wzorce logiki dziedziny

Wzorce logiki dziedziny Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

Podstawowe zagadnienia z zakresu baz danych

Podstawowe zagadnienia z zakresu baz danych Podstawowe zagadnienia z zakresu baz danych Jednym z najważniejszych współczesnych zastosowań komputerów we wszelkich dziedzinach życia jest gromadzenie, wyszukiwanie i udostępnianie informacji. Specjalizowane

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

Java Persistence API - zagadnienia zaawansowane

Java Persistence API - zagadnienia zaawansowane Program szkolenia: Java Persistence API - zagadnienia zaawansowane Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Java Persistence API - zagadnienia zaawansowane Java-EE-jpa-pro

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

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

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

Spis treści. Przedmowa

Spis treści. Przedmowa Spis treści Przedmowa V 1 SQL - podstawowe konstrukcje 1 Streszczenie 1 1.1 Bazy danych 1 1.2 Relacyjny model danych 2 1.3 Historia języka SQL 5 1.4 Definiowanie danych 7 1.5 Wprowadzanie zmian w tabelach

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Projektowanie aplikacji z bazami danych

Projektowanie aplikacji z bazami danych Systemy mapowania relacyjno-obiektowego Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Wprowadzenie do trwałości Niedopasowanie paradygmatów Architektura warstwowa Czym jest ORM? Problemy i pytania

Bardziej szczegółowo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014 Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu Wydział Mechaniczny obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014 Kierunek studiów: Informatyka Stosowana Forma

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language) Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce

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

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

Wprowadzenie do programowania aplikacji mobilnych

Wprowadzenie do programowania aplikacji mobilnych Wprowadzenie do programowania aplikacji mobilnych dr Przemysław Juszczuk dr Przemysław Juszczuk Trochę historii Idea wzorców projektowych wywodzi się jeszcze z wczesnych lat osiemdziesiątych ubiegłego

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 26.05.2014 WYKŁAD 13 Refleksja Data Access Object

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

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

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

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

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

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

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko

Bardziej szczegółowo

Bazy danych Wykład zerowy. P. F. Góra

Bazy danych Wykład zerowy. P. F. Góra Bazy danych Wykład zerowy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Patron? Św. Izydor z Sewilli (VI wiek), biskup, patron Internetu (sic!), stworzył pierwszy katalog Copyright c 2011-12 P.

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Kod szkolenia: Tytuł szkolenia: EJB Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2 Dni: 3 Opis: Adresaci szkolenia: Szkolenie adresowane jest

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

Wzorce projektowe i refaktoryzacja

Wzorce projektowe i refaktoryzacja Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:

Bardziej szczegółowo

METODY PROGRAMOWANIA

METODY PROGRAMOWANIA METODY PROGRAMOWANIA Wzorzec Repository 21 października 2017 Krzysztof Pawłowski kpawlowski@pjwstk.edu.pl Każdy wzorzec opisuje problem, który ciągle pojawia się w naszej dziedzinie, a następnie określa

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie 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 edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

PROJEKT Z BAZ DANYCH

PROJEKT Z BAZ DANYCH POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI PROJEKT Z BAZ DANYCH System bazodanowy wspomagający obsługę sklepu internetowego AUTOR: Adam Kowalski PROWADZĄCY ZAJĘCIA: Dr inż. Robert Wójcik, W4/K-9 Indeks:

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Aplikacje Internetowe, Servlety, JSP i JDBC

Aplikacje Internetowe, Servlety, JSP i JDBC Aplikacje Internetowe, Servlety, JSP i JDBC Opis Java 2 Enterprise Edition (JEE) jest potężną platformą do tworzenia aplikacji webowych. PLatforma JEE oferuje wszystkie zalety tworzenia w Javie plus wszechstronny

Bardziej szczegółowo

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu: http://aragorn.pb.bialystok.pl/~gkret Ogólny plan przedmiotu BAZY DANYCH Wykład 1: Wprowadzenie do baz danych Małgorzata Krętowska Politechnika Białostocka Wydział Informatyki Wykład : Wprowadzenie do baz danych Normalizacja Diagramy związków

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Zaawansowane programowanie obiektowe - wykład 5

Zaawansowane programowanie obiektowe - wykład 5 Zaawansowane programowanie obiektowe - wykład 5 dr Piotr Jastrzębski (czynnościowe) opisują zachowanie obiektów, komunikację pomiędzy nimi i ich odpowiedzialność. Interpreter Iterator (kursor) Łańcuch

Bardziej szczegółowo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2 Modelowanie i analiza systemów informatycznych 1. Warstwowa budowa systemów informatycznych 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wstęp do modelowania systemów

Bardziej szczegółowo

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia.

Diagram wdrożenia. Rys. 5.1 Diagram wdrożenia. Diagram wdrożenia Zaprojektowana przez nas aplikacja bazuje na architekturze client-server. W tej architekturze w komunikacji aplikacji klienckiej z bazą danych pośredniczy serwer aplikacji, który udostępnia

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe

Projektowanie obiektowe Wzorce projektowe Projektowanie obiektowe Wzorce projektowe Gang of Four Kreacyjne wzorce projektowe (wzorce konstrukcyjne) 1 Roadmap Memento Factory Method Abstract Factory Prototype Builder 2 Wzorce konstrukcyjne wzorce

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba.

Oracle PL/SQL. Paweł Rajba. Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 8 Wprowadzenie Definiowanie typu obiektowego Porównywanie obiektów Tabele z obiektami Operacje DML na obiektach Dziedziczenie -

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

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

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż. Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Wstęp Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Założenia do wykładu Zasady zaliczeń Ramowy program wykładu

Bardziej szczegółowo

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1 Zofia Kruczkiewicz 1 Zunifikowany iteracyjno- przyrostowy proces tworzenia oprogramowania kiedy? Przepływ działań Modelowanie przedsiębiorstwa

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

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

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

Podstawy Programowania 2

Podstawy Programowania 2 Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu

Bardziej szczegółowo

Podstawy frameworka Spring

Podstawy frameworka Spring Podstawy frameworka Spring Adresaci szkolenia: Szkolenie przeznaczone jest dla programistów znających język Java, chcących poszerzyć swoje kompetencje w zakresie tworzenia aplikacji.koncepcja szkolenia

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

Wprowadzenie do systemów informacyjnych

Wprowadzenie do systemów informacyjnych Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.

Bardziej szczegółowo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...

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

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych. 22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych. Baza danych zbiór informacji opisujący wybrany fragment rzeczywistości. Właściwości baz

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH wprowadzenie. Opracował: dr inż. Piotr Suchomski BAZY DANYCH wprowadzenie Opracował: dr inż. Piotr Suchomski Prowadzący Katedra Systemów Multimedialnych dr inż. Piotr Suchomski (e-mail: pietka@sound.eti.pg.gda.pl) (pok. 730) dr inż. Andrzej Leśnicki

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

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

1. Mapowanie diagramu klas na model relacyjny.

1. Mapowanie diagramu klas na model relacyjny. Rafał Drozd 1. Mapowanie diagramu klas na model relacyjny. 1.1 Asocjacje Wpływ na sposób przedstawienia asocjacji w podejściu relacyjnym ma przede wszystkim jej liczność (jeden-do-jednego, jeden-do-wielu,

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 10 - klasy abstrakcyjne i interfejsy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 17 maja 2017 1 / 13 mgr inż. Krzysztof Szwarc Programowanie obiektowe

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

OfficeObjects e-forms

OfficeObjects e-forms OfficeObjects e-forms Rodan Development Sp. z o.o. 02-820 Warszawa, ul. Wyczółki 89, tel.: (+48-22) 643 92 08, fax: (+48-22) 643 92 10, http://www.rodan.pl Spis treści Wstęp... 3 Łatwość tworzenia i publikacji

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

Wdrożenie do projektu

Wdrożenie do projektu Wdrożenie do projektu Zaczynamy od stworzenia zwykłego projektu Java. Środowisko z jakiego korzystam to Netbeans IDE w wersji 8.1. Możesz wykorzystywać inne IDE, bylebyś stosował analogiczne kroki w swoim

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

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania. Adrian Skalczuk Szymon Kosarzycki Spis Treści Wstęp [1/2] Wzorce projektowe są nieodłącznym przyjacielem programisty pozwalają pisać czystszy kod, łatwiejszy do zrozumienia przez innych i zapewniają pewien

Bardziej szczegółowo

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Spring Framework - wprowadzenie i zagadnienia zaawansowane Program szkolenia: Spring Framework - wprowadzenie i zagadnienia zaawansowane Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Spring Framework - wprowadzenie i zagadnienia

Bardziej szczegółowo

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

Wykład 1 Inżynieria Oprogramowania Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI

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

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane

Bardziej szczegółowo

Projektowanie logiki aplikacji

Projektowanie logiki aplikacji Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy

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

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

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

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design Projektowanie Zorientowane na Dziedzinę ang. Domain Driven Design 2 Projektowanie Stan posiadania Przypadki użycia Model dziedziny Operacje systemowe Kontrakty dla operacji systemowych Problemy do rozwiązania

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

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 JDBC z wykorzystaniem bazy H2

Wprowadzenie do JDBC z wykorzystaniem bazy H2 Wprowadzenie do JDBC z wykorzystaniem bazy H2 JDBC (ang. Java DataBase Connectivity). Biblioteka stanowiąca interfejs umożliwiający aplikacjom napisanym w języku Java porozumiewać się z bazami danych za

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010

Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010 4Developers, 26 marca 2010 Zakres wykładu O czym zamierzam opowiedzieć: Przyspieszenie tworzenia aplikacji Ułatwienie utrzymania aplikacji Budowanie kontraktów pomiędzy developerami a innymi uczestnikami

Bardziej szczegółowo