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).