Post-relacyjne bazy danych

Podobne dokumenty
Obiektowe bazy danych

Oracle PL/SQL. Paweł Rajba.

15. Funkcje i procedury składowane PL/SQL

Obiektowe bazy danych Obiektowe i obiektowo-relacyjne bazy danych

Obiektowe bazy danych Ćwiczenia laboratoryjne (?)

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

Obiektowe bazy danych

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

Temporalne bazy danych

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

Obiektowe bazy danych

Bazy danych. Dr inż. Paweł Kasprowski

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

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

Procedury i funkcje składowane

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

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

Obiektowe i obiektowo-relacyjne. bazy danych

DECLARE VARIABLE zmienna1 typ danych; BEGIN

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

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

Bazy Danych i Usługi Sieciowe

Wykład 8. SQL praca z tabelami 5

Przykładowa baza danych BIBLIOTEKA

PODSTAWY BAZ DANYCH 13. PL/SQL

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Bazy danych i usługi sieciowe

Język SQL, zajęcia nr 1

Programowanie w Ruby

Oracle PL/SQL. Paweł Rajba.

Relacyjne bazy danych. Podstawy SQL

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

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

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

Wykład 05 Bazy danych

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

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

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Wykład 5. SQL praca z tabelami 2

Aspekty aktywne baz danych

Hurtownia Świętego Mikołaja projekt bazy danych

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

Dr Michał Tanaś(

Wykład 6. SQL praca z tabelami 3

Model semistrukturalny

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

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

Relacyjne bazy danych. Podstawy SQL

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

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

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

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

Bazy danych 6. Klucze obce. P. F. Góra

SQL 4 Structured Query Lenguage

Składowane procedury i funkcje

Jerzy Nawrocki, Wprowadzenie do informatyki

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

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

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

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

Paweł Kurzawa, Delfina Kongo

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

BAZA DANYCH SIECI HOTELI

Bazy danych i usługi sieciowe

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

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

Przestrzenne bazy danych Podstawy języka SQL

Pakiety podprogramów Dynamiczny SQL

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

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

Projektowanie systemów baz danych

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

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

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

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

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

Temat : SBQL 1 obiektowy język zapytań.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Bloki anonimowe w PL/SQL

Struktura drzewa w MySQL. Michał Tyszczenko

Systemowe aspekty baz

Plan. Rozszerzenie obiektowe w SZBD Oracle

PL/SQL. Zaawansowane tematy PL/SQL

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

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

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

Ćwiczenia 2 IBM DB2 Data Studio

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

SQL :: Data Definition Language

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Obiektowe bazy danych

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

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

Bazy danych 7. SQL podstawy

Modelowanie wymiarów

Programowanie obiektowe - 1.

Transkrypt:

Post-relacyjne bazy danych

Historia języka SQL 1. Sequel-XRM 2. Sequel/2 SQL 3. ANSI SQL 1986 (ISO 1987) 4. X/Open (UNIX), SAA(IBM) 5. ANSI SQL 1989 6. ANSI/ISO SQL 92 Entry level 7. ANSI SQL 92 (SQL 2) 8. ANSI SQL 93 (SQL 3) w toku 9. ANSI SQL:1999 10. SQL 4 w toku

Struktura standardu SQL3 1. SQL/Framework (WD) 2. SQL/Foundation (CD - 7.96) zapytania rekurencyjne autoryzacja dostępu (role) procedury wyzwalane (triggers) własności obiektowe 3. SQL/CLI - Call Level Interface (DIS - 7.94) 4. SQL/PSM - Persistent Storage Modules (CD - 1.94) składowane funkcje składowane procedury pakiety 5. SQL/Bindings - Host Language Bindings (WD) 6. SQL/Transaction - XA Specialization (WD) 7. SQL/Temporal 8. SQL/Objects - Extended Object (CD - 7.96) 9. SQL/VirtualTable

Własności obiektowe w SQL3 Wydział Nazwisko Adres Miasto Ulica Pracownik >>, <<, += Życiorys Języki obce Inżynier Kierownik Sekretarka Konstruktory typów modelowanie atrybutów wielowartościowych i złożonych Abstrakcyjne typy danych (metody, hermetyczność, dziedziczenie, późne wiązanie) - modelowanie nowych typów danych Typ referencyjny (identyfikatory obiektów, nawigacja między obiektami) modelowanie powiązań między obiektami Hierarchia podzbiorów modelowanie powiązań między zbiorami

Konstruktory typów SQL3 umożliwia modelowanie atrybutów złożonych i wielowartościowych za pomocą konstruktorów typu: ROW, SET, MULTISET, LIST, ARRAY; CREATE ROW TYPE Adres ( kod integer, miasto char(30), województwo char(20), gmina/dzielnica char(30), ulica char(30), numer_ulicy integer, numer_domu integer); CREATE TABLE Osoby ( nazwisko char(30), imię char(20), adresy LIST(Adres), data_urodzenia date, języki_obce SET(char 12) telefon ROW ( kierunkowy integer(2), prefiks integer(4), numer integer(7)) );

Dostęp do atrybutów złożonych SQL3 umożliwia dostęp i przetwarzanie atrybutów złożonych i wielowartościowych SELECT nazwisko, adres..miasto, adres..ulica FROM Osoby WHERE telefon..kierunkowy='61'; SELECT ITEM o.języki_obce FROM Osoby o; SELECT nazwisko FROM Osoby o WHERE 'język angielski' IN ( SELECT * FROM TABLE (o.języki_obce) j); UPDATE Osoby SET adres..ulica = "PIWNA" WHERE nazwisko = "DZIUBUTKIEWICZ"; INSERT INTO Osoby VALUES ( 'Tarzan', Jan', LIST( ROW('60-001', 'Poznań', 'Wierzbowa', 45)), SET('angielski', 'niemiecki'));

Abstrakcyjne typy danych Abstrakcyjne typy danych umożliwiają definiowanie przez użytkownika własnych typów danych. Definicja operatora obejmuje jego fizyczną strukturę i interfejs. Dla publicznych atrybutów typu system generuje automatycznie dwa typy metod: metodę observer i metodę mutator. CREATE TYPE Osoba ( PUBLIC imię varchar(15), nazwisko char(30), FUNCTION wiek (o Osoba) RETURNS interval day; BEGIN RETURN current_day - o.data_urodzenia; END; FUNCTION ustaw_wiek(o Osoba, d interval day) RETURNS Osoba; BEGIN set o.data_urodzenia = current_day - d; return o; END; PROTECTED data_urodzenia date ); System wygeneruje dla powyższego typu metody observer i mutator dla atrybutów: imię i nazwisko. FUNCTION imię (Osoba) RETURNS varchar(15) FUNCTION imię (Osoba, varchar(15)) RETURNS Osoba...

Dziedziczenie SQL3 umożliwia definiowanie nowych abstrakcyjnych typów danych za pomocą dziedziczenia własności po typach już zdefiniowanych. Mechanizm dziedziczenia pozwala na stosowanie polimorfizmu i późnego wiązania redefiniowanych metod. CREATE TYPE Pracownik UNDER Osoba ( PUBLIC etat varchar(15); płaca ROW ( płaca_zasadnicza decimal(6,2), premia decimal(6,2); nadgodziny decimal(6,2)) );

Referencyjny typ danych Referencyjny typ danych pozwala na jawne modelowanie związków między danymi. Wartościami referencyjnego typu danych są identyfikatory obiektów określonego typu. // definicja typu krotkowego CREATE ROW TYPE Podwozie ( // typ referencyjny - identyfikator obiektu id REF (Podwozie),...); CREATE TABLE Podwozia OF TYPE Podwozie (VALUES FOR id // identyfikator obiektu IS SYSTEM GENERATED); CREATE TYPE Cylinder (... ); CREATE ROW TYPE Silnik ( id REF(Silnik), Cylindry SET (Cylinder),...); CREATE TABLE Silniki OF TYPE Silnik (VALUES FOR id // identyfikator obiektu IS SYSTEM GENERATED); CREATE ROW TYPE Samochód ( id int(9), silnik REF(Silnik), // atrybut referencyjny podwozie REF (Podwozie),...); CREATE TABLE Samochody OF TYPE Samochód (SCOPE FOR podwozie IS Podwozia, SCOPE FOR silnik IS Silniki);

Nawigacja wzdłuż referencji operatory referencji i dereferencji SQL3 umożliwia wielopoziomową nawigację wzdłuż związków referencji. Operacja ta jest odpowiednikiem klasycznej operacji połączenia. SELECT id, silnik->numer, podwozie->typ FROM Samochody WHERE klasa = 'COMPACT'; UPDATE Podwozia p SET cena = 8000 WHERE REF ROW p = (//referencja pobranie identyfikatora SELECT podwozie FROM Samochody WHERE nazwa= 'SAAB95'; Operacja referencji zamienia identyfikator krotki na jego wartość. Operacja dereferencji zamienia wartość (krotkę) na jej identyfikator.

Hierarcha podzbiorów Hierarchia podzbiorów jest ortogonalna do hierarchii dziedziczenia ADT. Hierarchia ta pozwala na propagacje operacji modyfikacji danych na wszystkie podzbiory. Pracownicy Kierowcy Inżynierowie CREATE TABLE Pracownicy (...); CREATE TABLE Kierowcy UNDER Pracownicy (...); CREATE TABLE Inżynierowie UNDER Pracownicy (...);... UPDATE Pracownicy SET płaca=1.05*płaca; // inżynierowie + kierowcy + pozostali pracownicy

Masowe struktury danych i ich przetwarzanie Relacyjny model danych Schemat bazy danych Baza danych schemat relacji1 schemat relacji2 schemat relacjin relacja1 relacja2 relacjan Relacja = zbiór krotek operacja selekcji Post-relacyjny model danych Relacja = zbiór krotek

Obiektowe a relacyjne bazy danych Postęp 1. Składowanie i przetwarzanie obiektów złożonych 2. Tożsamość obiektów 3. Rozszerzalność zbioru typów danych, dziedziczenie 4. Modelowanie własności behawioralnych w bazie danych 5. Rozwiązanie problemu impedance mismatch Regres 1. Zagubienie prostoty modelu relacyjnego 2. Brak deklaratywnego języka zapytań ad-hoc 3. Efektywność przetwarzania?