Państwowa Wyższa Szkoła Zawodowa w Tarnowie. Instytut Politechniczny

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

Download "Państwowa Wyższa Szkoła Zawodowa w Tarnowie. Instytut Politechniczny"

Transkrypt

1 Państwowa Wyższa Szkoła Zawodowa w Tarnowie Instytut Politechniczny Kierunek: INFORMATYKA Specjalność: INFORMATYKA STOSOWANA PRACA INŻYNIERSKA Tytuł pracy: Projekt i implementacja modułu encyklopedycznego serwisu ornitologicznego Autor: Mateusz Oślizło Opiekun pracy: dr inż. Robert Wielgat Tarnów, 2009

2 Pragnę złożyć serdeczne podziękowania na ręce Panów dra inż. Roberta Wielgata oraz mgra inż. Tomasza Potempy za udzieloną pomoc i cenne rady, które przyczyniły się do powstania niniejszej pracy. Pragnę również podziękować Panu Pawłowi Świętojańskiemu za nieocenione sugestie przy pisaniu pracy. 2

3 Spis treści I. Wstęp... 4 Cel pracy... 5 Zawartość pracy... 6 II. Specyfikacja wymagań... 7 III. Wykorzystane technologie PostgreSQL Java Spring Framework Java Server Faces Subversion IV. Baza danych Opis relacji w bazie danych Opis encji Kod SQL V. Opis aplikacji Struktura programu Konfiguracja Dostęp do danych Klasy serwisowe Interfejs użytkownika VI. Podsumowanie VII. Bibliografia Dodatek: Proces instalacji i uruchomienia Instalacja PostgreSQL Utworzenie bazy danych dla aplikacji Instalacja Apache Tomcat i uruchomienie aplikacji

4 I. Wstęp Ptaki są bardzo ważnym składnikiem otaczającego nas środowiska. Stosunek człowieka do tej najbardziej zróżnicowanej gromady kręgowców lądowych zmieniał się w ciągu wieków i ciągle jest dość złożony. Pierwotnie ptaki stanowiły dla niego jedno ze źródeł stosunkowo łatwo dostępnego pokarmu (niektóre z gatunków nieustannie mają istotne znaczenie gospodarcze. W chwili obecnej obserwujemy wzrost kulturotwórczej roli ptaków dzięki wrażeniom estetycznym doznawanym podczas ich obserwowania, słuchania śpiewu, czy też podziwiania zachowań godowych. U wielu osób hobbystyczne zainteresowanie ptakami ewoluowało w kierunku zainteresowań naukowych. Wynikiem takich działań bywają niezwykle cenne materiały badawcze. Między innymi z tych względów znaczenie ornitologii w naukach biologicznych, szczególnie w ekologii i etologii cały czas stopniowo wzrasta. Wyniki obserwacji ornitologicznych wykorzystywane są w dużym stopniu do celów bioindykacji, czyli śledzenia wpływu niekorzystnych zmian środowiska na żywe organizmy oraz określania ich reakcji na te zmiany, które wynikają z niszczycielskiej działalności gospodarczej człowieka. Regionalne badania nad ptakami, zwłaszcza dostarczające wskaźników liczbowych, pozwalają również określić stopień degradacji środowiska oraz znaczenie w przyrodzie określonych środowisk, niezbędnych dla utrzymania różnych gatunków oraz zachowania ich puli genetycznej. Powszechnie wiadomo, że zmiany, jakie człowiek wywołał w prawie wszystkich środowiskach na świecie, spowodowały pogorszenie warunków życia wielu gatunków ptaków. W związku z tym znalazły się one w Czerwonej Księdze opracowanej pod opieką Międzynarodowej Unii Ochrony Przyrody i Jej Zasobów (IUCN International Union for Conserwation of Nature and Natural Resources. Księga ta zawiera listę gatunków roślin i zwierząt, których istnienie na świecie jest zagrożone. Ponadto nad ochroną ptaków i regulacją użytkowania ich populacji czuwa również prawo łowieckie i ewentualnie inne akty prawne poszczególnych państw. Określenie warunków umożliwiających ochronę zagrożonych gatunków jest jednym z głównych zadań współczesnej ornitologii, a od jego realizacji zależy byt wielu 4

5 osobników. Możliwości działania pojedynczych osób w ochronie ptaków są przeważnie niewielkie i ograniczają się do wywieszania skrzynek lęgowych, zimowego dokarmiania i ewentualnie propagowania idei ochrony przyrody w społeczeństwie. Bardziej efektywne zabiegi, polegające głównie na ochronie środowiska ptaków, pozostają w gestii i możliwościach państwa lub odpowiednich organizacji społecznych. Przykładem takiego działania są prace prowadzone przez Małopolskie Towarzystwo Ornitologiczne na terenie województw: małopolskiego, podkarpackiego, świętokrzyskiego i wschodniej części śląskiego. Obejmują one obszar około km 2 i polegają na badaniu rozmieszczenia, biologii oraz aktualnych trendów liczebności. Cel pracy W okresach: zimowym, przelotów i lęgowym członkowie Małopolskiego Towarzystwa Ornitologicznego prowadzą akcje obserwacji składu gatunkowego oraz rozmieszczenia i liczebności ptaków. W wolne dni przypadające najbliżej środka miesiąca dokonywana jest penetracja odcinków rzek, zbiorników wodnych, wysypisk śmieci i innych miejsc, w których mogą znajdować się ptaki. Każdy uczestnik badania wypełnia tzw. karty obserwacji, które po przesłaniu do Towarzystwa stanowią cenne źródło danych. W obecnej chwili cały przepływ informacji odbywa się za pomocą papierowych formularzy, które podlegają sprawdzeniu i weryfikacji przez ekspertów. Na ich podstawie powstają zarówno raporty, statystyki, jak i opracowania książkowe w formie atlasów. Taki sposób zbierania i przetwarzania informacji jest obecnie wysoce nieefektywny, czasochłonny i dość kosztowny. Aby ułatwić i usprawnić prace Towarzystwa, zdecydowano się na stworzenie komputerowego systemu, dzięki któremu dotychczasowa papierowa forma zbierania, przesyłania i przetwarzania danych zostanie zastąpione przez o wiele wygodniejszą i bardziej efektywną formę elektroniczną. Niniejsza praca dyplomowa jest częścią projektu mającego na celu stworzenie portalu, którego główną funkcją ma być zbieranie danych z wypraw terenowych. Tą część opracowali dyplomanci Grzegorz Madeja i Paweł Gładysz w ramach pracy 5

6 dyplomowej pt. Projekt i implementacja modułu zbierania danych obserwacyjnych systemu ornitologicznego. Moduł encyklopedyczny opisany w niniejszej pracy ma na celu dostarczanie szczegółowych informacji na temat występujących w Polsce i na świecie gatunków ptaków, wraz z charakterystyką każdego gatunku. Są to ogólnodostępne, ustrukturyzowane informacje, których źródło stanowią przede wszystkim książkowe wydania atlasów. Na rynku dostępne są też nieliczne wydawnictwa multimedialne, jednak najlepsze z nich są aplikacjami obcojęzycznymi co bywa uciążliwe dla docelowych użytkowników. Stąd pomysł zaprojektowania i wykonania jednolitego systemu pełniącego wyżej wymienione funkcje, w którym moduł encyklopedyczny będzie pomocnym źródłem wiadomości dla osób wprowadzających dane zebrane w czasie wypraw terenowych. Zawartość pracy Praca została podzielona na pięć rozdziałów. Najważniejsze spośród nich to: drugi, czwarty, oraz piąty. Rozdział drugi przedstawia dokładną specyfikację wymagań dotyczącą informacji przechowywanych przez encyklopedyczną część bazy danych. W rozdziale czwartym znajdują się: diagram ERD encyklopedycznej części bazy danych, a także opis encji i relacji. W rozdziale piątym omówiono strukturę aplikacji, oraz scharakteryzowano każdy z modułów. Pozostałe rozdziały to: opis wykorzystanych technologii, podsumowanie (w którym zostały umieszczone informacje na temat tego, co udało się zrealizować w trakcie tworzenia systemu, oraz bibliografia zawierająca publikacje z jakich korzystano pisząc niniejszą pracę. 6

7 II. Specyfikacja wymagań Projekt aplikacji przewiduje, że część encyklopedyczna będzie katalogować i przechowywać następujące informacje: 1. Opis gatunku ptaka; 2. Średnia wielkość osobnika [cm]; 3. Waga [g]; Samica (minimalna, maksymalna; Samiec (minimalna, maksymalna 4. Rozpiętość skrzydeł [mm]: Samica (minimalna, maksymalna; Samiec (minimalna, maksymalna; 5. Średnia długość życia [rok]; 6. Wygląd: Rycina, przykładowe zdjęcie(a, opis: o Osobnik dorosły: Samiec; Samica; o Osobnik immaturalny: młodego Samiec; Samica; Osobnik juwenilny; Podlot; Pisklę; Jaja/jaj; Gniazdo; Pióro: Puchowe; Pokrywa; Lotka; Sterówka; Pudrowe; 7

8 7. Sylwetka; Widok z dołu ; Widok z boku ; 8. Cechy anatomiczne Kolory części ciała i upierzenia: o dziób o kantarek o pióra nosowe o czoło o obrączka powiekowa o obrączka oczna o ciemię o pokrywy uszne o potylica o kark o grzbiet o barkówki o duże pokrywy o lotki 3. rzędu o lotki 2. rzędu o kuper o lotki 1. rzędu o pokrywy nadogonowe o ogon=sterówki o pokrywy podogonowe o podogonie o podbrzusze o staw skokowy o stopa o skok o brzuch o pokrywy 1. rzędu o bok o skrzydełko 8

9 o średnie pokrywy o małe pokrywy o pierś o szyja o pole przyżuchwowe o gardło o podbródek części pióra o dudka o stosina o chorągiewka zewnętrzna o chorągiewka wewnętrzna o emarginacja o wycięcie wzory na upierzeniu o prążkowanie o plamkowanie o kreskowanie o półobroża o obroża o śliniak o pasek podbródkowy o pasek przyżuchwowy o pasek policzkowy o pasek oczny o obrączka oczna o środkowy pasek ciemieniowy o boczny pasek ciemieniowy o brew o plamka uszna o policzek o paski skrzydłowe o wstawka o pasek przedkońcowy 9

10 o pasek końcowy Słownik kolorów: - Biel - Czerń - Odcienie szarości - Odcienie brązu - Odcienie czerwieni - Odcienie różu - Odcienie fioletu - Odcienie niebieskiego - Odcienie pomarańczowego - Odcienie zieleni - Odcienie żółci 9. Charakterystyczne cechy zachowania (np. schodzenie głową w dół pnia drzewa; 10. Tryb życia: Osiadły; Wędrowny; Częściowo osiadły; Częściowo wędrowny; Koczujący; 11. Status w Polsce: Lęgowość: o Lęgowy (regularnie; o Lęgowy lokalnie lub sporadycznie; o Nielęgowy; Forma występowania (najwyższa kategoria: o Gnieżdżący się; o Przelotny; o Zalatujący (regularnie; o Zalatujący sporadycznie; Zimowanie: o Zimujący regularnie; o Zimujący sporadycznie lub nielicznie; 10

11 o Niezimujący; Inwazyjny (TAK/NIE; 12. Terminy migracji/przelotów; Wiosennych (data początkowa, data końcowa; Jesiennych (data początkowa, data końcowa; 13. Sposób odżywiania się: Drapieżnik; Owadożerny; Ziarnojad; Owocożerny; Wszystkożerny; 14. Pożywienie: Kręgowce: o Ryby; o Płazy; Kijanki; o Gady; o Ptaki: Wodne; Dorosłe Immaturalne; Juwenilne; Pisklęta; Lądowe; Dorosłe Immaturalne; Juwenilne; Pisklęta; Jaja; o Ssaki; Ssaki lądowe; Gryzonie; Ssaki wodne; 11

12 Bezkręgowce o Pajęczaki; o Skorupiaki; o Mięczaki: Głowonogi; Ślimaki; o Owady: Owady wodne; Owady lądowe; Chrząszcze; Mrówki; Osy, pszczoły, trzmiele; Ksylofagi (drewnojady; Saproksylity (preferują/wymagają martwego drewna jako środowiska lub pożywienia; Larwy owadów: Wodnych; Lądowych; o Pierścienice (np. dżdżownica; Wieloszczety; Plankton: o Fitoplankton; o Zooplankton; Rośliny: o Wodne; Wodorosty; Nasiona; Korzonki; Liście; Pąki; Kwiaty; Pędy; o Lądowe; Pąki; 12

13 Pędy; Kwiaty; Jagody; Owoce; Trawy Nasiona; Korzonki; Zboża; Liście; Igły; Odpady; Odchody; 15. Rodzaje wydawanych dźwięków (świergotanie, trelowanie, ćwierkotanie, klangor, bulgotanie, bełkotanie, syczenie, kukanie, chrapanie, czuszykanie, czyrykanie, klapanie, korkowanie, klaskanie, kokanie, krechtanie, krektanie, pianie, czyhitanie, szlifowanie, świstanie, glokanie, kwoktanie, kwokanie, skrzekotanie, telękanie; 16. Krótka biologia gatunku. Średnia wielkość terytorium: o Bezwzględna (km 2 ; o Względna (liczba par/km 2 ; 17. Typowe siedliska reprezentowane na trzech poziomach szczegółowości: a wg klasyfikacji ogólnej (łąka, las, rzeka, etc.; b wg klasyfikacji programu Natura 2000; c wg klasyfikacji szczegółowej (dokładny opis siedliska z podziałem wertykalnym; 18. Stopień zagrożonia wg Czerwonej Księgi - kategoria zagrożenia (EX, EW, CR, EN, VU, NT, LC, DD, NE; 19. Okres lęgowy: Wg kalendarza słonecznego (najwcześniejsza data lęgu, najpóźniejsza data lęgu; Wg kalendarza fenologicznego (zjawiska przyrodnicze; 20. Typowe pory śpiewu W ciągu doby (początek, koniec informacja w odniesieniu do wschodów i zachodów słońca. Przykład: 13

14 WS wschód słońca, ZS zachód słońca Początek aktywności: WS - 01:00 (1h przed wschodem słońca; Koniec aktywności: WS + 01:30 (1h 30m po wschodzie słońca; Wg kalendarza fenologicznego (pora/pory roku; Podobnie jak w przypadku wschodów i zachodów słońca w różnych rejonach kraju, często nieodległych, obserwuje się różne pory roku, w wyższych partiach gór trwa jeszcze zima a niżej jest już przedwiośnie itp. Ponadto każdy rok różni się od siebie, zatem w maju w pewnych latach mogło być już lato, a w innych była jeszcze wiosna. Zatem warto tą informację odnotowywać także wg pór roku: - przedwiośnie; - pierwiośnie; - wiosna; - wczesne lato; - lato; - późne lato; - wczesna jesień; - jesień; - poźna jesień; - przedzimek; - pełnia zimy; - spodzimek; Intensywność aktywności w typowych porach śpiewu: o Duża/Bardzo duża; o Średnia; o Mała/Brak; 21. Systematyka (Taksonomia zapisywana w trzech językach (łaciński, angielski, polski. 22. Literatura; 23. Fizjologia słyszenia (krzywe izofoniczne; Wzór; Tabela (macierz; 14

15 24. Zestaw optymalnych parametrów przetwarzania głosu ptaka, pod kątem automatycznego rozpoznawania gatunku dla: Samca: o Zakres typowych częstotliwości głosu ptaka; F min (int F max (int o Parametry filtracji cyfrowej; Rodzaj: rekursywna, nierekursywna, adaptacyjna; Współczynniki filtra cyfrowego; Samicy: o Zakres typowych częstotliwości głosu ptaka; F min (int F max (int o Parametry filtracji cyfrowej; Rodzaj: rekursywna, nierekursywna, adaptacyjna; Współczynniki filtra cyfrowego Osobnika młodocianego: o Zakres typowych częstotliwości głosu ptaka; F min (int F max (int o Parametry filtracji cyfrowej; Rodzaj: rekursywna, nierekursywna, adaptacyjna; Współczynniki filtra cyfrowego; Osobnika juwenilnego: o Zakres typowych częstotliwości głosu ptaka; F min (int F max (int o Parametry filtracji cyfrowej; Rodzaj: rekursywna, nierekursywna, adaptacyjna; Współczynniki filtra cyfrowego; Pisklęcia: o Zakres typowych częstotliwości głosu ptaka; F min (int F max (int o Parametry filtracji cyfrowej; Rodzaj: rekursywna, nierekursywna, adaptacyjna; Współczynniki filtra cyfrowego; 15

16 III. Wykorzystane technologie Podczas tworzenia aplikacji skorzystano z następujących technologii i narzędzi: PostgreSQL Java Spring Framework Java Server Faces Subversion W najbliższych podrozdziałach opisano je krótko i uzasadniono ich wybór. 1. PostgreSQL PostgreSQL jest jednym z najpopularniejszych spośród darmowych systemów zarządzania relacyjnymi bazami danych. Został stworzony w środowisku uniwersyteckim, a od połowy lat dziewięćdziesiątych jest rozwijany jako otwarty projekt internetowy przez utalentowanych programistów z całego świata. Główne zalety PostgreSQL to: Możliwość pisania funkcji w różnych językach programowania Obsługa wielu typów indeksów (B-drzewo, Hash, R-drzewo i GiST, a dodatkowo możliwość tworzenia indeksów poprzez wynik funkcji, indeksów częściowych reprezentujących cześć tabeli. Mechanizm wyzwalaczy przyłączanych do tabel lub do widoku. Mechanizm MVCC zarządzający transakcjami w sposób pozwalający na dostęp do tej samej krotki więcej niż jednej transakcji, oraz na istnienie kilku wersji tej samej krotki, niewidocznych dla innych użytkowników. Widoki modyfikujące realizowane za pomocą reguł Możliwość wykorzystania rzadko spotykanych typów danych Możliwość tworzenia większości obiektów bazodanowych m.in.: indeksy, agregaty, domeny, itd. Decydujący wpływ na wybór tego systemu jako systemu bazodanowego w prezentowanej pracy miała jego maksymalna zgodność ze standardem SQL (co 16

17 wykluczyło MySQL przy jednoczesnym zachowaniu niskich wymagań sprzętowych, które wyeliminowały Oracle. 2. Java Java - to obiektowy język programowania stworzony przez firmę Sun. Jego składnia opiera się na C++, podstawowe koncepcje zaś przejęto z języka Smalltalk. Java została zaprojektowana jako język niezależny od systemu operacyjnego i komputera, na którym może być uruchamiany, co w praktyce oznacza, że programy napisane w tym języku mogą być uruchamiane na każdym systemie operacyjnym. Ściślej rzecz biorąc, mogą być uruchamiane na każdym komputerze, który ma zainstalowane oprogramowanie Java Virtual Machine. Kluczowe koncepcje języka Java to: Obiektowość - pogrupowanie danych i wykonywanych na nich akcji w klasy obiektów Niezależność od architektury uzyskana dzięki kompilacji kodu źródłowego do kodu pośredniego, tłumaczonego następnie na kod dostosowany do specyfiki konkretnego systemu operacyjnego i procesora, prze wirtualna maszyna Javy Sieciowość i obsługa programowania rozproszonego realizowanego poprzez wyspecjalizowane biblioteki Javy Niezawodność i bezpieczeństwo Wybór tego języka zdeterminowany został w dużej mierze przez jego popularność oraz dojrzałość rozwiązań wspierających budowę aplikacji biznesowych. Prace nad portalem ornitologicznym zaplanowano na kilka lat zastosowanie Javy umożliwi kontynuatorom łatwą rozbudowę o nowe funkcje. 3. Spring Framework Spring Framework (SF jest szkieletem aplikacji oferowanym z otwartym dostępem do kodu źródłowego, którego zadanie polega na upraszczaniu procesu tworzenia oprogramowania w języku Java dla platformy Java EE/J2EE. 17

18 Najczęściej utożsamia się Spring z technologią odwrócenia kontroli, zwłaszcza z jedną z jej odmian wstrzykiwaniem zależności. Główne atuty Springa to: Spójny model programowania, który można stosować w dowolnym środowisku Wielokrotne wykorzystywanie kodu Ułatwienie przygotowywania projektów obiektowych dla aplikacji J2EE Ułatwienie stosowania takich praktyk programistycznych jak programowanie w oparciu o interfejsy Architektura rozszerzeń Ułatwienie przenoszenia wartości konfiguracyjnych z kodu Javy do dokumentów XML lub plików właściwości Prostota testowania Elastyczność architekturalna Niezwykle ważne jest to, że Spring Framework nie jest projektem laboratoryjnym napisanym w oderwaniu od rzeczywistości. Powstawał w procesie ewolucyjnym, a jego przydatność została pozytywnie zweryfikowana przez autorów wielu komercyjnych projektów. 4. Java Server Faces Java Server Faces (JSF jest obecnie jednym z najpopularniejszych frameworków wspomagających tworzenie interfejsu użytkownika aplikacji J2EE uruchamianych po stronie serwera, który bazuje na języku Java. JSF udostępnia zbiór komponentów do budowy warstwy widoku aplikacji, umożliwia obsługę zdarzeń użytkownika, poprzez cykl życia aplikacji internetowej za pośrednictwem servletu kontrolera. Korzysta on również z języka zgodnego z XML, używanego do tworzenia opisu interfejsu aplikacji (XUL. JSF oparty został na zbiorze najciekawszych i najpraktyczniejszych rozwiązaniach zaczerpniętych z używanych wcześniej technologii, m.in. Java Server Pages (JSP. 18

19 Umiejętny dobór tych właśnie cech przyczynił się do tego, że JSF stał się swoistym standardem na rynku aplikacji Web 2.0. Jako że Java Server Faces jest w pewnym sensie rozwinięciem technologii Java Server Pages na stronach JSF, można z powodzeniem korzystać z komponentów JSP Standard Tag Library (JSTL. JSF jest frameworkiem. który udostępnia: łatwe zarządzanie nawigacją w aplikacji, zapewnia zbiór podstawowych komponentów, zapewnia mechanizm przechwytywania wyjątków i błędów, zapewnia do mechanizmy internacjonalizacji aplikacji, mechanizm zarządzania bean'ami, 5. Subversion Subversion (znany również jako SVN jest powszechnie wykorzystywanym systemem kontroli wersji. Powstał on w oparciu o CVS starano się więc zachować kompatybilność z poprzednikiem usuwając jednocześnie i poprawiając jego wady. SVN jest wolnym oprogramowaniem na licencji Apache. Główne cechy systemu: Historia zmian nazw katalogów i plików Zmiany są transakcjami atomowymi Możliwość użycia serwera Apache Dostępny samodzielny serwer Szybkie tworzenie gałęzi i znaczników Podział kodu na moduły Własny protokół klient/serwer. Protokół umożliwia przesyłanie różnic w plikach od klienta do serwera i odwrotnie. Rozmiar przesyłanych danych przy zmianie pliku jest proporcjonalny do rozmiaru zmian, a nie pliku. 19

20 Efektywna obsługa plików binarnych. Repozytorium przechowywane w bazie danych lub w systemie plików. Zdecydowano się na użycie tego narzędzia, przede wszystkim dlatego, aby wszyscy uczestnicy projektu mieli wgląd w kod źródłowy aplikacji. IV. Baza danych Ze względu na założenie, że moduł encyklopedyczny ma dostarczać bardzo szczegółowych danych, baza złożona jest z 32 tabel połączonych 35 relacjami. Zaprojektowanie struktury w taki sposób, aby spełniała swoje zadanie umożliwiając jednocześnie ewentualną rozbudowę zajęło dużą część ogółu czasu poświęconego na pracę nad projektem. W niniejszym rozdziale przedstawiono diagram ERD oraz opisano encje i relacje występujące w bazie. 20

21 Rys. 1 Diagram ERD 21

22 1. Opis relacji w bazie danych Tab. 1. Opis relacji Relationship Tabela nadrzędna Klucz główny Tabela podrzędna Klucz obcy 1. occurence_form_t occurence_form_pk species_t occurence_form_fk 2. wintering_t wintering_pk species_t wintering_fk 3. nutrition_method_t nutrition_method_pk species_t nutrition_method_fk 4. red_list_t red_list_pk species_t red_list_fk 5. breeding_t breeding_pk species_t breeding_fk 6. vocal_type_dictionary_t vocal_type_dictionary_pk voice_type_t vocal_type_dictionary_fk 7. species_t species_pk nutrition_of_species_t species_fk 8. nutrition_dictionary_t nutrition_dictionary_pk nutrition_of_species_t nutrition_dictionary_fk 9. lifestyle_t lifestyle_pk species_t lifestyle_fk 10. species_t species_pk figure_t species_fk 11. figure_t figure_pk figure_description_t figure_descriotion_pk 12. colour_of_body_part_t colour_of_body_part_pk species_t colour_of_body_part_fk 13. part_of_the_body_t part_of_the_body_pk colour_of_body_part_t part_of_the_body_fk 14. colour_dictionary_t colour_pk colour_of_body_part_t colour_fk 15. age_t age_pk colour_of_body_part_t age_fk 16. gender_t gender_pk colour_of_body_part_t gender_fk 17. species_t species_pk voice_type_t species_fk 18. gender_t gender_pk voice_type_t gender_fk 19. gender_t gender_pk anatomical_feature_t gender_fk 20. age_t age_pk anatomical_feature_t age_fk 21. species_t species_pk anatomical_feature_t species_fk 22. feature_name_t feature_name_pk anatomical_feature_t feature_name_fk 23. species_t species_pk asr_parameter_set_t species_fk 24. specimen_t specimen_pk asr_parameter_set_t specimen_fk 25. type_of_filtration_t type_of_filtration_pk asr_parameter_set_t type_of_filtration_fk 26. filter_coefficient_t filter_coefficient_pk asr_parameter_set_t filter_coefficient_fk 27. species_t species_pk nutrition_of_species_t species_fk 28. phenology_season_t phenology_season_pk phenology_singing_time_t phenology_season_fk 29. species_t species_pk phenology_singing_time_t species_fk 30. vocal_intensity_activity_t vocal_intensity_activity_pk phenology_singing_time_t vocal_intensity_activity_fk 31. vocal_intensity_activity_t vocal_intensity_activity_pk day_singing_time vocal_intensity_activity_fk 32. species_t species_pk day_singing_time_t species_fk 33. species_t species_pk species_habitat_t species_fk 34. habitat_parameter_t parameter_pk species_habitat_t parameter_fk 35. habitat_parameter_type_t parameter_type_pk habitat_parameter_t paramater_type_fk 22

23 2. Opis encji Tab. 2. species_t dane odpowiedzialne za opis gatunku Tabela species_t species_pk numer id danego gatunku ptaków integer PK latin_name dwuczłonowa łacińska nazwa gatunku varchar ptaka polish_name polska nazwa gatunku ptaka varchar english_name angielska nazwa gatunku ptaka varchar species_description słowny opis gatunku varchar length_of_life średnia długość życia osobników danego integer gatunku wyrażona w latach is_invasive wartość true/false określająca czy dany boolean gatunek jest inwazyjny begin_spring_migration początkowa data migracji wiosennych varchar end_spring_migration końcowa data migracji wiosennych varchar begin_autumn_migration początkowa data migracji jesiennych varchar end_autumn_migration końcowa data migracji jesiennych varchar bezwzględna średnia wielkość terytorium varchar absolute_teritory_size zajmowanego przez dany gatunek wyrażona w km 2 względna średnia wielkość terytorium varchar relative_teritory_size zajmowanego przez dany gatunek wyrażona w liczbie par na km 2 begin_breeding_season najwcześniejsza data lęgu według varchar kalendarza słonecznego end_breeding_season najpóźniejsza data lęgu według kalendarza varchar słonecznego literature literatura varchar species2000 systematyka: id gatunku w bazie varchar Species

24 lifestyle_fk tryb życia gatunku integer FK occurence_form_fk forma występowania gatunku integer FK wintering_fk zimowanie integer FK nutrition_method_fk sposób odżywiania integer FK nutrition_fk pożywienie integer FK breeding_fk lęgowość w Polsce integer FK red_list_fk stopień zagrożenia wg Czerwonej Księgi integer FK Tab. 3. lifestyle_t lista trybów życia, które można przypisać do jednego gatunku Tabela lifestyle_t lifestyle_pk numer id rekordu integer PK lifestyle tryb życia: osiadły wędrowny częściowo osiadły częściowo wędrowny koczujący varchar Tab. 4. occurence_form_t lista form występowania, które można przypisać do jednego gatunku Tabela occurence_form_t occurence_form_pk numer id rekordu integer PK occurence_form forma występowania gatunku: gnieżdżący się przelotny zalatujący regularnie zalatujący sporadycznie varchar Tab. 5. wintering_t lista ze sposobami zimowania, które można przypisać do jednego gatunku Tabela wintering_t wintering_pk numer id rekordu integer PK wintering zimowanie: zimujący regularnie zimujący sporadycznie lub nielicznie niezimujący varchar 24

25 Tab. 6. nutrition_method_t lista ze sposobami odżywiania, które można przypisać do jednego gatunku Tabela nutrition_method_t nutrition_method_pk numer id rekordu integer PK nutrition_method sposób odżywiania: drapieżnik owadożerny ziarnojad owocożerny wszystkożerny varchar Tab. 7. nutrition_dictionary_t lista rodzajów pożywienia, które można przypisać do tabeli nutrition_of_species_t Tabela nutrition_dictionary_t nutrition_dictionary_pk numer id rekordu integer PK nutrition_overriding numer id rekordu nadrzędnego integer nutrition rodzaje pożywienia: kręgowce ryby płazy kijanki gady ptaki wodne dorosłe immaturalne juwenilne pisklęta lądowe dorosłe jaja ssaki ssaki lądowe gryzonie ssaki wodne bezkręgowce pajęczaki skorupiaki mięczaki głowonogi ślimaki owady owady wodne owady lądowe chrząszcze mrówki osy, pszczoły, trzmiele ksylofagi saproksylity larwy owadów wodnych lądowych pierścienice wieloszczety plankton fitoplankton zooplankton rośliny wodne wodorosty nasiona korzonki liście pąki kwiaty pędy lądowe pąki pędy kwiaty jagody owoce trawy nasiona korzonki zboża liście igły odpady odchody varchar 25

26 Tab. 8. nutrition_of_species_t dane odpowiedzialne za zbieranie informacji dotyczących pożywienia określonego gatunku Tabela nutrition_of_species_t nutrition_of_species_pk numer id rekordu integer PK species_fk id gatunku ptaków którego dotyczy rekord integer nutrition_dictionary_fk rodzaj pożywienia integer FK FK Tab. 9. voice_type_t lista z rodzajami wydawanych dźwięków, które można przypisać do tabeli voice_type_t Tabela voice_type_dictionary_t voice_type_dictionary_pk numer id rekordu integer PK voice_type_dictionary rodzaje wydawanych dźwięków: świergotanie trelowanie ćwierkotanie klangor bulgotanie bełkotanie syczenie kukanie chrapanie czuszykanie czyrykanie klapanie korkowanie klaskanie kokanie krechtanie krektanie pianie czyhitanie szlifowanie świstanie glokanie kwoktanie kwokanie skrzekotanie telękanie varchar Tab. 10. tabela voice_type_t tabela zbierająca dane o rodzajach dźwięków wydawanych przez osobniki danego gatunku Tabela voice_type _t voice_type_ pk numer id rekordu integer PK voice_type_dictionary_fk rodzaj wydawanego dźwięku integer FK species_fk id gatunku ptaków którego dotyczy rekord integer gender_fk płeć opisywanego osobnika integer FK FK 26

27 Tab. 11. breeding_t lista kategoriami lęgowości w Polsce, które można przypisać do jednego gatunku Tabela breeding_t breeding_pk numer id rekordu integer PK breeding lęgowość w Polsce: lęgowy (regularnie lęgowy lokalnie lub sporadycznie nielęgowy varchar Tab. 12. red_list_t lista kategoriami zagrożenia wg Czerwonej Księgi, które można przypisać do jednego gatunku Tabela red_list_t red_list_pk numer id rekordu integer PK red_list stopień zagrożenia wg Czerwonej Księgi: EX EW CR EN VU NT LC DD NE varchar Tab. 13. figure_t dane odpowiadające za przechowywanie plików graficznych z rycinami Tabela figure_t figure_pk numer id rekordu integer PK species_fk id gatunku ptaków którego dotyczy integer FK rekord figure_description_fk opis ryciny integer FK file_name nazwa pliku z ryciną varchar Tab. 14. gender_t lista z dostępnymi określeniami płci Tabela gender_t gender_pk numer id rekordu integer PK gender płeć: samiec samica varchar 27

28 Tab. 15. figure_description_t lista opisami rycin Tabela figure_description_t figure_description_pk numer id rekordu integer PK figure_description opis ryciny: dorosły samiec dorosła samica immaturalny samiec immaturalna samica osobnik juwenilny podlot pisklę jaja gniazdo pióro puchowe pokrywy lotka sterówka pióro pudrowe varchar Tab. 16. colour_of_body_part_t dane odpowiadające za opis kolorów różnych części ciała i upierzenia danego gatunku ptaka Tabela colour_of_body_part_t figure_pk numer id rekordu integer PK species_fk id gatunku ptaków którego dotyczy rekord integer colour_fk kolor integer FK part_of_the_body_fk część ciała i upierzenia integer FK age_fk wiek opisywanego osobnika integer FK plumage_fk upierzenie integer FK gender_fk płeć integer FK FK Tab. 17. feature_name_t lista z dostępnymi określeniami wieku osobnika Tabela feature_name_t feature_name_pk numer id rekordu integer PK feature_name nazwa opisywanej cechy: waga rozpiętość skrzydeł wielkość osobników varchar 28

29 Tab. 18. part_of_the_body_t lista częściami ciała i upierzenia Tabela part_of_the_body_t part_of_the_body_pk numer id rekordu integer PK part_of_the_body część ciała i upierzenia: dziób kantarek pióra nosowe czoło obrączka powiekowa obrączka oczna ciemię pokrywy uszne potylica kark grzbiet barkówki duże pokrywy lotki 3. rzędu lotki 2. rzędu kuper lotki 1. rzędu pokrywy nadogonowe ogon=sterówki pokrywy podogonowe podogonie podbrzusze staw skokowy stopa skok brzuch pokrywy 1. rzędu bok skrzydełko średnie pokrywy małe pokrywy pierś szyja pole przyżuchwowe gardło podbródek dudka stosina chorągiewka zewnętrzna chorągiewka wewnętrzna emarginacja wycięcie prążkowanie plamkowanie kreskowanie półobroża obroża śliniak pasek podbródkowy pasek przyżuchwowy pasek policzkowy pasek oczny obrączka oczna środkowy pasek ciemieniowy boczny pasek ciemieniowy brew plamka uszna policzek paski skrzydłowe wstawka pasek przedkońcowy pasek końcowy varchar 29

30 Tab. 19. colour_dictionary_t lista ze słownikiem kolorów Tabela colour_dictionary_t colour_pk numer id rekordu integer PK colour kolor: biel czerń odcienie szarości odcienie brązu odcienie czerwieni odcienie różu odcienie fioletu odcienie niebieskiego odcienie pomarańczowego odcienie zieleni odcienie żółci varchar Tab. 20. age_t lista z dostępnymi określeniami wieku osobnika Tabela age_t age_pk numer id rekordu integer PK age wiek osobnika: dorosły immaturalny juwenilny podlot pisklę varchar Tab. 21. anatomical_feature_t dane odpowiedzialne za opis cech anatomicznych Tabela anatomical_feature_t anatomical_feature_pk numer id rekordu integer PK gender_fk płeć opisywanego osobnika integer FK feature_name_fk nazwa opisywanej cechy integer FK species_fk id gatunku ptaków którego dotyczy integer FK rekord age_fk wiek opisywanego osobnika integer FK feature_value wartość liczbowa opisywanej cechy varchar 30

31 Tab. 22. asr_parameter_set_t dane odpowiedzialne za przechowywanie parametrów przetwarzania głosu ptaka pod kątem automatycznego rozpoznawania gatunku Tabela asr_parameter_set_t asr_parameter_set_pk numer id rekordu integer PK specimen_fk rodzaj osobnika integer FK type_of_filtration_fk rodzaj filtracji integer FK species_fk id gatunku ptaków którego dotyczy rekord integer filter_coefficient_fk współczynniki filtra cyfrowego integer FK typical_frequency_range_min zakres typowych częstotliwości głosu ptaka (Fmin typical_frequency_range_max zakres typowych częstotliwości głosu ptaka (Fmax integer integer isophonic_curves krzywe izofoniczne integer FK Tab. 23. specimen_t lista z dostępnymi określeniami rodzajów osobników Tabela specimen_t specimen_pk numer id rekordu integer PK specimen rodzaj osobnika: samiec samica juwenilny pisklę varchar Tab. 24. type_of_filtration_t lista z dostępnymi rodzajami filtracji Tabela type_of_filtration_t type_of_filtration_pk numer id rekordu integer PK type_of_filtration rodzaj filtracji: rekursywna nierekursywna adaptacyjna varchar 31

32 Tab. 25. filter_coefficient_t dane przechowujące współczynniki filtra cyfrowego Tabela filter_coefficient_t filter_coefficient_pk numer id rekordu integer PK filter_coefficient współczynniki filtra cyfrowego numeric (6,6 Tab. 26. phenology_saeson_t lista pór w ciągu roku wg kalendarza fenologicznego Tabela phenology_saeson_t phenology_saeson_pk numer id rekordu integer PK phenology_saeson pory w ciągu roku wg kalendarza fenologicznego: przedwiośnie pierwiośnie wiosna wczesne lato lato późne lato wczesna jesień jesień poźna jesień przedzimek pełnia zimy spodzimek varchar Tab. 27. phenology_singing_time_t dane odpowiedzialne za informacje dotyczące typowych pór śpiewu w ciągu roku wg kalendarza fenologicznego Tabela phenology_singing_time_t phenology_singing_time_pk numer id rekordu integer PK vocal_intensity_activity_fk species_fk phenology_saeson_fk intensywność aktywności w typowych porach śpiewu id gatunku ptaków którego dotyczy rekord typowe pory śpiewu w ciągu roku wg kalendarza fenologicznego integer integer integer FK FK FK 32

33 Tab. 28. vocal_intensity_activity_t lista intensywność aktywności w typowych porach śpiewu Tabela vocal_intensity_activity_t vocal_intensity_activity_pk numer id rekordu integer PK vocal_intensity_activity intensywność aktywności w typowych porach śpiewu: duża/bardzo duża średnia mała/brak; varchar Tab. 29. day_singing_time_t dane odpowiedzialne za informacje dotyczące typowych pór śpiewu w ciągu doby Tabela day_singing_time_t day_singing_time_pk numer id rekordu integer PK begin_day_singing_time end_day_singing_time vocal_intensity_activity_fk species_fk początek typowej pory śpiewu w ciągu doby koniec typowej pory śpiewu w ciągu doby intensywność aktywności w typowych porach śpiewu id gatunku ptaków którego dotyczy rekord time time integer integer FK FK Tab. 30 habitat_parameter_type_t - lista typów parametrów Tabela habitat_parameter_type_t parameter_type_pk numer id rekordu integer PK parameter_type_name typ parametru: Typ siedliska Typ lasu Typy liściaste Typy szpilkowy Typ łąki Wiek lasu varchar 33

34 Tab. 31 habitat_parameter_t tabela przechowująca drzewiastą strukturę parametrów Tabela habitat_parameter_t parameter_ pk numer id rekordu integer PK value wartość parametru: Las Łąka varchar liściasty szpilkowy olcha jesion sosnowy jodłowy świerkowy modrzew podmokła sucha młodnik drągowina średni starodrzew parent_parameter_fk id paramatru nadrzędnego integer FK parameter_type_fk id typu parametru integer FK Tab. 32 species_habitat_t - tabela łącząca siedliska z gatunkami ptaków Tabela species_habitat_t species_habitat_pk numer id rekordu integer PK parameter_fk id siedliska integer PK species_fk id gatunku ptaków którego dotyczy rekord integer FK Tab. 33. common_name_t dane przechowujące zwyczajowe nazwy określonego gatunku Tabela common_name_t common_name_pk numer id rekordu integer PK common_name nazwa zwyczajowa gatunku varchar species_fk id gatunku ptaków którego dotyczy rekord integer FK 34

35 3. Kod SQL CREATE SEQUENCE species_id; CREATE SEQUENCE lifestyle_id; CREATE SEQUENCE occurence_form_id; CREATE SEQUENCE wintering_id; CREATE SEQUENCE nutrition_method_id; CREATE SEQUENCE voice_type_id; CREATE SEQUENCE voice_type_dictionary_id; CREATE SEQUENCE red_list_id; CREATE SEQUENCE breeding_id; CREATE SEQUENCE nutrition_of_species_id; CREATE SEQUENCE nutrition_dictionary_id; CREATE SEQUENCE figure_id; CREATE SEQUENCE figure_description_id; CREATE SEQUENCE colour_of_body_part_id; CREATE SEQUENCE part_of_the_body_id; CREATE SEQUENCE colour_dictionary_id; CREATE SEQUENCE age_id; CREATE SEQUENCE gender_id; CREATE SEQUENCE anatomical_feature_id; CREATE SEQUENCE feature_name_id; CREATE SEQUENCE asr_parameter_set_id; CREATE SEQUENCE specimen_id; CREATE SEQUENCE type_of_filtration_id; CREATE SEQUENCE filter_coefficient_id; CREATE SEQUENCE common_name_id; CREATE SEQUENCE phenology_season_id; CREATE SEQUENCE phenology_singing_time_id; CREATE SEQUENCE vocal_intensity_activity_id; CREATE SEQUENCE day_singing_time_id; CREATE SEQUENCE species_habitat_id; CREATE SEQUENCE parameter_id; CREATE SEQUENCE parameter_type_id; -- Create tables section Table species_t CREATE TABLE species_t( species_pk Integer NOT NULL default nextval('species_id', latin_name Varchar, polish_name Varchar, english_name Varchar, species_description Varchar, 35

36 length_of_life Integer, is_invasive Boolean, begin_spring_migration Varchar, end_spring_migration Varchar, begin_autumn_migration Varchar, end_autumn_migration Varchar, absolute_teritory_size Integer, relative_teritory_size Integer, begin_breeding_season Varchar, end_breeding_season Varchar, literature Varchar, species2000 Integer, lifestyle_fk Integer, occurence_form_fk Integer, wintering_fk Integer, nutrition_method_fk Integer, breeding_fk Integer, red_list_fk Integer WITH (OIDS=FALSE; -- Add keys for table species_t ALTER TABLE species_t ADD CONSTRAINT species_pk PRIMARY KEY (species_pk; -- Table lifestyle_t CREATE TABLE lifestyle_t( lifestyle_pk Integer NOT NULL default nextval('species_id', lifestyle Varchar WITH (OIDS=FALSE; -- Add keys for table lifestyle_t ALTER TABLE lifestyle_t ADD CONSTRAINT lifestyle_pk PRIMARY KEY (lifestyle_pk; -- Table phenology_singing_time_t CREATE TABLE phenology_singing_time_t( phenology_singing_time_pk Integer NOT NULL default nextval('species_id', vocal_intensity_activity_fk Integer, phenology_season_fk Integer, species_fk Integer 36

37 WITH (OIDS=FALSE; -- Add keys for table phenology_singing_time_t ALTER TABLE phenology_singing_time_t ADD CONSTRAINT phenology_singing_time_pk PRIMARY KEY (phenology_singing_time_pk; -- Table part_of_the_body_t CREATE TABLE part_of_the_body_t( part_of_the_body_pk Integer NOT NULL default nextval('species_id', part_of_the_body Varchar WITH (OIDS=FALSE; -- Add keys for table part_of_the_body_t ALTER TABLE part_of_the_body_t ADD CONSTRAINT part_of_the_body_pk PRIMARY KEY (part_of_the_body_pk; -- Table colour_dictionary_t CREATE TABLE colour_dictionary_t( colour_pk Integer NOT NULL default nextval('species_id', colour Varchar WITH (OIDS=FALSE; -- Add keys for table colour_dictionary_t ALTER TABLE colour_dictionary_t ADD CONSTRAINT colour_dictionary_pk PRIMARY KEY (colour_pk; -- Table day_singing_time_t CREATE TABLE day_singing_time_t( day_singing_time_pk Integer NOT NULL default nextval('species_id', begin_day_singing_time Time, end_day_singing_time Time, vocal_intensity_activity_fk Integer, species_fk Integer WITH (OIDS=FALSE; -- Add keys for table day_singing_time_t 37

38 ALTER TABLE day_singing_time_t ADD CONSTRAINT day_singing_time_pk PRIMARY KEY (day_singing_time_pk; -- Table colour_of_body_part_t CREATE TABLE colour_of_body_part_t( colour_of_body_part_pk Integer NOT NULL default nextval('species_id', species_fk Integer NOT NULL, colour_fk Integer NOT NULL, part_of_the_body_fk Integer NOT NULL, age_fk Integer NOT NULL, gender_fk Integer WITH (OIDS=FALSE; -- Add keys for table colour_of_body_part_t ALTER TABLE colour_of_body_part_t ADD CONSTRAINT colour_of_body_part_pk PRIMARY KEY (colour_of_body_part_pk; -- Table phenology_season_t CREATE TABLE phenology_season_t( phenology_season_pk Integer NOT NULL default nextval('species_id', phenology_season Varchar WITH (OIDS=FALSE; -- Add keys for table phenology_season_t ALTER TABLE phenology_season_t ADD CONSTRAINT phenology_season_pk PRIMARY KEY (phenology_season_pk; -- Table figure_t CREATE TABLE figure_t( figure_pk Integer NOT NULL default nextval('species_id', species_fk Integer, figure_description_fk Integer, file_name Varchar WITH (OIDS=FALSE; -- Add keys for table figure_t ALTER TABLE figure_t ADD CONSTRAINT figure_pk PRIMARY KEY (figure_pk; 38

39 -- Table common_name_t CREATE TABLE common_name_t( common_name_pk Integer NOT NULL default nextval('species_id', common_name Varchar, species_fk Integer WITH (OIDS=FALSE; -- Add keys for table common_name_t ALTER TABLE common_name_t ADD CONSTRAINT common_name_pk PRIMARY KEY (common_name_pk; -- Table figure_description_t CREATE TABLE figure_description_t( figure_description_pk Integer NOT NULL default nextval('species_id', figure_description Varchar WITH (OIDS=FALSE; -- Add keys for table figure_description_t ALTER TABLE figure_description_t ADD CONSTRAINT figure_description_pk PRIMARY KEY (figure_description_pk; -- Table species_habitat_t CREATE TABLE species_habitat_t( species_habitat_pk Integer NOT NULL default nextval('species_id', parameter_fk Integer, species_fk Integer WITH (OIDS=FALSE; -- Table breeding_t CREATE TABLE breeding_t( breeding_pk Integer NOT NULL default nextval('species_id', breeding Varchar WITH (OIDS=FALSE; -- Add keys for table breeding_t 39

40 ALTER TABLE breeding_t ADD CONSTRAINT breeding_pk PRIMARY KEY (breeding_pk; -- Table habitat_parameter_t CREATE TABLE habitat_parameter_t( parameter_pk Integer NOT NULL default nextval('species_id', value Varchar, parent_parameter_fk Integer, parameter_type_fk Integer WITH (OIDS=FALSE; -- Add keys for table habitat_parameter_t ALTER TABLE habitat_parameter_t ADD CONSTRAINT parameter_pk PRIMARY KEY (parameter_pk; -- Table occurence_form_t CREATE TABLE occurence_form_t( occurence_form_pk Integer NOT NULL default nextval('species_id', occurence_form Varchar WITH (OIDS=FALSE; -- Add keys for table occurence_form_t ALTER TABLE occurence_form_t ADD CONSTRAINT occurence_form_pk PRIMARY KEY (occurence_form_pk; -- Table habitat_parameter_type_t CREATE TABLE habitat_parameter_type_t( parameter_type_pk Integer NOT NULL default nextval('species_id', parameter_type_name Varchar WITH (OIDS=FALSE; -- Add keys for table habitat_parameter_type_t ALTER TABLE habitat_parameter_type_t ADD CONSTRAINT parameter_type_pk PRIMARY KEY (parameter_type_pk; -- Table wintering_t 40

41 CREATE TABLE wintering_t( wintering_pk Integer NOT NULL default nextval('species_id', wintering Varchar WITH (OIDS=FALSE; -- Add keys for table wintering_t ALTER TABLE wintering_t ADD CONSTRAINT wintering_pk PRIMARY KEY (wintering_pk; -- Table nutrition_method_t CREATE TABLE nutrition_method_t( nutrition_method_pk Integer NOT NULL default nextval('species_id', nutrition_method Varchar WITH (OIDS=FALSE; -- Add keys for table nutrition_method_t ALTER TABLE nutrition_method_t ADD CONSTRAINT nutrition_method_pk PRIMARY KEY (nutrition_method_pk; -- Table nutrition_of_species_t CREATE TABLE nutrition_of_species_t( nutrition_of_species_pk Integer NOT NULL default nextval('species_id', species_fk Integer, nutrition_dictionary_fk Integer WITH (OIDS=FALSE; -- Add keys for table nutrition_of_species_t ALTER TABLE nutrition_of_species_t ADD CONSTRAINT nutrition_of_species_pk PRIMARY KEY (nutrition_of_species_pk; -- Table nutrition_dictionary_t CREATE TABLE nutrition_dictionary_t( nutrition_dictionary_pk Integer NOT NULL default nextval('species_id', nutrition_overriding Integer, nutrition Varchar WITH (OIDS=FALSE; 41

42 -- Add keys for table nutrition_dictionary_t ALTER TABLE nutrition_dictionary_t ADD CONSTRAINT nutrition_dictionary_pk PRIMARY KEY (nutrition_dictionary_pk; -- Table voice_type_t CREATE TABLE voice_type_t( voice_type_pk Integer NOT NULL default nextval('species_id', species_fk Integer, gender_fk Integer, voice_type_dictionary_fk Integer WITH (OIDS=FALSE; -- Add keys for table voice_type_t ALTER TABLE voice_type_t ADD CONSTRAINT voice_type_pk PRIMARY KEY (voice_type_pk; -- Table red_list_t CREATE TABLE red_list_t( red_list_pk Integer NOT NULL default nextval('species_id', red_list Varchar WITH (OIDS=FALSE; -- Add keys for table red_list_t ALTER TABLE red_list_t ADD CONSTRAINT red_list_pk PRIMARY KEY (red_list_pk; -- Table anatomical_feature_t CREATE TABLE anatomical_feature_t( anatomical_feature_pk Integer NOT NULL default nextval('species_id', gender_fk Integer NOT NULL, feature_name_fk Integer NOT NULL, species_fk Integer NOT NULL, age_fk Integer NOT NULL, anatomical_feature_value Numeric(6,2 WITH (OIDS=FALSE; -- Add keys for table anatomical_feature_t 42

43 ALTER TABLE anatomical_feature_t ADD CONSTRAINT anatomical_feature_pk PRIMARY KEY (anatomical_feature_pk; -- Table gender_t CREATE TABLE gender_t( gender_pk Integer NOT NULL default nextval('species_id', gender Varchar WITH (OIDS=FALSE; -- Add keys for table gender_t ALTER TABLE gender_t ADD CONSTRAINT gender_pk PRIMARY KEY (gender_pk; -- Table feature_name_t CREATE TABLE feature_name_t( feature_name_pk Integer NOT NULL default nextval('species_id', feature_name Varchar WITH (OIDS=FALSE; -- Add keys for table feature_name_t ALTER TABLE feature_name_t ADD CONSTRAINT feature_name_pk PRIMARY KEY (feature_name_pk; -- Table asr_parameter_set_t CREATE TABLE asr_parameter_set_t( asr_parameter_set_pk Integer NOT NULL default nextval('species_id', specimen_fk Integer NOT NULL, type_of_filtration_fk Integer NOT NULL, filter_coefficient_fk Integer NOT NULL, species_fk Integer NOT NULL, typical_frequency_range_min Integer, typical_frequency_range_max Integer, isophonic_curves Varchar WITH (OIDS=FALSE; -- Add keys for table asr_parameter_set_t 43

44 ALTER TABLE asr_parameter_set_t ADD CONSTRAINT asr_parameter_set_pk PRIMARY KEY (asr_parameter_set_pk; -- Table specimen_t CREATE TABLE specimen_t( specimen_pk Integer NOT NULL default nextval('species_id', specimen Varchar WITH (OIDS=FALSE; -- Add keys for table specimen_t ALTER TABLE specimen_t ADD CONSTRAINT specimen_pk PRIMARY KEY (specimen_pk; -- Table type_of_filtration_t CREATE TABLE type_of_filtration_t( type_of_filtration_pk Integer NOT NULL default nextval('species_id', type_of_filtration Varchar WITH (OIDS=FALSE; -- Add keys for table type_of_filtration_t ALTER TABLE type_of_filtration_t ADD CONSTRAINT type_of_filtration_pk PRIMARY KEY (type_of_filtration_pk; -- Table filter_coefficient_t CREATE TABLE filter_coefficient_t( filter_coefficient_pk Integer NOT NULL default nextval('species_id', filter_coefficient Numeric(6,6 WITH (OIDS=FALSE; -- Add keys for table filter_coefficient_t ALTER TABLE filter_coefficient_t ADD CONSTRAINT filter_coefficient_pk PRIMARY KEY (filter_coefficient_pk; -- Table age_t CREATE TABLE age_t( age_pk Integer NOT NULL default nextval('species_id', age Varchar 44

45 WITH (OIDS=FALSE; -- Add keys for table age_t ALTER TABLE age_t ADD CONSTRAINT age_pk PRIMARY KEY (age_pk; -- Table voice_type_dictionary_t CREATE TABLE voice_type_dictionary_t( voice_type_dictionary_pk Integer NOT NULL default nextval('species_id', voice_type_dictionary Varchar WITH (OIDS=FALSE; -- Add keys for table voice_type_dictionary_t ALTER TABLE voice_type_dictionary_t ADD CONSTRAINT voice_type_dictionary_pk PRIMARY KEY (voice_type_dictionary_pk; -- Table vocal_intensity_activity_t CREATE TABLE vocal_intensity_activity_t( vocal_intensity_activity_pk Integer NOT NULL default nextval('species_id', vocal_intensity_activity Varchar WITH (OIDS=FALSE; -- Add keys for table vocal_intensity_activity_t ALTER TABLE vocal_intensity_activity_t ADD CONSTRAINT vocal_intensity_activity_pk PRIMARY KEY (vocal_intensity_activity_pk; -- Create relationships section ALTER TABLE species_t ADD CONSTRAINT Relationship9 FOREIGN KEY (lifestyle_fk REFERENCES lifestyle_t (lifestyle_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE species_t ADD CONSTRAINT Relationship1 FOREIGN KEY (occurence_form_fk REFERENCES occurence_form_t (occurence_form_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE species_t ADD CONSTRAINT Relationship2 FOREIGN KEY (wintering_fk REFERENCES wintering_t (wintering_pk ON DELETE NO ACTION ON UPDATE NO ACTION; 45

46 ALTER TABLE species_t ADD CONSTRAINT Relationship3 FOREIGN KEY (nutrition_method_fk REFERENCES nutrition_method_t (nutrition_method_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE species_t ADD CONSTRAINT Relationship5 FOREIGN KEY (breeding_fk REFERENCES breeding_t (breeding_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE colour_of_body_part_t ADD CONSTRAINT Relationship12 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE colour_of_body_part_t ADD CONSTRAINT Relationship14 FOREIGN KEY (colour_fk REFERENCES colour_dictionary_t (colour_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE colour_of_body_part_t ADD CONSTRAINT Relationship13 FOREIGN KEY (part_of_the_body_fk REFERENCES part_of_the_body_t (part_of_the_body_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE figure_t ADD CONSTRAINT Relationship10 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE figure_t ADD CONSTRAINT Relationship11 FOREIGN KEY (figure_description_fk REFERENCES figure_description_t (figure_description_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE anatomical_feature_t ADD CONSTRAINT Relationship19 FOREIGN KEY (gender_fk REFERENCES gender_t (gender_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE anatomical_feature_t ADD CONSTRAINT Relationship22 FOREIGN KEY (feature_name_fk REFERENCES feature_name_t (feature_name_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE asr_parameter_set_t ADD CONSTRAINT Relationship24 FOREIGN KEY (specimen_fk REFERENCES specimen_t (specimen_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE asr_parameter_set_t ADD CONSTRAINT Relationship25 FOREIGN KEY (type_of_filtration_fk REFERENCES type_of_filtration_t (type_of_filtration_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE asr_parameter_set_t ADD CONSTRAINT Relationship26 FOREIGN KEY (filter_coefficient_fk REFERENCES filter_coefficient_t (filter_coefficient_pk ON DELETE NO ACTION ON UPDATE NO ACTION; 46

47 ALTER TABLE species_t ADD CONSTRAINT Relationship4 FOREIGN KEY (red_list_fk REFERENCES red_list_t (red_list_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE anatomical_feature_t ADD CONSTRAINT Relationship21 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE asr_parameter_set_t ADD CONSTRAINT Relationship23 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE colour_of_body_part_t ADD CONSTRAINT Relationship15 FOREIGN KEY (age_fk REFERENCES age_t (age_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE colour_of_body_part_t ADD CONSTRAINT Relationship16 FOREIGN KEY (gender_fk REFERENCES gender_t (gender_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE anatomical_feature_t ADD CONSTRAINT Relationship20 FOREIGN KEY (age_fk REFERENCES age_t (age_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE nutrition_of_species_t ADD CONSTRAINT Relationship7 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE nutrition_of_species_t ADD CONSTRAINT Relationship8 FOREIGN KEY (nutrition_dictionary_fk REFERENCES nutrition_dictionary_t (nutrition_dictionary_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE voice_type_t ADD CONSTRAINT Relationship17 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE voice_type_t ADD CONSTRAINT Relationship18 FOREIGN KEY (gender_fk REFERENCES gender_t (gender_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE voice_type_t ADD CONSTRAINT Relationship6 FOREIGN KEY (voice_type_dictionary_fk REFERENCES voice_type_dictionary_t (voice_type_dictionary_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE phenology_singing_time_t ADD CONSTRAINT Relationship30 FOREIGN KEY (vocal_intensity_activity_fk REFERENCES vocal_intensity_activity_t (vocal_intensity_activity_pk ON DELETE NO ACTION ON UPDATE NO ACTION; 47

48 ALTER TABLE day_singing_time_t ADD CONSTRAINT Relationship31 FOREIGN KEY (vocal_intensity_activity_fk REFERENCES vocal_intensity_activity_t (vocal_intensity_activity_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE phenology_singing_time_t ADD CONSTRAINT Relationship28 FOREIGN KEY (phenology_season_fk REFERENCES phenology_season_t (phenology_season_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE species_habitat_t ADD CONSTRAINT Relationship34 FOREIGN KEY (parameter_fk REFERENCES habitat_parameter_t (parameter_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE habitat_parameter_t ADD CONSTRAINT Relationship35 FOREIGN KEY (parameter_type_fk REFERENCES habitat_parameter_type_t (parameter_type_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE species_habitat_t ADD CONSTRAINT Relationship33 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE phenology_singing_time_t ADD CONSTRAINT Relationship29 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE day_singing_time_t ADD CONSTRAINT Relationship32 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; ALTER TABLE common_name_t ADD CONSTRAINT Relationship27 FOREIGN KEY (species_fk REFERENCES species_t (species_pk ON DELETE NO ACTION ON UPDATE NO ACTION; 48

49 V. Opis aplikacji Implementacji systemu dokonano w środowisku programistycznym NetBeans rozwijanym i udostępnianym na zasadzie open source. Jako serwer użyto kontenera aplikacji webowych Apache Tomcat, który jest jednym z najczęściej wykorzystywanych serwerów do obsługi Spring Framework. Z uwagi na to, że podczas prac skupiono się zwłaszcza na bazodanowej części projektu, implementacja ograniczyła się do konfiguracji Springa, integracji go z warstwą interfejsu JSF oraz wykonania przykładowego formularza dla jednej z tabel. W poniższych rozdziałach omówiono strukturę programu oraz opisano każdy z jego segmentów. 1. Struktura programu Program podzielony jest na 4 segmenty zarządzające innymi częściami aplikacji: konfiguracyjną pliki applicationcontext.xml, dispatcher-servlet.xml, web.xml, faces-config.xml, jdbc.properties, redirect.jsp dostępu do danych zawarte w plikach o nazwie takiej, jak główny człon nazwy tabeli w bazie danych, którą dany plik obsługuje; np. dla tabeli lifestyle_t plikiem warstwy DAO jest plik Lifestyle.class klasy serwisowe o nazwie: xservice, gdzie x jest nazwą pliku DAO, który jest obsługiwany przez dany plik warstwy serwisowej; np. LifestyleService.class interfejs użytkownika pliki o nazwie takiej, jak główny człon nazwy tabeli w bazie danych, którą dany plik obsługuje; np. dla tabeli lifestyle_t plikiem interfejsu jest plik lifestyle.jsf 2. Konfiguracja W niniejszej aplikacji za konfigurację i korzystanie z kontekstu springowego odpowiadają wpisy w pliku WEB-INF/applicationContext.xml. 49

50 W pliku tym zawarte są informacje wspólne dla wszystkich aplikacji działających w kontekście Springa. Informacja o lokalizacji głównego pliku konfiguracyjnego zawarta jest w pliku web.xml: <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/applicationcontext.xml</param-value> </context-param> Podczas wdrażania aplikacji bazujących na Springu bardzo często się okazuje, że większość elementów konfiguracji kontenera nie wymaga modyfikowania podczas procesu wdrażania. Aby zapobiec przymusowi przeszukiwania skomplikowanych plików konfiguracyjnych tylko po to, aby zmienić kilka wymaganych w danym momencie wartości zastosowano komponent PropertyPlaceholderConfigurer. Dzięki niemu w procesie konfiguracji można ustalić wartości pobierane z zewnętrznych plików. W przypadku niniejszej aplikacji w ten sposób zdefiniowane został łańcuchy konfiguracyjne właściwe dla puli połączeń z bazą danych. W efekcie wdrożenia tego komponentu odpowiednie wartości beanu datasource będą zastąpione wartościami pochodzącymi z pliku jdbc.properties, np. w deklaracji poniższego beana: <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource" p:driverclassname="${jdbc.driverclassname}" p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}" /> w miejsce adresu serwera zostanie podstawiona wartość: jdbc.url=jdbc:postgresql://localhost:5432/encyklopedia Znajdujący się w pliku applicationcontext.xml fragment: <bean id="jdbctemplate" class="org.springframework.jdbc.core.jdbctemplate" > <property name="datasource" ref="datasource" /> </bean> 50

51 jest najczęściej opisywanym przykładem konfiguracji wstrzyknięcia IoC. Obiekt jdbctemplate jest konfigurowany za pomocą elementu bean, w którym określono, że jego właściwość datasource powinna być ustawiona na egzemplarz obiektu datasource (jego definicję pokazano wyżej również jako element bean. Ostatni wpis w pliku applicationcontext.xml stanowi definicja obiektu lifestyle z zastosowaniem wstrzyknięcia obiektu jdbctemplate: <bean id="lifestyle" class="obsluga.lifestyle" > <property name="jdbctemplate" ref="jdbctemplate" /> </bean> 3. Dostęp do danych Wzorzec Data Access Objects jest jednym z najważniejszych i najczęściej stosowanych rozwiązań w aplikacjach J2EE. Stąd też Framework Spring udostępnia programiście maksymalnie proste w użyciu mechanizmy realizacji tego wzorca. Spring oferuje abstrakcyjne klasy DAO, które zapewniają prosty dostęp do zasobów baz danych. Dla interfejsu JDBC jest to klasa JdbcDaoSupport, która udostępnia metody obsługujące dostęp do źródła danych (egzemplarz interfejsu DataSource oraz prekonfigurowany szablon typu JdbcTemplate. Do szablonu JdbcTemplate przekazywane są trzy informacje: zapytanie polecenie SQL parametry jeśli w poleceniu SQL wykorzystywane są parametry, w tym miejscu można określić ich właściwości klasa wywołania zwrotnego można także określić klasę wewnętrzną definiującą jedną metodę zadeklarowaną w interfejsie RowCallbackHandler; metoda ta zostanie wywołana dla każdego wiersza dostępnego w zbiorze wyników Są to elementy, które zmieniają się w poszczególnych wywołaniach JDBC. Spring wykonuje za programistę wszystkie niezbędne operacje: 1. Nawiązuje połączenie ze źródłem danych. 2. Podaje polecenie SQL. 3. Przegląda wszystkie wiersze zbioru wyników. 4. Dla każdego wiersza zbioru wyników wywołuje podaną metodę zwrotną. 51

52 5. Zamyka połączenie ze źródłem danych. 6. Jeśli w trakcie wykonywania powyższych operacji zostanie zgłoszony wyjątek, to zastąpi go odpowiednim wyjątkiem nieweryfikowalnym. Poniżej przytoczono fragment warstwy DAO, a dokładniej metodę pobierającą z bazy danych wszystkie elementy zapisane w tabeli lifestyle_t: public List<Map> gettekstlista( { } return this.jdbctemplate.queryforlist("select * from lifestyle_t"; Powyższe zapytanie zwraca wynik w postaci obiektu typu Map o następującej postaci: [{lifestyle_pk=1, lifestyle=osiadły},{ lifestyle_pk=2, lifestyle=wędrowny}] 4. Klasy serwisowe Zadaniem klas serwisowych jest wywoływanie metod wykonujących operacje na danych z bazy. O ile do wyświetlenia rekordów z bazy danych w formie tabeli klasa serwisowa jest praktycznie zbędna, to już wyświetlenie ich w formie listy rozwijanej jest dość zawiłe i polega na stworzeniu elementu Collection<SelectItemGroup>, który zostaje wypełniony odpowiednimi danymi, by móc zostać przekazanym do interfejsu. Klasy serwisowe zawierają również obsługę przycisków (dodawanie, usuwanie, edycja rekordów. 5. Interfejs użytkownika Implementacji interfejsu użytkownika dokonano w technologii Java Server Faces. Dzięki temu wyświetlenie odpowiednich elementów wymaga tylko znajomości podstawowych znaczników JSF. Spośród nich szczególnie przyjazny dla programisty jest <h:datatable>, dzięki któremu stworzenie tabeli z danych pobieranych przez szablon JdbcTemplate ogranicza się do kilku linijek bardzo czytelnego kodu. W dalszej części tego podrozdziału przedstawiono zrzuty ekranowe formularza obsługującego tabelę słownikową z trybami życia gatunku. 52

53 Lista rekordów z bazy wyświetlana w formie tabeli: Rys. 2 Wyświetlenie rekordów z tabeli lifestyle_t Dodając nowy tryb życia użytkownik wpisuje tylko wartość komórki lifestyle. Numer ID nadawany jest automatycznie: Rys. 3 Dodawanie nowego rekordu Usuwanie rekordu polega na wybraniu odpowiedniej pozycji z listy rozwijanej: Rys. 4 Usuwanie rekordów 53

54 Edytując rekord najpierw należy wybrać, który wpis ma zostać zmieniony, a następnie wprowadzić jego nową wartość: Rys. 5 Edycja danych 54

55 VI. Podsumowanie Podczas realizacji tematu przedstawionego w niniejszej pracy zdefiniowano dokładną specyfikację wymagań dotyczącą informacji przechowywanych przez encyklopedyczną część bazy danych i zaprojektowano bazę spełniającą postawione warunki. Skonfigurowano dwa frameworki: Spring oraz Java Server Faces, a także zaimplementowano przykładowy formularz obsługujący wszystkie niezbędne operacje (wyświetlanie, dodawanie, usuwanie i edycja danych. W związku z tym, że główny nacisk położono na projekt bazy danych, nie udało się zaimplementować całego systemu. Otrzymano za to bardzo szczegółową bazę, która będzie dla kontynuatorów projektu swoistym fundamentem docelowej aplikacji. Dalsze prace nie będą wymagać dokonywania tak wielu kluczowych dla projektu decyzji jak dotychczas i ograniczą się do pisania nowych klas na podstawie istniejących już fragmentów kodu źródłowego. Aby system mógł spełniać swoje zadanie, niezbędna jest implementacja wszystkich formularzy oraz integracja modułu encyklopedycznego z częścią zbierającą dane z wypraw terenowych. Zalecane jest również przystosowanie aplikacji do współpracy ze Species2000 bazą taksonomiczną gromadzącą dane dotyczące wszystkich grup organizmów. 55

56 VII. Bibliografia 1. PostgreSQL. Zdzisław Dybikowski, Helion, Spring Framework. Profesjonalne tworzenie oprogramowania w Javie. Rod Johnson, Juergen Hoeller, Alef Arendsen, Thomas Risberg, Colin Sampaleanu, Helion, Spring. Zapiski programisty. Bruce Tate, Justin Gehtland, Helion, Przewodnik Ptaki. Karel Hudec, Multico, NetBeans Docs & Support: 6. Spring Documentation: 56

57 Dodatek: Proces instalacji i uruchomienia 1. Instalacja PostgreSQL Do uruchomienia programu niezbędne jest połączenie z serwerem PostgreSQL. Najnowsza wersja instalacyjna dla najpopularniejszych systemów operacyjnych znajduje się na oficjalnej stronie projektu: Poniżej przedstawiono opis instalacji dla systemów rodziny Windows: 1. Aby rozpocząć instalację, należy uruchomić plik postgresql windows.exe 2. Kolejne kroki instalacji potwierdza się klikając przycisk Next będzie to skutkowało przejściem do następnych kroków z zachowaniem domyślnych ustawień instalacji 3. W momencie pojawienia się okna przedstawionego na Rys. 6 w polach Password i Retype password należy wpisać hasło dla domyślnego użytkownika postgres jest to wartość q1w2e3 Rys. 6 Ustawienie hasła dla użytkownika bazy danych 4. Kolejne kroki polegają na akceptacji domyślnych ustawień instalacji klikając przycisk Next 2. Utworzenie bazy danych dla aplikacji Aby utworzyć bazę danych dla aplikacji opisanej w niniejszej pracy, należy: 1. Uruchomić program pgadmin III (bezwzględna ścieżka dostępu do pliku to: C:\Program Files\PostgreSQL\8.3\bin\pgAdmin3.exe 2. Po jego uruchomieniu pojawi się ekran przedstawiony na Rys. 7: 57

58 Rys. 7 Okno pgadmin III po uruchomieniu programu 3. Aby połączyć się z serwerem należy dwukrotnie kliknąć na PostgreSQL 8.3 (localhost: obszar zaznaczony na Rys. 7 niebieskim kolorem i wpisać ustalone wcześniej hasło (q1w2e3 4. W celu utworzenia nowej bazy danych należy z menu kontekstowego pozycji Bazy danych wybrać: Nowa baza danych... Rys. 8 Tworzenie nowej bazy danych W oknie tworzenia nowej bazy należy wpisać jej nazwę: encyklopedia, resztę pól zostawiając uzupełnioną o domyślne wartości. 5. Kolejnym krokiem jest zaznaczenie nowoutworzonej bazy i wybranie na pasku narzędzi polecenia Wykonaj dowolne zapytanie SQL 58

59 Rys. 9 Przejście do wykonania zapytania SQL 6. Następnie należy otworzyć plik baza.sql znajdujący się na dołączonej płycie CD i wcisnąć klawisz F5 co spowoduje wykonanie zapytania SQL. 7. W taki sam sposób należy otworzyć plik dane.sql i wykonać zawarte w nim zapytania. Spowoduje to uzupełnienie tabeli lifestyle_t o przykładowe rekordy. 3. Instalacja Apache Tomcat i uruchomienie aplikacji Aby możliwe było uruchomienie programu, konieczna jest instalacja serwera aplikacji JEE. W niniejszym rozdziale przedstawiono proces instalacji serwera Apache Tomcat. Najnowsza wersja instalacyjna dla najpopularniejszych systemów operacyjnych znajduje się na oficjalnej stronie projektu: Poniżej przedstawiono opis instalacji dla systemów rodziny Windows: 1. Aby rozpocząć instalację, należy uruchomić plik apache-tomcat exe 2. Potwierdzamy kolejne kroki instalacji zachowując domyślne ustawienia klikając przycisk Next 3. W momencie pojawienia się poniższego okna w polu Password należy wpisać hasło administratora. Na przykład q1w2e3. 59

60 Rys. 10 Ustalenie hasła administratora 4. Kolejnym krokiem jest podanie ścieżki do folderu, w którym znajduje się Wirtualna Maszyna Java: Rys. 11 Ścieżka do JVM 60

61 5. Po zakończeniu procesu instalacji Apache Tomcat należy skopiować pliki aplikacji z załączonej płyty CD do folderu C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\encyklopedia 6. Następnym krokiem jest przejście w dowolnej przeglądarce stron www pod następujący adres: 7. Pod w/w adresem znajduje się strona powitalna serwera. Należy teraz przejść do opcji Tomcat Manager dostępnej w menu Administration. W celu autoryzacji wpisać login: admin i hasło: q1w2e3 Rys. 12 Sekcja Administration 8. W sekcji Deploy directory or WAR file located on server uzupełnić pola wartościami podanymi na Rys. 13 i kliknąć przycisk Deploy Rys. 13 Sekcja Deploy directory or WAR file located on server 9. Ostatnim krokiem jest uruchomienie aplikacji klikając Start w kolumnie Commands dla aplikacji o ścieżce /encyklopedia 10. Od tego momentu aplikacja dostępna jest pod adresem: 61

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: 209216. Aukcjomat Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Parys Nr albumu: 209216 Aukcjomat Praca licencjacka na kierunku INFORMATYKA w zakresie INFORMATYKA Praca wykonana pod kierunkiem

Bardziej szczegółowo

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL Katedra Informatyki, Uniwersytet Rzeszowski 2009 Agenda System kontroli wersji CVS SVN Praca z SVN i Visual

Bardziej szczegółowo

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010

System kontroli wersji - wprowadzenie. Rzeszów,2 XII 2010 System kontroli wersji - wprowadzenie Rzeszów,2 XII 2010 System kontroli wersji System kontroli wersji (ang. version/revision control system) służy do śledzenia zmian głównie w kodzie źródłowym oraz pomocy

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

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java Spis treści 1 Terminarz...3 2 Specyfikacja wymagań - założenia projektowe...4 2.1 Informacje

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

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ Zamawiający: Wojewódzkie Biuro Urbanistyczne we Wrocławiu ul. Świdnicka 12/16 50-068 Wrocław Wykonawca:

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

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

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

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

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

Java Server Faces - wprowadzenie

Java Server Faces - wprowadzenie Java Server Faces - wprowadzenie Java Server Faces (JSF) jest najpopularniejszą technologią opartą o język JAVA, służącą do tworzenia aplikacji webowych (dynamicznych stron WWW). pomimo że JSF i EJB wchodzą

Bardziej szczegółowo

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008 Adam 1 grudnia 2008 Wstęp Opis Historia Apache kontener serwletów rozwijany w ramach projektu Apache jeden z bardziej popularnych kontenerów Web open source, Apache Software License rozwijany przez ASF

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L Co to jest DDL SQL i jakie s jego ą podstawowe polecenia? D D L S Q L - p o d s t a w y DDL SQL (Data Definition Language) Jest to zbiór instrukcji i definicji danych, którym posługujemy się

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

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

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

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

Bardziej szczegółowo

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego

PRACA DYPLOMOWA INŻYNIERSKA. Mobilny system wspomagający pracę. terminala kontenerowego PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ PRACA DYPLOMOWA INŻYNIERSKA Mobilny system wspomagający pracę terminala kontenerowego autor: Bartłomiej Urbanowicz opiekun pracy:

Bardziej szczegółowo

Bezpieczeństwo systemów i lokalnej sieci komputerowej

Bezpieczeństwo systemów i lokalnej sieci komputerowej Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Jan Werner Bezpieczeństwo systemów i lokalnej sieci komputerowej Praca magisterska

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Bardziej szczegółowo

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

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

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida Cel pracy Analiza wybranych ram projektowych dostępnych dla platformy Java Warunki selekcji napisany z wykorzystaniem języka Java oraz

Bardziej szczegółowo

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS Niniejszy dokument jest syllabusem obowiązującym dla certyfikatu EUCIP ver. 2.6. Prezentuje obszary wiedzy, których znajomość jest niezbędna do

Bardziej szczegółowo

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar. me@athlan.pl

Wersjonowanie baz danych podczas developmentu. Liquibase. Piotr Pelczar. me@athlan.pl Wersjonowanie baz danych podczas developmentu Liquibase Piotr Pelczar me@athlan.pl Piotr Athlan Pelczar Freelancer: vgroup.pl, athlan.pl goldenline.pl/piotr-pelczar me@athlan.pl Agenda 1. Problem wersjonowania

Bardziej szczegółowo

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE)

Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE) Katedra Inżynierii Oprogramowania Tematy prac dyplomowych inżynierskich STUDIA NIESTACJONARNE (ZAOCZNE) Temat projektu/pracy dr inż. Wojciech Waloszek Grupowy system wymiany wiadomości. Zaprojektowanie

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

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

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

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Szymon Klimuk Nr albumu: 187408 Praca magisterska na kierunku Informatyka Monitorowanie

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

Paweł Cieśla. Dokumentacja projektu

Paweł Cieśla. Dokumentacja projektu Paweł Cieśla Dokumentacja projektu Projekt Project1 został utworzony i skompilowany na próbnej wersji Delphi XE 4. Po uruchomieniu programu należy kliknąć przycisk Wczytaj plik tekstowy, następnie wskazać

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Ekspert MS SQL Server Oferta nr 00/08

Ekspert MS SQL Server Oferta nr 00/08 Ekspert MS SQL Server NAZWA STANOWISKA Ekspert Lokalizacja/ Jednostka organ.: Pion Informatyki, Biuro Hurtowni Danych i Aplikacji Wspierających, Zespół Jakości Oprogramowania i Utrzymania Aplikacji Szczecin,

Bardziej szczegółowo

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

Bardziej szczegółowo

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010 Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Dokumentacja projektu QUAIKE Architektura oprogramowania

Dokumentacja projektu QUAIKE Architektura oprogramowania Licencjacka Pracownia Oprogramowania Instytut Informatyki Uniwersytetu Wrocławskiego Jakub Kowalski, Andrzej Pilarczyk, Marek Kembrowski, Bartłomiej Gałkowski Dokumentacja projektu QUAIKE Architektura

Bardziej szczegółowo

System Obsługi Wniosków

System Obsługi Wniosków System Obsługi Wniosków Wersja 2.0 1 System Obsługi Wniosków wersja 2.0 System Obsługi Wniosków to nowoczesne rozwiązanie wspierające proces obsługi wniosków o produkty bankowe. Pozwala na przyjmowanie,

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

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

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Systemy baz danych w zarządzaniu przedsiębiorstwem W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi Proces zarządzania danymi Zarządzanie danymi obejmuje czynności: gromadzenie

Bardziej szczegółowo

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Jednolite zarządzanie użytkownikami systemów Windows i Linux Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Paweł Gliwiński Nr albumu: 168470 Praca magisterska na kierunku Informatyka Jednolite

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

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

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

Bardziej szczegółowo

OpenLaszlo. OpenLaszlo

OpenLaszlo. OpenLaszlo OpenLaszlo Spis Treści 1 OpenLaszlo Co to jest? Historia Idea Architektura Jako Flash lub DHTML Jako servlet lub SOLO Jak to działa? Język LZX Struktura programu Skrypty Obiekty i klasy Atrybuty i metody

Bardziej szczegółowo

Zrąb webowy dla perfekcjonistów z terminami. autor: Kamil Adamczyk

Zrąb webowy dla perfekcjonistów z terminami. autor: Kamil Adamczyk Zrąb webowy dla perfekcjonistów z terminami autor: Kamil Adamczyk 1 Django napisany w Pythonie DRY czyli zasada nie powtarzaj się w odniesieniu do tworzenia aplikacji opensource'owy zrąb służący do tworzenia

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji

Bardziej szczegółowo

Systemy zarządzania wersjami

Systemy zarządzania wersjami 24 października 2007 Po co? Dla kogo? Dlaczego? aby ułatwić kontrolę nad projektem aby panować nad wersjami aby móc śledzić zmiany dla każdego projektu, przy którym pracuje więcej niż jedna osoba dla ludzi

Bardziej szczegółowo

Zastosowanie oprogramowania Proficy (ifix, Historian oraz Plant Applications) w laboratoryjnym stanowisku monitoringu systemów produkcyjnych in-line

Zastosowanie oprogramowania Proficy (ifix, Historian oraz Plant Applications) w laboratoryjnym stanowisku monitoringu systemów produkcyjnych in-line Zastosowanie oprogramowania Proficy (ifix, Historian oraz Plant Applications) w laboratoryjnym stanowisku monitoringu systemów produkcyjnych in-line Dr inż. Grzegorz Ćwikła Stanowisko do monitoringu systemów

Bardziej szczegółowo

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA NOWE MOŻLIWOŚCI Jeżeli chcesz: to: obniżyć koszty i ułatwić sobie pracę, wykorzystywać niezawodną, wydajną i otwartą technologię, używać innowacyjnych

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

Bardziej szczegółowo

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne

Bardziej szczegółowo

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska Tworzenie aplikacji GIS w technologii Flex Tomasz Turowski Esri Polska Rodzina produktów bazujących na Fleksie ArcGIS API for Flex zbiór klas wprowadzających funkcjonalności mapowe do środowiska Flex.

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

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

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia

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

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Tomasz Kapelak Nr albumu: 187404 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat. Serwer Tomcat Plan wykładu Opis serwera Jak uruchomić napisaną aplikację Podstawowa konfiguracja Pierwsze uruchomienie Tomcat

Bardziej szczegółowo

Imię i nazwisko. Błotniaki. Gniazdowanie... 2 W Polsce... 2. Gniazdowanie... 3 W Polsce... 3. Błotniak stawowy - Circus aeruginosus...

Imię i nazwisko. Błotniaki. Gniazdowanie... 2 W Polsce... 2. Gniazdowanie... 3 W Polsce... 3. Błotniak stawowy - Circus aeruginosus... Błotniaki Błotniaki, to liczący 13 gatunków rodzaj ptaków drapieŝnych z rodziny jastrzębiowatych (Accipitridae), rzędu sokołowych (Falconiformes), występujących w Eurazji, Afryce i Ameryce. Ptaki te osiągają

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

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

Zapytanie ofertowe 13-09-2013

Zapytanie ofertowe 13-09-2013 Zapytanie ofertowe W związku z realizacją projektu współfinansowanego ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Działania 8.2 Programu Operacyjnego Innowacyjna Gospodarka 2007-2013,

Bardziej szczegółowo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

ul. Pogodna 6 10-647 Olsztyn +48 504 647 030 codeit@codeit.pl http://codeit.pl

ul. Pogodna 6 10-647 Olsztyn +48 504 647 030 codeit@codeit.pl http://codeit.pl Aplikacja 'mcrm' codeit ul. Pogodna 6 10-647 Olsztyn +48 504 647 030 codeit@codeit.pl 1. Idea Aplikacja 'mcrm' to prosty system klasy CRM (Customer Relationship Management) stworzony z myślą o małych i

Bardziej szczegółowo

Tomasz Grześ. Systemy zarządzania treścią

Tomasz Grześ. Systemy zarządzania treścią Tomasz Grześ Systemy zarządzania treścią Co to jest CMS? CMS (ang. Content Management System System Zarządzania Treścią) CMS definicje TREŚĆ Dowolny rodzaj informacji cyfrowej. Może to być np. tekst, obraz,

Bardziej szczegółowo

SOP System Obsługi Parkingów

SOP System Obsługi Parkingów SOP System Obsługi Parkingów JEE i Android Marcin Tatjewski Tomasz Traczyk Grzegorz Zieliński Paweł Borycki 5 listopada 2009 www.sopark.pl Plan prezentacji Java Platform, Enterprise Edition (JEE) Wstęp

Bardziej szczegółowo

edziennik Ustaw Opis architektury

edziennik Ustaw Opis architektury edziennik Ustaw Opis architektury Spis treści 1 Wstęp...3 2 Architektura systemu...3 2.1 Schemat poglądowy rozwiązania...3 2.2 Architektura logiczna...4 2.3 Opis elementów systemu...5 2.3.1 Moduł Udostępniający...5

Bardziej szczegółowo

Baza danych. Modele danych

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

Bardziej szczegółowo

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 1, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 3 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

Bardziej szczegółowo

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER Opr. Barbara Gałkowska Microsoft SharePoint Microsoft SharePoint znany jest również pod nazwą Microsoft SharePoint Products and Technologies

Bardziej szczegółowo

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska System gromadzenia, indeksowania i opisu słownikowego norm i rekomendacji Praca magisterska Jakub Reczycki Opiekun : dr inż. Jacek Rumiński Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Bardziej szczegółowo

Wstęp do Informatyki. Klasyfikacja oprogramowania

Wstęp do Informatyki. Klasyfikacja oprogramowania Wstęp do Informatyki Klasyfikacja oprogramowania Oprogramowanie komputerowe Funkcjonalność komputera jest wynikiem zarówno jego budowy, jak i zainstalowanego oprogramowania Komputer danej klasy znajduje

Bardziej szczegółowo

Android - wprowadzenie. Łukasz Przywarty 171018

Android - wprowadzenie. Łukasz Przywarty 171018 Android - wprowadzenie Łukasz Przywarty 171018 Ramowy plan prezentacji Czym jest Android: definicja, krótka historia. Architektura systemu. Architektura aplikacji. Właściwości systemu. Środowisko deweloperskie.

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia) Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne przedmioty.

Bardziej szczegółowo

Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Bazy danych ITA-101. Wersja 1

Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Bazy danych ITA-101. Wersja 1 Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski Bazy danych ITA-101 Wersja 1 Warszawa, wrzesień 2009 Wprowadzenie Informacje o kursie Opis kursu We współczesnej informatyce coraz większą

Bardziej szczegółowo

Ełk, dn. 15.10.2013 r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, 19-300 Ełk. Nip 848-172-84-22 ZAPYTANIE OFERTOWE

Ełk, dn. 15.10.2013 r. DOMSET Marcin Brochacki. ul. Wojska Polskiego 43 lok. 3, 19-300 Ełk. Nip 848-172-84-22 ZAPYTANIE OFERTOWE Ełk, dn. 15.10.2013 r. DOMSET Marcin Brochacki ul. Wojska Polskiego 43 lok. 3, 19-300 Ełk Nip 848-172-84-22 ZAPYTANIE OFERTOWE Firma DOMSET Marcin Brochacki zwraca się z prośbą o przesłanie oferty cenowej

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Wrota Parsęty II o bazie danych przestrzennych - wprowadzenie

Wrota Parsęty II o bazie danych przestrzennych - wprowadzenie Wrota Parsęty II o bazie danych przestrzennych - wprowadzenie Czym jest baza danych? zbiór powiązanych danych z pewnej dziedziny, zorganizowanych w sposób dogodny do korzystania z nich, a zwłaszcza do

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Tworzenie modelu logicznego i fizycznego danych.

Tworzenie modelu logicznego i fizycznego danych. Tworzenie modelu logicznego i fizycznego danych. W celu stworzenia modelu danych wykorzystamy program ata Architect wchodzący w skład pakietu narzędzi CASE Power esigner, który pozwala utworzyć tzw. logiczny

Bardziej szczegółowo