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