Oracle Database

Z Wikipedii, wolnej encyklopedii
(Przekierowano z Oracle (baza danych))
Skocz do: nawigacji, wyszukiwania

Oracle Database – to oficjalna nazwa systemu zarządzania relacyjnymi bazami danych (ang. RDBMS) stworzonego przez firmę Oracle Corporation. Nazwa Oracle pochodzi od nazwy kodowej jednego z projektów sponsorowanych przez CIA, nad którymi pracował współzałożyciel korporacji Oracle – Larry Ellison.

Opis systemu[edytuj | edytuj kod]

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 – będący proceduralnie obudowanym językiem SQL. Jako języka tworzenia procedur składowanych w bazach danych Oracle (od wersji 8i) można używać również języka Java.

Struktura[edytuj | edytuj kod]

System bazy danych Oracle składa się z:

  • instancji – struktur pamięciowych i procesów systemu operacyjnego obsługujących bazę danych. W skład typowego procesu wchodzi PMON (process monitor) i SMON (system monitor).
  • struktur przechowywania danych

Struktura instancji[edytuj | edytuj kod]

SCHEMA – Schemat jest to zbiór obiektów należących do użytkownika.

Większość instalacji bazy Oracle posiada domyślną schema o nazwie SCOTT. Po tym jak w procesie instalacji zostaną utworzone przykładowe tabele, użytkownik (user) może zalogować się do systemu bazy danych podając nazwę użytkownika: scott i domyślne hasło: tiger. Nazwa schemy SCOTT pochodzi od jednego z pierwszych pracowników Oracle Corp. (Bruce Scott), którego kot wabił się Tiger.

Inne domyślne schemy zawierają:

  • SYS (podstawowe struktury bazy danych i narzędzia)
  • SYSTEM (dodatkowe struktury bazy danych i narzędzia oraz konto uprzywilejowane)
  • OUTLN (wykorzystywana do przechowywania metadanych dla query-optimizera).
  • BI, IX, HR, OE, PM, SH (rozszerzone przykładowe schemy zawierające więcej danych i struktur niż oryginalna schema SCOTT)

Struktury pamięciowe[edytuj | edytuj kod]

Instancja bazy danych Oracle składa się ze współdzielonych struktur pamięciowych (do których dostęp mają wszystkie procesy obsługujące instancję) oraz ze struktur prywatnych, dostępnych tylko dla procesów, które te struktury zaalokowały.

Podstawową strukturą pamięciową jest SGA, czyli System Global Area lub Shared Global Area zależnie od nazewnictwa. W skład SGA wchodzą:

  • Shared Pool – pula współdzielona
    • Library Cache
      • Shared SQL Area – przestrzeń przechowująca sparsowane zapytania SQL i programy PL/SQL
        • PL/SQL Area – przestrzeń kodu PL/SQL
        • SQL Area – przestrzeń ostatnio wykonywanych zapytań SQL
    • Data Dictionary Cache – bufor słowników bazy danych
  • Database Buffer Cache – obszar bufora danych zorganizowany w listy LRU
  • Redo Log Buffer Cache – obszar bufora rekordów powtórzeń, stanowiącego log transakcyjny bazy danych
  • Large Pool (struktura opcjonalna) – służy między innymi do komunikacji pomiędzy procesami równoległymi
  • Java Pool (struktura opcjonalna) – przestrzeń przeznaczona do wykorzystania przez procedury składowane napisane w języku Java

Do struktur współdzielonych należy również Software Code Area będący strukturą przechowującą kod wykonywalny procesów Oracle. Występowanie tego obszaru jest zależne od systemu operacyjnego.

Poza strukturami współdzielonymi dostępna jest przestrzeń PGA czyli Program Global Area. PGA jest dostępne tylko dla jednego procesu, który je stworzy i zawiera:

  • Przestrzeń Stosu (Stack Space)
  • Informacje o Procesie
  • Sort Area – obszar sortowania

Procesy[edytuj | edytuj kod]

Procesy drugoplanowe wchodzące w skład instancji Oracle:

  • Database Writer (DBWn) – proces "przeglądający" bufor bazy i zapisujący zmienione bloki na dyski
  • Log Writer (LGWR) – proces zapisujący historię transakcji do plików dzienników powtórzeń
  • Checkpoint (CKPT) – proces realizujący wykonanie punktów kontrolnych
  • System Monitor (SMON) – monitoruje działanie instancji bazy danych
  • Process Monitor (PMON) – monitoruje działanie procesów użytkownika i wykonuje "sprzątanie" po nieprawidłowo zakończonych procesach użytkowników
  • Archiver (ARCn) – proces kopiujący zapełnione pliki dzienników powtórzeń
  • Recovery (RECO) – proces odpowiedzialny za odtworzenie rozproszonych transakcji, które uległy awarii w trakcie wykonywania protokołu 2PC
  • Lock (LCKn) – istnieje tylko w konfiguracji RAC i służy do synchronizowania dostępu do zasobów
  • Queue Monitor (QMNn) – monitoruje kolejki komunikatów

Z każdym użytkownikiem przyłączonym do instancji bazy danych związany jest proces przeznaczony do jego obsługi. Baza danych Oracle posiada dwa tryby obsługi klientów: dedykowany oraz współdzielony. W przypadku trybu dedykowanego, dla każdego klienta powoływany jest nowy proces, który w uproszczeniu jest odpowiedzialny za przetwarzanie zapytań, odczyt danych z dysków do buforów lub lokalizowanie istniejących danych w buforze, zapis zmienionych w wyniku operacji klienta bloków do bufora. Dla konfiguracji współdzielonej powoływane są do życia procesy:

  • Dispatcher (Dnnn)
  • Shared Server (Snnn)

Użytkownik łącząc się z bazą danych przyłącza się do jednego z istniejących procesów Dispacher i jego żądanie jest odpowiednio kolejkowane i przesyłane do procesu obsługującego zwanego Shared Server. W konfiguracji współdzielonej liczba procesów użytkowników jest określona przez odpowiednie parametry bazy danych, natomiast w konfiguracji dedykowanej liczba procesów jest równa liczbie jednocześnie przyłączonych użytkowników.

Poza wymienionymi podczas działania instancji Oracle mogą być uruchamiane różnorodne procesy związane między innymi z wykorzystaniem specyficznych opcji bazy danych.

Na platformie Windows baza danych Oracle działa w architekturze wielowątkowej a nie wieloprocesowej, w związku z tym opisane procesy realizowane są jako wątki procesu głównego obsługującego instancję bazy danych.

Struktury przechowywania danych[edytuj | edytuj kod]

W skład bazy danych Oracle wchodzą:

  • plik parametrów – plik opisujący parametry instancji bazy danych Oracle oraz ścieżki do plików kontrolnych
  • pliki kontrolne – przechowują zmultiplikowaną informację na temat struktury bazy danych (informacje o plikach danych, historie backupów, numery SCN, informacje na temat archiwalnych dzienników powtórzeń, trybu pracy bazy danych)
  • dzienniki powtórzeń – przechowują powtórzoną informację na temat przeprowadzonych w systemie transakcji i mają charakter dookolny – po zapełnieniu informacja jest nadpisywana
  • archiwalne dzienniki powtórzeń – kopie dzienników powtórzeń wykonywane po ich zapełnieniu
  • pliki danych – w których przechowywane są wszystkie gromadzone w systemie dane oraz struktury wspomagające (np. indeksy).

Baza danych Oracle zamiast plików potrafi również wykorzystywać tak zwane surowe urządzenia (niesformatowane partycje).

Dane w bazie Oracle przechowywane są w tabelach znajdujących się w przestrzeniach tabel (tablespace). Pojedyncza przestrzeń tabel może rozciągać się na wiele plików danych natomiast pojedynczy plik może należeć tylko do jednej przestrzeni. Przestrzeń tabel może logicznie składać się z różnego rodzaju segmentów (zbiorów bloków danych zaalokowanych na rzecz obiektu bazodanowego). Segment jest natomiast grupą extentów, które z kolei są ciągłymi zestawami bloków danych. Bloki są najmniejszą jednostką alokacji przestrzeni. Baza danych Oracle potrafi posługiwać się blokami różnej wielkości.

Najważniejszą przestrzenią tabel dla działania bazy danych jest przestrzeń SYSTEM przechowująca wszelkie słowniki bazy.

Edycje/Wersje[edytuj | edytuj kod]

Obecnie system zarządzania bazą danych (SZBD) (ang. DBMS) Oracle jest dystrybuowany w wersji 11g (Oficjalna premiera odbyła się 11.07.2007). Dostępne są różnorodne edycje SZBD Oracle różniące się możliwościami, a co za tym idzie i ceną.

W tej chwili dostępne są:

  • Oracle Enterprise Edition jest sztandarowym i najbardziej rozbudowanym produktem firmy Oracle i może być dodatkowo rozszerzany o opcje np. takie jak: RAC, zaawansowane bezpieczeństwo itp.
  • Oracle Standard Edition tańsza edycja bazy danych Oracle pozbawiona możliwości rozbudowy o opcje, nie posiadająca wszystkich możliwości edycji Enterprise (brak np. mechanizmu DataGuard) oraz ograniczona ilością procesorów na jakiej można ją uruchomić.
  • Oracle Standard Edition One pierwszy raz ukazała się wraz z wersją 10g. Jest to tania edycja bazy danych Oracle nie różniąca się niczym w stosunku do Oracle Standard Edition poza ograniczeniami licencyjnymi takimi między innymi jak: brak możliwości uruchomienia w konfiguracji klastrowej, ograniczenie na pracę w maszynach mających możliwość instalacji maksymalnie dwóch procesorów.
  • Oracle Express Edition (nie należy jej mylić z wielowymiarową bazą danych Oracle Express) jest darmową, ale bardzo ograniczoną (między innymi wykorzystanie jednego rdzenia procesora, wykorzystanie maksymalnie 1 GB RAM, obsługa maksymalnie 4 GB danych użytkownika) edycją SZBD Oracle. Oracle Express Edition jest prezentowana po raz pierwszy w wersji 10gR2.
  • Oracle Personal jest edycją w pełni funkcjonalną, kompatybilną z dowolną wersją rodziny relacyjnych baz danych Oracle, przeznaczoną do użytku indywidualnego.
  • Oracle Lite jest systemem zarządzania bazą danych przeznaczonym do zastosowań mobilnych.

Od wersji 9i silnik bazy danych pomiędzy wszystkimi edycjami (wyłączając edycję Lite) jest ten sam z wprowadzeniem do niego adekwatnych dla edycji ograniczeń. W wersjach wcześniejszych silniki wersji Standard oraz Enterprise były tworzone osobno.

Linki zewnętrzne[edytuj | edytuj kod]

Wikimedia Commons