Ю. А. Григорьев, Г. И. Ревунков - Банки данных
.pdf12. Логическое проектирование систем распределенной обработки данных
CREATE TABLE SEC_ORG (
SEC_0RG_1 |
CHAR( 18) NOT NULL, |
SEC_ORG_2 |
CHAR( 18) NULL, |
SEC_ORG_3 |
CHAR( 100) NULL, |
SEC_ORG_4 |
CHAR(40) NULL, |
SEC_0RG_5 |
CHAR( 18) NULL, |
SEC_0RG_6 |
CHAR( 120) NULL, |
SEC_ORG_7 |
CHAR( 18) NULL, |
SEC_0RG_8 |
CHAR(18) NULL, |
SEC_0RG_9 |
CHAR( 100) NULL |
); |
|
CREATE UNIQUE INDEX ХРКОрганизация ON SEC_ORG
(
SEC_0RG_1 ASC
);
ALTER TABLE SEC_ORG
ADD (PRIMARY KEY (SEC_ORG_I));
ALTER TABLE SEC_CNT
ADD (FOREIGN KEY (SEC_CNT_1)
REFERENCES SECJSS);
ALTER TABLE SEC_COU
ADD (FOREIGN KEY (COU_CODE_ISSUE)
REFERENCES SECJSS);
ALTER TABLE SEC_COU
ADD (FOREIGN KEY (COU_CODE_ORG)
REFERENCES SEC_GRO);
ALTER TABLE SECJSS
ADD (FOREIGN KEY (SECJSS_2)
REFERENCES SEC_EMI);
ALTER TABLE SEC_OP
ADD (FOREIGN KEY (SEC_0P_2)
REFERENCES SEC_CNT);
ALTER TABLE SEC_OP
ADD (FOREIGN KEY (SEC_0P_3)
REFERENCES SEC_GRO);
250
12.2. Разработка прилоэюений
create trigger tD_SEC_CNT after DELETE on SEC_CNT for each row - ERwin Builtin Fri Apr 04 12:41:25 1997
-DELETE trigger on SEC_CNT declare numrows INTEGER; begin
/* ERwin Builtin Fri Apr 04 12:41:25 1997 */
/* SEC_CNT связан SEC_OP ON PARENT DELETE SET DEFAULT */ /* Application specific. Left out intentionally. */
-ERwin Builtin Fri Apr 04 12:41:25 1997
end;
/
create trigger tI_SEC_CNT after INSERT on SEC_CNT for each row
-ERwin Builtin Fri Apr 04 12:41:25 1997
-INSERT trigger on SEC_CNT
declare numrows INTEGER; begin
/* ERwin Builtin Fri Apr 04 12:41:25 1997 */
/* SECJSS создан SEC_CNT ON CHILD INSERT RESTRICT */ select count(*) into numrows
from SECJSS where
/* %JoinFKPK(:%New,SECJSS,» = «,» and») */ :new.SEC_CNT_l = SEC_ISS.SEC_ISS_1;
if(
/* %NotnullFK(:%New,» is not null and») */
numrows = 0
)
then
raise_application_error( -20002,
'Cannot INSERT «SEC_CNT» because «SECJSS» does not exist.'
);
end if;
- ERwin Builtin Fri Apr 04 12:41:25 1997 end;
/
create trigger tD_SEC_COU after DELETE on SECCOU for each row - ERwin Builtin Fri Apr 04 12:41:25 1997
251
12. Логическое проектирование систем распределенной обработки данных
-DELETE trigger on SEC_COU declare numrows INTEGER; begin
/* ERwin Builtin Fri Apr 04 12:41:25 1997 */
/* SECJSS имеет SEC_COU ON CHILD DELETE CASCADE */ delete from SECJSS
where
/* %JoinFKPK(:%01d,SEC_ISS,» = «,» and») */ :old.COU_CODE_ISSUE = SEC_ISS.SEC_ISS_1;
-ERwin Builtin Fri Apr 04 12:41:25 1997
end;
/
create trigger tU_SEC_GRO after UPDATE on SECGRO for each row
-ERwin Builtin Fri Apr 04 12:41:25 1997
-UPDATE trigger on SECGRO
declare numrows INTEGER; begin
/* ERwin Builtin Fri Apr 04 12:41:25 1997 */
/* SEC_GRO определила SEC_COU ON PARENT UPDATE RESTRICT */ if
/* %JoinPKPK(:%01d,:%New,» о «,» or «) */ :old.SEC PRO 1 о :new.SEC PRO 1
then
select count(*) into numrows from SEC_COU
where
/* %JoinFKPK(SEC_COU,:%01d,» = «,» and») */ SEC_COU.COU_CODE_ORG = :old.SEC_PRO_l;
if (numrows > 0) then
raise_application_error( -20005,
'Cannot UPDATE «SEC_GRO» because «SECCOU» exists.
);
end if;
end if;
/* ERwin Builtin Fri Apr 04 12:41:25 1997 */
/* SEC_GRO выполнила SEC_OP ON PARENT UPDATE CASCADE */ if
/* %JoinPKPK(:%01d,:%New,» о «,» or «) */
252
12.2. Разработка приложений
:old.SEC_PRO_l о :new.SEC_PRO_l
then
update SEC_OP set
/* %JoinFKPK(SEC_OP,:%New,» = «,»,») */ SEC_OP.SEC_OP_3 = :new.SEC_PRO_l where
/* %JoinFKPK(SEC_OP,:%01d,» = «,» and») */ SEC_OP.SEC_OPJ = :old.SEC_PRO_l;
end if;
- ERwin Builtin Fri Apr 04 12:41:25 1997 end;
/
create trigger tU_SEC_ISS after UPDATE on SECJSS for each row - ERwin Builtin Fri Apr 04 12:41:26 1997
-UPDATE trigger on SECJSS declare numrows INTEGER; begin
/* ERwin Builtin Fri Apr 04 12:41:26 1997 */
/* SEC_EMI совершил SECJSS ON CHILD UPDATE SET NULL */ update SECJSS
set
/* %SetFK(SECJSS,NULL) */ SECJSS.SECJSS_2 = NULL
where
not exists (
select *fromSEC_EMI where
/* %JoinFKPK(:%New,SEC_EMI,» = «,» and») */ :new.SECJSS_2 = SEC_EMI.SEC_EMI_1
)and
/* %JoinPKPK(SECJSS,:%New,» = «,» and») */ SECJSS.SECJSS_1 = :new.SECJSS_l;
-ERwin Builtin Fri Apr 04 12:41:26 1997
end;
/
253
12. Логическое проектирование систем распределенной обработки данных
Контрольные вопросы
1.Опишите последовательность действий при разработке ЛС БД.
2.Какие типы данных приняты в стандартах SOL/89 и SQL/92?
3.Опишите задачу оптимизации ЛС БД.
4.Опишите методы автоматической репликации данных.
5.Как выполняется обновление копии таблицы клиентом, работающим со вто рым сервером.
6.Приведите пример описания ЛС БД с помощью пакета CASE*Dictionary.
7.Когда следует использовать хранимые процедуры и триггеры?
8.Опишите процесс оптимизации запросов к распределенной БД.
9.Перечислите рекомендации по кодированию операторов SQL7.
10.Назовите особенности разработки приложений для работы с БД в сети.
13. ВЫБОР ОБЩЕСИСТЕМНЫХ ПАКЕТОВ
Рассматривается проблема выбора сетевой операционной системы. Описаны способы интеграции различных сетевых ОС, схемы их взаимодей ствия, серверы прилоэюений и протекающие в них процессы управления транзакциями.
13.1.Сетевые операционные системы NetWare, Windows NT, Unix
Внастоящее время на рынке сетевых операционных систем лидируют три продукта: NetWare, Windows NT, Unix. Ниже приведена краткая оценка этих ОС.
Проблема выбора. В каждом конкретном случае необходимо вы брать наиболее подходящую для решения задач операционную систему. Рассмотрим несколько систем.
NetWare. Эта ОС имеет два общепризнанных преимущества: у нее са мая быстрая файловая система и печать; она имеет более совершенное сред ство организации и управления системной БД NDS (NetWare Directory Services). Но у NetWare ограниченные возможности по разработке серверов СУБД и приложений.
Из-за этих недостатков NetWare редко используется как сервер СУБД и сервер приложений.
Windows NT, В настоящее время Windows NT, по мнению специа листов, пользуется определенным успехом как коммерческая серверная платформа. Серверы Windows NT чаще всего применяют для поддержки приложений в отделениях компаний и рабочих групп, обеспечивая воз можности печати и совместного использования файлов. Похоже, что они отвоевывают долю рынка у операционной системы NetWare компании Novell, а не у ОС Unix, которая обычно функционирует в крупных ин формационных системах, где необходима очень высокая производитель ность. Как отмечают аналитики, Microsoft провела огромную работу по привлечению на свою сторону независимых производителей программ ного обеспечения, таких, как SAP America, Oracle и др., продукты кото рых играют решающую роль в борьбе за крупного корпоративного за казчика. Кроме того, Microsoft с каждой новой версией делает свою ОС все более мощной. Пользователей также привлекает низкая стоимость и простота взаимодействия с Windows NT.
255
13. Выбор общесистемных пакетов
Unix. Если говорить о коммерческом применении, то Unix стала ве дущей ОС для корпоративных серверов и особенно популярной в области поддержки крупных приложений БД.
Ведущие производители Unix-серверов, включая Hewlett-Packard, IBM и Sun Microsystems, планируют создание более масштабируемых и мощных систем.
За рубежом рынок серверов сетей масштаба предприятия можно сегмен тировать на три мини-рынка, на которых влияние Windows NT и Unix различно.
1. К первому относятся корпоративные рабочие среды. Серверы для них обычно покупаются, инсталлируются и обслуживаются центральным отделом информационных систем, который также осуществляет централизованное управление ими. Иногда эти серверы играют вспомогательную роль в много уровневой сети клиент/сервер. Информация в такой корпоративной рабочей сети генерируется локально, но совместно используется в глобальной среде. Здесь позиции ОС Unix остаются сильными, и, по мнению ряда специалистов, Windows NT будет очень трудно потеснить Unix в данном секторе.
2.Второй сегмент называется «рабочей средой с тиражированием». Здесь каждый сервер работает более или менее независимо. Инсталляцией и обслу живанием локальных систем часто занимается местный персонал. Информация также генерируется локально, но совместно используется в глобальной среде лишь периодически, например при составлении ежемесячных отчетов о прода жах (данные собираются с локальных систем и подытоживаются). Типичным приложением для серверов рабочей среды с тиражированием является обработ ка транзакций на предприятиях розничной торговли или в системе управления имуществом отеля. В данном секторе также сильны позиции отдельных разно видностей Unix. Безусловно, в этой области большую роль играет SCO Unix, а Windows NT еще не удалось сколько-нибудь укрепиться.
3.К третьему мини-рынку относятся так называемые независимые ра бочие среды. В них задачи выбора и покупки, инсталляции и обслуживания системы ложатся на местный персонал. Часто это недорогие системы, и их приобретение не требует согласования с руководством или центральным отделом информационных систем. Информация в такой среде создается и используется локально. Совместная работа с информацией, хранящейся на этих серверах, в масштабе компании отсутствует. Именно здесь находит спрос Windows NT. Благодаря своей системе продаж, Microsoft имеет очень хорошие позиции на этом рынке.
Интеграция различных сетевых ОС. Связь серверов Unix и Win dows NT поддерживается достаточно просто на базе протокола TCP/IP, чего не скажешь о NetWare.
В России 80—^90 % локальных вычислительных сетей работают под управлением NetWare. При переходе к распределенной обработке вероятно воз никнет вопрос об организации связи ОС NetWare с Windows NT и Unix. Рассмот рим принципы организации взаимодействия NetWare с ОС Windows NT и Unix.
256
13.1. Сетевые операционные системы NetWare, Windows NT, Unix
Фирма Microsoft выпускает ряд продуктов, которые облегчают взаи модействие серверов Windows NT и NetWare в сети или обеспечивают пе реход с NetWare на серверы Windows NT. Эти продукты перечислены в табл. 13.1.
Таблица 13.1. Продукты Microsoft, обеспечивающие взаимодействие |
|
серверов Windows NT и NetWare |
|
Продукт или утилита |
Описание |
Набор программ, реали зующих протокол IPX, IPXCompatible Transport Stack Шлюзовая служба Gateway Service for NetWare
Средство переноса Migration Tool for NetWare
Службы файлов и печати File and Print Services for NetWare
Менеджер службы катало гов Directory Service Manager (DSM) for NetWare
Позволяет устанавливать и использовать приложе ния, ориентированные на Windows NT Server, не изменяя ПО клиента NetWare
Дает возможность использовать Windows NT Server в i качестве коммуникационного средства (шлюза) и предоставляет Windows NT-станциям доступ к серве рам NetWare. Шлюз транслирует SMB-пакеты, по сланные с Windows NT-станции (Windows for Workgroups, Windows NT Workstation), в NCP-пакеты и пересылает их серверу NetWare
Автоматически переносит с сервера NetWare на сер вер Windows NT Server информацию о бюджетах пользователей, сценарии регистрации при входе в систему, файлы, каталоги, средства защиты Размещает службы каталогов и печати системы NetWare и деловые приложения на одном компьюте ре под управлением Windows NT Server, не требуя при этом изменения ПО клиента NetWare и конфигу рации сети. Для клиента NetWare сервер Windows NT Server превращается в NCP-сервер
Использует сервер Windows NT Server для централи зованного управления бюджетами пользователей в смешанной сети, работающей и с NT, и с NetWare, что позволяет конечным пользователям однократно регистрироваться при входе в систему и иметь еди ный бюджет и пароль
На рис. 13.1 представлена схема взаимодействия Windows NTклиентов и NetWare-клиентов (работающих по протоколу IPX) соответст венно с ОС NetWare и Windows NT Server, функционирующих в одной сети.
Рассмотрим, как обеспечивается взаимодействие NetWare с ОС Unix. Для этой цели можно использовать продукт NetWare NFS 1.2с. Он функ ционирует как совокупность NLM-модулей, устанавливаемых на файловом сервере NetWare (табл. 13.2).
257
|
|
13. Выбор общесистемных |
пакетов |
|||
|
Windows NT Server |
|
NetWare |
|||
Без |
|
|
|
|
|
|
специального |
|
|
|
|
|
|
ПО |
|
Шлюз |
NCP-пакеты |
Файлы |
||
, \ |
||||||
|
|
|||||
|
|
Файлы |
Требуется |
|
|
|
|
|
|
|
|
||
|
|
|
специальное |
|
||
|
|
|
ПО для |
|
|
|
|
|
|
NetWare 4.x |
|
|
|
SMP-пакеты |
|
|
IPX и NCP- |
|
||
|
|
|
|
пакеты |
|
|
Windows NT-клиент |
|
|
NetWare-клиент |
|||
Рис. 13.1. Схема взаимодействия клиентов с ОС NetWare и Windows NT Server |
||||||
Т а б л и ц а |
13.2. NLM-модули NetWare NFS 1.2c, обеспечивающие |
|||||
|
|
взаимодействие NetWare с Unix |
||||
NLM-модули |
|
|
Описание |
|
||
NLM NFS Server |
|
Позволяет Unix-клиентам работать с файловой системой |
||||
|
|
NetWare как с расширением локальной файловой системы Unix |
||||
NLM Lock Manager |
|
(поддержка распределенной файловой системы для Unix) |
||||
|
Выполняет блокировку записей и файлов NetWare (в среде NFS) |
|||||
NLM File Transfer |
|
Позволяет FTP-клиентам инициировать вывод файлов на |
||||
Protocol (FTP) |
|
сервер NetWare и читать их с сервера |
||||
NLM NFS |
|
Позволяет поддерживать на сервере NetWare пространство |
||||
NameSpace |
|
имен для Unix |
|
|
|
|
NLM Line Printer |
|
Реализует для Unix-клиентов механизм передачи заданий в |
||||
Daemon |
|
очереди печати NetWare. Пользователи Unix для доступа к |
||||
|
|
подключенным к NetWare принтерам могут использовать |
||||
|
|
команды Unix (1р, Ipq, Iprm) |
|
|
||
NLM Print Gateway |
|
Позволяет NetWare-клиентам для буферизации заданий пе |
||||
|
|
чати на принтерах, подключенных к Unix, применять коман |
||||
|
|
ды NetWare (nprint, capture и т.д.) |
|
NLM XCONSOLE
258
13.1. Сетевые операционные |
системы NetWare, Windows NT, Unix |
UNIX-сервер |
NetWare |
Принтер
Файлы
FTP-клиент
M Принтер
NFS -клиент "Ж" (распределенная
файловая система)
|
X Windows |
|
^.к- Консоль-NetWare |
UNIX-клиент |
NetWare-клиент |
Рис. 13.2. Схема взаимодействия клиентов с ОС NetWare и Unix
На рис. 13.2 представлена схема взаимодействия (на базе NetWare NFS 1.2с) Unix-клиентов и NetWare-клиентов соответственно с ОС NetWare и Unix-сервером, функционирующих в одной сети.
Но средство NetWare NFS 1.2с не обеспечивает доступ клиентов NetWare к файловой системе Unix. Для этого можно использовать следую щие продукты.
1. LAN Workplace или LAN WorkGroup (Novell), обеспечивающие включение протокола TCP/IP в стек протоколов рабочей станции, в пакет LAN Workplace входят следующие приложения:
•FTP-клиент и FTP-сервер для DOS и Windows;
•NFS-клиент;
•Telnet для DOS и Windows;
•TN3270 для Windows;
•Web-броузер Netscape Navigator;
•сервер и клиент X Windows System;
•Windows Dialer с поддержкой протоколов SLIP и РРР;
•клиент SMTP/P0P3;
•finder для DOS и Windows;
•rsh, rexec, rep для DOS и Windows;
259