Architektura systemów 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 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 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:
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
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
Warstwa pierwsza
Stacja kliencka
* Interfejs użytkownika
Warstwa druga
Serwer aplikacji
* Logika biznesowa, czyli funkcje
systemu
* Przetwarzanie danych
Warstwa trzecia
Serwer bazy danych
Baza
danych
* Zarządzanie danymi
* Baza danych
Architektura trójwarstwowa
Warstwa górna i dolna powinny mieć
charakter bezkontekstowy.
Warstwa środkowa powinna zawierać
reguły, według których przetwarzane
są dane.
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.
Warstwa górna
(interfejs użytkownika)
Warstwa środkowa
(oprogramowanie bazy danych)
Dostęp do bazy danych
Baza danych
Użytkownik
Warstwa dolna
(serwer baz danych)
Klient
Serwer
Baza danych
sieć
sieć
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
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)
Architektura trójwarstwowa
Wady:
potrzebny silniejszy sprzęt na serwery
aplikacyjne
trudniejsze technologie
ograniczenia w funkcjonalności interfejsu
użytkownika dla cienkiego klienta
zwiększony ruch sieciowy