2.
Architektura
Instancja
i SGA
Baza
danych przechowuje dane w plikach na dysku twardym i umożliwia
dostęp do tych
plików
za pośrednictwem systemu operacyjnego. Aby umożliwić efektywne
operowanie
danymi,
Oracle używa pamięci współdzielonej, dostępnej dla wszystkich
użytkowników
bazy
danych, nazywanej Globalnym Obszarem Współdzielonym (SGA – System
Global
Area).
Instancja Oracle to właśnie wymienione wyżej uruchomione procesy
tła oraz
alokowany
globalny obszar współdzielony SGA. Użytkownik podłączając się
do bazy
danych,
nie pobiera danych bezpośrednio z pliku bazy danych. Polecenie
języka SQL
wystosowane
przez użytkownika trafia do odpowiedniego bufora w strukturze SGA, a
następnie,
po jego przetworzeniu i zanalizowaniu pobierane są bloki z pliku
danych do
obszaru
SGA. Dopiero stąd informacja przekierowana zostaje do użytkownika.
W
przypadku,
kiedy dane, do których odwołuje się użytkownik znajdują się już
w obszarze
SGA,
pomijana jest faza pobierania danych z pliku i od razu informacja
zwracana jest
użytkownikowi.
Relacyjna baza danych Oracle posługuje się standardowym językiem
zapytań
SQL, oraz posiada wbudowany wewnętrzny język tworzenia procedur
składowanych
PL/SQL. Od wersji 8i jako języka tworzenia procedur składowanych w
bazach
danych Oracle można używać również języka Java.
Sesje
i transakcje
Architektura
klient – serwer bazy danych Oracle zapewnia wielu użytkownikom
równoczesny
dostęp do tej samej bazy. Operacje odczytu tych samych danych przez
wielu
użytkowników
równocześnie nie powodują konfliktów ani niespójności. Inaczej
rzecz się
ma
w przypadku modyfikacji tych samych danych. Wówczas mogłyby
wystąpić
niespójności.
W celu zachowania spójności danych w czasie równoczesnej próby
ich
modyfikacji
wprowadzono mechanizm transakcji, jako jednostki, w ramach, której
użytkownicy
wykonują swoje operacje w bazie danych. W sytuacjach konfliktowych
system
zarządzania
bazą danych (DBMS) szereguje operacje różnych transakcji w taki
sposób,
aby
nie powstały niespójności danych. Moment podłączenia się
użytkownika do bazy
danych
jest jednocześnie początkiem sesji danego użytkownika. Trwa ona aż
do momentu
zakończenia
pracy z bazą danych. Równolegle jeden użytkownik może mieć
otwartych
więcej
niż jedną sesję. W ramach jednej sesji użytkownik może
realizować jedną lub
więcej
transakcji, jedna po drugiej. Transakcja jest jednostką interakcji
użytkownika z bazą
danych
i składa się z pojedynczych operacji realizowanych w bazie danych.
Użytkownik
realizuje
swoje transakcje albo przez polecenia języka SQL, które kierowane
są
bezpośrednio
do systemu zarządzania bazą danych (DBMS), albo pośrednio – przy
użyciu
wcześniej
przygotowanych aplikacji bazy danych, odwołujących się do DBMS.
Mechanizm
blokowania danych
Transakcje
wykonujące operacje odczytu nie wpływają na siebie wzajemnie, ich
działania
nie
kolidują ze sobą. Problem pojawia się w przypadku operacji
zmieniających
jednocześnie
te same dane w bazie. Jeśli dwóch użytkowników zmienia
jednocześnie dwa
różne
obiekty w bazie danych, nie wywołuje to konfliktu. Jeśli natomiast
te dwie operacje
dotyczyć
będą tego samego obiektu, powstaje sytuacja konfliktowa. Aby
uniknąć
zakleszczeń
będących efektem takich sytuacji Oracle opracował złożony
mechanizm
zakładania
blokad na obiekty. W przypadku kiedy rozpocznie się transakcja
pierwszego
użytkownika,
drugi użytkownik może odczytywać dane właśnie modyfikowane przez
pierwszego,
ale nie może ich zmieniać do czasu zakończenia transakcji
pierwszego
użytkownika.
Polecenie drugiego użytkownika zostanie skolejkowane jako oczekujące
na
wykonanie.
Użytkownicy
i schematy
Kiedy
użytkownik bazy danych tworzy obiekt, jednocześnie staje się jego
właścicielem.
Obiekty
te tworzone są w tak zwanym schemacie użytkownika, czyli logicznej
przestrzeni
bazy
danych. Schemat użytkownika jest tworzony automatycznie podczas
definiowania
użytkownika
i posiada on unikalną nazwę, która jest identyczna z nazwą
użytkownika.
Nazwa
schematu wykorzystywana jest do wskazania obiektów bazy danych
stanowiących
własność
danego użytkownika. Odwołanie do obiektu znajdującego się w innym
schemacie
umożliwia następująca składnia:
NAZWA_UŻYTKOWNIKA.NAZWA_OBIEKTU
Nazwy
obiektów muszą być unikalne w obrębie schematu. Dwóch
użytkowników może
posiadać
obiekt o tej samej nazwie w swoich schematach, natomiast różnie
będą się do
nich
odwoływać. Jeśli użytkownik Kowalski oraz Nowak mają w swoich
schematach
obiekty
o nazwie Towary mogą się do nich odwoływać (przy założeniu że
mają do tego
uprawnienia)
dodając nazwę użytkownika kolegi przed nazwą obiektu. Użytkownik
Kowalski
odnosząc się do swojego obiektu wywołuje go:
TOWARY
Jeśli
zechce odnieść się do obiektu kolegi:
NOWAK.TOWARY
Obiekty
bazy danych
W
bazie danych Oracle istnieje wiele różnych obiektów zarówno do
przechowywania
samych
danych, jak i pełniących funkcje wspomagające zarządzaniem tymi
danymi.
Wszystkie
obiekty tworzone są przez użytkowników bazy danych. Użytkownik
musi mieć
jednak
przypisane uprawnienie tworzenia danego rodzaju obiektu. W systemie
Oracle
można
zdefiniować np. takie obiekty:
Tabele
– służą do przechowywania danych.
Indeksy
– są strukturami danych zmniejszającymi koszt dostępu do danych
Tabele
tymczasowe – Służą do przechowywania danych potrzebnych na
czas jednej
transakcji
lub jednej sesji oraz do wspomagania zarządzania tymi danymi:
Widoki
– to logiczna struktura, wirtualna tabela wyliczana w locie,
określona przez
zapytanie
SQL, umożliwia dostęp do podzbioru kolumn i wierszy tabeli lub
tabel.
Sekwencje
– Sekwencja to obiekt bazy danych generujący kolejne liczby.
Sekwencje są
stosowane
przede wszystkim do tworzenia kolejnych wartości sztucznych kluczy
podstawowych.
Wyzwalacz
– jest to procedura wykonywana automatycznie jako reakcja na pewne
zdarzenia
w tabeli bazy danych.
Tabela
Tabela
to nieuporządkowany zbiór rekordów, informacji tego samego typu.
Pole to
pojedynczy
niepodzielny element informacji, zawierający:
Nazwę
– identyfikującą pole,
Typ
– określający zbiór wartości, które to pole może przyjąć,
Wartość
– będącą informacją zapisaną w polu.
Rekord
- uporządkowany zbiór różnych pól.
Kolumna
- zbiór pól tego samego rodzaju z zakresu wszystkich rekordów
Brak komentarzy:
Prześlij komentarz