Monika Kruk Mariusz Grabowski. Informatyka Stosowana WFiIS, AGH 13 grudzień 2006



Podobne dokumenty
Oracle PL/SQL. Paweł Rajba.

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

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Obiektowe bazy danych

Obiektowe bazy danych

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

Plan wykładu BAZY DANYCH II WYKŁAD 9. Dynamiczny SQL. Dynamiczny SQL

Obiektowe i obiektowo-relacyjne. bazy danych

Widok Connections po utworzeniu połączenia. Obszar roboczy

Rozszerzenia języka relacyjnych baz danych SQL

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

Post-relacyjne bazy danych

15. Funkcje i procedury składowane PL/SQL

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Oracle PL/SQL. Paweł Rajba.

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

Język SQL, zajęcia nr 1

Pakiety podprogramów Dynamiczny SQL

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Tworzenie raportów XML Publisher przy użyciu Data Templates

Bazy Danych i Usługi Sieciowe

Plan wykładu BAZY DANYCH II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Relacyjne bazy danych. Podstawy SQL

Bazy danych i usługi sieciowe

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

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Wykład 5. SQL praca z tabelami 2

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

ZSBD ćwiczenie 9. Obiektowo relacyjne systemy zarządzania bazą danych. Zaawansowane zagadnienia. Wymagania: ZSBD ćwiczenie 9

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

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

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

Relacyjne bazy danych. Podstawy SQL

Oracle11g: Wprowadzenie do SQL

Plan. Rozszerzenie obiektowe w SZBD Oracle

Programowanie w Ruby

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

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

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

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

Procedury i funkcje składowane

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Oracle PL/SQL. Paweł Rajba.

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

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

Modelowanie wymiarów

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Język PL/SQL Procedury i funkcje składowane

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski

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

Bazy danych 10. SQL Widoki

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

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

Przykładowa baza danych BIBLIOTEKA

Wykład 05 Bazy danych

Ćwiczenia 2 IBM DB2 Data Studio

Model semistrukturalny

Projektowanie systemów baz danych

Wykład 8. SQL praca z tabelami 5

Bloki anonimowe w PL/SQL

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

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

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

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

Oracle PL/SQL. Paweł Rajba.

Przestrzenne bazy danych Podstawy języka SQL

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Plan wykładu BAZY DANYCH II WYKŁAD 2. Bloki. Struktura bloku

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Wykład 6. SQL praca z tabelami 3

Database Connectivity

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Język PL/SQL Pakiety podprogramów

Systemy GIS Tworzenie zapytań w bazach danych

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

Zaawansowane bazy danych i hurtownie danych semestr I

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

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Cele. Definiowanie wyzwalaczy

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

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Kurs WWW. Paweł Rajba.

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

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

PODSTAWY BAZ DANYCH 13. PL/SQL

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Nowe technologie baz danych

Programowanie obiektowe

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Transkrypt:

OBIEKTOWOŚĆ W BAZIE DANYCH ORACLE Monika Kruk Mariusz Grabowski Informatyka Stosowana WFiIS, AGH 13 grudzień 2006

Plan prezentacji kilka słów o bazie danych ORACLE rzecz o obiektach ORACLE tworzenie typów obiektowych metody i ich rodzaje manipulowanie obiektami tabele obiektowe referencje WPROWADZENIE OBIEKTY W PRAKTYCE PODSTAWY dziedziczenie modyfikacje typów widoki obiektowe kolekcje przydatne funkcje i operatory dostępne interfejsy OBIEKTY W PRAKTYCE DLA WTAJEMNICZONYCH 2

Dostępne wersje WPROWADZENIE CPUs RAM Rozmiar BD Ceny USD Wybrane parametry Express Edition 1 1 GB 4 GB Darmowa Oracle SQL Developer; native XML Standard Edition ONE 2 OS Max Bez limitu 149 /user 4995 /proc Server Managed Backup and Recovery Standard Edition 4 OS Max Bez limitu 300 /user 15000 /proc Real Application Clusters Enterprise Edition Bez limitu OS Max Bez limitu 800 /user 40000 /proc OLAP, Data Mining Opcje Data Guard 3

Słów kilka... WPROWADZENIE relacyjny system baz danych funkcjonalność: hurtownie danych, data mining, rozszerzenie obiektowe, wsparcie dla zewnętrznych aplikacji, xml... Ze strony www.oracle.com: Najpopularniejsza baza na świecie. Baza danych Oracle pozwala na znaczne obniżenie kosztów. Jest sprzedawana po nizszej cenie niż bazy SQL Server i DB2. Co więcej, pozwala na wyeliminowanie ukrytych kosztów zwiazanych z przestojami i naruszeniami bezpieczeństwa. Baza Oracle jest niezawodna i niedostępna dla hakerów. Użytkowanie pakietów aplikacji na paltformie bazodanowej Oracle kosztuje o połowę mniej niż w przypadku bazy SQL Server. Początkowy koszt zakupu SQL Servera jest niższy, jednak koszty licencji, wdrożenia, bieżącej eksploatacji bazy Oracle przypadające na użytkownika są niższe średnio o 43%. Koszty zabezpieczenia środowiska w przeliczeniu na użytkownika wynoszą 13 USD dla bazy Oracle, a 53 USD dla bazy firmy Microsoft. 4

Rzecz o obiektach WPROWADZENIE typy definiowane przez użytkownika warstwa abstrakcji na technologię relacyjną Zalety: pełne wsparcie dla aplikacji zorientowanych obiektowo obiekty są przechowywane w bazie danych - dostępność dla każdej aplikacji łatwość reprezentowania złożonych struktur danych obiekty jako przedtawiciele relacji wiele do wielu (np. faktura i produkty) typy obiektowe zawierają funkcje i procedury pozwalające na manipulowanie nimi 5

Tworzenie typu PODSTAWY CREATE TYPE person_typ AS OBJECT ( idno NUMBER, name VARCHAR2(30), phone VARCHAR2(20)); / 6

Metody PODSTAWY CREATE TYPE person_typ AS OBJECT ( idno NUMBER, name VARCHAR2(30), phone VARCHAR2(20), MAP MEMBER FUNCTION get_idno RETURN NUMBER, STATIC FUNCTION show_super(person_obj in person_typ) RETURN VARCHAR2, MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL; / 7

Rodzaje metod PODSTAWY i. metody składowe (member methods) dostęp do składowych (atrybutów) obiektu parametr SELF - wskazuje na konkretną instancję ii. metody do porównywania obiektów metody odwzorowujące (map methods) - mapowanie na oś metody porządkujace (order methods) - porównanie dwóch obiektów UWAGA: może istanieć tylko jedna z nich iii. metody statyczne STATIC przed definicją metody brak SELF - dotyczy klasy obiektów 8 iv. konstruktor tworzenie obiektu - tworzy instancję z podanych parametrów generowany automatycznie

Ciała metod PODSTAWY CREATE OR REPLACE TYPE BODY person_typ AS MAP MEMBER FUNCTION get_idno RETURN NUMBER IS BEGIN RETURN idno; END; funkcja statyczna może być wywoływana przez typy pochodne STATIC FUNCTION show_super (person_obj in person_typ) RETURN VARCHAR2 IS BEGIN RETURN 'Id: ' TO_CHAR(person_obj.idno) ', Name: ' person_obj.name; END; może być przedefiniowana przez typ pochodny MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN person_typ.show_super ( SELF ); END; END; / 9

Tabele obiektowe PODSTAWY OBIEKTY JAKO WIERSZE TABELI tworzymy tabelę obiektową CREATE TABLE person_obj_table OF person_typ; wstawiamy obiekt INSERT INTO person_obj_table VALUES (person_typ(12, 'Bob Jones', '111 555 1212')); 10

Dziedziczenie CREATE TYPE student_typ UNDER person_typ( dept_id NUMBER, major VARCHAR2(30), OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL; / FINAL / NOT FINAL typy - na końcu definicji metody - na początku definicji, przed nazwą 11

Dziedziczenie TYP ABSTRAKCYJNY CREATE TYPE address_typ AS OBJECT(...) NOT INSTANTIABLE NOT FINAL; INSTANTIABLE / NOT INSTANTIABLE typy - na końcu definicji metody - na początku definicji, przed nazwą jeśli nie podamy to wymagana definicja metody, nawet jeżeli typ jest abstrakcyjny jesli podamy to typ też musi być abstrakcyjny 12

Dziedziczenie PRZEŁADOWANIE METOD CREATE OR REPLACE TYPE BODY student_typ AS OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN person_typ.show_super ( SELF ) ' Major: ' major ; END; END; / 13

Dziedziczenie POLIMORFIZM IS OF operator pozwalający na rozpoznanie typu obiektu najniższego w hierarchii dziedziczenia SELECT * FROM figure_tab p WHERE VALUE(p) IS OF (rectangle_typ) TREAT funkcja umożliwiająca rzutowanie w dół SELECT TREAT(VALUE(p) AS rectangle_typ) FROM figure_tab WHERE VALUE(p) IS OF (rectangle_typ) 14

Modyfikacje ALTER TYPE modyfikacja składowych typu zmiana na abstrakcyjny ALTER TYPE person_typ NOT INSTANTIABLE; dodawanie/usuwanie/modyfikacja atrybutów i metod zmiana właściwości typu - FINAL i INSTANTIABLE 15

Tabele obiektowe c.d. 16 row object tabela jednokolumnowa -> wiersze to obiekty OID - identyfikator obiektu (automatycznie nadawany) CREATE TABLE person_tab OF person_typ; column object tabela wielokolumnowa -> obiekt jako kolumna CREATE TABLE contacts_table ( contact person_typ, contact_date DATE ); INSERT INTO contacts_table VALUES ( person_typ(51,'joe Lane','1 800 555'), '24 Jun 2003');

Referencje OID identyfikator obiektu wierszowego REF logiczny wskaźnik do obiektowych wierszy umożliwia stworzenie relacji pomiędzy obiektami różnych typów umożliwia tworzenie relacji jeden do wielu prosty przykład: manager - wielu podwładnych DEREF operator umożliwiający dostęp do obiektu wskazywanego przez REF 17

Referencje 18 tworzymy typ reprezentujący osobę zatrudnioną CREATE TYPE emp_person_typ AS OBJECT ( name VARCHAR2(30), manager REF emp_person_typ ); / tworzymy tabelę obiektową CREATE TABLE emp_person_obj_table OF emp_person_typ; wstawiamy dane pracownika będącego menagerem więc REF ustawiany na NULL. INSERT INTO emp_person_obj_table VALUES ( emp_person_typ ('John Smith', NULL)); ustawiamy REF managera Smitha dla pracownika Boba Jones'a INSERT INTO emp_person_obj_table SELECT emp_person_typ ('Bob Jones', REF(e)) FROM emp_person_obj_table e WHERE e.name = 'John Smith'; tworzymy tabelę obiektową SELECT c.name, DEREF(c.manager).name FROM emp_person_obj_table c;

Widoki obiektowe umożliwiają używanie obiektowo - relacyjnego charakteru bazy dla istniejących tabel relacyjnych Jak tworzyć? definiujemy typ obiektowy, którego atrybuty odpowiadają kolumnom w relacyjnej tabeli piszemy SELECT określający w jaki sposób będą pobierane elementy z relacyjnej tabeli (kolejność w zapytaniu powinna odpowiadać kolejności parametrów w stworzonym obiekcie) wyróżniamy jedną wartość (najczęściej klucz podstawowy), który umożliwi nam tworzenie REF'ów 19

Kolekcje TABLICA JAKO ATRYBUT TYPU 20 VARRAY zmienna długość zdefiniowany max rozmiar efektywne wykorzystanie przestrzeni bazy danych zbiór uporządkowany zbudowana z obiektów jakiegoś typu używana jeżeli będziemy pobierać jej całą zawartość podczas manipulacji obiektem NESTED TABLE tablica zagnieżdżona brak max rozmiaru zbiór nieuporządkowany używana jeżeli chcemy wyciągać pojedyncze elementy z tablicy

Kolekcje 21 tworzymy typ będący tablicą o zmiennej długości CREATE TYPE email_list_arr AS VARRAY(10) OF VARCHAR2(80); / tworzymy typ będący tablicą osób CREATE TYPE people_typ AS TABLE OF person_typ; / tworzymy tabelę zawierająca zagnieżdżoną tablicę CREATE TABLE department_persons ( dept_no NUMBER PRIMARY KEY, dept_name CHAR(20), dept_mgr person_typ DEFAULT person_typ(10,'john Doe',NULL), dept_emps people_typ DEFAULT people_typ() ) NESTED TABLE dept_emps STORE AS dept_emps_tab;

Kolekcje ODCZYTYWANIE przedstawia zbiór z tabeli w postaci konstruktorów SELECT d.dept_emps FROM department_persons d; rozwija listę SELECT e.* FROM department_persons d, TABLE(d.dept_emps) e; 22

Funkcje i operatory CAST() Konwertuje typ lub kolekcję typów na inny typ/kolekcję sys_typeid() Metoda zwraca typ obiektu (ostatni w hierarchii dziedziczenia), do którego należy obiekt podany jako parametr wywołania VALUE() Pobiera alias tabeli obiektowej i zwraca instancje obiektu będącego wierszem 23

Dostępne API Java : JDBC (od wersji 2.0 wsparcie dla typów użytkownika); SQLJ (możliwe dwa sposoby mapowania obiektów: silne typy implementują interfejs oracle.sql.oradata słabe klasa oracle.sql.struct obiekty; oracle.sql.ref referencje; oracle.sql.array - kolekcje) OCCI - Oracle C++ Call Interface OCI - Oracle Call Interface PL/SQL 24

Skrypty Przygotowane skrypty umożliwiają stworzenie kilku obiektów i podstawowe zarządzanie nimi. Uruchomienie (oprócz pliku z zapytaniami) odbywa się poprzez wydanie polecenia @ scieżka_do_pliku; w linii poleceń (Run SQL Command). Zostały podzielone na cztery grupy: Tworzenie grupa skryptów tworzących obiekty wywołanie całej grupy odbywa się poprzez uruchomienie skryptu script_create.sql Wstawianie grupa skryptów wstawiających dane do stworzonych uprzednio tabel wywołanie całej grupy odbywa się poprzez uruchomienie skryptu script_insert.sql Zapytania plik sample_selects.sql zawiera zestawienie kilku przykładowych zapytań realizowanych na wstawionych danych. Usuwanie plik script_drop.sql zawiera grupę poleceń umożliwiających usunięcie utworzonych obiektów. 25