Transcript Document

„Relacyjne Bazy Danych (Oracle)”
Prezentacja jest współfinansowana przez
Unię Europejską w ramach
Europejskiego Funduszu Społecznego w projekcie pt.
growany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolno
Prezentacja dystrybuowana jest bezpłatnie
Projekt współfinansowany przez Unię Europejską
w ramach Europejskiego Funduszu Społecznego
Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83
www.kapitalludzki.p.lodz.pl
1
Przestrzenie tabel
Przestrzeń tabel jest logiczną strukturą w bazie
danych będącą pośrednikiem pomiędzy bazą
danych a systemem plików na dysku lokalnym
Każdy obiekt utworzony przez użytkownika
(tabela, indeks itd..) musi znajdować się w
pewnej przestrzeni tabel
Reprezentacją przestrzeni tabel na dysku jest plik
lub zestaw plików *.dbf
Korzystanie z wielu przestrzeni tabel pozwala na
uzyskanie fizycznego podziału bazy danych na
systemie plików
Przestrzenie tabel
Przestrzenie tabel mogą mieć postać
Trwałą (Permanent Tablespace)
Tymczasową (Temporary Tablespace)
Przestrzeń wycofań (Undo Tablespace)
Trwała przestrzeń tabel
Przestrzeń używana do przechowywania trwałych
obiektów (tabele, indeksy)
Można utworzyć kilka przestrzeni tabel z różną
wielkością bloku
CREATE TABLESPACE ts1
DATAFILE '/home/oracle/ts1_1.dbf' SIZE 100M
AUTOEXTEND OFF
BLOCKSIZE 8192
Tymczasowa przestrzeń tabel
Tymczasowa przestrzeń tabel przechowuje dane
tylko na okres trwania sesji danego użytkownika
Może być wykorzystywana np: w operacjach
sortowania dużych tabel, które nie mogą być
wykonane w pamięci operacyjnej
Tymczasowa przestrzeń tabel nie generuje redo
CREATE TEMPORARY TABLESPACE temp2
TEMPFILE '/home/oracle/temp2.dbf' SIZE 50m;
Standardowe przestrzenie tabel
System
Sysaux
Temp
Undotbs1
Users
Procedury składowe
Procedura to program przechowywany w bazie
danych Oracle
Procedury w bazie danych mogą służyć do
wykonywania operacji niedostępnych dla
standardowego języka SQL
Oracle udostępnia możliwość pisania procedur
składowych w wielu językach programowania
Najpopularniejszym jest jednak język PL/SQL
Procedury przetrzymywane są w segmencie
współdzielonym (Shared Pool) jeżeli jest
dostępne wystarczająco dużo miejsca
Pakiety
Pakiety pozwalają na grupowanie niektórych
obiektów (procedury, zmienne, kursory) w
logiczne komponenty
Standardowa instalacja Oracle EE posiada
kilkaset pakietów, część z nich posiada
procedury przydatne do administracji serwerem,
inne pomagają w pisaniu procedur składowych
Wyzwalacze
Wyzwalacze (Trigger) to procedury uruchamiane
przy wykonywaniu określonych czynności
Operacje typu DML
Część operacji typu DDL
Zdarzenia w bazie danych
Wyzwalacze złożone uruchamiane przy kilku
zdarzeniach
9
Wyzwalacze
Najczęściej wykorzystuje się wyzwalacze
powiązane z operacjami DML (INSERT,
UPDATE, DELETE)
Wyzwalacze DML można podzielić na dwie
grupy:
Wyzwalacze uruchamiane na każdym wierszu
Wyzwalacze uruchamiane przy każdym zapytaniu
Wyzwalacze
Ponadto wyzwalacze DML mogą być
uruchamiane na kilka sposobów
Przed wykonaniem DML (Before Trigger)
Po wykonaniu DML (After Trigger)
Zamiast wykonania DML (Instead of Trigger)
Do wersji Oracle 11g baza nie gwarantowała
kolejności uruchamiania wyzwalaczy
W 11g pojawiła się klauzula FOLLOWS pozwalająca
na ustalenie kolejności wykonywania
Wyzwalacze
Pozostałe wyzwalacze mogą być uruchamiane
przy wykonywaniu operacji
CREATE, ALTER, DROP
Logowanie/Wylogowanie użytkownika
Uruchamianie/Zatrzymywanie bazy danych
Pojawieniu się błędu
Przełączaniu się bazy danych na inną (Data Guard)
Łącza
Łącza pozwalają na uzyskanie dostępu do
obiektów znajdujących się w innej bazie danych
Łącza są jednokierunkowe
Typy łącz
Łącze stałe – użytkownik i hasło są zdefiniowane na
stałe przy definicji łącza
Łącze obecnego użytkownika - użytkownik posiada
takie samo konto w drugiej bazie danych
Korzystanie z łącza
SELECT * FROM tabela@lacze
Perspektywy
Perspektywa jest uproszczoną formą
przeglądania wyników zapytania, często
określana jest mianem tabeli wirtualnej
Wynik wykonania kwerendy typu SELECT może być
dostępny w formie tabeli dostępnej pod określoną
nazwą
Użytkownik musi posiadać przywilej systemowy
CREATE VIEW
Perspektywy przechowywane są w formie tekstowej
w słowniku danych (Data Dictionary)
Wykonanie zapytania do perspektywy łączy zapytanie
oryginalne z zapytaniem definiującym perspektywę
Perspektywy
Wykorzystanie perspektyw
Ograniczanie użytkownikom dostępu do niektórych
wierszy w tabeli (wykorzystując klauzulę WHERE)
Ograniczanie dostępu do niektórych kolumn tabeli
(SELECT col1,col2 FROM tabela)
Ukrywanie skomplikowanego zapytania (np: łączenia
wielu tabel, skomplikowanych klauzuli WHERE) za
prostą nazwą perspektywy
Udostępnianie aplikacjom danych, które zostały
zmienione w oryginalnej tabeli (wykorzystując
funkcje), korzystając z tej opcji można np:
prezentować dane w wybranym języku – np: data,
czas
Perspektywy
Perspektywy mogą być uaktualniane, INSERT,
UPDATE, DELETE
Muszą jednak być spełnione odpowiednie
ograniczenia na tabeli macierzystej
Perspektywa nie może być zdefiniowana z
agregacjami, podzapytaniami, oraz łączeniami
W niektórych przypadkach można aktualizować dane w
perspektywie korzystającej z łączeń
Perspektywy mogą być łączone ze sobą za
pomocą zapytań SQL aby utworzyć kolejną
perspektywę
Można osiągnąć efekty niemożliwe do zrealizowania
Perspektywy zmaterializowane
Perspektywa, która przechowuje dane zapytania
w pamięci masowej
Pozwala na uniknięcie wielokrotnego wykonywania
skomplikowanych i czasochłonnych zapytań SQL
Agregacje na dużych tabelach, COUNT(*), AVG(), SUM(),
GROUP BY
Łączenie wielu tabel klauzulą JOIN
Może być automatycznie aktualizowana
Perspektywy zmaterializowane
Może być wykorzystana jako jedna z form
replikacji – dane mogą być pobierane z innych
baz za pomocą łącz
W przypadku awarii bazy źródłowej perspektywa
zmaterializowana zawiera dane z ostatniego odświeżenia
Perspektywy zmaterializowane
Opcja przepisywania zapytań SQL
Zapytanie SQL zostanie zmodyfikowane w taki
sposób, aby nie wykonywać określonych operacji, a
jedynie pobrać jej wynik z perspektywy
zmaterializowanej
Warunkiem jest istnienie perspektywy, która zawiera
całość lub część zapytania
Przepisywanie można włączyć klauzulą ENABLE
QUERY REWRITE przy definicji perspektywy
zmaterializowanej
Perspektywy zmaterializowane
Metody odświeżania perspektyw
zmaterializowanych
Pełna (Complete) – przebudowanie perspektywy
Szybka (Fast) – przebudowanie uwzględniając tylko
zmiany
Wymuszona (Complete) – przebudowanie zmian, w
razie konieczności pełna przebudowa perspektywy
zmaterializowanej
Perspektywy zmaterializowane
Sposoby odświeżania perspektyw
zmaterializowanych
Na żądanie (On Demand)
BEGIN
DBMS_MVIEW.REFRESH('job_avg_sal',null,null,true,false,1,0,0,true)
;
END;
Po zatwierdzeniu transakcji (On Commit)
Odświeżanie perspektywy zmaterializowanej może być
zadaniem czasochłonnym
Odświeżanie jest częścią procesu zatwierdzania
Nigdy (Never)
Perspektywy zmaterializowane
Odświeżenie szybkie
Aby śledzić na bieżąco zmiany w tabeli macierzystej
należy utworzyć dziennik perspektywy
zmaterializowanej (Materialized View Log)
Dziennik zapisuje zmiany w tabeli macierzystej, które
mogą być później wykorzystane do odświeżenia
szybkiego
Procedura DBMS_MVIEW.EXPLAIN_VIEW pomaga
sprawdzić możliwości odświeżania szybkiego
Procedura wymaga uruchomienia skryptu utlxmv.sql
Synonimy
Synonimy służą do nadawania innych nazw
istniejącym obiektom
Dany obiekt może być dostępny pod kilkoma
nazwami, co eliminuje konieczność zmiany
schematu bazy w celu dostosowania jej do
istniejących aplikacji
Synonimy występują w dwóch formach
Synonimy prywatne
Synonimy publiczne
Synonimy mogą odnosić się do obiektów w innej
bazie danych
Synonimy prywatne
Synonim utworzony na potrzeby jednego
użytkownika
Może on jednak decydować (o ile ma do tego prawa)
aby inni użytkownicy mogli z niego korzystać
Użytkownik musi posiadać przywilej systemowy
CREATE SYNONYM
create synonym emp3 for emp;
select * from emp3;
Synonimy publiczne
Do synonimu publicznego mają dostęp wszyscy
użytkownicy bazy danych
Właścicielem synonimu publicznego automatycznie
staje się specjalna grupa PUBLIC
Użytkownik musi posiadać przywilej systemowy
CREATE PUBLIC SYNONYM
CREATE PUBLIC SYNONYM pracownicy FOR
scott.emp;
SELECT * FROM pracownicy;
„Relacyjne Bazy Danych (Oracle)”
Prezentacja jest współfinansowana przez
Unię Europejską w ramach
Europejskiego Funduszu Społecznego w projekcie pt.
growany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolno
Prezentacja dystrybuowana jest bezpłatnie
Projekt współfinansowany przez Unię Europejską
w ramach Europejskiego Funduszu Społecznego
Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83
www.kapitalludzki.p.lodz.pl
26