Title: kuzloc@ispras.ru
1????????-??????????? ???? ?????? ????????? ????
??? ????????????? ????????????
- ?????? ????????
- ???????? ?????????? ???????????????? ???
- kuzloc_at_ispras.ru
2???? ???????????
- 10 ??? ??????
- Informix Universal Server, Oracle8, DB2 Universal
Database - ??????? ? ???????????? ??????
- ????????-??????????? ???? ?????? ? ???? SQL
- SQL ??? ?????? ??????
- ?????????? ?? ????????? ????? ???????
- ??? ? ??? ?????????? ???????
- ???????? ????????????? ??????
- ?????? ????????????
310 ??? ??????
- ?????? ???????
- ??? ????????? ? ??????? 2006 ?.?
- Informix, Illustra ? ????? ???????????
- ?????? ?? ???, ??? ???????????? ???????? ?????
????????-???????????? ???????? - ? ??? ????? ????????-??????????? ???? ???????
- ?????? ????? ?????? ???????? ?????? ??? ??????
?????????? ?????????, SQL, ?????????? IBM ? Oracle
4Informix Universal Server
- ??????? 1996 ?. ?????? 1997 ?.
- ???????????????? ??????? ??????? (smart large
objects) - ?????????????? ???? ?????? (Distinct Types)
- ???? ?????? ?? ??????? ?????????? (Opaque Types)
5Informix Universal Server
- ????????? ???? ??????
- ????? ????? ????????? ??????, ?????????,
??????????????? ??? ?????? - ?????????? ???????? ?????? ????? ???? ??????,
????????? ??? ??????, ????????? ? ???? ??????? ??
????????? ??? ??????????? ????????
6Informix Universal Server
- ??? ?????? ?? ?????????? ??????
- CREATE ROW TYPE lt??? ????gt ( lt??? ????gt lt???
????gt, . . . ) - ??? ???? ????? ????????? ????????,
?????????????? ? ??????? - CREATE TYPE lt??? ????gt SET lt??? ?????????gt NOT
NULL - CREATE TYPE lt??? ????gt MULTISET lt??? ?????????gt
NOT NULL - CREATE TYPE lt??? ????gt LIST lt??? ?????????gt NOT
NULL
7Informix Universal Server
- ???????? ???????????? ????? ??????????? ? ?????
??????? ? ???????? - ????????? ????????????
- ??? ???????, ???????????? ??? ?????????,
????????????? ???????????????? ?? ??? ??? ??????? - ??? ???????? ????? ???????????? ???? ???????
- ???????? ???????? ????? ?????????????? ?????
?????, ??? ????????? ???????????? ???????? ??
?????????? - ???????????? ??????????? ????????? ??? ?????????
?????? ? ???????? ???????? - ????? ???????????? ????? ?????? ???? ??????
8Informix Universal Server
- T????????????? ??????? (?????? ??????)
- CREATE TABLE OF TYPE
- ??? ??????????? ????????? ????????? ????????
??????????? ????? ???????????????? (????????,
????? ????????) - ???????? SELECT, UPDATE ? DELETE, ??????????? ?
????????????, ???????????????? ????? ? ?? ??? ??
?????????? - ??????????? ONLY
9Informix Universal Server
- ????? ??????? ???? ?????? ????? ??????????
???????????? ? ????????? ??????????? ??????????
????????, ??????? ? ??????????????, ???????
?????????? ?? ??????????? ??????????,
????????????? ? ??????? - ??? ???????? ?????? ???????? ???? ?????? ?
?????????????? ???????? ??????? ????? ??????????
????? ????????? ???????, ??????????? ??? ??????
???? ????????? ???????, ?????????, ?????????
?????? ? ?.?. - ??? ??????? ?????? ???? ???????? ?? ????? C ?
?????????????? ? ????????? ?????? - ????? ???? ??????? ????? ??????? ??? ??????, ?
??????? ???????, ??????????? ??? ????? ????
????????? ?????????? ? ?????? ?? ???? ????????
??????? ???? - ?????? DataBlade
10Oracle8
- ???? 1997 ?.
- ???????? ????????? Oracle 9i (2002 ?.)
???????????? ? ?????? ???????????,
??????????????? SQL1999 - ????????? ???? ?????? ???? ?????? ? IUS
- CREATE TYPE lt??? ????gt AS OBJECT ( lt??? ????gt
lt??? ????gt, . . . ) - ??? ??????? ? ????????? ????? ???????? ??????????
???? ???????????? ???????? ???????
11Oracle8
- ?????? ????????? ?????
- ??????? ??? ?????????, ?????????? ?? PL/SQL,
Java, C ??? ?????? ????? ? ??????????? ? ?? ???
??? ?? - ??????-?????
- ??????????? ??????
- ?????? ?????????
- ????????? ???????? ????? ????????????? ? ???????
??????? ???? MAP ??? ???? ORDER
12Oracle8
- ????? ???? MAP ????????? ? ???????? ?????????
?????? ?????????? ?????????? ????, ? ??????????
???????? ?????? ?? ?????????? ?????, ???????
????? ?????????????? ? ????????? ????????? ?
?????????? - ????? ???? ORDER ?????????? ??? ??????? ?
?????????? 1, ???? ?????? ?????? ?????? ???????,
0, ???? ??????? ?????, ? 1, ???? ?????? ??????
?????? ??????? - ???? ??? ??????????? ?????????? ???? ?????
????????? ?? ?????, ?? ??????? ????? ???? ?????
?????????? ?????? ?? ?????????/???????????,
?????? ??????? ?? ?????? ????????? ????????? ????
LOB
13Oracle8
- ????????? ??????? ???????, ?????? ??????? ?????
????????? ??? - ? Oracle8 ?? ?????????????? ????????????, ?? ?
Oracle8i ????????? ??????????? ????????????
??????, ?? ??? ????????? ???????????? ????????
???????????? ????????? ????? - ????????? ?????????????
14Oracle8
- ?????? ????????? ?????? ?????????? ?????????
????????? (row objects) - ??? ???? ???????? ???????? ??????????????
??????????? ?????????? ????????????? - ??????? ????? ??????? ????? ???? ????????? ??
?????????? ???? REF - ???????? ????? ??????? ???????? ?????? ????
??????????? ?? ???????? ??????? ??? ?? ????? ???
?????? ????????? ??????? - ??????? ?? ????? ?? ???? ??????????????? ??
???????????? ?????? ?? ??? ???????? ????????????
- ?????????????? ?????????? ??????? REF,
??????????? ???????? ???????? ??????????
?????????????? ????????? ?????? - ??????? ? ????????? ??????? ???????? ??????????
???? ????????? ? ???? ??????? ????????
???????????? ???????? (? ???? ??????? ?????????
ODMG)
15Oracle8
- ???? ????????? ????????? ???? (table types) ?
???? ???????? - CREATE TYPE lt??? ????gt AS TABLE OF lt??? ????????gt
- ???????? ??????? ??? ??????? ? ????????? ????????
- CREATE TYPE lt??? ????gt AS VARRAY ( lt???????????
??????????? ?????gt ) OF
lt??? ????????gt - ?? ?????? ??????? SQL ????? ???????? ?????? ?
????????? ??????? - ??????????? ???????? ? ??????? (??? ??????
????????? SQL) ??? ??????? ? ?????????? ????
16DB2 Universal Database
- ????? 1997 ?.
- ??????? ???? ????????-??????????? ?????????? ????
???????? ? ???????? DB2 for Common Servers,
?????????? ? 1995 ?. (?????? ???? ??????????) - BLOB?, ????????, UDF, distinct types, ??????????
- ??????????? ??????????? ???????????? ? ?????????
????????
17DB2 Universal Database
- ???????? ??????????? ????? ? ?????? ??????
??????? ?? ?????? ??????????? ??????????? ?????
?? ??????????, ?? ? ???????? ??????????? ????????
????? ? ???????? ?????? - ??????????? ????????????? ?????? ???
??????????? ?????? ????? ????????? ? ????????? ??
?????? ??????? ? ??????? - ?????? ????? ?????? ?? UDF ? ??? ?????????, ???
??? ????? ???? ???????? ?? SQL ??? ?? ???????
?????, ????????, ?? Java ??? C - ?? ?????? ?????? ????????????? ? ?????????
??????????? ?????, ? ?? ?????? ???????????? ?
??????????, ???????? ?? ?????????? ?????? UDF
18DB2 Universal Database
- ??? ??????????? ?????????????? ??????? ????? ????
??????????????? ?????????????? ???????, ? ???????
????? ????????? ???????? ?????????
??????????????? (OID) ??????? ??????? (??????),
???????????? ? ??????? - ??????? OID ????????? ??? ?????? ??????? ???????,
? ?? ??? ??????? ???????, ???????????????
????????? ???? ??????? - ????????? ?????????????? ???????????? ? ?????????
????????????? (dereference), ?.?. ????????????
??????????? ????????? ?? ?????? ?? ?????? ?
????????????? ?? ? ????????? (????????)
???????????? ???? - ??? ?????? ????????? ???????? ????? ??????,
?????????? ? ?? ???????????? - ??????????? OUTER ? ONLY
- D ???????? ?? DB2 SQL ????? ???????????? ???????
?????????, ?? ?? ? ????????, ? ? ??????????
???????
19DB2 Universal Database
- ????????? ????????????? ??? ???????????
???????, ??????? ????? ???????? ?????????? ?
??????????, ???????? ?? ????????? ? ?????????
??????? ??????, ??????? ? ?????? ????
????????????? - ??? ? ? ?????? ?????????????? ??????, ???????????
?????????? ????????????? ???????????? ??
??????????? ???????????? ???? - ????????? ????????????? ????? ???????????? ???
??????????? ??????? ? ???????????? ????? ????????
?????? ??? ??? ???????? ????????? ???????? ????
???????? - ?????? ????? ?? ?????????????? ???? ?????????, ??
?????? DB2 UDB ????? ???? ????????????? ?????????
SQL
20??????? ? ???????????? ??????
- ???????? ??? ?????? ???????? ????????? (1990 ?.)
- ? ????? 80-? ??? ??? ??????? ???????? UniSQL,
??????????? ? 1991 ?. ?????? ?????? ????????
UniSQL, ??????? ??? ??? ???? ????????
????????-??????????? ???????? - ?????? ????????
- ?????????? ????????? ????????? ????? ???? ??
?????? ??????????? ????????, ?? ? ??????? - ???????? ????????? ????????? ?? ???????????
???????? ?????????? - ??? ?????????? ?????? (???????) ?????
?????????????? ???????? ???????????? - ?????? ???????? ????????
21??????? ? ???????????? ??????
- ????? ????????????
- Ingres ? Postgres
- ? Postgres ??????????? ???????? ? ????? ?????????
?????? ???????????, ???????????? ??????????????
????? - ? 90-? ??. ???????????? ?????? ???????? Illustra,
???????? ????? ??????? ??? ?????? ?????????????
???????? ???? Postgres, ??????????? ????????
Illustra - ? ???? ??????? ?????????????? ???????? ????
Postgres, ?? ??? ?????????????? ? ????????? ?????
SQL
22????????-??????????? ???? ?????? ? ???? SQL
- SQL3, SQL1999, SQL2003
- ??? ??????????? ????????? ?????? SQL ?????????
???????? ?????????????? ?????????
???????????????? ??? ?????? ?????? ? ?????? ?
????? ????????? ?????????? ? ??????????? ??
????????? ??????? - ???????????? ????????? ?????? ?????? ?? ?????????
?????? ????? Java, ?? ??? ???? ???????????? ?
??????? ????? SQL ??? ????? ???? ? ????????
????????? ???????? ?????????? ? ??????
23????????-??????????? ???? ?????? ? ???? SQL
- ??? ???????? ????????????? ??????????
???????????, ???????????? ?????????????? ????
?????? (User Defined Type UDT) ? ??????????????
??????? (Typed Table) - ?????? ????????? ????????? ?????????? ????? ????
??????, ??????? ????? ???? ??????? ?????
????????, ??? ?????????? ???? ?????? ????? SQL - ?????? ????????? ?????????????? ???????
????????? ?????????? ???????, ?????? ???????
???????? ???????????? (??? ??????????) UDT, ?
??????? ???? ????????????? ???????
24SQL ??? ?????? ??????
- SQL ??????? ? ???????????? ????
- ??????, ???? ???????????? ??????????? SQL ?
????????????? ??????????? ?????? ??????, ?????
??????????, ??? ? ????????? ????? ? ????????????
SQL ???????????? ??????????? ?????? ??????,
???????????? ?? ??????????? ??????????
?????????????? ? ?????????????? ???????? - ???????? ??????????? ?????????????? (???????
?????? ??????? ?????), ??????????????? ??????? ?
????????? ???????????
25?????????? ?? ????????? ????? ?????? ?????? SQL?
- ????? ????????????? ?????? ????? ??????
- ?? ????? ??????????, ??????? ????????? ? ???????
????? (???? ?????????, UDT, ???????????? ? ?.?.,
????? ????????? ?????), ?????? ?????????? ? ??
??????? ?? ??????? ???? ??????????? ?????? - ????????? ????, ?????????????? ??????? ?
?????????????, ????????? ??????? ?????????
???????? ??????????
26?????????? ?? ????????? ????? ?????? ?????? SQL?
- ?????????????? ??????? ? ????????????? ?????????
?????? ??????? ? ????? OQL - ?? ????? ?? ????????? ???????????? ?????? ???
??????? ??????? ????? ? ??????????? - ????????????? ?? ???????? ????? ?????? ?
????????????? ?????????? ?? ????????
?????????????? - ??????, ????????????? ????????????
- ??? ?????? ????? ???????? ????????? ??????
??????? - http//www.omg.org/cgi-bin/doc?mars/2006-2-18
- Request for Information (RFI)
27??? ? ??? ?????????? ???????
- ?????????? ???? ????????????
- ????? ??????? ???????? ?????????, ???????,
?????? - ??? ????????? ???????? ?????????? ?? ??????
?????? ?????? - ?????? ?????????? ?????????? ? ???????????????
????????? - ????????????? ?????? Oracle Express
- ?? ??? ?????? ???? ?????????????
- ???????
28???????? ????????????? ??????
- ??? ???????, ??? ???? ?? ? ???????????
- ??????? ????? ????????????
- ??? ???????????? ?????????????? ???????? ?????
???????? ??? ??????, ???????? ?????????? ?
???????????? - ??? ?????? ???????? ????????????? ???? ?????? ??
???????????
29???????? ????????????? ??????
- ???? ???? ?? ????? ?????????
- ????? ? ??? ???????????? ???? ??????????
- ??? ???????????
- ????? ?? ?????????????? ????? ?? ????????????
??????????, ????????, ????????? ??????? - ???????????? ????? ???????? ????????????
????????? - ??????????? ???????? ? ????? XML-??????
30?????? ????????????
- ??????? ????? ?????
- ???????? ?? ??????
- ???????, ??? ? ??????? ??????????????????
?????????? ??????? ?????? ???????? ? ????????
????????????? ? ????????????? ??????