„Relacyjne Bazy Danych (Oracle)” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. „Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Prezentacja dystrybuowana jest bezpłatnie 1 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 Każda aplikacja może korzystać se swojej przestrzeni tabel, różne przestrzenie tabel mogą być zlokalizowane na różnych dyskach
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
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ę create view emp_v as select empno,ename from emp; select * from emp_v;
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 za pomocą jednego zapytania SQL, np: GROUP BY + JOIN
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) W określonym czasie (Specify)
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. „Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych” Prezentacja dystrybuowana jest bezpłatnie 26 Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 www.kapitalludzki.p.lodz.pl 26