Architektura systemu baz danych Plan rozdziału Model danych

advertisement
1
•
•
•
•
•
Architektura systemu baz danych
Model danych
• Definicja
Model danych to zbiór pojęć używanych do opisu struktury bazy
danych. Na model danych składają się:
• typy danych, związki między danymi, ograniczenia
• operacje definiowania, wyszukiwania i uaktualniania bazy danych
• aspekt behawioralny danych
Modele danych, schematy i instancje
Architektura ANSI/SPARC systemu baz danych
Języki i interfejsy bazy danych
Środowisko systemu baz danych
Klasyfikacja systemów zarządzania bazą danych
3
– modele koncepcyjne (wysokiego poziomu)
– modele reprezentacyjne (implementacyjne)
– modele fizyczne (niskiego poziomu)
4
Schemat i instancja
• Schemat bazy danych to opis struktury bazy danych
– definiowany w trakcie tworzenia bazy danych za pomocą konstruktów,
– rzadko podlega zmianom,
– wyświetlany najczęściej w postaci diagramów.
Przedmioty
Studenci
Nazwisko
Indeks
PrzNumer
Kierunek
WNumer
PrzNazwa
PKr
Wydział
WNumer
Ocena
Oceny
Wykłady
• Kategorie modeli danych
2
Plan rozdziału
PrzNumer
Semestr
Rok
Wykładowca
Indeks
• Instancja bazy danych (stan bazy danych) to obraz danych w
określonym punkcie w czasie
– każda modyfikacja danych tworzy nowy stan bazy danych,
– SZBD gwarantuje, że każdy stan bazy danych jest spójny ze
schematem i poprawny (spełnia wszystkie ograniczenia).
Architektura ANSI/SPARC (1/2)
widok
zewnętrzny
5
– opisuje fizyczną organizację bazy danych, schemat wewnętrzny
stosuje fizyczny model danych i opisuje ścieżki dostępu do danych
oraz fizyczną organizację danych
widok
zewnętrzny
schemat
koncepcyjny
poziom koncepcyjny
schemat
wewnętrzny
poziom wewnętrzny
• Poziom koncepcyjny (pojęciowy) ⇒ schemat koncepcyjny
– opisuje strukturę bazy danych z punktu widzenia globalnego
użytkownika, opisuje encje, związki między encjami, atrybuty i
ograniczenia
odwzorowanie
DB
6
• Poziom wewnętrzny ⇒ schemat wewnętrzny
poziom zewnętrzny
widok
zewnętrzny
Architektura ANSI/SPARC (2/2)
• Poziom zewnętrzny ⇒ schemat zewnętrzny
DB
– opisuje strukturę bazy danych z punktu widzenia wybranej grupy
użytkowników
DB
baza danych
Przykład architektury trójpoziomowej
emp#
dept#
emp#
age
dept#
salary
fname
emp#
lname
fname
dob
lname
salary
struct Employee {
int emp#;
int dept#;
char fname[15];
char lname[30];
struct date dob;
float salary;
struct Employee *boss;
}; index emp#;
7
Korzyści architektury trzypoziomowej
• Własności wynikające z trzypoziomowej architektury
systemów baz danych obejmują:
–
–
–
–
niezależność aplikacji i danych,
abstrakcyjną reprezentację danych,
różnorodność sposobów widzenia danych,
logiczną niezależność danych
logiczna niezależność danych to możliwość zmiany
schematu pojęciowego bez konieczności zmiany schematu
zewnętrznego lub zmiany aplikacji
– fizyczną niezależność danych.
fizyczna niezależność danych to możliwość zmiany
schematu wewnętrznego bez konieczności zmiany
schematów pojęciowego i zewnętrznego
8
9
Języki bazy danych (1/2)
• Storage Definition Language (SDL)
Języki bazy danych (2/2)
• View Definition Language (VDL)
– służy do definiowania schematu wewnętrznego
– służy do definiowania widoków zewnętrznych i ich odwzorowania na
model pojęciowy, bardzo rzadko implementowany
• Data Definition Language (DDL)
• Data Manipulation Language (DML)
– służy do definiowania schematu pojęciowego (i wewnętrznego)
– służy do odczytywania, wstawiania, modyfikowania i usuwania danych
CREATE TABLE countries (
country_id CHAR(2) CONSTRAINT country_pk PRIMARY KEY,
country_name VARCHAR2(40) NOT NULL,
region VARCHAR2(15)
)
ORGANIZATION INDEX INCLUDING country_name
PCTTHRESHOLD 10 STORAGE (
INITIAL 4K NEXT 2K PCTINCREASE 0
MINEXTENTS 1 MAXEXTENTS 10 )
OVERFLOW STORAGE (
INITIAL 4K NEXT 2K PCTINCREASE 50
MINEXTENTS 1 MAXEXTENTS 10 );
SELECT nazwa, AVG(placa_pod), SUBSTR(adres,1,10) AS adres
FROM zespoly FULL OUTER JOIN pracownicy USING (id_zesp)
GROUP BY nazwa
HAVING COUNT(*) > 5;
UPDATE pracownicy p
SET placa_pod = ( SELECT AVG(placa_pod) FROM pracownicy a
WHERE a.etat = p.etat )
WHERE id_szefa IN ( SELECT id_prac FROM pracownicy
WHERE etat = 'PROFESOR' );
11
Rodzaje języka DML (1/2)
• Nieproceduralny język DML (język DML wysokiego poziomu)
Rodzaje języka DML (2/2)
• Proceduralny język DML (język DML niskiego poziomu)
– wprowadzany bezpośrednio z konsoli
record-at-a-time
set-at-a-time
private static void displayCustomers(
CustomerIteratorClass iterator;
– zanurzony w języku
ogólnego przeznaczenia
) {
#sql iterator = {
SELECT id_prac, nazwisko
FROM pracownicy
ORDER BY nazwisko
};
query language
host language
10
while (iterator.next( )) {
System.out.println("Nazwisko: " +
iterator.nazwisko() );
...
DECLARE
CURSOR c IS
SELECT * FROM pracownicy JOIN zespoly USING (id_zesp)
FOR UPDATE OF placa_dod;
BEGIN
FOR c_rec IN c LOOP
CASE c_rec.nazwa
WHEN 'ALGORYTMY' THEN
UPDATE pracownicy SET placa_dod = placa_dod + 100 WHERE CURRENT OF c;
WHEN 'ADMINISTRACJA' THEN
UPDATE pracownicy SET placa_pod = placa_pod + 150 WHERE CURRENT OF c;
ELSE
IF (c_rec.etat = 'STAZYSTA') THEN
DELETE FROM pracownicy WHERE CURRENT OF c;
END IF;
END CASE;
END LOOP;
END;
12
Architektura klient-serwer
13
• Funkcjonalność bazy danych podzielona
Architektura serwera transakcyjnego
14
• Wariacja klasycznej architektury klient-serwer
– back-end: scentralizowany serwer bazy danych
– front-end: formularze, raporty, GUI, OLAP, konsola
– interfejs: SQL lub API
– klienci przesyłają żądania na serwer
– transakcje wykonują się po stronie serwera
– wyniki zakończonych transakcji są przesyłane do klientów
• Przesyłanie żądań
– żądania SQL są przesyłane przez RPC (ang. remote procedure call)
– TRPC (ang. transactional RPC) wspiera transakcje
Architektury systemów równoległych
15
Połączenia w systemach równoległych
• System równoległy charakteryzuje się obecnością wielu
procesorów i dysków połączonych szybką siecią
• Dwa rodzaje równoległości
– coarse-grain parallel: niewielka liczba mocnych procesorów
– fine-grain parallel (massive parallel): tysiące małych procesorów
• Miary systemu
– przyspieszenie (ang. speedup): iloraz czasu wykonania ustalonego
problemu na małym systemie i systemie n razy większym
– skalowalność (ang. scaleup): iloraz czasu wykonania problemu na
małym systemie i czasu wykonania problemu n razy większego na
n razy większym systemie
• skalowanie wsadowe: n-krotne zwiększenie rozmiaru problemu
• skalowanie transakcyjne: n-krotne zwiększenie liczby transakcji
Shared Nothing
Shared Memory
Shared Disk
Hierarchical
16
17
Interfejsy do SZBD (1/2)
• Interfejsy oparte na menu
– interfejs przetwarza zdania języka angielskiego (lub innego języka
naturalnego) i tłumaczy je na operacje na schemacie pojęciowym,
często zdania języka naturalnego są ograniczone "schematem" i
"operacjami"
• Interfejsy graficzne
– użytkownik pracuje ze schematem bazy danych wyświetlonym w
postaci diagramu, interfejs często implementuje QBE
• Interfejs dla użytkowników parametrycznych
– specjalizowany interfejs dla szczególnej grupy użytkowników
naiwnych (obsługa banku, obsługa okienka pocztowego), głównym
celem jest przejrzystość i minimalizacja liczby uderzeń w klawisze,
rzadko wykorzystywana myszka
• Interfejsy formularzowe
– użytkownik wykonuje zapytania, wstawia dane i manipuluje
zawartością bazy danych za pomocą predefiniowanego formularza
okienkowego, najczęstszy interfejs dla użytkowników naiwnych i
zamkniętych transakcji (ang. canned transactions); wiele systemów
baz danych posiada specjalny język/narzędzie do budowy formularzy
ekranowych
Środowisko systemu baz danych
DDL
kompilator
DDL
ADM
data
dictionary
18
• Interfejs języka naturalnego
– użytkownik konstruuje zapytanie przechodząc przez szereg opcji,
interfejs eliminuje konieczność zapamiętywania składni i komend
DBA
Interfejsy do SZBD (2/2)
użytkownicy
zaawansowani
aplikacja
zapytanie
ad hoc
prekompilator
kompilator
zapytań
DML
runtime
processor
• Interfejs dla DBA
– większość SZBD posiada wyodrębniony zbiór komend dostępnych
tylko dla administratora i możliwych tylko w specjalnym narzędziu
dostępu
19
użytkownicy
naiwni
zamknięte
transakcje
kompilator
DML
backup/recovery
concurrency
stored data
manager
baza danych
Programy użytkowe SZBD
• Większość SZBD posiada zestaw programów użytkowych,
które wykonują poniższe czynności
– ładowanie danych: import/eksport zawartości bazy danych (cała baza
danych/użytkownik/tabela) do plików (tekstowe, cvs, binarne,
specyficzne dla SZBD, ftp),
– kopia zapasowa: możliwość tworzenia kopii zapasowych
(inkrementalnych i pełnych) z wybranych fragmentów bazy danych,
– reorganizacja plików danych,
– monitorowanie wskaźników efektywności SZBD,
– audyt działań użytkowników.
20
Klasyfikacja systemów baz danych
21
• Podstawowe kryteria klasyfikacji systemów baz danych
• Wyróżniamy trzy podstawowe kategorie modeli danych
– model danych: podział na systemy relacyjne, obiektowe,
hierarchiczne, sieciowe, inne
– liczba użytkowników: podział na systemy jedno- i wielostanowiskowe
– liczba węzłów: podział na systemy scentralizowane i rozproszone
(homo- i heterogeniczne, sfederowane)
– przeznaczenie: podział na systemy specjalistyczne i ogólnego
przeznaczenia
– cena
– modele pojęciowe (modele wysokiego poziomu)
– modele implementacyjne
– modele fizyczne (modele niskiego poziomu)
• Istotne różnice między modelem, schematem i instancją
• Trzypoziomowa architektura ANSI/SPARC
– schemat zewnętrzny
– schemat pojęciowy
– schemat wewnętrzny
przykładowo: Oracle 11g Enterprise Edition kosztuje
47 000$ plus 10000$ (wsparcie techniczne) plus 950$ za
każdego użytkownika w bazie danych. Dodatkowe opcje
kosztują 10 000$ - 20 000$ (OLAP, RAC, Spatial, Label Sec)
Koszt SQL Server to około 25 000$.
Koszt specjalistycznej bazy danych Teradata dla ogromnych
hurtowni danych to ok. 490 000$
Pytania
• Języki bazy danych: DDL, SDL, VDL, DML
• Interfejsy do bazy danych
• Klasyfikacja systemów baz danych
23
• Zdefiniuj poniższe pojęcia:
– model danych, schemat bazy danych, stan bazy danych, schemat
zewnętrzny, pojęciowy i wewnętrzny, niezależność danych, DML, język
zapytań, język-gospodarz, architektura klient-serwer
• Podaj podstawowe różnice między schematem i stanem bd.
• Czy łatwiej jest uzyskać fizyczną czy logiczną niezależność
danych? Dlaczego?
• Jaka jest różnica między proceduralnym i nieproceduralnym
językiem DML?
• Wymień programy/systemy komputerowe z którymi
współpracuje system zarządzania bazą danych.
• Opisz interfejsy do bazy danych i grupy użytkowników, które
najczęściej korzystają z każdego interfejsu.
Podsumowanie
22
Download