wyklad03, Studia, I stopnia inżynierskie Elektrotechnika, Dodatkowe materiały, Złota płytka, studia, ...
[ Pobierz całość w formacie PDF ]
SYSTEMY RELACYJNE
System zarządzania relacyjną bazą danych
(system relacyjny) jest to system mający przynajmniej
dwie cechy:
1. żytkownik postrzega dane jako tabele.
2. Operatory, jakimi użytkownik dysponuje - tj. instrukcje do przetwarzania danych - generują z
istniejących tabel nowe tabele i obejmują przynajmniej operatory SELECT (polecenie wyboru),
znany też jako RESTRICT, PROJECT (operator rzutu) i JOIN (złączenie).
SELECT
(operacja ta nazywana też jest
RESTRICT)
wydobywa określone wiersze z tabeli.
PROJECT
wydobywa określone kolumny z tabeli.
JOIN
łączy dwie tabele na podstawie tych samych wartości we wspólnej kolumnie.
Wynikiem realizacji każdego z poleceń (SELECT-RESTRICT, PROJECT, JOIN) jest kolejna tabela.
Jest
to bardzo ważna relacyjna własność zwana
domknięciem.
Ponieważ wynik dowolnej operacji jest obiektem tego samego rodzaju co wejście, tj. wszystkie wyniki są
tabelami, zatem wynik jednego polecenia może stanowić dane wejściowe dla innego. Można więc zrobić
(np.) rzutowanie złączenia, złączenie dwóch restrykcji itd. Innymi słowy, można napisać wyrażenia
zagnieżdżone - tj. wyrażenia, w których same argumenty operacji mają postać wyrażeń.
Krzysztof Woźniak, Poznań 2001
BAZY DANYCH: Wstęp do relacyjnych baz danych...1
SYSTEMY RELACYJNE
DZIAŁY
PRACOWNICY
ID_działu
nazwa_działu
budżet
ID_pracownika
nazwisko
ID_działu
pensja
D1
Dział Handlowy
10M
P1
Kujawska
D1
39K
D2
Dział Rozwoju
12M
P2
Piechowiak
D1
45K
D3
Dział Badań
5M
P3
Kurcewicz
D2
30K
P4
Baranowski
D2
49K
RESTRICT
DZIAŁY
, gdzie
bud
ż
et
>8M
PROJECT
DZIAŁY
na
ID_działu
,
bud
ż
et
ID_działu
nazwa_działu
budżet
ID_działu
budżet
D1
Dział Handlowy
10M
D1
10M
D2
Dział Rozwoju
12M
D2
12M
D3
5M
JOIN
DZIAŁY
i
PRACOWNICY
wzgl
ę
dem
ID_działu
ID_działu
nazwa_działu
budżet
ID_pracownika
nazwisko
pensja
D1
Dział Handlowy
10M
P1
Kujawska
39K
D1
Dział Handlowy
10M
P2
Piechowiak
45K
D2
Dział Rozwoju
12M
P3
Kurcewicz
30K
D2
Dział Rozwoju
12M
P4
Baranowski
49K
Krzysztof Woźniak, Poznań 2001
BAZY DANYCH: Wstęp do relacyjnych baz danych...2
SYSTEMY RELACYJNE
Operacje w systemach relacyjnych są wykonywane
każdorazowo na zbiorach,
a nie na wierszach.
Oznacza to, że zarówno argumenty (wielkości wejściowe), jak i wyniki są całymi tabelami, a nie
pojedynczymi wierszami (tabele zawierają zbiory wierszy). Ta
zdolność do przetwarzania całych
zbiorów
jest głównym wyróżnikiem systemów relacyjnych Inaczej jest w systemach nierelacyjnych, gdzie
polecenia przetwarzają. zwykle jednorazowo pojedyncze wiersze bądź rekordy.
Dodatkowe uwagi:
Definicja „systemu relacyjnego” wymaga, aby baza danych była postrzegana jako tabele jedynie
przez użytkownika. Tabele w systemie relacyjnym stanowią strukturę
logiczną,
a nie fizyczną. Na
poziomie fizycznym system może zatem korzystać z dowolnych, typowych struktur przechowywania
danych
Cała zawartość informacyjna bazy relacyjnej jest reprezentowana w jeden i tylko jeden sposób, tj. w
postaci konkretnych, jawnych wartości danych. Taka metoda reprezentacji (w postaci jawnych wartości
w określonych kolumnach wierszy tabeli) jest
jedyną
metodą dostępną w relacyjnej bazie danych. W
szczególności nie ma wskaźników, które łączyłyby jedną tabelę z inną.
Wszystkie wartości danych są atomowe (lub
skalarne
)
.
Znaczy to, że w każdym elemencie tabeli (na
przecięciu wiersza i kolumny) zawsze znajduje się dokładnie jedna wartość danych, a nie grupa kilku
wartości.
system relacyjny
system nierelacyjny
z tzw. grupą wielokrotną (repeating group)
ID_działu
ID_pracownika
ID_działu
ID_pracownika
D1
P1
D1
P1, P2
D1
P2
...
...
...
...
Krzysztof Woźniak, Poznań 2001
BAZY DANYCH: Wstęp do relacyjnych baz danych...3
MODEL RELACYJNY
Model relacyjny
jest sposobem patrzenia na dane - jest to przepis na sposób reprezentowania danych
(tj. za pomocą tabel) oraz na sposób manipulowania taką reprezentacją (tj. poprzez operatory takie jak
JOIN, RESTICT i PROJECT). Ściślej mówiąc, model relacyjny dotyczy trzech aspektów danych:
struktury
danych,
integralności
danych i
operowania
danymi.
OPTYMALIZACJA
Języki relacyjne nazywa się często językami nieproceduralnymi (lub językami na wyższym poziomie
abstrakcji), ponieważ użytkownicy określają, co należy zrobić, a nie jak - tj. mówią, co chcą uzyskać, nie
precyzując procedury prowadzącej do tego celu. System automatycznie przeprowadza proces
„nawigacji” przez zapamiętaną bazę danych w celu realizacji żądania użytkownika, bez ręcznego
sterowania. Dlatego systemy relacyjne niekiedy są nazywane systemami
automatycznej nawigacji.
Podejmowanie decyzji o tym, jak prowadzić automatyczną nawigację, należy do bardzo ważnego
elementu DBMS, zwanego
optymalizatorem.
Dla każdego relacyjnego zapytania użytkownika
optymalizator musi wybrać efektywną drogę realizacji tego zapytania.
np.:
INSERT INTO
DZIAŁY
(
ID_działu
,
nazwa_działu
,
bud
ż
et
) VALUES (‘D4’, ‘Dział Produkcji’, ‘9M’);
lub
WYNIK
:= (
PRACOWNICY
WHERE
ID_pracownika
=‘P2’) [
pensja
];
Krzysztof Woźniak, Poznań 2001
BAZY DANYCH: Wstęp do relacyjnych baz danych...4
KATALOG
Katalog
(lub
słownik
) jest to miejsce, w którym, m.in., przechowywane są wszystkie schematy
(zewnętrzne, pojęciowe, wewnętrzne) i wszystkie związane z nimi odwzorowania (zewnętrzny/pojęciowy,
pojęciowy/wewnętrzny). Innymi słowy, katalog zawiera szczegółową informację (descriptors) na temat
różnych obiektów leżących w obszarze zainteresowania samego systemu. Przykładami takich obiektów
są tabele, indeksy, użytkownicy, reguły integralności, zasady bezpieczeństwa itd. Informacja związana z
deskryptorami jest istotna, jeśli system ma być zdolny do poprawnego wykonywania swoich funkcji.
W systemach relacyjnych sam katalog również składa się z tabel (a ściślej z
tabel systemowych
,
nazwanych tak w celu odróżnienia od zwykłych tabel użytkownika).
KOLUMNY
przykład tabel systemowych:
nazwa_tabeli
nazwa_kolumny
...
DZIAŁY
ID-działu
...
DZIAŁY
nazwa_działu
...
DZIAŁY
budżet
...
TABLICE
PRACOWNICY
ID_pracownika
...
nazwa_tabeli
liczba_kolumn
liczba_wierszy
...
PRACOWNICY
nazwisko
...
DZIAŁY
3
3
...
PRACOWNICY
ID_działu
...
PRACOWNICY
4
4
...
PRACOWNICY
pensja
...
...
...
...
...
...
...
...
(
KOLUMNY
WHERE
nazwa_tabeli
= ‘DZIAŁY’ ) [
nazwa_kolumny
];
Krzysztof Woźniak, Poznań 2001
BAZY DANYCH: Wstęp do relacyjnych baz danych...5
[ Pobierz całość w formacie PDF ]