background image

 

 

Obiektowe rozszerzenia 

relacyjnych baz danych.

Serwery transakcyjne, obiekty 

stanowe i bezstanowe.

 

por. Jarosław Koszela
Warszawa 21.02.2001r.

background image

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

background image

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

background image

Obiektowe rozszerzenia RDB

Gruby klient , czy gruby serwer ?

GUI

Aplikacj

a

Dane

Klient

Serwer

Gruby klient

Gruby serwer

background image

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

background image

Obiektowe rozszerzenia RDB

System

operacyjny

ORBD

aplikacje

aplikacje

Technologia wykorzystywana w obecnie 

tworzonych systemach informatycznych

COM,

CORBA

background image

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;

background image

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.
 

background image

Obiektowe rozszerzenia RDB

IBM – relacyjne rozszerzenia : UDT,UDF

background image

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

background image

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. 

background image

Obiektowe rozszerzenia RDB

Informix – rozszerzenie relacyjnej BD

background image

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 

background image

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;

background image

Obiektowe rozszerzenia RDB

Oracle – rozszerzenie relacyjnej BD

background image

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; 

background image

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)

background image

Obiektowe rozszerzenia RDB

Sybase – rozszerzenie relacyjnej BD

background image

Obiektowe rozszerzenia RDB

ORDBMS

 

Oracle8

 

 

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

background image

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

background image

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

background image

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;

background image

Serwery transakcyjne, 
serwery aplikacyjne

Transakcja rozproszona – Windows 

NT/2000

background image

Serwery transakcyjne, 
serwery aplikacyjne

Serwer aplikacji - Borland Application 

Server

 

background image

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;

background image

Dziękuję za uwagę.


Document Outline