Obiektowe i obiektowo-relacyjne. bazy danych

Podobne dokumenty
Obiektowe bazy danych

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

Oracle PL/SQL. Paweł Rajba.

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Obiektowe bazy danych

Post-relacyjne bazy danych

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

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

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

15. Funkcje i procedury składowane PL/SQL

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

Obiektowe bazy danych

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

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

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Programowanie w Ruby

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

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

Przestrzenne bazy danych Podstawy języka SQL

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

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

SBQL. język zapytań dla obiektowych baz danych. Kamil Adamczyk. Uniwersytet Warszawski 20.IV.2009

Rozszerzenia języka relacyjnych baz danych SQL

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

Język SQL, zajęcia nr 1

Pakiety podprogramów Dynamiczny SQL

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

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

Plan. Rozszerzenie obiektowe w SZBD Oracle

Model semistrukturalny

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych 7. SQL podstawy

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

Język PL/SQL Pakiety podprogramów

Paweł Rajba

Relacyjne bazy danych. Podstawy SQL

Wykład 8. SQL praca z tabelami 5

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

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

Paweł Kurzawa, Delfina Kongo

Modelowanie wymiarów

Projektowanie systemów baz danych

PODSTAWY BAZ DANYCH 13. PL/SQL

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

Relacyjne bazy danych. Podstawy SQL

Procedury i funkcje składowane

Programowanie obiektowe

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

Systemy GIS Tworzenie zapytań w bazach danych

Język SQL podstawy zapytań

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

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

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

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

Wykład 5. SQL praca z tabelami 2

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

Bazy danych 10. SQL Widoki

Godzina (wtorek)

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

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

Hurtownia Świętego Mikołaja projekt bazy danych

Bazy danych - Materiały do laboratoriów VIII

Podstawy Programowania Obiektowego

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

Oracle PL/SQL. Paweł Rajba.

Wykład 05 Bazy danych

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

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

Oracle11g: Wprowadzenie do SQL

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

BAZA DANYCH SIECI HOTELI

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

Bloki anonimowe w PL/SQL

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

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

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

Oracle PL/SQL. Paweł Rajba.

Bazy danych i usługi sieciowe

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

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

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

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

PL/SQL. Zaawansowane tematy PL/SQL

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Programowanie obiektowe - 1.

Transkrypt:

Obiektowe i obiektowo-relacyjne bazy danych

Plan wykładu 1. ODBMS 2. ORDBMS 3. SQL3 Typy 4. Źródła

ODBMS Obiektowy system zarządzania baza danych jest systemem opartym na modelu obiektowym wspomagającym definiowanie, zarządzanie, utrzymywanie, zabezpieczenia i dostępność obiektowej bazy danych.

ODMG Organizacja(Object Database ManagementGroup) powstała w1991 r. tworzyła standardy obiektowej bazy danych,z wykorzystaniem: języka specyfikacji obiektu ODL (Object Definition Language), obiektowego języka zapytań OQL (Object Query Language), wiązań do języków C++, Java Smalltalk

ODL I Specyfikacja obiektu: Interface <name> { attributes(<type> : <name>); relationships(<range type> : <name>); methods; };

ODL II Przykłady specyfikacji obiektów: class Obraz { (extent Obrazy) attribute Date utworzony; attribute set<figura>elementy; relationship set<osoba> autorzy inverse Osoba::utworzył; relationship set<obraz>jest Pierwowzorem inverse Obraz::jest Modyfikacją; relationship set<obraz>jest Modyfikacją inverse Obraz::jest Pierwowzorem; void dodaj (in Figura fig) raises(niewłaściwafigura); Obraz utwórzkopię( ) raises(zadużokopii); };

OQL Język deklaratywny oparty na SQL u, przystosowany do współpracy z C++,java i Smalltalk, dla każdego zapytania wymagana jest obecność trwałego obiektu będącego instancja zdefiniowanej klasy. SELECT struct(nazwisko:s.imnaz.nazwisko, imie:s.imnaz.imie, sredniaocen:s.sredniaocen) FROM s in studenci WHERE s.stopienstudiow= 2 AND s.semestr= 3 ORDER BY sredniaocendesc, nazwisko,imie;

JDO Standard(Java Data Objects) stworzony przez firme Sun, wykorzystujący: model obiektu używany w języku Java, persistencebyreachability do specyfikacji obiektów - XML, JDOQL jako język zapytań. Query query=pmanager.new Query(Osoba.class, "wiek >= 50 && wiek < 60");

Obiektowo-relacyjne bazy danych ORDBMSI Bazy tworzone w tym modelu są często nazywane rozszerzonymi bazami relacyjnymi,bądź postrelacyjnymi, czy hybrydowymi. Zapewniają: kolekcje (zbiory,wielozbiory, sekwencje,zagnieżdżone tablice, tablice o zmiennej długości,tabele obiektów), metody użytkownika(funkcje i procedury definiowane przez użytkownika w różnych językach C+ +,VisualBasic, Java, PL/SQL) przeciążanie funkcji, typy referencyjne, perspektywy obiektowe,

Obiektowo-relacyjne bazy danych ORDBMS II hierarchie zbiorów danych, przystosowanie do multimediów(duże obiekty BLOB, CLOBi pliki binarne), dane przestrzenne (spatial), abstrakcyjne typy danych (ADT) język zapytańsql3 zwany tez ObjectSQL. Z modelu relacyjnego pozostawiają: architekturę klient/serwer, mechanizmy buforowania i indeksowania, przetwarzanie transakcji, optymalizacje zapytań.

SQL3 I SQL3 jest kontynuacja linii SQL-92, rozwijana przez ANSI (American National Standard Institute), komitet X3H2,oraz ISO(International Standard Organization). Standard języka SQL powstały w 1999 rozszerzony o kolejne rozwinięcia modelu relacyjnego: nowe typy danych: BLOB, CLOB (brak możliwości narzucenia ograniczenia UNIQUE, niemożna go wykorzystać jako argumentu ORDER BY lub GROUP BY), BOOLEAN, ARRAY, ROW poszerzenie możliwości perspektyw (aktualizacja danych) wprowadzenie zapytań rekurencyjnych punkty zachowania w transakcjach wprowadzenie ról dla użytkowników rozbudowa wyzwalaczy

SQL3 II oraz o korzystanie z cech obiektowych modelu postrelacyjnego: strukturalne typy definiowane przez użytkownika(z metodami, dziedziczeniem, podtypami) funkcje i procedury pisane w innych językach tabele obiektów typy referencyjne -odnośniki do obiektów,niepowtarzalne i niemodyfikowalne

SQL3 nowe możliwości SQL3 rozszerza poprzedni standard SQL-92 w następujących kierunkach: Obiektowość:SQL3 reprezentuje podejście hybrydowe, dodając niektóre cechy obiektowości (takie jak ADT)do tablic znanych z systemów relacyjnych. Rozszerzalność: umożliwienie użytkownikom deklarowania własnych typów. Niekonwencjonalne typy danych:multimedialne, przestrzenne, temporalne. Pełne możliwości uniwersalnego języka programowania dla definiowania i zarządzania trwałymi,złożonymi obiektami. Rozszerzenia w zakresie aktywnych reguł, interfejsów do innych języków programowania, autoryzacji, procedur bazy danych, ewolucji

SQL3 - rozszerzenia obiektowe Typy definiowane przez użytkownika(abstrakcyjne typy danych(adt), nazwane typy wierszy, oraz typy rozróżnione (distinct) Konstruktory typów dla wierszy (rowtypes) i referencji (referencetypes) Konstruktory typów dla kolekcji: zbiorów, list (sekwencji)i wielozbiorów Definiowane przez użytkownika funkcje i procedury Wspomaganie dla dużych obiektów (Binary Large OBject-BLOB, Character Large OBject- CLOB) Wbudowane typy skalarne

SQL3 - rozszerzenia typów I Rozszerzalność:definiowanie nowych typów zrozumiałych dla SZBD. Zwiększenie potencjału modelowania pojęciowego (złożone obiekty). Ponowne użycie istniejących bibliotek typów. Integracja pojęć obiektowych i relacyjnych w jednym języku. Abstrakcyjne typy danych (ADT) Mocna kontrola typów Procedury polimorficzne Kontrola typu podczas kompilacji Przywileje: kto może używać ADT

SQL3 - rozszerzenia typów II Typy rozróżnione(distinct):zwiększenie skuteczności mocnej kontroli typów i wydajności. Typy wierszowe: Są podobne do struktur lub zapisów (records) winnych językach Umożliwiają określenie typów wierszy w tablicach Umożliwiają zagnieżdżanie wierszy Typy kolekcji: Wbudowane, parametryczne typy SET(T), LIST(T), MULTISET(T) Odwzorowanie do tablic

SQL3 - definicja typów CREATE [OR REPLACE] TYPE nazwa_typu AS OBJECT ( atrybut1typ1 [atrybut2 typ2,...,atrybutntypn,] [MEMBER PROCEDURE nazwa_procedury,] [MEMBER FUNCTION nazwa_funkcji RETURN typ_zwracany] )[NOT FINAL] / DROP TYPE nazwa_typu / DESCRIBE nazwa_typu / -- np.: CREATE OR REPLACE TYPE adres AS OBJECT ( kodvarchar2(6), miastovarchar2(50), ulicavarchar2(100) )

Tabele obiektów, tabele zawierające obiekty ROWOBJECT tabela jednokolumnowa - wiersze to obiekty OID - identyfikator obiektu (automatycznie nadawany) COLUMN OBJECT tabela wielokolumnowa - obiekt jako atrybut

Tabele obiektów, tabele zawierające obiekty cd. I Tabele obiektów: CREATE TABLE nazwa OF nazwa_typu; np.: CREATE TABLE adresy OF adres; INSERT INTO adresy VALUES (adres( 42-200, Czestochowa, Dabrowskiego69 )); SELECT * FROM adresy;

Tabele obiektów, tabele zawierające obiekty cd. II Tabela z kolumnami obiektowymi: CREATE TABLE osoba ( pesel NUMBER(11) PRIMARY KEY, nazwisko VARCHAR2(50), imievarchar2(30), adres_zam adres );

Tabele obiektów, tabele zawierające obiekty cd. I CREATE OR REPLACE TYPE ulamek AS OBJECT ( licznik NUMBER(4), mianownik NUMBER(4) ) / -- tabela zawierająca obiekty CREATE TABLE ulamki( atrybut ulamek, CONSTRAINT ul_ch_mian CHECK(atrybut.mianownik<> 0) ); INSERT INTO ulamki VALUES (ulamek(12,4)); SELECT * FROM ulamki;

Tabele obiektów, tabele zawierające obiekty cd. II -- tabela obiektowa CREATE TABLE ulamkiob OF ulamek; ALTER TABLE ulamkiob ADD CONSTRAINT ulo_ch_mian CHECK(mianownik<>0); INSERT INTO ulamkiob VALUES (12,4); INSERT INTO ulamkiob VALUES (ulamek(12,4)); SELECT * FROM ulamkiob; SELECT Value(u) FROM ulamkiobu;

SQL3 - metody obiektów I CREATE OR REPLACE TYPE ulamek AS OBJECT ( licznik NUMBER(4), mianownik NUMBER(4), MEMBER PROCEDURE skroc ) / CREATEOR REPLACE TYPE BODY ulamek ASMEMBER PROCEDURE skroc IS vr NUMBER; BEGIN r:=nwd(licznik, mianownik); licznik:= licznik/r; mianownik:= mianownik/r; END skroc; END; /

Typy złożone CREATE TYPE punkt AS OBJECT ( x NUMBER, y NUMBER ); CREATE TYPE tablicawierzcholkow AS VARRAY(2) OF punkt; CREATE TYPE odcinek AS OBJECT ( wierzcholki tablicawierzcholkow ); CREATE TYPE zbiorkrawedzi ASTABLE OF odcinek; CREATE TYPE wielokat AS OBJECT ( krawedzie zbiorkrawedzi );

Dziedziczenie, typy abstrakcyjne, polimorfizm I --klasa abstrakcyjna CREATE TYPE figura AS OBJECT ( typ VARCHAR2(10), NOT INSTANTIABLE MEMBER FUNCTION pole RETURN FLOAT ) NOT INSTANTIABLE NOT FINAL; -- klasa dziedzicząca- UNDER CREATE OR REPLACE TYPE kolo UNDER figura( promien FLOAT, OVERRIDING MEMBER FUNCTION pole RETURN FLOAT ); --redefinicja - przeładowanie - OVERRIDING CREATE OR REPLACE TYPE BODY kolo AS OVERRIDING MEMBER FUNCTION pole RETURN FLOAT

Dziedziczenie, typy abstrakcyjne, polimorfizm II IS BEGIN RETURN3.14159265358979 *promien*promien; END; END; -- klasa dziedzicząca CREATE OR REPLACE TYPE kwadrat UNDER figura( dl_boku FLOAT, OVERRIDING MEMBER FUNCTION pole RETURN FLOAT ); -- redefinicja CREATE OR REPLACE TYPE BODY kwadrat AS OVERRIDINGMEMBER FUNCTION pole RETURN FLOAT IS BEGIN

Dziedziczenie, typy abstrakcyjne, polimorfizm III RETURN dl_boku*dl_boku; END; END; -- tabela obiektów CREATE TABLE figury OF figura; INSERT INTO figury VALUES(new kolo( kolo,10) ); INSERT INTO figury VALUES(new kwadrat( kwadrat,10)); SELECT * FROM figury; -- koła i kwadraty SELECT Value(f) FROM figury f; -- same kwadraty SELECT Value(f) FROM figury f WHERE Value(f) IS OF (kwadrat); -- szczegółowe dane SELEC Ttyp, Treat(Value(f) AS kwadrat).dl_boku AS bok, Treat(Value(f) AS kolo).promien AS promien,f.pole() FROM figury f;

Dziedziczenie, typy abstrakcyjne, polimorfizm IV TREAT- funkcja umożliwiająca rzutowanie w dół ALTER TYPE nazwa_typu NOT INSTANTIABLE; -zmiana na typ abstrakcyjny IS OF operator pozwalający na rozpoznanie typu obiektu najniższego w hierarchii dziedziczenia

NOT FINAL,NOT INSTANTIABLE FINAL vs NOT FINAL: typy na końcu definicji metody na początku definicji, przed nazwa INSTANTIABLE vs NOT INSTANTIABLE typy na końcu definicji metody na początku definicji, przed nazwa nie podany - wymagana definicja metody, nawet jeżeli typ jest abstrakcyjny podany - typ musi być abstrakcyjny

Typy referencyjne I 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 DEREF operator umożliwiający dostęp do obiektu wskazywanego przez REF

Modelowanie związków- typy referencyjne I CREATE TYPE osoba AS OBJECT ( imievarchar2(10), nazwiskovarchar2(20) ); -- tabela realizujaca związek do tabeli osoby CREATE TYPE obraz AS OBJECT ( utworzony DATE, autor REF osoba ); -- tabele obiektowe CREATE TABLE osoby OF osoba; CREATE TABLE obrazy OF obraz;

Modelowanie związków- typy referencyjne II INSERT INTO osoby VALUES ( Jan, Kowalski ); -- wstawienie powiązania INSERT INTO obrazy SELECT Current_date, Ref(o) FROM osoby o WHERE nazwisko LIKE Kowalski ; SELECT * FROM obrazy;

Modelowanie związków- typy referencyjne III -- typ zawierający referencje do osób CREATE TYPE zbiorautorow AS TABLE OF REF Osoba; CREATE TYPE dzielo AS OBJECT ( utworzone DATE, autorzy zbiorautorow ); --tabela zzagnieżdżona tabela CREATE TABLE dziela OF dzielo NESTEDTABLE autorzy STORE AS aut;

Modelowanie związków- typy referencyjne IV INSERT INTO osoby VALUES ( Piotr, Nowak ); -- wstawienie dzieła i pierwszego autora INSERT INTO dziela SELECT Current_date, zbiorautorow(ref(o)) FROM osoby o WHERE nazwisko LIKE Kowalski ; -- wstawienie kolejnego autora INSERT INTO TABLE (SELECT autorzy FROM dziela) (SELECT Ref(o) FROM osoby o WHERE nazwisko = Nowak );

Źródła W wykładzie wykorzystano materiały: Wykład dr inż.olga Siedlecka-Lamch http://www.eyedb.org/wp-content/uploads/documentation/manual/html/odl/node2.html http://db.apache.org/jdo/index.html fatcat.ftj.agh.edu.pl/~mariosh/db_ii/objectrelationaloracle.pdf http://www.cs.put.poznan.pl/mmorzy/ http://www.ipipan.eu/staff/k.subieta/prezentacje/obiektowe%20bazy%20danych%20kontra%20relacyjne %201997.ppt C.Zaniolo,S.Ceri,Ch.Faloutsos, R.T.Snodgrass, V.S.Subrahmanian,R.Zicari, Advanced DatabaseSystems, Morgan Kaufmann, 1997