19. Standard SQL3. SQL3 - powstał w wyniku przenikania koncepcji

Transkrypt

19. Standard SQL3. SQL3 - powstał w wyniku przenikania koncepcji
19. Standard SQL3.
SQL3 - powstał w wyniku przenikania koncepcji obiektowych do systemów relacyjnych.
Równocześnie wprowadzono wiele poprawek do poprzednich standardów SQL.
Intencją standardu jest poprawa istniejących, sprawdzonych cech relacyjnej technologii bez
wprowadzania zbyt rewolucyjnych zmian.
SQL3 jest kontynuacją linii SQL-92, rozwijaną przez ANSI (American National Standard Institute),
komitet X3H2, oraz ISO (International Standard Organization).
Pierwsze wydanie 1999 r., kolejna poprawiona wersja w roku 2003.
Rozszerzenia w stosunku do SQL2:
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 schematu, i inne.
Rozszerzenia w kierunku OO:
Typy definiowane przez użytkownika (abstrakcyjne typy danych (ADT), nazwane typy wierszy,
oraz typy rozróżnione (distinct)
Konstruktory typów dla wierszy (row types) i referencji (reference types)
Konstruktory typów dla kolekcji: zbiorów, list (sekwencji) i wielozbiorów
Definiowane przez użytkownika funkcje i procedury (
Zalety procedur:
nie jest potrzebny interfejs pomiędzy SQL i językiem-gospodarzem
wyeliminowana niezgodność impedancji
zachowana jest informacja o typie umożliwiająca mocną kontrole typu
)
Wspomaganie dla dużych obiektów (Binary Large OBject – BLOB, Character Large OBject CLOB)
Wbudowane typy skalarne
Rozszerzenia w zakresie wyzwalaczy
Jak to dokładnie w szczególe wygląda -> wykład_6 slajdy od 20. Wiekszości można sie samemu
domyślić, ale nie zaszkodzi przejrzeć sobie to, a nie chciałem robić opracowania na 10 stron:/...
20. Porównanie obiektowo-relacyjnych i obiektowych SZBD – to jest taka piguła... od razu
radze przeczytać sobie z raz wykład_6.
Obiektowe bazy danych:
Zalety:
złożone obiekty
typy danych definiowane przez użytkownika
tożsamość obiektów (identyfikator), trwałość
hermetyzacja, hierarchia, dziedziczenie
rozszerzalność
zgodność we wszystkich fazach życia bazy i danych
metody i funkcje przechowywane wraz z danymi
nowe możliwości (wersjonowanie, rejestracja zmian, powiadamianie ...)
możliwość nowych zastosowań mniejszym kosztem (bazy mulitmedialne, przestrzenne, bazy
aktywne...)
Wady:
brak optymalizacji zapytań (w przeciwieństwie do relacyjnych db)
niedopracowane mechanizmy zarządzania dużą baza obiektów
mała liczba ekspertów od technik obiektowych
brak dopracowanych standardów
Obiektowo-relacyjne bazy danych:
Zalety:
przystosowanie do multimediow (obiekty BLOB, CLOB – to są takie cholernie duże obiekty
niezapisane w plikach (np. 1MB) – i dane binarne)
dane przestrzenne (spatial), abstrakcyjne typy danych (ADT)
metody (funkcje i procedury) definiowane przez użytkownika w rożnych językach (C++,
VisualBasic, Java)
kolekcje (zbiory, wielozbiory, sekwencje, tablice zagnieżdżone, tablice o zmiennej długości)
typy referencyjne, przeciążanie funkcji
optymalizacja zapytań
Wady:
wciąż nie uniknięto wielu błędów modelu relacyjnego
brak perspektyw na przyszłość
produkt hybrydowy "dwa w jednym" (redundancja kodu i danych)
brak bazy intelektualnej
zmiany wprowadzane ad hoc (kumulowanie błędów koncepcyjnych)
Porównanie Porównanie - ORDBMS vs. OODBMS
Obydwie technologie wspierają ADT, kolekcje, OID’y, dziedziczenie, ale filozofia ich
całkowicie różna.
ORDB rozszerzają RDB podczas gdy OODB dodają trwałość i zależności bazodanowe do OO
języków programowania.
Obydwie technologie wspierają języki zapytań do operowania na kolekcjach, hierarchiach i
typach złożonych.
SQL3 jest inspirowane przez koncepcję języków OO i zbiega się z językiem OQL (object query
language).
ORDB zawiera wszystkie udogodnienia z RDB, których to nie posiada OODB.
OODB są zintegrowane z OOPL (Object-Oriented Programming Languages).