Ogólnie

 

Systemy bazodanowe dzielą się na systemy scentralizowane oraz wielowarstwowe.

Systemy scentralizowane budowane są głównie:

  • jako duże komputerowe systemy np. mainframe. W systemach tych zintegrowano aplikacje bazodanowe z systemem zarządzania bazą danych. Obsługują one wielu użytkowników za pośrednictwem terminali
  • jako małe systemy (1 komputer PC nie podłączony do sieci), których przeznaczeniem jest współpraca z jednym użytkownikiem
Systemy wielowarstwowe można podzielić na systemy:
  • dwuwarstwowe: klient - serwer
  • trójwarstwowe: klient - serwer aplikacji - serwer bazy danych (System zarządzania bazą danych SZBD)
  • wielowarstwowe: przeglądarka internetowa- serwer WWW - serwer aplikacji - serwer bazy danych

Architektura

 

Od strony technicznej istnieją trzy typy aplikacji bazodanowych, które różnią się dopuszczalną ilością użytkowników  i rozmiarem bazy danych. Opiszemy teraz krótko każdy z tych typów.

Najprostrzą możliwością jest lokalna aplikacja z wbudowanym systemem baz danych. Są tanie i proste w budowie, łatwe w instalacji i użyciu i mają względnie niskie wymagania sprzętowe (nie wymagają oddzielnego serwera). Dane zwykle mogą być współdzielone przy pomocy współdzielenia dysków sieciowych. Często proste aplikacje tego typu tworzy się w MS Access, ale jesteśmy w stanie dostarczyć oprogramowanie w innych technologiach. Ograniczeniem dla tego typu aplikajcji jest nieduża liczba jednoczesnych użytkowników, kiepska skalowalność i utrudnienie uaktualnienia oprogramowania.

W bardziej zaawansowanej architekturze pojawia się serwer bazy danych, taki jak MS SQL Server czy PostgreSQL, który działa na oddzielnej maszynie w sieci lokalnej. Użytkownicy łączą się ze swoich komputerów z serwerem w celu dostępu do danych przy pomocy aplikacji klienckich. Mogą to być zarówno aplikacje uruchamianie lokalnie  (np. do wprowadzania danych) i aplikacje webowe działające na tych samych danych (np. sporządzanie i prezentowanie raportów). Serwer bazy danych może obsłużyć dużą liczbę użytkowników, pozwala na jednoczesny dostęp i rozwiązywanie konfliktów danych, wszystkie operacje są przeprowadzane w ramach jednolitych transakcji, które mogą zostać wycofane jako całość w przypadku błędów w jednym z kroków. Serwer może także wymuszać zachowywanie określonych reguł, co pozwala na zachowanie spójności danych dla wszystkich typów i wersji aplikacji.

W najbardziej zaawansowanej architekturze występuje dodatkowo serwer aplikacji, w którym zaimplementowana jest logika biznesowa aplikacji (reguły zarządzania danymi i przeprowadzane operacje). Serwer aplikacyjny łączy się z serwerem baz danych i udostępnia zaawansowane operacje na danych, wymuszając ścisłe reguły i wymagania co do tej operacji. Aplikacje użytkowników łączą się z kolei z serwerem aplikacyjnym i pozwalają na wykonywanie operacji na danych przy pomocy wygodnego interfejsu. Ta architektura jest bardzo złożona, ale ma też wiele zalet, między innymi wysoki poziom spójności danych, wysoką skalowalność i pozwala na szybkie i bezpieczne zmiany logiki biznesowej  poprzez zmianę oprogramowania serwera aplikacyjnego. Co więcej, można wykorzystać zarówno aplikacje uruchamiane lokalnie, jak i webowe bez duplikowania logiki biznesowej.

Architektura trójwarstwowa

 

Powszechnie stosowaną architekturą w aplikacjach internetowych jest architektura trójwarstwowa która wprowadza logiczny; funkcjonalny podział aplikacji na trzy warstwy: warstwę podstawową - System zarządzania bazą danych SZBD, warstwę pośrednią - serwer WWW oraz warstwę końcową - klienta (komputer lub inne urządzenie obsługujące przeglądarkę internetową). Taki podział podyktowany jest wymogami poszczególnych aplikacji, które łączą ze sobą różne protokoły sieciowe i programy. W aplikacjach sieciowych dąży się zwykle do przeniesienia możliwie największego ciężaru aplikacji na stronę serwera, pozostawiając klientowi zazwyczaj jedynie funkcje interfejsu z użytkownikiem. W takiej sytuacji aplikacja jest łatwiejsza w utrzymaniu – większość lub całość kodu ulegającego modyfikacji związanej ze zmianami w bazie, rozbudową lub poprawkami skupiona jest tylko w części serwerowej aplikacji.

Zadania wykonywane przez poszczególne człony architektury są następujące:

  • System zarządzania bazą danych - SZBD przechowuje dane używane przez system, obsługuje bazę z danymi tworzonymi, usuwanymi, modyfikowanymi i wyszukiwanymi przez użytkowników.
  • Serwer aplikacji - serwer WWW odpowiedzialny za odbieranie żądań od klienta, łączenie się z serwerem baz danych, generowanie stron WWW na podstawie danych pobranych z bazy oraz zwracanie wyniku do klienta.
  • Klient - komputer (lub inne urządzenie obsługujące protokół TCP/IP) wyposażone w przeglądarkę WWW. TCP/IP to efektywny protokół sieciowy, który przekazuje dane między aplikacjami przez Internet i ma mały wpływ na projektowanie bazodanowych aplikacji WWW.
Najczęściej wszystkie człony architektury działają na tej samej maszynie. Jednakże nie ma żadnych przeszkód ku temu, by uruchomić system zarządzania bazą danych na innym komputerze. Tego typu rozwiązanie stosuje się ze względów bezpieczeństwa, z uwagi na możliwość dysponowania pojemnościami dodatkowych dysków oraz z powodu większej wydajności. Jednakże z punktu widzenia programisty pierwsze rozwiązanie nie różni się niczym od drugiego.

Funkcje

 

Funkcje aplikacji w architekturze klient-serwer:

  • komunikacja z użytkownikiem- interfejs użytkownika
  • wysyłanie zleceń do serwera do wykonywania na danych operacji (w języku SQL)
  • odbiór z serwera danych i niekiedy dalsze przetwarzanie tych danych
  • przedstawienie wyników operacji oraz wydruk raportów
Funkcje serwera bazy danych:
  • odbieranie zleceń do operacji na danych oraz kontrolowanie uprawnień użytkownika, który wykonuje te zlecenia
  • analiza oraz optymalizacja zleceń
  • wykonywanie operacji w trybie realizacji transakcji
  • kontrola czy bazy danych zachowują prawidłową postać operacji (zapis, odczyt, transmisja oraz magazynowanie)
  • wysyłanie odp. do klienckiej aplikacji