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

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

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

10.Выявление информационных потребностей конечных пользователей

-Server Generator — генератор описания БД на DDL;

-Forms Generator — генератор приложений для ORACLE*Forms 4.5;

-Reports Generator — генератор отчетов для ORACLE*Reports 4.5.

Все компоненты Designer/2000 функционируют в среде MS Windows.

Контрольные вопросы

1.Какие проблемы возникают при системном анализе требований к разраба­ тываемой системе?

2.Какие инструментальные средства используются для описания диаграмм? Охарактеризуйте их.

3.Приведите пример разработки диаграммы потоков данных.

4.Перечислите основные компоненты, которые входят в состав продуктов Designer/2000.

11. КОНЦЕПТУАЛЬНОЕ ПРОЕКТИРОВАНИЕ СИСТЕМ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ДАННЫХ

Рассмотрены особенности концептуального проектирования распре­ деленной системы, описывается последовательность действий при синтезе КС, даны способы описания спецификаций процессов.

11.1. Особенности концептуального проектирования

Диаграмма потоков — функциональный граф, где процессы и данные объединены. Как отмечалось ранее, вычислительные машины, на которых реализуются ИС, — машины фон Неймана. Здесь процессы (программы) и данные разделены, что предполагает необходимость выделения из диаграм­ мы данных и процессов. Данные структурируют в КС БД, а для процессов определяются спецификации. Такое разделение неудобно, так как диаграм­ му потоков данных приходится как бы «резать по живому». Это проявляется в том, что процесс проектирования расщепляется на две параллельные ветви и ошибки разделения диаграммы сказываются только на этапе отладки и сопровождения.

Давно установлено, что цена ошибки (стоимость исправления) быстро возрастает с увеличением интервала времени (технологического времени: числа выполненных операций между двумя событиями) между появлением погрешности и ее обнаружением. Бывший вице-президент Bell Labs по ком­ пьютерной технологии и системам военного назначения Е. Самнер считает, что на интервале от выработки требований на программы до сдачи про­ граммного продукта заказчику стоимость расходов на исправление ошибки возрастает в среднем в 80 раз. В 1983 г. приводились следующие данные о средней стоимости исправления ошибки в спецификациях в зависимости от этапа ЖЦ ИС, на котором эта ошибка «всплывала» (по данным исследова­ ний фирм TRW, GTE Corp. и IBM): на этапе составления спецификаций — 140 долл., кодирования — 1000 долл., комплексной отладки — 7000 долл., сопровождения (у заказчика) — от 14000 до 140000 долл. на каждую ошибку.

Важно также подчеркнуть, что концептуальный проект (КС БД и спе­ цификации задач) не зависит от архитектуры системы, т.е. от технических средств, ОС и СУБД.

191

//. Концептуальное проектирование систем распределенной обработки данных

Таким образом, два фактора — большая цена ошибки и независи­ мость от архитектуры — определяют необходимость тщательной проработ­ ки концептуального проекта.

11.2. Разработка концептуальной схемы базы данных

Синтез концептуальной схемы. Концептуальная схема реляционной БД, как правило, описывается диаграммой «сущность—связь» (ERD, ERдиаграмма), предназначенной для разработки модели данных и обеспечи­ вающей стандартный способ определения данных и отношений между ни­ ми. Фактически с помощью ERD осуществляется детализация хранилищ данных проектируемой системы, а также документируются сущности сис­ темы и способы их взаимодействия, включая идентификацию объектов (сущностей), свойств этих объектов (атрибутов) и отношений с другими объектами (связей).

ER-диаграммы были введены Ченом (Chen) и получили дальнейшее развитие в работах Баркера (Barker). Рассмотрим нотацию ER-диаграммы, предложенную Баркером, так как в основном она используется при описа­ нии КС в современных СУБД (например, в Oracle).

Сущность (Entity). Сущность на ER-диаграмме представляется пря­ моугольником любого размера, содержащим имя сущности, список имен атрибутов (возможно неполный) и указатели ключевых атрибутов (знак # перед именем атрибута).

Связь (Relationship). Связь в нотации Баркера является бинарной, т.е. представляет собой линию, соединяющую две сущности и В). Для связи должны быть определены:

имя связи со стороны сущности А и сущности В; обязательность связи. Если любой экземпляр сущности А обязательно

должен быть связан с каким-либо экземпляром сущности 5, то прилегаю­ щая к прямоугольнику А половина линии — сплошная, в противном случае она — пунктирная.

Мноэюественность связи. Для множественной связи М линия присое­ диняется к прямоугольнику сущности в трех точках, для одиночной связи — в одной точке.

Из имени связи следует, что клиент владеет кредитной картой, а кре­ дитная карта принадлежит клиенту. При включении в БД записи «Клиент» клиент может и не иметь кредитную карту (связь является необязательной — может быть). При включении в БД записи «Кредитная карта» она должна быть связана с каким-либо клиентом (связь является обязательной — дол­ жен быть). При установлении связи многие CASE-средства автоматически добавят в сущность «Кредитная карта» ключ сущности «Клиент». Это обес­ печит при включении в БД записи «Кредитная карта» ее связь с записью «Клиент» по атрибуту «Код клиента». Каждый клиент может владеть одной

192

/7.2. Разработка концептуальной схемы базы данных

или более кредитной картой (связь 1 \М). При этом каждая кредитная карта должна принадлежать только одному клиенту (связь Ml) . В табл. 11.1 при­ ведены основные типы связей в нотации Баркера.

 

 

Таблица

п

Тип связи

 

 

^

 

LJ

 

Должен^

 

 

 

В

А

Может

 

 

 

 

1 1

Может^

 

А

Может

 

В

 

 

 

 

 

Мржет^

 

А

 

V

В

Должен

 

 

 

 

 

 

Должен^

 

А

 

V

В

Должен

 

 

 

 

 

s^

Может^.

 

 

7^

< ;

 

А

Может

 

В

 

 

 

 

^^

Может^^

 

А

 

^

!

Должен

 

В

 

 

 

 

ч^

Должен^

 

А

у^

V

В

Должен

 

 

 

 

 

 

Может

 

А

Должен

 

В

 

 

 

11.1. Основные типы связей

Описание

Запись А может быть связана с одной или не­ сколькими записями В. Каждая запись В долж­ на быть связана только с одной записью А

Запись А может быть связана с одной или не­ сколькими записями В. Запись В может быть связана только с одной записью А

Каждая запись А должна быть связана с одной или несколькими записями В. Запись В может быть связана только с одной записью А

Каждая запись А должна быть связана с одной или несколькими записями В. Каждая запись В должна быть связана только с одной записью А

Запись А может быть связана с одной или не­ сколькими записями В. Запись В может быть связана с одной или несколькими записями А

Каждая запись А должна быть связана с одной или несколькими записями В. Запись В может быть связана с одной или несколькими запи­ сями А

Этот тип связи не допустим

Каждая запись А должна быть связана только с одной записью В. Запись В может быть связа­ на только с одной записью А

193

11. Концептуальное проектирование систем распределенной обработки данных

п-Тип связи

Может D

В

Может

Должен

В

Должен

Окончание табл. 11.1

Описание

Запись Л может быть связана только с одной записью В. Запись В может быть связана толь­ ко с одной записью Л.

Каждая запись Л должна быть связана только с одной записью В. Каждая запись В должна быть связана только с одной записью Л.

Супертип {Supertype) и подтип (SubType) сущности {категоризация).

Часто сущности имеют пересекающийся набор атрибутов. В этом случае общую часть атрибутов помещают в сущность-супертип, а отличающиеся части атрибутов помещают в сущности-подтипы.

Например, сущности «Физическое лицо» и «Юридическое лицо» имеют общие атрибуты «Адрес», «Телефон», «Факс». Поэтому эти атрибуты можно объединить в сущность-супертип «Клиент». Остальные атрибуты можно описать в сущностях-подтипах. В базе данных будут храниться три сущности: «Клиент», «Физическое лицо», «Юридическое лицо». Основное преимущество использования супертипов и подтипов заключается в том, что СУБД автоматически обеспечивает ссылочную целостность (с помощью триггеров):

после удаления записи-супертипа удаляются все связанные с ней за- писи-подтипов;

после обновления ключа записи-супертипа обновляются ключи всех связанных с ней записей-подтипов;

после включения записи-подтипа проверяется, есть ли записьсупертип с соответствующим ключом;

после обновления ключа записи-подтипа проверяется, есть ли записьсупертип с тем же ключом.

Следует отметить, что разработка КС БД — процесс творческий. Ав­ томатизировать эту работу практически невозможно, так как при этом тре­ буется учитывать много неформальных параметров. CASE-продукты пре­ доставляют только средства описания КС.

Ниже приведены примеры разработки ER-диаграмм.

Пример описания КС БД с помощью средства CASE"^Designer. В

CASE*Designer (Oracle) разработка ER-диаграммы ведется в нотации Баркера, рассмотренной выше. Рассмотрим пример разработки КС (ERдиаграммы) БД «БДЗ. Ценные бумаги», которая была введена при описании потоков данных (см. рис. 10.3).

194

Select

Entity

Arc

Relationship

Drawing

M:l

M:M

1:1

Zoom Out

Zoom In

Window

Pan

Cancel

Information

11.2. Разработка концептуальной схемы базы данных

Diagram Edit Forms Reports Utilities Preferences Quality Check

Организация

#код организации

 

сокращенное название

 

Эмиссия ЦБ

 

полное название

 

 

 

 

 

страна регистрации

 

 

 

город

Определена

#код эмиссии ЦБ

 

адрес

#код организации

 

 

 

телефон

 

код госуд. регист.

 

факс

 

дата регистрации

r^\

банковские атрибуты

 

наименование ЦБ

 

 

номер выпуска ЦБ

 

Эмитент

 

количество ЦБ

F'

 

фиксиров. доход

#код организации

 

номин. стоимость

 

дата погашения

 

per. номер эмитента

 

 

F=

дата per. эмитента

Совершил

 

разм. устав, капитала

 

 

 

код регистратора

 

Создала

W^

 

Имеет

Торговая площадка

 

 

F^

 

 

 

#код регистрации

Выполнила Определила

<

Зафиксирован

АВыполнена

Операция счета ЦБ

#код операции с ЦБ #код организации #код эмиссии ЦБ

тип операции кол. ЦБ в операции цена одной ЦБ сумма операции сумма налога сумма комиссии дата операции

Определен

Ж

Курс продажи

#дата торгов #код эмиссии ЦБ #код организации котировка ЦБ

Открыт

Ж.

Счет по ЦБ

#код эмиссии ЦБ дата открытия дата закрытия способ хранения

количество ЦБ на счете

Связана

I Связан

\>-

Рис. 11.1. ER-диаграмма со связями и атрибутами

195

11.Концептуальное проектирование систем распределенной обработки данны

1. Выберите пункт меню Techniques/Entity Diagrammer. На экране появится окно Entity Relationship Diagrammer.

Чтобы построить диаграмму, выберите пункт меню Diagram/New. CASE*Designer запросит имя новой ER-диаграммы и размеры страницы, которую вы должны позиционировать в окне Entity Relationship Diagrammer.

2.Инструментальным средством Entity можно добавить к ER-диа- грамме сущности, которые на рис. 11.1 обозначены прямоугольниками. При этом сущности «Эмитент» и «Торговая площадка» являются подтипами

супертипа «Организация». Затем инструментальными средствами M l , М:М

и1:1 описывают связи между сущностями.

3.Для ввода имен атрибутов выберите на диаграмме сущностей пункт меню Forms/Attribute Definition. После описания всех атрибутов ERдиаграмма будет иметь вид, представленный на рис. 11.1.

4.Чтобы сохранить ER-диаграмму и выйти из Entity Relationship Dia­ grammer выполните пункты меню Diagram/Save и Diagram/Quit.

Пример описания концептуальной схемы с помощью пакета Envin.

После запуска пакета Erwin на экране появляется основное окно пакета.

Вокне инструментов Erwin Toolbox отображаются следующие кнопки: выбор объекта или группы объектов на ER-диаграмме; перемещение объекта на ER-диаграмме;

определение независимой сущности; определение зависимой сущности;

построение связи, определяющей зависимую сущность как подтип

(совокупность подтипов является неполной); построение связи, определяющей зависимую сущность как подтип

(совокупность подтипов является полной); построение идентифицирующей связи; построение неидентифицирующей связи; построение связи «многие-ко-многим»; отображение на экране поясняющего текста.

Следует отметить, что нотация (изображение) ER-диаграммы в пакете Erwin несколько отличается от нотации Баркера. В табл. 11.2—11.4 пред­ ставлены отличия нотаций Баркера и пакета Erwin.

Таблица 11.2. Отличия в обозначении сущностей

Нотация Баркера

Нотация Erwin

имя

имя

#ключ

ключ

атрибуты

атрибуты

196

 

 

 

77.2 Разработка концептуальной схемы базы данных

 

 

 

Т а б л и ц а

11.3. Отличия в обозначении связей

Нотация Баркера

Нотация Erwin

Особенности построения связи

 

 

 

 

 

 

•П

в пакете Erwin

 

1

<\

 

 

 

Построить идентифицирующую связь. В

 

В

А

 

окне Relationship пакета Erwin должна быть

г

<

 

•U

установлена радиокнопка Zero, One or More

 

 

 

 

 

 

В

(выбрать связь, щелкнуть правой клавишей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мыши, выбрать пункт Relationship). Сущ­

 

 

 

 

 

 

•П

ность В является зависимой

А

 

^

 

 

 

Построить идентифицируюш[ую связь. В

1

 

 

 

окне Relationship пакета Erwin должна быть

 

N

В

А

 

•U

установлена радиокнопка One or More.

 

 

 

 

в

 

 

 

 

 

р

П

Сущность В является зависимой

 

 

 

 

 

Построить идентифицирующую связь. В

 

 

 

 

 

 

А

 

 

в

А

 

•U

установлена радиокнопка Zero or One.

 

 

J п

и>

 

в

Сущность В является зависимой

 

1

Z

^пв

Построить неидентифицирующую связь. В

 

 

окне Relationship пакета Erwin установить

г1

Ч_в1

 

радиокнопку Zero, One or More. Сущность

А

 

 

 

А<

 

 

В является независимой

t

<Г1

 

 

 

Построить неидентифицирующую связь. В

п>

 

^покне Relationship пакета Erwin установить

 

 

в

 

в

радиокнопку One or More. Сущность В

 

 

1

А<

р

 

является независимой

 

 

 

 

 

Построить неидентифицирующую связь. В

А

 

D

.. .покне Relationship пакета Erwin установить

 

 

1

 

•U

радиокнопку Zero or One. Сущность В яв­

 

 

АВ

 

АО

Z

в

ляется независимой

А

 

 

 

 

 

 

 

Необходимо отметить, чтобы на ER-диаграмме отображались иденти­

 

 

фикаторы связи: ее имя, признаки Р и Z (см. табл. 11.3), следует установить

 

и Option/Show Display Menu, DisplayA/^ebPhrase и Display/Cardinality.

опци

Используя инструментальные

средства Erwin, можно построить КС

БД «БДЗ. Ценные бумаги» на уровне сущностей и связей (рис. 11.2).

Чтобы определить атрибуты какой-либо сущности, следует отметить эту сущность на диаграмме, щелкнуть правой клавишей мыши и выбрать пункт Entity Attribute. После описания атрибутов всех сущностей на экране отображается ER-диаграмма со связями и атрибутами.

Чтобы сохранить ER-диаграмму и выйти из Erwin выберите пункты File/Save и File/Exit.

197

и. Концептуальное проектирование систем распределенной обработки данны

Таблица 11.4. Отличия в обозначениях супертипов и подтипов

Нотация Баркера

Нотация Erwin

Примечания

имя 1

 

имя 1

 

#ключ 1

 

 

 

атрибуты 1

 

 

Сущности

 

 

 

«имя 2» и «имя 3»

 

 

 

являются

имя 2

 

 

зависимыми

#ключ 2

 

 

 

атрибуты 2

 

 

 

 

имя 2

 

имя 3

имя 3

ключ 2

I

ключ 3 ^

атрибуты 2

атрибуты 3

#ключ 3

атрибуты 3

жОрганизация

I"" Эмиссия ЦБ

I

Торговая площадка

Эмитент Имеет

9

 

 

' Создан

 

 

 

I

Определила

 

|р^>шолнила

 

I

 

Курс продажи

I

 

I

 

 

 

I

 

 

 

Операции счета ЦБ

Связан

<ЯСчет по ЦБ

 

Рис. 11.2. ER-диаграмма со связями, но без атрибутов

198

11.3.Способы описания спецификаций процессов

11.3.Способы описания спецификаций процессов

Спецификация процесса (СП) используется для описания процессов. Фактически СП представляют собой алгоритмы описания задач, выполняе­ мых процессами. Множество всех СП является полной спецификацией сис­ темы. Спецификации процесса содержат номер и/или имя процесса, списки входных и выходных данных и тело (описание) процесса, являющееся спе­ цификацией алгоритма или операции, трансформирующей входные потоки данных в выходные. Существует много разнообразных методов, позволяю­ щих задать тело процесса. Соответствующий язык может варьироваться от структурированного естественного языка или псевдокода до визуальных языков программирования (типа FLOW-форм и диаграмм Насси-Шней- дермана) и формальных компьютерных языков.

Структурированный естественный язык. Такой язык применяют для читабельного, строгого описания спецификаций процессов. Он состоит из подмножества слов, организованных в определенные логические струк­ туры, арифметических выражений и диаграмм.

К логическим структурам относятся: а) последовательная конструкция:

ВЫПОЛНИТЬ функция, ВЫПОЛНИТЬ функция2 ВЫПОЛНИТЬ функцияз

б) конструкция выбора:

ЕСЛИ <условие> ТО ВЫПОЛНИТЬ функция]

ИНАЧЕ ВЫПОЛНИТЬ функция2

КОНЕЦ ЕСЛИ в) итерация:

ДЛЯ <условие> ВЫПОЛНИТЬ функция

КОНЕЦ ДЛЯ или

ПОКА <условие> ВЫПОЛНИТЬ функция

КОНЕЦ ПОКА

Пример. При разработке диаграммы потоков данных была включена функция «Анализ котировок ЦБ и принятие решений об их продаже». Ниже приведены спецификации этой задачи в терминах структурированного естест­ венного языка.

199