Oracle – podstawowe właściwości
Ogólne informacje o programie
-
zaliczany do grupy tzw. SQL-owych baz danych
-
obecnie wersja Oracle12 (Oracle Database 12c wprowadza nową architekturę wielodostępu, która
ułatwia wdrażanie i zarządzanie chmurami baz danych)
-
obsługa nowego typ danych: typ przestrzenny (Oracle7 Spatial Data Option, Oracle8 Spatial
Cardrige, Oracle Spatial)
-
sprzedawany w różnych zestawieniach: Oracle Enterprise Edition, Oracle Standard Edition,
Oracle Standard Edition One, Oracle Express Edition, Oracle Personal, Oracle Lite.
-
dostępny na wiele platform sprzętowych, duża przenoszalność i skalowalność
-
oprócz serwera Oracle: Oracle Forms, Oracle Reports, Oracle Power Object
Zastosowanie
-
duże systemy bazodanowe
-
systemy wielodostępne o dużym obciążeniu
-
systemy wymagającego wysokiej jakości zabezpieczeń danych przed zniszczeniem i
nieuprawnionym dostępem
-
duże, przestrzenne bazy danych
Zarządzanie danymi przestrzennymi
Oracle Spatial, Oracle Locator
Oracle Spatial jest produktem firmy Oracle o charakterze platformy bazodanowej wykorzystywanej do
zarządzania danymi przestrzennymi.
Oracle Spatial posiada od wersji 10 dodatkowo funkcje typowe dla platformy typu GIS :
- Georaster Data Type (zaawansowana obsługa danych rastrowych np. indeksowanie danych
rastrowych, generowanie piramidy rozdzielczości – kafelkowanie, mozaikowanie, udostępnianie
danych rastrowych na zewnątrz poprzez serwisy WMS),
- Topology Data Model (obsługa topologii sieci np. definiowanie w ramach serwera danych
przestrzennych relacji topologicznych: przyległości, stref połączeń),
- Network Data Model (obsługa modelu danych sieciowych np. możliwość przechowywania w bazie
danych struktury grafu sieci, edytowanie i zarządzanie połączeniami sieciowymi, analizowanie
połączeń sieciowych – określanie źródeł zasilania dla odbiorcy z uwzględnieniem stanów łączników
lub określanie odbiorców dla źródła zasilania),
- Geocoding (obsługa geokodowania np. możliwość określenia współrzędnych obiektu na podstawie
podanego adresu lub odwrotnie),
- Routing (wyznaczanie i optymalizacji tras przejazdu lub przepływu np. możliwość określenia
optymalnej trasy dla zadanych punktów pośrednich trasy, przy uwzględnieniu różnych parametrów
wpływających na czas lub koszt dojazdu/przepływu. W przypadku dystrybucji energii elektrycznej
funkcja jest przydatna przy określeniu optymalnej drogi zasilenia odbiorcy),
- Coordinate Transforms (możliwość transformacji współrzędnych pomiędzy różnymi układami
współrzędnych np. możliwość wyświetlania wartości współrzędnych przeliczonych do zadanego
układu współrzędnych, innego niż układ współrzędnych, w którym zapisane są oryginalne
współrzędne obiektów sieci elektroenergetycznej).
Oracle – podstawowe właściwości
Oracle Locator to jedynie wydzielony fragment funkcjonalności Oracle Spatial, służący
głównie do zapisu danych przestrzennych w odpowiednich strukturach bazy danych.
Z tego powodu Oracle Locator dodawany jest przez firmę Oracle bezpłatnie do swoich platform
bazodanowych, a Oracle Spatial wymaga zakupu znacznie bardzie rozbudowanej (a tym samym
znacznie bardziej kosztownej) wersji Oracle Enterprise i dodatkowej specjalnej, kosztownej licencji.
Orientacyjna różnica cen dla 25 stanowisk (minimalna liczba dla Oracle Enterprise) wynosi ok 70 000
zł. (2013 rok)
Architektura systemu Oracle
Instancja Oracle’a.
•
Programy rezydujące w pamięci operacyjnej komputera pracującego jako serwer Oracle’a,
zapewniające mechanizmy kontroli i dostępu do danych zapisanych w bazie (tzw. procesy
drugoplanowe)
•
Zarezerwowany dla w/w programów obszar pamięci operacyjnej (grupa buforów)
Struktura fizyczna bazy danych
Baza składa się z następujących rodzajów plików:
-
plików bazy danych (Database Files) – miejsce gdzie fizycznie przechowuje się dane
-
plików dziennika powtórzeń (Redo Log Files) – dane do awaryjnego odtwarzania bazy danych
-
plików kontrolnych (Control Files) – informacje o fizycznej strukturze bazy danych
-
pliku startowego (Parameter Files)
Przestrzeń tablic
(Tablespace)
•
Obszar na dysku zarezerwowany dla zapisu danych .Przestrzeń tablic jest miejscem
przechowywania danych w bazie danych
•
Serwer Oracle’a nie zapisuje danych do konkretnych plików a do przestrzeni tablic
•
Baza danych może składać się logicznie z jednej lub wielu przestrzeni tablic (zaleca się
stworzenie przynajmniej 1 dodatkowej przestrzeni tablic dla danych użytkownika)
•
Przestrzeń tablic może składać się z jednego lub kilku plików dyskowych
•
Jeśli przestrzeń tablic tworzy kilka plików dyskowych to dane zapisane np. w jednej tablicy mogą
być rozlokowane w jednym lub kilku plikach dyskowych
Segmenty wycofania
(Rollback Segments)
•
Logiczny fragment bazy danych w którym zapisywane są wszystkie zmiany w bazie
przeprowadzone w ramach jednej transakcji
•
Umożliwia wycofanie operacji przeprowadzonych na bazie do stanu sprzed rozpoczęcia transakcji
•
Nowo utworzona baza danych zawiera w sobie tylko 1 segment wycofania (systemowy)
umiejscowiony w przestrzeni tablic o nazwie SYSTEM
•
Wyróżnia się 3 rodzaje segmentów wycofania: Publiczne (PUBLIC), Prywatne(PRIVATE),
Odroczone
Oracle – podstawowe właściwości
Schemat
•
Schemat – zestawienie wszystkich obiektów bazy danych przypisanych konkretnemu
użytkownikowi. Inaczej: Zbiór logicznie powiązanych ze sobą obiektów należących do 1
użytkownika
•
Wykreowanie tabeli przez użytkownika powoduje automatyczne jej dodanie do schematu
Podstawowe obiekty
Schemat bazy danych Oracle’a może posiadać następujące typy obiektów bazy danych:
-
tablice (TABLE)
-
indeksy (INDEX)
-
perspektywy (VIEW)
-
sekwencje (SEQUENCE)
-
synonimy (SYNONYM)
-
połączenia między bazami danych (DATABASE LINK)
-
procedury (PROCEDURE)
-
pakiety (PACKAGE)
-
migawki (SNAPSHOT)
Nazwy obiektów tego samego typu w obrębie jednego schematu muszą być unikalne.
Tablice
•
Typy kolumn:
-
CHAR (n) : typ znakowy o n znaków (max. 255 )
-
VARCHAR2: typ znakowy do 2000 znaków
-
NUMBER: typ numeryczny do 38 cyfr znaczących
-
NUMBER(n): typ numeryczny z ograniczeniem do cyfr o szerokości n
-
NUMBER(n,m): typ numeryczny z ograniczeniem do cyfr o szerokości n i dokładności po
przecinku -m
-
DATE: data, od 01.01.11472 r. p.n.e do 31.12 4712 r. n.e.
-
LONG: kolumna o typie zbliżonym do VARCHAR2 mogąca zawierać ciąg znaków o długości do
2GB. W tablicy może być zadeklarowana tylko 1 kolumna tego typu
Perspektywy
•
Definicja:
Oracle – podstawowe właściwości
Perspektywa (VIEW) to zbiór kolumn jednej lub kilku tablic zdefiniowany w bazie danych pod jedną
unikatową nazwą. Użytkownik widzi perspektywę jako wirtualną tablicę zawierającą dane zebrane z
kilku tablic.
•
Cel użycia
-
ograniczenie dostępu do danych
-
ułatwienie formułowania zapytań
-
ułatwienie dostępu do danych poprzez ich grupowanie
Indeksy
•
Rodzaje:
-
UNIQUE
-
NON UNIQUE (domyślnie, najszybszy dostęp do danych)
-
SINGLE COLUMN
-
CONCATENATED (do 16 kolumn)
•
Zasady wykorzystania
-
dla tablic zawierających ponad 200 wierszy
-
dla kolumn o zróżnicowanych danych
-
indeksuje się kolumny najczęściej używane w klazuli WHERE zapytania
-
z reguły nie zakłada się więcej niż 3 indeksy na jednej tabeli jeżeli podstawową operacją na niej
-
wykonywaną jest SELECT
Więzy integralności
•
Więzy integralności mogą być sprawdzane zarówno po stronie serwera jak i po stronie klienta
•
Lepiej sprawdzać więzy po stronie serwera: jeden mechanizm gwarantujący spójność całej bazy
danych
•
Wyróżnia się dwie podstawowe metody określenia więzów spójności:
-
na poziomie definicji tabel
-
za pomocą mechanizmu wyzwalaczy
•
Dwa podstawowe typy więzów integralności (spójności)
1) więzy spójności encji (ograniczają wartości wprowadzane do tabeli)
-
więzy klucza głównego PRIMARY KEY (jednoznaczna identyfikacja wiersza, niedopuszczalny
NULL)
-
więzy klucza jednoznacznego UNIQUE (jednoznaczna identyfikacja wiersza, dopuszczalny
NULL)
-
więzy NOT NULL
-
więzy CHECK (warunek, który ma być prawdziwy dla wszystkich wierszy w tabeli)
2) więzy spójności referencyjnej
Oracle – podstawowe właściwości
Więzy integralności referencyjnej zapewniają, że zbiór wartości w kolumnach klucza obcego jest
zawsze podzbiorem zbioru wartości odpowiadającego mu klucza głównego lub jednoznacznego
- FOREIGN KEY (kolumna,...) REFERENCES tabela (kolumna,....) [ON DELETE CASCADE]
Przykłady:
Składnia:
CONSTRAINT nazwa_c PRIMARY KEY (nazwa_kol_1, nazwa_kol_2)
CONSTRAINT nazwa_c FOREIGN KEY (nazwa_kol_1) REFERENCES
nazwa_tabeli(nazwa_kol_3)
CONSTRAINT nazwa_c CHECK (warunek)
Stosowanie:
ALTER TABLE nazwa ADD (CONSTRAINT nazwa_c CHECK (warunek));
ALTER TABLE nazwa ENABLE/DISABLE CONSTRAINT nazwa_c;
ALTER TABLE nazwa DROP CONSTRAINT nazwa_c;
CREATE TABLE Pracownicy (Id_pracownika NUMBER (7) PRIMARY KEY,
Pesel NARCHAR2 (11) UNIQUE NOT NULL,
ID_dzialu VARCHAR2(5),
Zarobki NUMBER (8)
CONSTRAINT dział_fk FOREIGN KEY (id_dzialu) REFERENCES Działy (ID),
CONSTRAINT zarobki_ck CHECK (Zarobki < 24500);
Zatwierdzanie i wycofywanie transakcji
•
Transakcja jest dowolnym zbiorem działań obejmującym odczytywanie, przetwarzanie i
modyfikację danych, stanowiący niepodzielną całość
•
Jeśli którakolwiek modyfikacja wchodząca w skład transakcji nie powiedzie się, dochodzi do
unieważnienia również wszystkich innych modyfikacji
•
W bazie danych Oracle’a nie wszystkie zmiany wprowadzone przez użytkownika są natychmiast
zapisywane do bazy danych
•
Operacje takie jak: dodawanie, zmiana, usuwanie wierszy z tablicy wymagają potwierdzenia
•
Dopóki nie nastąpi potwierdzenie możliwe jest odwołanie wprowadzonych zmian
•
Komenda COMMIT powoduje zatwierdzenie transakcji
•
Komenda ROLLBACK powoduje wycofanie transakcji
Słownik bazy danych (Data Dictionary)
•
W słowniku zawarte są wszystkie informacje o strukturze bazy danych
•
Słownik ma postać szeregu tablic Read-Only zawierających następujące informacje:
-
nazwy użytkowników, ich prawa i przywileje
-
nazwy i definicje wszystkich obiektów bazy danych
-
informacje o więzach integralności
-
informacje statystyczne o pracy na obiektach
•
Tablice wchodzące w skład słownika danych powstają w czasie tworzenia bazy danych
(automatycznie) i są modyfikowane w trakcie jej pracy przez system
•
Właścicielem słownika jest użytkownik SYS
•
Dostep do danych następuje poprzez perspektywy słownika
Oracle – podstawowe właściwości
•
Wyróżnia się 3 podstawowe grupy perspektyw: USER_, ALL_, DBA_
Przykłady:
ALL_CATALOG – wszystkie obiekty dostępne dla użytkownika,
ALL_CONSTRAINTS – definicje więzów na dostępnych tablicach
ALL_TABLES – dostępne tablice, ALL_TAB_COLUMNS
USER_CATALOG (CAT)– tablice, perspektywy i sekwencje użytkownika
USER_TABLES, USER_INDEXES, USER_TAB_COLUMNS (COLS)
DBA_USERS – informacje o wszystkich użytkownikach bazy danych,
GLOBAL_NAME – nazwa bieżącej bazy danych
Użytkownik bazy danych
•
Użytkownik (User) jest obiektem bazy danych Oracle’a
•
Pozostałe obiekty (np. tablice, perspektywy)mają jednoznacznie określonego właściciela
•
Standardowo w bazie danych istnieją 2 użytkownicy systemowi: SYS i SYSTEM
(SYS – właściciel słownika danych, SYSTEM – administrator, do słownika odwłuje się przez
synonimy)
•
Użytkownik ma pełen dostęp do obiektów w obrębie swojego schematu
•
Domyślna przestrzeń tablic (Tablespace Default) określa lokalizację tworzonych przez
użytkownika obiektów
•
Tymczasowa przestrzeń tablic (Temporary Tablespace) jest wykorzystywana przez Oracle’a do
zakładania tymczasowych obiektów
•
Dla każdego użytkownika można zdefiniować maksymalną ilość miejsca na dysku, jaką
użytkownik może zająć w przestrzeni danej tablic (Tablespace Quota)
Tworzenie użytkowników:
SQL> CREATE USER nazwa_użytkownika IDENTIFIED BY hasło_użytkownika
DEFAULT TABLESPACE nazwa_domyślnej_przestrzeni_tablic
TEMPORARY TABLESPACE nazwa_tymczasowej_ przestrzeni _tablic
QUOTA limit ON nazwa_ przestrzeni _tablic
PROFILE nazwa_profilu
Przywileje i role
•
Przywileje bazodanowe – prawo do wykonywania określonych operacji na bazie przez
uprawnionych przywilejem użytkowników
-
wyróżnia się dwa rodzaje przywilejów: SYSTEMOWE (dotyczą typów obiektów) i
OBIEKTOWE (dotyczą konkretnych obiektów)
-
nadawanie przywilejów obiektowych ma sens tylko w odniesieniu do użytkowników bazy nie
będących właścicielami obiektu
Przykłady przywilejów:
a) systemowe:
CREATE ANY INDEX, CREATE TABLE, ALTER ANY TABLE, INSERT ANY TABLE, DROP
TABLESPACE, CREATE VIEW, DROP USER
b) obiektowe:
Oracle – podstawowe właściwości
SELECT , INSERT, UPDATE, DROP
Nadawanie przywilejów:
a) systemowego:
SQL > GRANT nazwa_przywileju TO nazwa_użytkownika
b) obiektowego:
SQL > GRANT nazwa_przywileju ON nazwa_obiektu TO nazwa_użytkownika
Odbieranie przywilejów:
a) systemowego:
SQL > REVOKE nazwa_przywileju FROM nazwa_użytkownika
b) obiektowego:
SQL > REVOKE nazwa_przywileju ON nazwa_obiektu FROM nazwa_użytkownika
•
Role bazodanowe – zbiór przywilejów powiązanych ze sobą wspólną nazwą
-
cel: ułatwienie administrowania przywilejami
-
procedura postępowania:
a) określenie grup użytkowników wykonujących na bazie podobne operacje,
b) a tej podstawie stworzenie ról z niezbędnymi przywilejami
Tworzenie ról:
SQL> CREATE ROLE nazwa_roli
Usunięcie roli:
SQL> DROP ROLE nazwa_roli
Nadanie przywilejów rolom:
SQL> GRANT nazwa_przywileju TO nazwa_roli
Nadawanie ról użytkownikom:
SQL> GRANT nazwa_roli TO nazwa_użytkownika
Odbieranie ról użytkownikom:
SQL> REVOKE nazwa_roli FROM nazwa_użytkownika
Standardowe role: CONNECT, DBA, RESOURCE, EXP_FULL_DATABASE,
IMP_FULL_DATABASE