Architektura systemu baz danych Plan rozdziału Model danych

advertisement
1
•
•
•
•
•
Architektura systemu baz danych
Model danych
• Definicja
Model
Modeldanych
danychto
tozbiór
zbiórpojęć
pojęćużywanych
używanychdo
doopisu
opisustruktury
strukturybazy
bazy
danych.
danych.Na
Namodel
modeldanych
danychskładają
składająsię:
się:
••typy
typydanych,
danych,związki
związkimiędzy
międzydanymi,
danymi,ograniczenia
ograniczenia
••operacje
definiowania,
wyszukiwania
operacje definiowania, wyszukiwaniai iuaktualniania
uaktualnianiabazy
bazydanych
danych
••aspekt
behawioralny
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
widok
zewnętrzny
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
widok
zewnętrzny
zewnętrzny
schemat
schemat
koncepcyjny
koncepcyjny
poziom koncepcyjny
schemat
schemat
wewnętrzny
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
DB
6
• Poziom wewnętrzny ⇒ schemat wewnętrzny
poziom zewnętrzny
widok
widok
zewnętrzny
zewnętrzny
Architektura ANSI/SPARC (2/2)
• Poziom zewnętrzny ⇒ schemat zewnętrzny
– opisuje strukturę bazy danych z punktu widzenia wybranej grupy
użytkowników
DB
baza danych
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
logicznaniezależność
niezależnośćdanych
danychto
tomożliwość
możliwośćzmiany
zmiany
schematu
schematupojęciowego
pojęciowegobez
bezkonieczności
koniecznościzmiany
zmianyschematu
schematu
zewnętrznego
zewnętrznegolub
lubzmiany
zmianyaplikacji
aplikacji
– fizyczną niezależność danych.
fizyczna
fizycznaniezależność
niezależnośćdanych
danychto
tomożliwość
możliwośćzmiany
zmiany
schematu
wewnętrznego
bez
konieczności
schematu wewnętrznego bez koniecznościzmiany
zmiany
schematów
schematówpojęciowego
pojęciowegoi izewnętrznego
zewnętrznego
7
Języki bazy danych (1/2)
• Storage Definition Language (SDL)
– służy do definiowania schematu wewnętrznego
• Data Definition Language (DDL)
– służy do definiowania schematu pojęciowego (i wewnętrznego)
CREATE
CREATETABLE
TABLEcountries
countries((
country_id
CHAR(2)
country_id CHAR(2)CONSTRAINT
CONSTRAINTcountry_pk
country_pkPRIMARY
PRIMARYKEY,
KEY,
country_name
country_nameVARCHAR2(40)
VARCHAR2(40)NOT
NOTNULL,
NULL,
region
regionVARCHAR2(15)
VARCHAR2(15)
))
ORGANIZATION
ORGANIZATIONINDEX
INDEXINCLUDING
INCLUDING country_name
country_name
PCTTHRESHOLD
2
STORAGE
PCTTHRESHOLD 2 STORAGE((
INITIAL
INITIAL 4K
4KNEXT
NEXT 2K
2KPCTINCREASE
PCTINCREASE00
MINEXTENTS
1
MAXEXTENTS
MINEXTENTS 1 MAXEXTENTS11))
OVERFLOW
OVERFLOWSTORAGE
STORAGE((
INITIAL
INITIAL 4K
4KNEXT
NEXT 2K
2KPCTINCREASE
PCTINCREASE00
MINEXTENTS
MINEXTENTS11MAXEXTENTS
MAXEXTENTS11););
8
9
Języki bazy danych (2/2)
• View Definition Language (VDL)
Rodzaje języka DML (1/2)
• Nieproceduralny język DML (język DML wysokiego poziomu)
– służy do definiowania widoków zewnętrznych i ich odwzorowania na
model pojęciowy, bardzo rzadko implementowany
– wprowadzany bezpośrednio z konsoli
record-at-a-time
• Data Manipulation Language (DML)
– służy do odczytywania, wstawiania, modyfikowania i usuwania danych
SELECT
SELECTnazwa,
nazwa,AVG(placa_pod),
AVG(placa_pod),SUBSTR(adres,1,10)
SUBSTR(adres,1,10)AS
ASadres
adres
FROM
FROMzespoly
zespolyFULL
FULLOUTER
OUTERJOIN
JOINpracownicy
pracownicyUSING
USING(id_zesp)
(id_zesp)
GROUP
GROUPBY
BYnazwa
nazwa
HAVING
HAVINGCOUNT(*)
COUNT(*)>>5;
5;
• Proceduralny język DML (język DML niskiego poziomu)
DECLARE
DECLARE
CURSOR
CURSOR cc IS
IS
SELECT
SELECT ** FROM
FROM pracownicy
pracownicy JOIN
JOIN zespoly
zespoly USING
USING (id_zesp)
(id_zesp)
FOR
UPDATE
FOR UPDATE OF
OF placa_dod;
placa_dod;
BEGIN
BEGIN
FOR
FOR c_rec
c_rec IN
IN cc LOOP
LOOP
CASE
CASE c_rec.nazwa
c_rec.nazwa
WHEN
'ALGORYTMY'
WHEN 'ALGORYTMY' THEN
THEN
UPDATE
UPDATE pracownicy
pracownicy SET
SET placa_dod
placa_dod == placa_dod
placa_dod ++ 100
100 WHERE
WHERE CURRENT
CURRENT OF
OF c;
c;
WHEN
WHEN 'ADMINISTRACJA'
'ADMINISTRACJA' THEN
THEN
UPDATE
UPDATE pracownicy
pracownicy SET
SET placa_pod
placa_pod == placa_pod
placa_pod ++ 150
150 WHERE
WHERE CURRENT
CURRENT OF
OF c;
c;
ELSE
ELSE
IF
(c_rec.etat
=
'STAZYSTA')
THEN
IF (c_rec.etat = 'STAZYSTA') THEN
DELETE
DELETE FROM
FROM pracownicy
pracownicy WHERE
WHERE CURRENT
CURRENT OF
OF c;
c;
END
END IF;
IF;
END
END CASE;
CASE;
END
END LOOP;
LOOP;
END;
END;
set-at-a-time
private
private static
static void
void displayCustomers(
displayCustomers( )) {{
CustomerIteratorClass
CustomerIteratorClass iterator;
iterator;
– zanurzony w języku
ogólnego przeznaczenia
UPDATE
UPDATEpracownicy
pracownicypp
SET
placa_pod
SET placa_pod==((SELECT
SELECTAVG(placa_pod)
AVG(placa_pod)FROM
FROMpracownicy
pracownicyaa
WHERE
WHEREa.etat
a.etat==p.etat
p.etat))
WHERE
WHEREid_szefa
id_szefaIN
IN((SELECT
SELECTid_prac
id_pracFROM
FROMpracownicy
pracownicy
WHERE
WHEREetat
etat=='PROFESOR'
'PROFESOR'););
Rodzaje języka DML (2/2)
10
query language
host language
11
#sql
#sql iterator
iterator == {{
SELECT
SELECT id_prac,
id_prac, nazwisko
nazwisko
FROM
FROM pracownicy
pracownicy
ORDER
BY
nazwisko
ORDER BY nazwisko
};
};
while
while (customer_iterator.next(
(customer_iterator.next( ))
)) {{
System.out.println("Nazwisko:
System.out.println("Nazwisko: "" ++
iterator.nazwisko()
iterator.nazwisko() );
);
...
...
Interfejsy do SZBD (1/2)
• Interfejsy oparte na menu
– użytkownik konstruuje zapytanie przechodząc przez szereg opcji,
interfejs eliminuje konieczność zapamiętywania składni i komend
• Interfejsy graficzne
– użytkownik pracuje ze schematem bazy danych wyświetlonym w
postaci diagramu, interfejs często implementuje QBE
• 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
12
Interfejsy do SZBD (2/2)
13
Środowisko systemu baz danych
DBA
• Interfejs języka naturalnego
– 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"
DDL
ADM
kompilator
DDL
• 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
data
data
dictionary
dictionary
użytkownicy
zaawansowani
aplikacja
zapytanie
ad hoc
prekompilator
kompilator
zapytań
DML
runtime
processor
• Interfejs dla DBA
użytkownicy
naiwni
zamknięte
transakcje
kompilator
DML
backup/recovery
concurrency
stored
stored data
data
manager
manager
– większość SZBD posiada wyodrębniony zbiór komend dostępnych
tylko dla administratora i możliwych tylko w specjalnym narzędziu
dostępu
14
baza
bazadanych
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.
15
Klasyfikacja systemów baz danych
• Podstawowe kryteria klasyfikacji systemów baz 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
przykładowo:
przykładowo:Oracle
Oracle10g
10gEnterprise
EnterpriseEdition
Editionkosztuje
kosztuje
40
000$
plus
8800$
(wsparcie
techniczne)
40 000$ plus 8800$ (wsparcie techniczne)plus
plus800$
800$za
za
każdego
każdegoużytkownika
użytkownikaw
wbazie
baziedanych.
danych.Dodatkowe
Dodatkoweopcje
opcje
kosztują
kosztują10
10000$
000$--20
20000$
000$(OLAP,
(OLAP,RAC,
RAC,Spatial,
Spatial,Label
LabelSec)
Sec)
Koszt
SQL
Server
to
około
20
000$.
Koszt SQL Server to około 20 000$.
Koszt
Kosztspecjalistycznej
specjalistycznejbazy
bazydanych
danychTeradata
Teradatadla
dlaogromnych
ogromnych
hurtowni
hurtownidanych
danychto
took.
ok.490
490000$
000$
16
Podsumowanie
• Wyróżniamy trzy podstawowe kategorie modeli danych
– 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
• Języki bazy danych: DDL, SDL, VDL, DML
• Interfejsy do bazy danych
• Klasyfikacja systemów baz danych
17
Pytania
18
• 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.
Download