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 nazwa (Id_pracownika NUMBER (7,0) PRIMARY KEY,
Pesel NUMBER (11,0) UNIQUE NOT NULL,
Dział VARCHAR2(30),
Zarobki NUMBER (8,2)
CONSTRAINT dział_fk FOREIGN KEY (nazwa_działu) REFERENCES Działy (Nazwa) CONSTRAINT zarobki_ck CHECK (Zarobki < 4500);
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