Upload
nichole-osborn
View
50
Download
0
Embed Size (px)
DESCRIPTION
„Relacyjne Bazy Danych (Oracle) ” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. - PowerPoint PPT Presentation
Citation preview
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
„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
Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83www.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
9
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 formachSynonimy 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;
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
„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
Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83www.kapitalludzki.p.lodz.pl
26