Obiektowe bazy danych

Podobne dokumenty
Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Oracle PL/SQL. Paweł Rajba.

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

Post-relacyjne bazy danych

Obiektowe i obiektowo-relacyjne. bazy danych

Obiektowe bazy danych

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

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

Obiektowe bazy danych

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

Rozszerzenia języka relacyjnych baz danych SQL

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

Oracle PL/SQL. Paweł Rajba.

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

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

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

15. Funkcje i procedury składowane PL/SQL

PODSTAWY BAZ DANYCH 13. PL/SQL

Model semistrukturalny

Pakiety podprogramów Dynamiczny SQL

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

Obiektowe bazy danych

Plan. Rozszerzenie obiektowe w SZBD Oracle

Procedury i funkcje składowane

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

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

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

Systemowe aspekty baz

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

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

Paweł Rajba

PL/SQL. Zaawansowane tematy PL/SQL

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

Oracle PL/SQL. Paweł Rajba.

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 II WYKŁAD 5. Kolekcje. Tablice asocjacyjne Kolekcje Tablice asocjacyjne VARRAY Tablice zagnieżdżone

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

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

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

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

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');

Wykład 05 Bazy danych

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

BAZA DANYCH SIECI HOTELI

Bazy danych. Dr inż. Paweł Kasprowski

Systemowe aspekty baz danych

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

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

Przykładowa baza danych BIBLIOTEKA

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

Wyzwalacze. Anna Fiedorowicz Bazy danych 2

Cheatsheet PL/SQL Andrzej Klusiewicz 1/9

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

Wprowadzenie do języka PL/SQL. Język PL/SQL Wprowadzenie. Struktura blokowa programu. Przykładowy program w PL/SQL. Zmienne rekordowe.

Temporalne bazy danych

Obiektowe bazy danych. Model danych. Wprowadzenie obiektowy model danych. Obiekty w bazie danych definiowanie i przechowywanie składowe i metody

Język PL/SQL Pakiety podprogramów

Relacyjne bazy danych. Podstawy SQL

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

Język SQL, zajęcia nr 1

Hurtownia Świętego Mikołaja projekt bazy danych

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

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Język PL/SQL Wprowadzenie

Wykład 6. SQL praca z tabelami 3

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

Wykład 5. SQL praca z tabelami 2

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

1 Kolekcje Operacje masowe VARRAY NESTED TABLES Tabele asocjacyjne Perspektywy obiektowe 10.

Bazy Danych i Usługi Sieciowe

Programowanie w Ruby

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

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

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

Bartosz Jachnik - Kino

Bloki anonimowe w PL/SQL

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Zaawansowane bazy danych i hurtownie danych semestr I

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wykład 8. SQL praca z tabelami 5

Bazy danych. dr inż. Arkadiusz Mirakowski

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Jerzy Nawrocki, Wprowadzenie do informatyki

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

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

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Bazy danych i usługi sieciowe

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

20 kwietnia Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska. Systemy baz danych - wykład IX. dr inż.

Oracle PL/SQL. Paweł Rajba.

Oracle11g: Wprowadzenie do SQL

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

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

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

Deklarowanie kursora. CURSOR nazwa [ ( param1 typ1 [,param2 typ2]... ) ] [RETURN typ zwracany] IS zapytanie SQL;

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

Transkrypt:

Obiektowe bazy danych Obiektowo-relacyjne bazy danych Wykład prowadzi: Tomasz Koszlajda Obiektowo-relacyjne bazy danych Ewolucja rozszerzeń relacyjnego modelu danych: Składowanie kodu procedur w bazie danych Możliwość definiowania nowych typów danych Konstruktory złożonych typów danych Dziedziczenie typów danych Możliwość definiowania obiektowych typów danych Referencyjny typ danych Hierarchie zbiorów danych Standard: SQL3/SQL99 Produkty komercyjne: Oracle, DB2 1

Definiowanie nowych typów danych create type Punkt as object( x Float, y Float, member procedure przesuń(px Float, py Float)); create type body Punkt as member procedure przesuń(px Float, py Float) is begin self.x := self.x + px; self.y := self.y + py; Punkt end przesuń; end; create type koło as object( środek Punkt, Promień Float); +X : Float +Y : Float +przesuń(float,float) Dziedziczenie create type figura as object ( typ varchar(10), not instantiable member procedure przesuń(px Float, py Float), not instantiable member function powierzchnia return Float) not instantiable not final; -- klasa koło dziedziczy po klasie figura create type koło under figura ( środek Punkt, promień Float, overriding member procedure przesuń(px Float, py Float), overriding member function powierzchnia return Float); Figura {abstract, persistence} +Typ : String +Powierzchnia() : Float +Przesuń(Float, Float) Koło #środek : Punkt #promień : Float +Powierzchnia() : Float +Przesuń(Float, Float) 2

Tabele obiektów W obiektowo-relacyjnych bazach danych tabele mogą przechowywać krotki albo obiekty. create type Koło as object( środek Punkt, promień Float, member procedure przesuń(px Float, py Float), member function powierzchnia return Float); Koło #środek : Punkt #promień : Float +Powierzchnia() : Float +Przesuń (Float, Float) create table Koła of Koło; // Tabela obiektów insert into Koła values (new Koło(new Punkt(10.5, 7.2), 10.0)); konstruktor klasy Punkt Tożsamość danych Obiekty przechowywane w tabelach mają przypisany systemowy identyfikator OID gwarantujący rozróżnialność obiektów niezależnie ż i od przechowywanych h w nich wartości. ś create table Koła of Koło; insert into Koła values (new Koło(new Punkt(10.5, 7.2), 10.0)); select ref(k), value(k) from Koła k; identyfikator obiektu wartość obiektu 3

Złożone struktury danych Konstruktory typu umożliwiają modelowanie złożonych i wielowartościowych atrybutów danych. create type Punkt as object( x Number, y Number); create type TablicaWierzchołków as varray(2) of Punkt; create type Odcinek as object( Wierzchołki TablicaWierzchołków); create type ZbiórKrawędzi as table of Odcinek; create type Wielokąt as object( Krawędzie ZbiórKrawędzi); create table Wielokąty of Wielokąt; Punkt +X : Float +Y : Float Odcinek #Wierzchołki[2] : Punkt Wielokąt #Krawędzie[3..*] : Odcinek Dostęp do złożonych struktur danych Przetwarzanie atrybutów wielowartościowych: insert into table ( select krawędzie from Wielokąty w where ref(w) = :x) values (new Odcinek(new Punkt(0,0), new Punkt(7,7)); update table ( select ect krawędzie from Wielokąty w where ref(w) = :x) k set k.wierzchołki = new Punkt(1,1) where ref(k) = &y; 4

Dostęp do złożonych struktur danych "Rozpłaszczanie" zagnieżdżonych kolekcji select d.imię from Zespoły z, z.pracownicy p, p,dzieci d Typ wyniku, zagnieżdżone kolekcje: set<set<set<varchar>>> select d.imię from Zespoły z, Table(z.Pracownicy p), Table(p,dzieci d) Typ wyniku: set<varchar> Operacje na atrybutach wielowartościowych Możliwość konstruowania wyrażeń logicznych odwołujących się do własności atrybutów wielowartościowych select k.imię, k.nazwisko Kandydaci k inner join OfertyPracy o on o.językiobce submultiset of k.wymag_języki or cardinality (o.języki_obce Multiset intersect k.wymag_języki) > 3 5

Duże obiekty Typy danych LOB (Large OBject) dla: niestrukturalnych system bazy danych nie interpretuje wartości danych dużych danych 128 TB Typy dużych obiektów: - wewnętrzne BLOB binarne CLOB tekstowe - zewnętrzne BFILE Heterogeniczne kolekcje danych Ta sama tabela obiektów może przechowywać obiekty różnych typów danych o potencjalnie różnej strukturze. create type figura as object (typ Varchar(10)); create type koło under figura ( środek Punkt, promień Float); create type wielokąt under figura (...); create table Figury of figura; insert into Figury values (new Koło(new Punkt(10.5, 7.2), 10.0)); insert into Figury values(new Wielokąt(...)); select value(f) from Figury f; -- wynikiem są koła i wielokąty select value(f) from Figury f where value(f) is of (koło); -- wynikiem są koła 6

Dynamiczne wiązanie metod create type figura as object ( member function powierzchnia return Float); create type koło under figura (overriding member function powierzchnia return Float); create type wielokąt under figura (overriding member function powierzchnia return Float); create table Figury of figura; insert into Figury values (new Koło(...)); insert into Figury values (new Wielokąt(...)); select f.powierzchnia( ) from Figury f; wiązanie dynamiczne Referencyjny typ danych Nowy systemowy typ danych REF służy do modelowania związków między obiektami. create type Osoba as object( imię varchar(10), nazwisko varchar(20)); create type Obraz as object( utworzony Date, autor REF Osoba); Obraz #utworzony : Date [1..*] autor [1] Osoba +imię : String +nazwisko : String create table Obrazy of Obraz; create table Osoby of Osoba; insert into Osoby values ('Jan','Tarzan'); insert into Obrazy select '1-04-2006', ref(o) from Osoby o where nazwisko = 'Tarzan'; 7

Związki o krotności N create type ZbiórAutorów as table of ref Osoba; create type Obraz as object( Obraz utworzony Date, autorzy ZbiórAutorów); create table Obrazy of Obraz nested table autorzy store as aut;... insert into Obrazy select '1-04-2006', tabela zagnieżdżona TypAutorzy(ref(o)) from Osoby o where nazwisko = 'Tarzan'; insert into Table (select autorzy from Obrazy) (select ref(o) from Osoby o where nazwisko = 'Nowak'); #utworzony : Date [1..*] autor [1..*] Osoba +imię : String +nazwisko : String związek wielokrotny nowe powiązanie Wyrażenia ścieżkowe Możliwe jest tworzenie wieloczłonowych wyrażeń ścieżkowych nawigujących wzdłuż powiązań między obiektami lub w głąb złożonych struktur obiektów. ścieżka w głąb obiektu select o.utworzony, a.nazwisko, o.elementy.typ from Obrazy o, table(o.autorzy) a ścieżka wzdłuż związku 8

Podsumowanie własności Siła modelu obiektowo-relacyjnego jest porównywalna z homogenicznym modelem obiektowym Rozszerzenia obiektowe są wykorzystywane do implementacji rozszerzeń systemu bazy danych Obiektowo-relacyjny model danych jest znacznie trudniejszy do integracji z systemem typów danych aplikacji obiektowych 9