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

Podobne dokumenty
Definicja obiektowego modelu danych: struktura i zachowanie

Paweł Kurzawa, Delfina Kongo

Temat : SBQL 1 obiektowy język zapytań.

Języki i środowiska przetwarzania danych rozproszonych

JPS. cwiczenia 3. Stosy, proste zapytania. Michał Lentner Polsko-Japońska Wyższa Szkoła Technik Komputerowych

Języki i Środowiska Programowania Baz Danych 2010/2011 PJWSTK, 2010

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

Temat : SBQL 1 obiektowy język zapytań.

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Obiektowe bazy danych

Przegląd języków zapytań

Obiektowe bazy danych

Oracle11g: Wprowadzenie do SQL

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

Implementacja schematów i statycznej kontroli typów w systemie JLoXiM

Post-relacyjne bazy danych

Paweł Rajba

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

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Interpreter Języka Zapytań SBQL dla Office Object Portal

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Microsoft SQL Server Podstawy T-SQL

Technologie baz danych

Programowanie obiektowe

Obiektowe bazy danych

Relacyjne bazy danych. Podstawy SQL

1 Wstęp do modelu relacyjnego

Programowanie obiektowe

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

Model relacyjny. Wykład II

Alicja Marszałek Różne rodzaje baz danych

BAZY DANYCH model obiektowy. Opracował: dr inż. Piotr Suchomski

Bazy danych - wykład wstępny

Przestrzenne bazy danych Podstawy języka SQL

Języki i środowiska przetwarzania danych rozproszonych

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

Oracle PL/SQL. Paweł Rajba.

Technologie baz danych

Systemy GIS Tworzenie zapytań w bazach danych

Spis treści. Przedmowa

Materiały do laboratorium MS ACCESS BASIC

Relacyjne bazy danych. Podstawy SQL

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

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

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

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

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

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

LAB 3 (część 1 Projektu)

Język SQL, zajęcia nr 1

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

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

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Jerzy Nawrocki, Wprowadzenie do informatyki

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Programowanie współbieżne i rozproszone

Funkcjonalność systemów zarządzania bazami danych przestrzennych w kartografii internetowej (PosrtgreSQL/PostGIS) Krzysztof Kuśnierek

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Bazy danych. Dr inż. Paweł Kasprowski

Obiektowe i obiektowo-relacyjne. bazy danych

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

Podstawy Programowania Obiektowego

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Język SQL, zajęcia nr 2

Temporalne bazy danych

Tworzenie aplikacji bazodanowych

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

Model relacyjny. Wykład II

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

BAZY DANYCH Podstawowe pojęcia

Język SQL podstawy zapytań

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

Model semistrukturalny

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

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

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

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

Podstawy języka SQL cz. 2

RBD Relacyjne Bazy Danych

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

Teoretyczne podstawy informatyki

Bazy danych Język SQL część 1 Wykład dla studentów matem

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

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Transkrypt:

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

Spis treści 1. Wstęp 2. Obiektowe bazy danych Model danych Języki zapytań Dostępne produkty 3. Sbql Główne cechy Model danych Podejście stosowe Przykłady Składnia 4. Materiały

Stack-Based Architecture (SBA) Stack-Based Query Language (SBQL) (prof. Kazimierz Subieta (PJWSTK) [1]) (?) ODMG 4.0 Abstract Store Model (AS) Abstract Object Query Language (AOQL) OMG - "Next-Generation Object Database Standardization" [3]

Obiektowe bazy danych Obiektowa baza danych to zbiór obiektów, których zachowanie się, stan oraz związki są określone zgodnie z obiektowym modelem danych. [wikipedia] zapewniają tradycyjną funkcjonalność baz danych udostępniają dane w postaci obiektowej, czyli takiej samej w jakiej są przechowywane w programach znika konieczność odwzorowania pomiędzy modelem obiektowym a modelem relacyjnym

Model danych

Relacyjna baza danych (przypomnienie) Pojęcia pierwotne: A zbiór nazw atrybutów D zbiór wartości atomowych (napisy, liczby, daty, wartości logiczne) E zbiór typów atomowych (integer, float, string, boolean, date) K zbiór nazw relacji (potem będzie to zbiór klas) Schemat tabel (relacji) kol: K Pfin (A) typ: K Α E (nazwie relacji przyporządkowujemy skończone zbiory nazw kolumn) (nazwie relacji i nazwie atrybutu przyporządkowujemy typ elementarny) funkcja typ jest określona dla takich k i a należących od K i A, że a należy do kol(k) Schemat bazy relacyjnej SchRel = (K, kol, typ)

Obiektowy model danych Pojęcia pierwotne A zbiór nazw atrybutów O zbiór identyfikatorów obiektów (OID) D wartości atomowe (napisy, liczby, wartości logiczne, daty) K zbiór nazw klas i IsA częściowy porządek na K E zbiór typów atomowych (integer, float, string, boolean, date) Wartości złożone W to najmniejszy zbiór o następujących właściwościach: 1. D W (skalar) 2. O W (referencja) 3. Jeśli A1, A2,..., An A (Ai Aj dla i j) oraz w1, w2,..., wn W, to [A1:w1, A2:w2,..., An:wn] W (krotka) 4. Jeśli w1, w2,...,wm W (wi wj dla i j), to {w1, w2,...,wm} W (zbiór) Obiekt Para (o, w) przy czym o O, w W.

Obiektowy model danych Typy T to najmniejszy zbiór o następujących właściwościach: 1. E T (typ elementarny) 2. K T (typ referencyjny) 3. Jeśli t T, to {t} T (typ zbiorowy) 4. Jeśli A1, A2,..., An A (Ai Aj dla i j) oraz T1, T2,..., Tn T, to [A1:T1, A2:T2,..., An:Tn] T (typ krotkowy) Hierarchia typów częściowy porządek na T (podtyp nadtyp) jest najmniejszym częściowym porządkiem o następujących właściwościach: 1. Jeśli K IsA L, to K L [Pracownik IsA Osoba, więc Pracownik Osoba] 2. Jeśli t = [A1:T1, A2:T2,..., An:Tn] T i u = [B1:U1, B2:U2,..., Bm:Um] T oraz n m i dla każdego i = 1, 2,..., n istnieje j takie, że Ai = Bj i Uj Ti, to u t. 3. Jeśli t u, to {t} {u}. Schemat struktury SchStruct = (K, IsA, typ) typ: K T musi spełniać warunek: K IsA L typ(k) typ(l)

Języki zapytań

OQL - Object Query Language SELECT struct( w: x.wiek, p: x.płeć ) FROM (SELECT y FROM Pracownicy AS y WHERE y.gr_zawodowa = 10) AS x WHERE x.nazwisko = "Nowak" SELECT d.adres FROM Osoby AS x, x.dzieci AS d WHERE x.adres.ulica = "Chrobrego" AND count(x.dzieci) >= 2 AND d.adres.miasto!= x.adres.miasto

Jezyki zapytań XML-QL XSLT OCL - Object Constraint Language ODL - Object Definifion Language AOQL (SBQL)

Dostępne produkty 1. POET 2. Versant 3. Objectivity/DB 4. Gemstone 5. ObjectStore 6. Jasmine Inne: opcja obiektowa w Oracle loxim, ODRA, jloxim

SBQL - główne cechy podejście stosowe w którym zakładamy, że języki zapytań są szczególnym przypadkiem języków programowania zapytania pełnią rolę wyrażeń znanych z języków programowania posiada mechanizm mocnej kontroli typów został on wymieniony w publikacji OMG (Object Management Group) jako podstawa do dalszych prac nad standaryzacją obiektowych baz danych [3]

Model danych Stack-Based Architecture (SBA) as0: obejmuje dowolnie powiązane hierarchiczne struktury danych; nie obejmuje klas, dziedziczenia, interfejsu i hermetyzacji. Model as0 pozwala wyjaśnić semantykę relacyjnych języków zapytań (szczególnie SQL), przykrywa koncepcję zagnieżdżonych relacji, struktury implikowane przez XML i dane określane jako półstrukturalne.

SBQL - model danych Podstawowe pojęcia I - zbiór identyfikatorów (i, i1, i2,... - oznaczenia identyfikatorów) N - zbiór nazw (n, n1, n2,... - oznaczenia nazw) V - zbiór wartości atomowych (v, v1, v2,... - oznaczenia wartości) Obiekt atomowy: trójka <i, n, v>. Obiekt pointerowy: trójka <i1, n, i2>. Obiekt jest identyfikowany przez i1, natomiast i2 jest pointerem (referencją) do innego obiektu. Obiekt złożony: trójka <i, n, T>, gdzie T jest zbiorem dowolnych obiektów. Powyższa reguła umożliwia rekurencyjne tworzenie obiektów o nieograniczonej złożoności i o nieograniczonej liczbie poziomów hierarchii.

Model danych as1: uzupełnia as0 o pojęcia klasy, dziedziczenia i wielodziedziczenia w najczęściej spotykanym rozumieniu; nie obejmuje hermetyzacji i interfejsu. as2: uzupełnia model as1 oraz nieco go modyfikuje wprowadzając dziedziczenie pomiędzy obiektami oraz dynamiczne role. Można go również uważać jako model odwzorowujący koncepcję wielu interfejsów do obiektu. as3: uzupełnia model as1 lub as2 o pojęcie hermetyzacji - podział własności klas i obiektów na publiczne i prywatne.

Podejście stosowe Zakłada, że języki zapytań są szczególnym przypadkiem języków programowania. Kluczową rolę odgrywa stos środowisk (environment stack)

Przykłady 2000 Literał Emp Sal Nazwa Nazwa 2+2 Operator algebraiczny sal > 2000

Przykłady Emp where (sal > 2000) Emp where (sal > 2000). (name, (worksin.dept)) ((Emp as e) where ((e.sal) > (2000 + x + y))).e.name ((Emp as e) join ((e.worksin.dept) as d)). (e.name, Dependent join with auxiliary d.dname)

Przykłady (Emp where sal < 1000) ((worksin.dept.dname) = Ads ) (Emp as e) count(e.address) = 0 bag(1, 1, 2, 3, 5, 8, 3, 13) Bag constructor

Składnia query ::= literal query ::= name query ::= unaryalgoperator query unaryalgoperator ::= count sum max - sqrt not avg... query ::= query binaryalgoperator query binaryalgoperator ::= = < > + - * / and or intersect...

Składnia query ::= query NonAlgOperator query NonAlgOperator ::= where. join query ::= query query query query query ::= query as name query ::= query group as name query ::= if query then query query ::= if query then query else query

Składnia queryseq ::= query query, queryseq Sequence of queries query ::= struct( queryseq ) (queryseq) Structure constructor query ::= bag( ) bag( queryseq ) Bag constructor query ::= sequence( ) sequence( queryseq ) Sequence constructor

Materiały 1. www.sbql.pl 2. http://www.ipipan.waw.pl/~subieta/wyklady 3. http://www.omg.org/docs/mars/07-09-13.pdf 4. http://stencel.mimuw.edu.pl/obd