Architektura systemów baz danych

advertisement
Architektura systemów baz
danych
SYSTEMY BAZ DANYCH
Terminologia
Baza danych jest to zbiór danych trwałych,
które są wykorzystywane przez system
aplikacji danej organizacji.
Baza danych, rozumiana jako zbiór danych,
wraz z aplikacją bazy danych stanowią
system bazy danych.
Aplikacja bazy danych
Aplikacja bazy danych jest to program lub
zespół programów, które pomagają
użytkownikowi pracować z bazą danych.
Celem aplikacji jest:
odizolowanie samej bazy od użytkownika
zabezpiecza zbiór danych przed
przypadkowym bądź celowym uszkodzeniem
Systemy baz danych
Można wyróżnić pięć zasadniczych
komponentów tworzących systemy z bazą
danych:
sprzęt
oprogramowanie
dane
procedury
ludzie
Systemy baz danych
Sprzęt:
Zakres wymagań sprzętowych zależy od
potrzeb użytkownika, konkretnych rozwiązań
czy wreszcie wymagań samego DBMS
Oprogramowanie:
Składowymi oprogramowania są zarówno
same Systemy Zarządzania Bazą Danych jak i
aplikacje i programy użytkowe, systemy
operacyjne oraz oprogramowanie sieciowe
Systemy baz danych
Dane:
Pod pojęciem danych rozumieć należy
zarówno dane operacyjne, jak i meta dane,
czyli „dane o danych”. Strukturę danych
określa schemat bazy danych
Procedury:
Procedury precyzują zasady projektowania i
użytkowania bazy danych
Systemy baz danych
Ludzie:
administratorzy baz danych
projektanci baz danych
projektanci i programiści aplikacji
bazodanowych
użytkownicy końcowi.
Architektura systemów baz
danych
Opis elementów stanowiących system baz
danych, sposób w jaki są one ze sobą
powiązane oraz logika tej organizacji
składają się na architekturę systemu baz
danych.
Architektura systemów baz danych
rozwijała się od tzw. architektury
jednowarstwowej, w kierunku architektury
wielowarstwowej.
Systemy baz danych - rozwój
Cztery ważne, z punktu widzenia ewolucji
systemów baz danych zdarzenia:
pojawienie się sieci komputerowych
Internet
System WWW
Intranet
Architektura jednowarstwowa
Model jednowarstwowy stanowi samodzielny
system lub pojedyncza aplikacja, nie
wymagające żadnej zewnętrznej komunikacji
do wykonywania zadań.
Szczególnym przypadkiem architektury
jednowarstwowej są niesamodzielne maszyny
terminalowe, pozbawione mocy
obliczeniowej, połączone do serwera. W takim
przypadku system serwera razem z
terminalami jest najczęściej definiowany jako
jedna warstwa.
Architektura klient-serwer
Termin architektura typu klient serwer
wywodzi się od sposobu interakcji
komponentów softwarowych z systemem:
klient jest procesem który potrzebuje
pewnych zasobów
proces serwera tych zasobów dostarcza
Architektura klient-serwer
Na aplikację bazy danych można spojrzeć
jako na zestaw kilku warstw, wykonujących
ściśle określone zadania
Warstwa jest pojęciem logicznym,
umożliwiającym zaprojektowanie programu
prostszego w budowie i obsłudze
Architektura komunikacyjna
klient - serwer
Architektura dwuwarstwowa
Dwie warstwy oprogramowania:
warstwa serwera –proces serwera
warstwa klienta - proces klienta
Lokalizacja obu procesów:
mogą one znajdować się na jednym
komputerze (baza lokalna)
zazwyczaj serwer umieszczany jest na innym
komputerze niż procesy klienta, komunikując
się poprzez LAN
Architektura dwuwarstwowa
Podział zadań w architekturze klient serwer:
na serwerze znajdują się dane oraz
oprogramowanie zapewniające dostęp do danych,
tzw. SZBD
po stronie serwera następuje również realizacja
zapytań, realizacja ograniczeń oraz przetwarzanie
danych
klient natomiast jest odpowiedzialny za
prezentację danych – po stronie klienta jest
umieszczony interfejs użytkownika.
klient realizuje logikę aplikacji oraz również jest
odpowiedzialny za przetwarzanie danych
Architektura dwuwarstwowa
Zalety:
bezpieczeństwo serwera
minimalizacja ruchu w sieci
możliwość przetwarzania danych
bezpośrednio na serwerze
odciążenie centralnego komputera od obsługi
interfejsu użytkownika
budowa sporych systemów bez użycia wielkich
komputerów
Architektura dwuwarstwowa
Wady:
utrudnienia związane z administrowaniem:
o konieczność administrowania wieloma komputerami
utrudnione administrowanie aplikacjami
duże koszty eksploatacji PC-tów
niski poziomem bezpieczeństwa
brak kontroli nad działaniami użytkowników
Przykłady
Program napisany w języku ogólnego
przeznaczenia (np.: Delphi, C#)
komunikujący się bezpośrednio z
serwerem SQL (np.: PostgreSQL, Oracle),
Kontrolka COM/ActiveX z podłączonymi
klientami usługi,
Przeglądarka internetowa współpracująca z
serwerem HTTP, oferującym statyczne
strony.
Architektura trójwarstwowa
Dzieli aplikację bazy danych na trzy,
współpracujące ze sobą części:
Warstwę dolną, realizującą dostęp do bazy
danych,
Warstwę środkową, zawierającą reguły
dziedziczenia danych,
Warstwę górną, stanowiącą interfejs
użytkownika
* Interfejs użytkownika
Warstwa pierwsza
Stacja kliencka
Architektura trójwarstwowa
Architektura trójwarstwowa
 Schemat działania:
 Warstwa klienta jest odpowiedzialna za wizualizację
graficznego interfejsu użytkownika oraz wysyłanie
żądań do serwera. Klient komunikuje się z serwerem
poprzez protokół HTTP.
 Serwer obsługuje żądania, uruchamiając aplikację
przetwarzającą żądania klientów i generującą
dynamiczne dokumenty.
 Warstwa danych poprzez język SQL umożliwia aplikacji
dostęp do danych oraz ich zapisywanie lub usuwanie.
 Serwer wysyła przeglądarce odpowiedź w postaci
pliku HTML i dołączonych plików graficznych, skryptów
oraz arkuszy CSS.
Architektura trójwarstwowa
Warstwa dolna to prawie zawsze programy
wykonywane na serwerze, obsługujące
zlecenia warstwy środkowej
Warstwy górna i środkowa mogą być
scalone w jeden program bądź rozdzielone
Warstwa środkowa może być klientem lub
serwerem
Warstwa górna jest zawsze klientem
Architektura trójwarstwowa
Gdy w warstwie klienta lokowany jest
jedynie interfejs użytkownika, który
realizuje prezentację danych i
przekazywanie danych do warstwy aplikacji
mówi się o tzw. „chudym (cienkim)
kliencie” ze względu na małą ilość funkcji,
jaką w tej technologii realizuje strona
klienta.
Uż ytkownik
Klient
Warstwa górna
(interfejs uż ytkownika)
sieć
Serwer
Warstwa środkowa
(oprogramowanie bazy danych)
Dostęp do bazy danych
sieć
Baza danych
Warstwa dolna
(serwer baz danych)
Baza danych
Architektura trójwarstwowa
Cienki klient:
interfejs użytkownika jest stroną WWW, którą
obsługuje przeglądarka internetowa
Warstwa druga realizuje funkcje systemu oraz
przetwarzanie danych
o kontaktuje się z warstwą klienta i serwerem lub serwerami
bazy danych poprzez sieć lokalną LAN lub WAN
Warstwa trzecia jest odpowiedzialna za
fizyczne przetwarzanie i magazynowanie
informacji i najczęściej stanowią ją serwery
baz danych
Architektura trójwarstwowa
Bardziej złożone interfejsy mogą realizować
zarówno interfejs użytkownika jak i część
logiki aplikacji.
Oznacza to, że klient zawiera więcej niż
jedną warstwę, czyli jest klientem
wielowarstwowym. Mamy wtedy do
czynienia z tzw. „grubym klientem”
Architektura trójwarstwowa
Korzyści:
większość zalet architektury klient serwer
prostsze projektowanie
prostsza implementacja
możliwość powtórnego wykorzystania
komponentów po stronie serwera
łatwość rozprowadzania w sieci (równomierne
obciążenie i odporność na awarie)
Przykłady architektury
3-warstwowej
przeglądarka internetowa współpracująca z
serwerem aplikacji (HTTP ze
wsparciem PHP, ASP, JSP, XSQL lub innych
narzędzi), korzystającym z bazy SQL klasyczny model trójwarstwowy,
hierarchiczny system synchronizacji czasu NTP (network time protocol).
Download