Oracle (baza danych)
Z Wikipedii
Oracle Database to oficjalna nazwa relacyjnego systemu baz danych (RDBMS) stworzonego przez 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.
Spis treści |
[edytuj] Opis
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
[edytuj] Struktura
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
[edytuj] Struktura instancji
SCHEMA - W bazie danych Oracle zdefiniowana grupa użytkowników (powiązana z określonym "username") nosi nazwę schema.
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 sachema SCOTT)
[edytuj] Struktury Pamięciowe
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
- Shared SQL Area - przestrzeń przechowująca sparsowane zapytania SQL i programy PL/SQL
- Data Dictionary Cache - bufor słowników bazy danych
- Library Cache
- 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
[edytuj] Procesy
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 wykonywanie operacji odtworzenia instancji po awarii
- 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 z 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.
[edytuj] Struktury przechowywania danych
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 zestawem 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.
[edytuj] Edycje/Wersje
Obecnie System zarządzania bazą danych - SZBD - (ang. RDBMS) 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 ceną.
W tej chwili dostępne są:
- Oracle Enterprise Edition
- Oracle Standard Edition
- Oracle Standard Edition One
- Oracle Express Edition (pierwsza wersja beta została udostępniona publicznie 28.10.2005)
- Oracle Personal
- Oracle Lite
Oracle Enterprise Edition jest standarowym i najbardziej rozbudowanym produktem firmy Oracle i może być dodatkowo rozszerzany o opcje np. takie jak: partycjonowanie tabel, RAC, zaawansowane bezpieczeństwo itd.
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 procesora, wykorzystanie maksymalnie 1GB RAM, obsługa maksymalnie 4GB 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 silniki 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.
[edytuj] Linki zewnętrzne
- Baza danych Oracle
- Dokumentacja
- Metalink - support produktów Oracle (wymaga hasła)
- PLOUG - Stowarzyszenie Polskiej Grupy Użytkowników Oracle
- Ask Tom - Odpowiedzi na wiele pytań odnośnie bazy danych Oracle