Назад в раздел
Концепция универсального сервера баз данных
Концепция универсального сервера баз данных
Х. Залкин, Informix
E-mail:
howardz@informix.com
Тел.(095)755-8700
Общие характеристики универсального сервера
Способность хранить и управлять
любыми данными
в одном объединенном источнике
и при этом пользоваться централизованными механизмами
оптимизации запросов
администрирования баз данных
архивирования и восстановления данных
безопасности и целостности данных
Пользоваться открытым, стандартным интерфейсом (т.е. SQL)
Масштабируемость (Scalability)
Дополняемость (Extensibility)
т.е. возможность добавлять новые типы
данных в ядро СУБД-до бесконечности
Производительность
Открытая поддержка инструментальных средств
Хранение и доступ к Web-страницам
Эволюция к универсальным серверам
Реляционные СУБД справляются с простыми данными...
...А как насчет сложных данных?
Universal Server: два подхода
Различные API связываются с множеством серверов | Единый интерфейс с объединенным сервером данных |
Middleware Solutions Clumsy
Розничная торговля
Пример дополняемости
create table customer(
|
|
ЖЖЖ | cname
caddress
start_year
| varchar(30),
varchar(40),
int);
|
create table order( |
| orderID
cname
amount
date
| int,
varchar(30),
money,
date);
|
Розничная торговля
Universal Server: Новые типы данных
create table customer(
|
|
ЖЖЖ |
cname
caddress
start_year
location
| varchar(30),
varchar(40),
int,
point);
|
create table order( |
|
orderID
cname
amount
date
PO_fax
order_notes
materials
ship_location
|
int,
varchar(30),
money,
date,
image,
doc,
setof(part_type),
point);
|
Pозничная торговля
Менеджер хочет узнать...
Как найти заказы на сумму более чем $500, место доставки которых находится в пределах 50 км от заказчика
select C.cname from customer C, order O where Within50 (C.location, O.iocation) = T and O. Amount >500
Как найти заказы с пометкой "срочно", РО Date которых находится в пределах 4 дней от Order Date
select cname, orderID from order where FaxDateDiff(PO_fax,date) d
varchar(20),br
varchar(100),br
font color=redGeoMap,br
doc,br
setof(fac_loc_t));/font
/tr
/table/center
pibЛогистика/Транспорт/b/i
h3Менеджер хочет узнать.../h3ul
liКак найти маршруты, находящиеся в пределах зоны с почтовым кодом 77056dd
font color="#000080"select R.route from route R, facility F where GeoZip (F.location) = 77056 and whithin (F.location, R.route_pts)br/font
brКак найти маршруты, общая длина которых превышает 100 км, с пометкой 'priopity'dd
font color="#000080"select route from route where RouteLength(route_pts) > 100 and ContainsWords(route_notes,'priority') = T
*GeoZip(), Within(), RouteLength() являются определяемыми пользователем функциями
Промышленность
Пример дополняемости
create table facility(
|
|
ЖЖЖ |
fname
faddress
|
varchar(30),
varchar(40));
|
create table component( |
|
component_id
description
fname
|
varchar(20),
varchar(100),
varchar(30));
|
Промышленность
Universal Server: Новые типы данных
create table facility(
|
|
ЖЖЖ |
fname
faddress
location
|
varchar(30),
addr_type,
fac_loc_t);
|
create table component( |
|
comp_id
description
fname
maint_sched
comp_loc
comp_notes
schematic
|
comp_id_t,
varchar(100),
varchar(30),
TimeSeries,
point,
doc,
largeObject);
|
Промышленность
Менеджер хочет узнать
Как найти компоненты от поставщика XYZ в филиалах, расположенных в пределах 77056 почтовой зоны
select component_id from component C, facility F where GeoZip (F.location) = 77056 and C. Fname = F.fname and comp_id. Name like 'XYZ'; (comp_id is a ROW TYPE)
Где найти чертежи компонент, которые нуждаются в техническом обслуживании (временной ряд), помеченные "трудно"
select schematic from component where MaintlsDue= T and ContainsWords(comp_notes,'difficult') = T;
Найти компоненты, находящиеся в пределах пяти метров от места утечки
select component_id from component where DistWithin(comp_loc,(300,500))
|