„relacyjne bazy danych (oracle) ”

26
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. growany rozwój Politechniki Łódzkiej - zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolno Prezentacja dystrybuowana jest bezpłatnie Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 www.kapitalludzki.p.lodz.pl 1

Upload: nichole-osborn

Post on 30-Dec-2015

43 views

Category:

Documents


0 download

DESCRIPTION

„Relacyjne Bazy Danych (Oracle) ” Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: „Relacyjne Bazy Danych (Oracle) ”

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

Page 2: „Relacyjne Bazy Danych (Oracle) ”

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

Page 3: „Relacyjne Bazy Danych (Oracle) ”

Przestrzenie tabel

Przestrzenie tabel mogą mieć postać

Trwałą (Permanent Tablespace)

Tymczasową (Temporary Tablespace)

Przestrzeń wycofań (Undo Tablespace)

Page 4: „Relacyjne Bazy Danych (Oracle) ”

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

Page 5: „Relacyjne Bazy Danych (Oracle) ”

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;

Page 6: „Relacyjne Bazy Danych (Oracle) ”

Standardowe przestrzenie tabel

System

Sysaux

Temp

Undotbs1

Users

Page 7: „Relacyjne Bazy Danych (Oracle) ”

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

Page 8: „Relacyjne Bazy Danych (Oracle) ”

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

Page 9: „Relacyjne Bazy Danych (Oracle) ”

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

Page 10: „Relacyjne Bazy Danych (Oracle) ”

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

Page 11: „Relacyjne Bazy Danych (Oracle) ”

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

Page 12: „Relacyjne Bazy Danych (Oracle) ”

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)

Page 13: „Relacyjne Bazy Danych (Oracle) ”

Łą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

Page 14: „Relacyjne Bazy Danych (Oracle) ”

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;

Page 15: „Relacyjne Bazy Danych (Oracle) ”

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

Page 16: „Relacyjne Bazy Danych (Oracle) ”

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

Page 17: „Relacyjne Bazy Danych (Oracle) ”

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

Page 18: „Relacyjne Bazy Danych (Oracle) ”

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

Page 19: „Relacyjne Bazy Danych (Oracle) ”

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

Page 20: „Relacyjne Bazy Danych (Oracle) ”

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

Page 21: „Relacyjne Bazy Danych (Oracle) ”

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)

Page 22: „Relacyjne Bazy Danych (Oracle) ”

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

Page 23: „Relacyjne Bazy Danych (Oracle) ”

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

Page 24: „Relacyjne Bazy Danych (Oracle) ”

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;

Page 25: „Relacyjne Bazy Danych (Oracle) ”

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;

Page 26: „Relacyjne Bazy Danych (Oracle) ”

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