Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ю. А. Григорьев, Г. И. Ревунков - Банки данных

.pdf
Скачиваний:
323
Добавлен:
10.02.2015
Размер:
7.54 Mб
Скачать

12. Логическое проектирование систем распределенной обработки данных

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

Реализует удаленное администрирование сервера NetWare с любой станции Unix-клиента, поддерживающей VT100, VT220 или X Windows System |

 

 

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