Przykładowe środowisko integracji. Architektury i technologie integracji danych. Ćwiczenie 1. DB2 - Oracle. Przebieg ćwiczenia

Podobne dokumenty
Rozproszone bazy danych 1

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

bazy danych - heterogeniczność producenci funkcjonalność modele danych protokoły komunikacyjne

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Replikacja danych w bazach danych Oracle9i

Wykład 8. SQL praca z tabelami 5

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Operacja PIVOT w języku SQL w środowisku Oracle

Rozproszone bazy danych

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Język SQL, zajęcia nr 1

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Bazy Danych i Usługi Sieciowe

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Projektowanie systemów baz danych

WPROWADZENIE DO BAZ DANYCH

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Bazy danych i usługi sieciowe

Procedury i funkcje składowane

Database Connectivity

Bazy danych. Polecenia SQL

Uprawnienia, role, synonimy

Oracle11g: Wprowadzenie do SQL

Pakiety podprogramów Dynamiczny SQL

Modelowanie wymiarów

Wykład 5. SQL praca z tabelami 2

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

P o d s t a w y j ę z y k a S Q L

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Bazy danych - wykład wstępny

15. Funkcje i procedury składowane PL/SQL

Autor: Joanna Karwowska

Rozproszone i obiektowe systemy baz danych Charakterystyka rozproszonego systemu baz danych

Ćwiczenie 8. Rozproszone bazy danych

Systemy GIS Tworzenie zapytań w bazach danych

Oracle PL/SQL. Paweł Rajba.

Replikacja bazy danych polega na kopiowaniu i przesyłaniu danych lub obiektów bazodanowych między serwerami oraz na zsynchronizowaniu tych danych w

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Zarządzanie kontami użytkowników w i uprawnieniami

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

Bazy danych wykład dwunasty PL/SQL, c.d. Konrad Zdanowski ( Uniwersytet Kardynała Stefana Bazy danych Wyszyńskiego, wykładwarszawa)

Projekt z rozproszonych i obiektowych systemów baz danych

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu "Podstawy baz danych"

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Integracja systemów transakcyjnych

Oracle PL/SQL. Paweł Rajba.

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Relacyjne bazy danych. Podstawy SQL

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Przestrzenne bazy danych Podstawy języka SQL

Podstawowe informacje o bazach danych. Technologie Informacyjne

Technologia informacyjna

Model semistrukturalny

Ref. 7 - Język SQL - polecenia DDL i DML

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

1. Wyzwalacze BD (ang. triggers)

Systemowe aspekty baz

Relacyjne bazy danych. Podstawy SQL

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

PODSTAWY BAZ DANYCH 13. PL/SQL

Spis treści. Przedmowa

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Używany kiedy pełna treść instrukcji SQL jest nieznana przed uruchomieniem programu.

Zaawansowane bazy danych i hurtownie danych semestr I

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Wykład 6. SQL praca z tabelami 3

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Widok Connections po utworzeniu połączenia. Obszar roboczy

Oracle11g: Programowanie w PL/SQL

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Systemy baz danych. mgr inż. Sylwia Glińska

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Baza danych. Modele danych

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Transkrypt:

Przykładowe środowisko integracji Architektury i technologie integracji danych Wprowadzenie do ćwiczeń laboratoryjnych Opis przebiegu ćwiczeń Omówienie mechanizmów wykorzystywanych w ćwiczeniach Bartosz Bębel Politechnika Poznańska, Instytut Informatyki Wirtualna Uczelnia jednostki organizacyjne: Dziekanat dane osobowe studentów + dane o ocenach i zaliczeniach, Dział Stypendiów informacje o przyznanych studentom świadczeniach, Dział Zarządzania Akademikami dane o akademikach i zakwaterowanych w nich studentach, Studium Języków Obcych dane o zdobytych przez studentów ocenach i zaliczeniach z lektoratów, Dział Kształcenia jednostka zajmująca się sprawozdawczością. str. 2 Przebieg ćwiczenia 1. Integracja DB2 Oracle 11g. 2. Integracja MySQL Oracle 11g. 3. Integracja plik tekstowy Oracle 11g. 4. Integracja Oracle11g Oracle 11g. Ćwiczenie 1. DB2 - Oracle Cel: umożliwienie dostępu z Działu Kształcenia do danych Działu Stypendiów. Dział Stypendiów DB2. Dział Kształcenia Oracle 11g. Wykorzystywane mechanizmy: Oracle Gateway dla DB2. Łącze bazodanowe. str. 3 str. 4

Oracle Gateway dla DB2 (1) Umożliwia dostęp (zarówno odczyt jak i zapis) z aplikacji Oracledo danych przechowywanych w IBM DB2. Zapewnia: transparentność na poziomie lokalizacji, sieci, systemu operacyjnego, formatu składowania danych i metody dostępu, dostęp do danych przy wykorzystaniu SQL (wsparcie dla DDL i DCL, możliwość przesłania poleceń Native DB2 SQL), wsparcie mechanizmów środowiska rozproszonego: optymalizacja zapytań rozproszonych i 2PC, Oracle Gateway dla DB2 (2) Zapewnia (cd): mapowanie słownika danych z bazy DB2, wsparcie dla wywoływania procedur składowanych DB2 identycznie jak procedur Oracle, odpowiednie mechanizmy bezpieczeństwa (wykorzystuje mechanizmy Oracle i DB2). str. 5 str. 6 Łącze bazodanowe (1) Mechanizm SZBD Oracle. Umożliwia dostęp do obiektów w zdalnej bazie danych. Rodzaje: łącze prywatne, łącze publiczne. Uwaga! Przy tworzeniu łącza nie jest sprawdzana poprawność nazwy użytkownika, hasła i nazwy usługi. Jeśli parametr instancji GLOBAL_NAMES = true, wówczas nazwa łącza musi być identyczna z globalną nazwą bazy danych, na którą wskazuje. Łącze bazodanowe (2) Składnia polecenia: create [public] database link <nazwa łącza> connect to <użytkownik zdalny> identified by <hasło> using '<nazwa usługi>'; użytkownik zdalny nazwa schematu użytkownika zdalnego, na którego będzie wskazywało łącze, hasło hasło użytkownika zdalnego, nazwa usługi nazwa zdefiniowanej lokalnie usługi, wskazującej na zdalną bazę danych (definicja w pliku tnsnames.ora) omijając klauzule: connect toi identifiedbytworzymy łącze wskazujące na bieżącego użytkownika. str. 7 str. 8

Łącze bazodanowe (3) Ćwiczenie 2. MySQL- Oracle Przykład definicji łącza prywatnego: create database link BAZA01 connect to scott identified by tiger using 'BAZA01.WORLD'; Użycie łącza: select nazwisko from pracownicy@baza01 where id_zesp = 10; Słownik danych: USER_DB_LINKS prywatne łącza użytkownika, ALL_DB_LINKS łącza, do których użytkownik ma dostęp, DBA_DB_LINKS lista wszystkich łączy, dostępna jedynie dla użytkowników z uprawnieniami DBA. Cel: umożliwienie dostępu z Działu Kształcenia do danych Działu Zarządzania Akademikami. Dział Zarządzania Akademikami MySQL. Dział Kształcenia Oracle 11g. Wykorzystywane mechanizmy: ODBC. Oracle Gateway dla ODBC. Łącze bazodanowe. str. 9 str. 10 ODBC (1) Interfejs programistyczny dostępu do baz danych. ang. Open Database Connectivity. Oparty na standardach: X/Open CAE Specification "Data Management: SQL Call-Level Interface (CLI)", ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI) Uwaga! Dopiero wersja ODBC 3.x w pełni implementuje oba standardy! Wykorzystuje SQL. ODBC (2) Pierwotnie dla MS Windows, obecnie dostępny również na innych platformach systemowych (UnixODBC, iodbc,...). Zapewnia współpracę aplikacji z różnymi źródłami danych: systemami zarządzania bazami danych: Informix, MS Access, MS SQL Server, MySQL, Postgress, Sybase SQL, Oracle,..., źródłami plikowymi: MS Access, MS Excel, dbase, FoxPro, Paradox,... Często wykorzystywany przy dostępie do źródeł spadkowych. str. 11 str. 12

Oracle Gateway dla ODBC Umożliwia połączenie SZBD Oraclez dowolnym źródłem danych, wspierającym standard ODBC. Konieczne dostarczenie sterownika ODBC dla źródła danych. Lokalizacja źródła zarówno na tej samej maszynie co SZBD Oraclejak i na maszynie zdalnej. Ćwiczenie 3. Plik - Oracle Cel: umożliwienie dostępu z Działu Kształcenia do danych Studium Języków Obcych. Studium Języków Obcych plik csv. Dział Kształcenia Oracle 11g. Wykorzystywane mechanizmy: Katalog w bazie danych. Tabela zewnętrzna. Funkcja tablicowa. str. 13 str. 14 Tabela zewnętrzna (1) Tabela, której źródłem danych jest plik zewnętrzny. Dostęp do tabeli zewnętrznej identycznie jak do zwykłej tabeli (zapytania, możliwość użycia w programach PL/SQL, itd.). Przy dostępie do tabeli zewnętrznej wywoływane jest odpowiednie oprogramowanie (zależne od typu tabeli). Możliwe operacje: Tabela zewnętrzna (2) plik tekstowy tylko odczyt (typ tabeli ORACLE_LOADER), plik binarny w formacie backup-u Oracle a- możliwe jednokrotne przesłanie danych z bazy danych do pliku (przy tworzeniu tabeli), potem tylko odczyt (typ tabeli ORACLE_DATAPUMP). str. 15 str. 16

Tabela zewnętrzna (3) Lokalizacja pliku w systemie plików serwera bd wskazywana przez specjalny obiekt bazodanowy katalog(ang. directory). Informacje o tabelach zewnętrznych użytkownika perspektywa systemowa USER_EXTERNAL_TABLES. Katalog Obiekt bazy danych, wskazujący lokalizację w systemie plików serwera. Składnia polecenia: CREATE [OR REPLACE] DIRECTORY <nazwa> AS '<ścieżka w systemie plików serwera>'; Przykład: CREATE OR REPLACE DIRECTORY MojKatalog AS '/home/kowalski/pliki'; Informacje o dostępnych katalogach perspektywa systemowa ALL_DIRECTORIES. str. 17 str. 18 Tabela zewnętrzna - tworzenie Tabela zewnętrzna - przykład create table <nazwa_tabeli> (<definicja atrybutów tabeli>) organization external -- tabela będzie pobierać dane z pliku (type [oracle_loader oracle_datapump] -- nazwa oprogramowania wczytującego dane default directory <obiekt DIRECTORY> -- katalog z plikiem danych access parameters (records delimited by newline -- rekordy w osobnych liniach pliku badfile <[obiekt DIRECTORY>:]'<nazwa pliku błędów>' -- log błędów logfile <[obiektu DIRECTORY>:]'<nazwa pliku logu>' -- log operacji skip <liczba> -- ile początkowych linii pliku pominąć przy wczytywaniu fields terminated by '<znak oddzielający wartości w rekordzie>' fields (<definicja pól) -- opcjonalna definicja pól pliku missing field values are null) -- pola bez wartości pozostaną puste location ([obiekt DIRECTORY:]'<nazwa pliku danych>')) reject limit [<wartość> UNLIMITED] -- ile dopuszczalnych błędów przy konwersji (domyślnie 0); str. 19 id_klienta;nazwisko;imię;kwota kredytu;ratai;rataii;rataiii;rataiv;ratav;ratavi ------------------------------------------------------------------------------- 1000;Kowalski;Jan;25000;4167;4167;4167;4167;4167;4167 1010;Adamski;Mariusz;31000;5166,7; 5166,7;5166,7;5166,7;5166.7;5166,7 1020;Nowacki;Arkadiusz;13020;2170;2170;2170;2170;2170;2170 create table kredyty_klientow( id number(5),nazwisko varchar(30),imie varchar(30),kredyt number(8,2),rata1 number(6,2), rata2 number(6,2),rata3 number(6,2),rata4 number(6,2),rata5 number(6,2),rata6 number(6,2)) organization external (type oracle_loader default directory MojKatalog access parameters ( records delimited by newline badfile 'odrzucone.txt' logfile 'dziennik.txt' skip 2 fields terminated by ';' missing field values are null) location ('kredyty.txt')) / select * from kredyty_klientow; ID NAZWISKO IMIE KREDYT RATA1 RATA2 RATA3 RATA4 RATA5 RATA6 ---- ---------- ----------- ------ ------ ------ ------ ------ ------ ------ 1000 Kowalski Jan 25000 4167 4167 4167 4167 4167 4167 1010 Adamski Mariusz 31000 5166,7 5166,7 5166,7 5166,7 5166,7 5166,7 1020 Nowacki Arkadiusz 13020 2170 2170 2170 2170 2170 2170 str. 20

Funkcja tablicowa Krok 1. Definiowanie typu Funkcja zwracająca jako wynik zbiór rekordów. Traktowana jak tabela umieszczana w zapytaniu w klauzuli FROM. Pozwala realizować skomplikowane transformacje danych. ID NAZWISKO IMIE KREDYT RATA1 RATA2 RATA3 RATA4 RATA5 RATA6 ---- ---------- ----------- ------ ------ ------ ------ ------ ------ ------ 1000 Kowalski Jan 25000 4167 4167 4167 4167 4167 4167 1010 Adamski Mariusz 31000 5166,7 5166,7 5166,7 5166,7 5166,7 5166,7 1020 Nowacki Arkadiusz 13020 2170 2170 2170 2170 2170 2170 ID NAZWISKO IMIE KREDYT RATA NR_RATY ---- ---------- ----------- ------ ------- ------- 1000 Kowalski Jan 25000 4167 1 1000 Kowalski Jan 25000 4167 2 1000 Kowalski Jan 25000 4167 3 1000 Kowalski Jan 25000 4167 4 1000 Kowalski Jan 25000 4167 5 1000 Kowalski Jan 25000 4167 6 1010 Adamski Mariusz 31000 5166,7 1... str. 21 Typ określa strukturę rekordu, zwracanego przez funkcję. CREATE [OR REPLACE] TYPE <nazwa> AS [OBJECT(<definicje atrybutów>) TABLE OF <typ bazowy>]; CREATE TYPE trekordkredyt AS OBJECT( id number(5), nazwisko varchar2(30), imie varchar2(30), kredyt number(8,2), rata number(6,2), nr_raty number(4)) / CREATE TYPE ttablicakredytow AS TABLE OF trekordkredyt / str. 22 Krok 2. Definiowanie funkcji (1) Krok 2. Definiowanie funkcji (2) Składnia: CREATE [OR REPLACE] FUNCTION <nazwa> RETURN <typ_tablicowy> PIPELINED IS... BEGIN PIPE ROW(<rekord>); END; Przykład: create or replace function kredyty return ttablicakredytow pipelined is cursor craty is select id, nazwisko, imie, kredyt, rata1, rata2, rata3, rata4, rata5, rata6 from kredyty_klientow; begin for R in craty loop pipe row(trekordkredyt(r.id, R.nazwisko, R.imie, R.kredyt, R.rata1, 1)); pipe row(trekordkredyt(r.id, R.nazwisko, R.imie, R.kredyt, R.rata2, 2)); pipe row(trekordkredyt(r.id, R.nazwisko, R.imie, R.kredyt, R.rata3, 3)); pipe row(trekordkredyt(r.id, R.nazwisko, R.imie, R.kredyt, R.rata4, 4)); pipe row(trekordkredyt(r.id, R.nazwisko, R.imie, R.kredyt, R.rata5, 5)); pipe row(trekordkredyt(r.id, R.nazwisko, R.imie, R.kredyt, R.rata6, 6)); end loop; return; end; str. 23 str. 24

Składnia: Krok 3. Użycie funkcji SELECT FROM TABLE(<nazwa funkcji) WHERE ; SELECT * FROM TABLE(kredyty); ID NAZWISKO IMIE KREDYT RATA NR_RATY ---- ---------- ----------- ------ --------- -------- 1000 Kowalski Jan 25000 4167 1 1000 Kowalski Jan 25000 4167 2... 1000 Kowalski Jan 25000 4167 6 1010 Adamski Mariusz 31000 5166,7 1... Ćwiczenie 4. Oracle- Oracle Cel: umożliwienie dostępu z Działu Kształcenia do danych Dziekanatu. Dziekanat Oracle 11g. Dział Kształcenia Oracle 11g. Wykorzystywane mechanizmy: Replikacja migawkowa. str. 25 str. 26 Replikacja podstawowe definicje Replikacja proces kopiowania danych z jednego miejsca (źródła) danych, do miejsca docelowego. Źródło danych tabela źródłowa. Miejsce docelowe tabela nazywana repliką. Węzeł instancja bazy danych, biorąca udział w replikacji. Proces synchronizacji proces uaktualnienia zawartości repliki zawartością tabeli źródłowej, proces ten nosi również nazwę odświeżania repliki. Replikacja po co stosować? Skrócenie dostępu użytkownika do danych (geograficzne rozproszenie danych). Uniezależnienie pracy użytkownika od czasowej niedostępności bazy danych (możliwość skorzystania z kopii danych z innego serwera). Rozłożenie obciążenia, wynikającego z pracy użytkowników, pomiędzy różne serwery baz danych. Możliwość integracji danych z rozproszonych źródeł homo- i heterogenicznych. str. 27 str. 28

Replikacja migawkowa Perspektywa materializowana Implementacja repliki. Inna nazwa: migawka. Definiowana przez zapytanie, w przeciwieństwie do zwykłej perspektywy posiada swoje własne dane. Możliwe jest jej indeksowanie, partycjonowanie, definiowanie parametrów składowania i domyślnej przestrzeni tabel (tak jak dla zwykłej tabeli). str. 29 str. 30 Podział migawek (1) Podział ze względu na postać zapytania definiującego: prosta zapytanie odwołuje się do jednej tabeli, nie wykorzystuje funkcji SQL, funkcji grupowych, wartości wyliczanych, klauzuli CONNECTBYi STARTWITH, operatora DISTINCT, złożona definiujące ją zapytanie nie spełnia przynajmniej jednego warunku definiującego perspektywę prostą. Podział migawek (2) Podział ze względu sposób identyfikacji rekordów w tabeli źródłowej i perspektywie: perspektywa typu ROWID do identyfikacji używa adresu rekordu, wada zmiana adresów rekordów w tabeli źródłowej (np. na skutek przeniesienia do innego pliku) powoduje utracenie powiązań pomiędzy rekordami z tabeli i perspektywy, konieczne wtedy pełne odświeżenie, perspektywa typu primarykey do identyfikacji rekordów używa wartości kolumn z klucza podstawowego, ten typ jest zalecany przez Oracle. str. 31 str. 32

Podział migawek (3) Podział ze względu na możliwość uaktualniania: tylko do odczytu akceptują jedynie zapytania, z możliwością uaktualniania akceptują operacje DML są one replikowane do tabeli źródłowej (wykorzystywane jedynie w tzw. zaawansowanej replikacji), zapisywalne akceptują operacje DML, jednak nie są one replikowane do tabeli źródłowej (zostają utracone podczas operacji odświeżania). Definiowanie perspektywy mat. Składnia polecenia: create materialized view <nazwa_perspektywy> [build <moment_wypełnienia>] [refresh <sposób_odświeżania> start with <data_rozpoczęcia> next <częstotliwość>] with <typ_migawki> [for update] as zapytanie; Zamiast klauzuli materialized view można użyć snapshot. str. 33 str. 34 Parametry polecenia (1) Parametry polecenia (2) Moment wypełnienia migawki danymi klauzula BUILD: immediate wypełnienie danymi zaraz po utworzeniu (domyślnie), deferred wypełnienie danymi dopiero w momencie pierwszego odświeżenia. Sposób odświeżenia migawki klauzula REFRESH: fast odświeżanie przyrostowe, tylko dla perspektyw typu prostego, dodatkowo wymagane utworzenie dziennika perspektywy dla tabeli źródłowej; w pewnych szczególnych sytuacjach możliwe jest również dla perspektyw złożonych, complete odświeżanie pełne, force sposób odświeżania wybierany dynamicznie (jeśli możliwe, wykonywane odświeżenie przyrostowe, jeśli nie pełne), wartość domyślna. Moment odświeżenia migawki klauzula REFRESH: ondemand odświeżanie na żądanie użytkownika przez wywołanie procedury REFRESH z pakietu DBMS_SNAPSHOT, wartość domyślna, oncommit odświeżanie automatyczne w momencie zatwierdzenia transakcji modyfikującej tabele źródłowe (w definicji takiej perspektywy nie można posługiwać się łącznikami bazodanowymi), odświeżanie automatyczne z zadaną częstotliwością. Harmonogram odświeżania migawki: startwithdata określa moment rozpoczęcia odświeżania automatycznego, np: start with sysdate; pominięcie klauzuli powoduje rozpoczęcie odświeżania zaraz po utworzeniu perspektywy, next częstotliwość określa częstotliwość odświeżania, np: next 'sysdate + 1/(24*30)' powoduje odświeżanie co 2 minuty. str. 35 str. 36

Parametry polecenia (3) Przykład Brak odświeżania jeśli migawka nie ma być nigdy odświeżana, należy dodać klauzulę never refresh, np. create materialized view mv_pracownicy never refresh as select * from pracownicy@baza01; Klauzula WITH: ROWID-migawka typu ROWID, primary key migawka typu primary key, wartość domyślna. Perspektywa materializowana tylko do odczytu, odświeżana przyrostowo co 2 minuty, wypełniona zaraz po utworzeniu, rekordy identyfikowane przez klucz główny: create materialized view mv_pracownicy refresh fast start with sysdate next sysdate + 1/(24*30) with primary key as select * from pracownicy@baza01; str. 37 str. 38 Pozostałe polecenia Pozostałe mechanizmy (1) Modyfikowanie definicji perspektywy materializowanej: alter materialized view <nazwa_perspektywy> refresh <sposób_odświeżania> start with <data_rozpoczęcia> next <częstotliwość> with <typ_migawki>; Usuwanie perspektywy materializowanej: drop materialized view <nazwa_perspektywy>; Dziennik perspektywy materializowanej obiekt rejestrujący zmiany (operacje DML), dokonane w zawartości tabeli źródłowej dla perspektywy(tabeli bazowej dziennika). Informacje z dziennika są konieczne do przyrostowego odświeżania perspektyw. Tabela źródłowa może posiadać tylko jeden dziennik, niezależnie od liczby perspektyw z nią powiązanych. create materialized view log on <nazwa_tabeli_bazowej> [with PRIMARY KEY ROWID]; str. 39 str. 40

Pozostałe mechanizmy (2) Pozostałe mechanizmy (3) Grupa odświeżania mechanizm pozwalający na jednoczesne odświeżanie wielu perspektyw, przez to zapewniający spójność danych w ramach perspektyw z grupy. Zastosowanie: np. dla jednoczesnego odświeżania perspektyw, których tabele źródłowe są połączone kluczem obcym. Posiada nazwę, listę migawek, oraz zdefiniowaną wspólną częstotliwość odświeżania perspektyw. Każda perspektywa zostaje automatycznie przydzielona do grupy o nazwie równej nazwie perspektywa (w sytuacji, gdy nie przydzielono jej jawnie do innej grupy). Grupa odświeżania(cd.) Tworzenie grupy: DBMS_REFRESH.MAKE Dodanie perspektywy do grupy: DBMS_REFRESH.ADD (parametr lax należy ustawić na wartość TRUEprzy przenoszeniu perspektywy pomiędzy grupami) Usunięcie migawki z grupy: DBMS_REFRESH.SUBTRACT Usunięcie grupy: DBMS_REFRESH.DESTROY Ręczne odświeżenie grupy: DBMS_REFRESH.REFRESH str. 41 str. 42 Bibliografia 1. Dokumentacja techniczna Oracle11g Release2 (11.2). www.oracle.com 2. R. Wrembel, B. Bębel: Projektowanie rozproszonych baz danych. Helion 2003. str. 43