Bazy Danych II – Prezentacja 1. Mariusz Mikoszek Damian Kiełbasa Jacek Psiuk Adam Mika
Outline Wprowadzenie Przegląd z fazy projektowania systemu • Ogólny opis systemu – cele • Zarys struktury systemu (architektura + str. funk.+ kontekst) • Recenzja z projektu Opis zmian w projekcie + uzasadnienie Zakładany podział prac Wstępny harmonogram Przegląd narzędzi bazodanowych.
Wprowadzenie Tytuł projektu: Company Manager System wspomagający zarządzanie małą firmą o profilu handlowo-usługowym Potencjalny nabywca systemu: Właściciel małej FHU o profilu handlowo-usługowym Stan projektu na dzień dzisiejszy: Zrealizowany wg. zaleceń z PSI. Miejmy nadzieję doczeka się implementacji :-)
Opis systemu – cele Uproszczenie administracji • fakturowanie • przygotowanie inf. dla instytucji zewnętrznych Łatwe zarządzanie magazynem • kontrola stanu • statystyki magazynu (ulokowanie kapitału, sprzedaż) Zarządzanie bazą klientów • składowanie danych • automatyzacja obsługi klienta (internet) • obsługa historii zamówień Wspomaganie zarządzania personelem • sys. motywacyjnych wynagrodzeń Inne: optymalizacja składowania, e-marketing, itd.
Opis systemu - architektura Architektura typu klient-serwer 4-warstwowa
Struktura funkcjonalna Obsługa klienta Obsługa księgowości Zarządzanie bazą danych kontrahentów Obsługa magazynu Obsługa strony WWW Obsługa statystyk Obsługa produktów (dodawanie/edycja) Zarządzanie użytkownikami
Kontekst systemu
Recenzja projektu ... Przejrzysta dokumentacja Prosty cel – szeroki zakres projektu Nie w pełni ściśle sprecyzowana dziedzina • funkcjonalne usecase’y • jasno sprecyzowane cele, założenia Precyzyjna specyfikacja wymagań (kompletna/nadmiarowa?) Przejrzyste DFD – jednak występują nieścisłości Specyfikacje projektowe • usystematyzowane • niekompletne opisy Przemyślane założenia implementacyjne
I co dalej ... ?
Planowane zmiany w projekcie Rezygnacja z obsługi usług Rezygnacja z funkcji realizujących wspomaganie usług • gospodarowanie miejscem w magazyn(ie/ach) • automatyzacja systemu przyznawania wynagrodzeń i premii • zamawianie katalogu usług na maila (??) Powód: Zbyt rozległy obszar odpowiedzialności systemu. Brak spełnienia wymagań wobec sys. (jakość! + możliwości) Dlaczego te elementy: Najmniej ograniczają potencjał nabywczy produktu końcowego.
Podział prac – na 2 zespoły Główne komponenty do zrealizowania (wynikające wprost z architektury systemu): Baza danych. Aplikacja kliencka. Serwer WWW. Naszym celem jest taki podział, który przyspieszy ogólną implementację całego projektu, ale nie ograniczy w dużym stopniu wiedzy o systemie członków różnych zespołów no i zapewni wszystkim możliwość naszej nauki na temat szerokorozumianych baz danych.
Podział prac – na 2 zespoły Baza danych i wszystko co z nią związane: (wspólne) Struktura tabel Warunki integralnościowe Procedury Archiwizacja? Etc. Baza danych będzie realizowana przez obydwa zespoły równolegle, ponieważ jest to najważniejsze jądro naszego systemu oraz temat realizowanego przedmiotu, jakim są Bazy Danych II.
Podział prac – na 2 zespoły Aplikacja kliencka (wspólne) Moduł logiki biznesowej obsługa zamówień (zespół I) obsługa produktów (zespół II) zarządzanie bazą danych kontrahentów (zespół I) obsługa księgowości (zespół II) obsługa magazynu (zespół I) zarządzanie użytkownikami (zespół II) obsługa statystyk (zespół I) Moduł komunikacji z bazą danych (zespół I) Moduł interfejsu graficznego (zespół I) Obsługa klienta Obsługa księgowości Zarządzanie bazą danych kontrahentów Obsługa magazynu Obsługa strony WWW Obsługa statystyk Obsługa produktów (dodawanie/edycja) Zarządzanie użytkownikami
Podział prac – na 2 zespoły Serwer WWW (zespół II) Zespół stworzy stronę WWW, która będzie współpracowała z bazą danych, a jej stworzenie będzie wiązało się z zaimplementowaniem następujących modułów: Moduł komunikacji z bazą danych Moduł interpretacji danych Moduł prezentacji danych Obsługa klienta Obsługa księgowości Zarządzanie bazą danych kontrahentów Obsługa magazynu Obsługa strony WWW Obsługa statystyk Obsługa produktów (dodawanie/edycja) Zarządzanie użytkownikami
Harmonogram prac Do zrealizowania: (w ok.. 10 tyg.) Nawiązanie do zrealizowanego projektu (2 tyg.) • zagadnienia 1-4 • zagadnienia 5-7 Propozycja realizacji projektu (2 tyg.) • zagadnienia 2,3 • zagadnienia 3,4 Szczegółowy opis implementacji. (3 tyg.) Weryfikacja systemu (3 tyg.)
Przegląd SZBD – DB2 Główne cechy i atuty: Skompresowany format zapisu Silnik XML Przetwarzanie klastrowe Menadżer obciążenia Możliwości deweloperskie Obsługa SQL, XQuery, XPath, CLI-ODBC, Perl, PHP, C/C++, Java, rozbudowane wsparcie MS .NET Wersja bezpłatna: IBM DB2 v9.5 Express-C – ograniczenia: Max 2 rdzenie, 2GB pamięci, platformy: Linux, Windows, Solaris
Przegląd SZBD – MS SQL Server Główne cechy i atuty: Nieprzenośny Bardzo rozbudowana wersja Enterprise Wsparcie ze strony narzędzi MS Edycje darmowe
Przegląd SZBD – MySQL Główne cechy i atuty: Wolnodostępny Szybki Dobry dla często odwiedzanych stron WWW Procedury składowane, wyzwalacze, perspektywy, kursory Partycjonowanie tabel Harmonogram zadań Wsparcie replikacji BD Wsparcie wielojęzyczności Wsparcie wielu platform Narzędzia administracyjne, np. phpMyAdmin
Przegląd SZBD – PostgreSQL Główne cechy i atuty: Wolnodostępny Procedury składowane w wielu językach programowania Obsługa wielu typów indeksów Wyzwalacze Multiversion Concurrency Control Reguły Rozszerzona definicja typów danych Obiekty definiowane przez użytkownika Obiektowe rozszerzenia Narzędzia do współpracy z BD
Przegląd SZBD – Oracle Główne cechy i atuty: Posługuje się SQL oraz PL/SQL Możliwe użycie Javy jako języka tworzenia procedur składowanych System BD składa się z instancji i struktur przechowywania danych Popularny Wydajny Różne edycje, również darmowe
Decyzje strategiczne ... Baza danych: Oracle Środowisko implementacyjne aplikacji klienckiej: Java Środowisko implementacyjne Serwera WWW: PHP + Apache
Analiza kwerend Zapytania częste, będące potencjalnym źródłem obciążenia bazy danych oraz powodujące dodatkowe trudności implementacyjne: 1. Przegląd towarów w sklepie internetowym przez klienta – możliwość wielu użytkowników generujących liczne zapytania bazy danych zwracające znaczną ilość rekordów. 2. Śledzenie stanu realizacji zamówienia przez klienta. 3. Składanie zamówienia przez klienta internetowego – konieczność stosowania transakcji i obsługa sekcji krytycznych (dwóch klientów zamawiających w tym samym czasie). 4. Przeglądanie historii zamówień – możliwa bardzo duża ilość wyników zapytania. 5. Statystyki – zapytania rozległe, dotyczące wielu tabel i przetwarzające wiele rekordów.
Życzymy sobie powodzenia i zabieramy się do ostrej pracy! Koniec Życzymy sobie powodzenia i zabieramy się do ostrej pracy! Dziękujemy!