Obiektowe rozszerzenia
relacyjnych baz danych.
Serwery transakcyjne, obiekty
stanowe i bezstanowe.
por. Jarosław Koszela
Warszawa 21.02.2001r.
Plan seminarium
Obiektowe rozszerzenia RDB
UDT,UDF - IBM
Cardridges – Oracle
DataBlades – Informix
Embeded Java – Sybase
Serwery transakcyjne, serwery aplikacji
– MS MTS, Jaguar CTS, BEA Tuxedo...
Technologie CORBA, COM/DCOM -
COM+ - obiekty stanowe i bezstanowe
Obiektowe rozszerzenia RDB
Ewolucyjne przejście z modelu relacyjne-
go w kierunku modelu obiektowej bazy
danych („pseudoobiektowe” bazy danych).
ORBD korzystają z modelu danych
zawartego w standardzie SQL3.
Nowe, abstrakcyjne, typy danych – ADT.
Język zapytań SQL3 (ObjectSQL) jest
rozszerzeniem ANSI SQL 92
Obiektowe rozszerzenia RDB
Gruby klient , czy gruby serwer ?
GUI
Aplikacj
a
Dane
Klient
Serwer
Gruby klient
Gruby serwer
Obiektowe rozszerzenia RDB
Model klient-serwer (wg Gartner Group)
PREZENTACJA
PREZENTACJA PREZENTACJA PREZENTACJA PREZENTACJA
FUNKCJA
FUNKCJA
FUNKCJA
FUNKCJA
FUNKCJA
FUNKCJA
PREZENTACJA
DANE
DANE
DANE
DANE
DANE
DANE
PREZENTCJA
ROZPROSZONA
PREZENTCJA
ZDALNA
FUNKCJA
ROZPROSZONA
ZDALNE
ZARĄDZANIE
DANYMI
ROZPROSZONA
BAZA DANYCH
Obiektowe rozszerzenia RDB
System
operacyjny
ORBD
aplikacje
aplikacje
Technologia wykorzystywana w obecnie
tworzonych systemach informatycznych
COM,
CORBA
Obiektowe rozszerzenia RDB
IBM – DB 2 (UDB 2)
mechanizmy relacyjnych rozszerzeń -
DB2 Relational Extenders
UDT
– nowy typ danych (Unique Data Type)
implementuje złożone typy danych;
bazując na UDT można definiować kolumny
tabel, triggery i procedury;
Kolekcje UDT;
UDF
– jest nową funkcją z możliwością
skojarzenia z UDT lub ze standardowym typem
danych. UDF można tworzyć w C, Fortranie lub
4GL;
Obiektowe rozszerzenia RDB
LOB’y
(Large Objects);
procedury przechowywane
(stored
procedures);
triggers
– mogą być aktywowane poprzez
wykonanie pewnych operacji na UDT lub
przez wywołanie UDF. Mogą wywoływać
procedury przechowywane;
Relational Extenders są używane do definiowania i
implementacji nowych złożonych typów danych.
Grupują (enkapsulacja) atrybuty, strukturę i
zachowanie tych typów.
Obiektowe rozszerzenia RDB
IBM – relacyjne rozszerzenia : UDT,UDF
Obiektowe rozszerzenia RDB
Informix (Universal Server – NewEra)
DataBlades
- zorientowane obiektowo
pakiety
zawierają definicję typu i metody związane z
danym typem;
typ wierszowy
(row type) -złożony z pewnej
liczby kolumn bazujących na prostych typach lub
zdefiniowanych przez użytkownika;
typ odrębny
(distinct type) – pozwala
redefiniować istniejące typy do bardziej
wyspecjalizowanych;
typ opakowany
(opaque types) najbardziej
elastyczny – zaimplementowany w C, C++ lub
Javie, definiuje takie aspekty jak np. sposób
przechowywania i indeksowania danych
określonego typu);
Obiektowe rozszerzenia RDB
zawierają
ograniczenia na typ
(constraints);
metod dostępów
– mogą operować na
tabelach, indeksach i mogą być
wykorzystane w zapytaniach SQL;
DataBlade Developers Kit
–graficzne
środowisko do tworzenia nowych typów
danych i funkcji.
Obiektowe rozszerzenia RDB
Informix – rozszerzenie relacyjnej BD
Obiektowe rozszerzenia RDB
Oracle – Oracle8, Oracle9
Cartridges
– podstawowe komponenty w NCA
(Oracle Network Computing Architecture):
Universal Application Server,
Oracle Universal Server,
aplikacje klienta;
Typy Cartridges
:
Data Cartridges
są przetrzymywane na serwerze
bazodanowym
Application Server Cartridges
– mogą działać
zarówno na serwerze aplikacyjnym, jak również na
bazodanowym;
Client Cartridges
– działają na maszynie klienta i
mają dostęp do standardowych usług typu user-
interface
Obiektowe rozszerzenia RDB
struktura Cartridge
- definiowana
poprzez SQL3;
interfejsy Cartridge
- tworzone w IDL
(OMG);
Cartridge tworzy
się w C, C++,
PL/SQL, Javie;
Komunikacja poprzez ICX
- Inter-
Cartridge Exchange (zbiór klas i
usług), używa HTTP i IIOP, dostarcza
interfejsów do ActiveX, COM, Javy;
Obiektowe rozszerzenia RDB
Oracle – rozszerzenie relacyjnej BD
Obiektowe rozszerzenia RDB
Sybase – Adaptive Server
Enterprise/Anywhere
Java w bazie danych
:
integracja Java Virtual Machine Sybase
, zgodnej z
JavaSoft, wykonywanie kodu bajtowego Javy w tej samej
przestrzeni adresowej;
możliwość instalowania gotowych pakietów Javy
, klas
oraz plików JAR na serwerze, wykorzystanie ich bez
dodatkowych modyfikacji;
klasy Javy definiowany przez użytkownika
są użyteczne
w wielu instrukcjach SQL DML, implementacja funkcji
jako metod klas Javy oraz obsługa DML w kodzie Javy
przez wewnętrzny sterownik JDBC;
Obiektowe rozszerzenia RDB
abstrakcyjne typy danych
Javy - możliwość
implementacji klas Javy jako kolumnowego typu
danych, każdy wiersz kolumny staje się
obiektem Javy, oraz obsługa wywołań metod
tych klas;
możliwość debugowania kodu Javy
wykonywanego na odległym serwerze Sybase.
Język zapytań SQLJ
(SQL + Java)
Obiektowe rozszerzenia RDB
Sybase – rozszerzenie relacyjnej BD
Obiektowe rozszerzenia RDB
ORDBMS
Informix NewEra
1. Podstawowe cechy
obiektów
1.1. OID
TAK
Bez danych
1.2. UDT
TAK
Tak
1.3. Dziedziczenie
pojedyncze w Oracle8.1
Wielokrotne
1.4. Hermetyzacja
TAK
TAK
1.5. Polimorfizm
NIE
TAK
1.6. Powiązania
TAK
TAK
1.7. Agregacja
TAK
Bez danych
1.8. Złożone typy
TAK
TAK
1.9. Container types
VARRAYS
TAK *
1.10. „Długie” transakcje
TAK
TAK
1.11. Zarządzanie wersjami
NIE
TAK
1.12. Replikacja
TAK
Bez atrybutów
1.13. Szyfrowanie danych
TAK
Bez atrybutów
1.14. Rozszerzenia
danych
CARDRIDGES
2
Data Blades
2. Języki
2.1. Definiowanie
atrybutów
PL/SQL
INFORMIX-4GL
2.2. Definiowanie metod
PL/SQL, C/C++, JAVA; w Oracle8.1 i J/SQL
C/C++, INFORMIX-4GL, COBOL
3. Standard
3.1. ODBC
przez NCA
TAK
3.2. SQL92
TAK
TAK
3.3. SQL3
4
TAK
TAK
3.4. ODMG
through Oracle Lite
NIE
3.5. DRDA
NIE
TAK
Serwery transakcyjne,
serwery aplikacyjne
Serwery transakcyjne, aplikacyjne –
bazy aplikacji, komponentów
(elementów programowych), z
zdefiniowanym interfejsem dostępu do
gromadzonych komponentów (MTS,
Jaguar CTS, Visigenic,..);
Obsługa standardowych komponentów
(Java, EJB 1.0, i JavaBeans, COM/ ActiveX,
CORBA);
Otwarta komunikacja
(HTTP/HTTPS,
DCOM, TDS, IIOP/IIOPS);
Serwery transakcyjne,
serwery aplikacyjne
Rozproszone i przenośne rozwiązania
(internetowe);
kontroluje komunikacje
między klientem i
danymi (start procesów, monitorowanie pracy
usług , obciążenia, wyważania);
obsługa komunikacji między komponentami
(pozwala wykorzystanie różnych
mechanizmów komunikacji - RPC, MOM) ;
zarządza transakcjami
-zapewnia spełnienie
kryteriów ACID:
niepodzielność (atomicity),
zgodność / spójność (consistency), izolacja (isolation),
trwałość (durability);
Serwery transakcyjne,
serwery aplikacyjne
Bezpieczeństwo
- SSL, identyfikację
użytkowników poprzez klucze publiczne SSL,
zabezpieczenie na poziomie aplikacji za pomocą
Access Control List (ACL), szyfrowanie RSA;
Platformy systemowe
– WinNT/2000,
HPUX, Solaris, AIX,...);
Zarządzanie transakcjami
-
przekierowywanie je w rozproszonym systemie
(routing) ;
Współpraca z Internetem;
Serwery transakcyjne,
serwery aplikacyjne
Transakcja rozproszona – Windows
NT/2000
Serwery transakcyjne,
serwery aplikacyjne
Serwer aplikacji - Borland Application
Server
Obiekty stanowe i bezstanowe
Klasy, obiekty – atrybuty, metody,
hermetyzacja, dziedziczenie, polimorfizm;
Obiekty stanowe
– obiekty
przechowujące w swoim wnętrzu
informacje o swoim stanie;
Obiekty bezstanowe
– obiekty nie
posiadające atrybutów (tylko metody),
interfejsy
:
DCOM (Distributed Component Object
Model)/MTS, COM+ , CORBA;
wykorzystywane głównie w WWW (serwer WWW
jest serwerem bezstanowym);
buforowanie (pooling) obiektów, zasobów;
Dziękuję za uwagę.