Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Methodicals / Lwmet.doc
Скачиваний:
59
Добавлен:
19.04.2013
Размер:
279.04 Кб
Скачать

19. На основе предыдущих результатов студент строит модель.

ОБЩАЯ СХЕМА

по алгоритму Ганыкина-Онопко

- форма - юридический адрес

¦ собственности + расчетный счет

--+---------¬ + ФИО рабочих

¦предприятие+------+ табельные номера рабочих LT-T--------- + разряды рабочих

¦ L название + подписи рабочих

¦ + подписи гл. бухгалтера и ген. директора

¦ + вид оплаты

¦ L вид удержания

¦ - представитель получателя

¦ -------------¬ + единица измерения товара

L--------------+наименование+-+ подпись разрешившего отпуск ---------------+ процесса ¦ + номера первичных документов

¦ L========T==T- + источники поступления материалов

¦ ¦ ¦ L направления расхода материалов

¦ ¦ L---------------------------¬

-+------------¬ ----+--------¬ ¦

¦наименование ¦ ¦ количество ¦ ¦

¦товара/услуги¦ ¦товара в шт.+----¬ ¦

LT------------- L------------- -+------------¬ ¦

¦ ¦складирование¦ ¦

¦ - номер (код) LT=T==========- ¦

¦ ¦ склада ¦ L норма запаса ¦

-------+--+--¬ ----------------¬ ¦ ¦

¦однозначное ¦ ¦номенклатурный +--- ¦

¦соответствие¦ ¦номер материала+----¬ ¦

L==T=========- LT--------------- ¦ ¦

L марка материала L количество ¦ ¦

израсходованного ¦ ¦

материала ¦ ¦

----- ¦

--------------¬ ------------------+¬ ¦

¦дата заполне-+---------+ поступление +------------------

¦ния документа¦ ¦материала на склад+ отправитель

LT-T----------- L==================- материала

¦ документ-основание

цена товара в рублях

20. На этом шаге студент анализирует два варианта модели и прини­мает один из вариантов.

1.3 Оформление отчета и защита лабораторной работы N1.

В отчет по лабораторной работе входят следующие результаты:

- цель лабораторной работы;

- исходные данные:

- список запросов;

- список реквизитов, хранимых в базе для каждого запроса пользователей;

- распечатки по всем шагам алгоритма (пункты 3-19 раздела 1.2

настоящего методического указания);

- анализ полученных результатов;

В ходе защиты студент должен показать знания:

- языка модели "сущность-связь";

- доказать правильность принимаемого решения на шагах 1-19 пред­лагаемого алгоритма;

- защитить вариант выбранной модели "сущность-связь".

2. Методические указания к лабораторной работе N2 "Автоматизиро-

ванное построение инфологической модели на основе канонических

структур".

Данная лабораторная работа выполняется на основе программ: "CDS",

"COBRA", "CANNON".

При подготовке к данной работе студент должен, прежде всего, озна-

комиться с основными понятиями модели (см. список литературы 1). Ввиду недостатка данного источника в библиотеке ГАУ, а также большим объемом изложенного материала, студенту достаточно изу­чить канонические структуры, изложенные ниже.

2.1 Основные понятия канонических структур.

Для успешной работы студент должен изучить и понять следующие по-

нятия данной модели:

- каноническая схема;

- каноническая подсхема;

- каноническая запись;

- атрибуты: пересекающиеся и изолированные;

- ключи: исходный, корневой, вторичный,

сцепленный;

- транзитивная зависимость, избыточные связи;

- алгоритм конструирования.

_КАНОНИЧЕСКАЯ СХЕМА - модель данных, с помощью которой представ­ляются существующие в реальном мире структуры данных, вне зависи­мости от конкретных приложений, программных и аппаратных средств, используемых для представления данных и их эксплуатации. Графичес-

кое представление данной схемы - конечный результат данной лабора­торной работы. При построении схемы можно использовать следующую графику:

a) имя - КЛЮЧИ

_атрибута

б) имя - АТРИБУТ

атрибута

в) связи: 1:1 - "--------->"

1:M - "<------->>"

M:N - "<<------>>"

г) в окончательном варианте схема включает только графику в

виде а), б) и связи типа 1 "-------->" и M "-------->>" меж-

ду ключами.

_КАНОНИЧЕСКАЯ ПОДСХЕМА - часть схемы, понимается как совокупность канонических записей. Последняя включает один ключ, идентифицирую-

щий n - атрибутов.

-----------------------------------------------------------¬

¦ _

ключ --------> атрибут 1 атрибут 2 .......... атрибут n

¦ _

L--------------------------------------

_АТРИБУТ - характеристика объекта, процесса и явлений, узел на схе­ме, из которого не выходит не одной простой стрелки. Атрибутами яв­ляются те элементы данных, которые не являются ключами.

_ПЕРЕСЕКАЮЩИЙСЯ АТРИБУТ - это атрибут, который связан с нескольки­ми ключами, т.е. блок, изображающий атрибут, имеет несколько указы­вающих на него стрелок. На результирующем каноническом графе пересе­кающиеся атрибуты должны отсутствовать.

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

щая ситуация:

---------¬

¦--------¦

¦-- 24 --+--------------------¬

¦--------¦ ¦

L--------- ¦

----- __ ---¬

¦ ¦

¦ 17 ¦

¦ ¦

L----_ ----

---------¬ ¦

¦--------¦ ¦

¦-- 16 --+---------------------

¦--------¦

L---------

Где:

16 - Цель расхода в ходе командировки - ключ1;

17 - Величина расхода - атрибут;

24 - Табельный номер работника - ключ2.

Существует три способа исключения пересекающегося атрибута:

а) Все связи, кроме одной, заменяются эквивалентными связями с су-

ществующим ключом:

---------¬

¦--------¦

¦-- 24 --¦

¦--------¦

L----T----

¦ ---------¬

¦ ¦ ¦

¦ ¦ 17 ¦

¦ ¦ ¦

¦ L----_ ----

----- __ ---¬ ¦

¦--------¦ ¦

¦-- 16 --+---------------------

¦--------¦

L---------

б) Каждый избыточный вариант пересекающегося атрибута присоединяет-

ся к соответствующему ключу:

---------¬ ---------¬

¦--------¦ ¦ ¦

¦-- 24 --+------------------->¦ 17 ¦

¦--------¦ ¦ ¦

L--------- L---------

---------¬ ---------¬

¦--------¦ ¦ ¦

¦-- 16 --+------------------->¦ 17 ¦

¦--------¦ ¦ ¦

L--------- L---------

в) Пересекающийся атрибут превращается в ключ без атрибутов:

---------¬

¦--------¦

¦-- 24 --+--------------------¬

¦--------¦ ¦

L--------- ¦

----- __ ---¬

¦--------¦ ¦-- 17 --¦ ¦--------¦ L----_ ----

---------¬ ¦

¦--------¦ ¦

¦-- 16 --+---------------------

¦--------¦

L---------

В конкретной ситуации был выбран первый способ разрешения, причем,

была установлена новая связь 24 ---> 16.

_ИЗОЛИРОВАННЫЙ АТРИБУТ - атрибут, который не идентифицируется пер­вичным ключом. Он отображается блоком, не имеющим одиночных стрелок, направленный к нему или от него, хотя двойные стрелки могут указы­вать на него. Изолированный атрибут может обрабатываться одним из следующих способов:

1. Он может быть представлен как повторяющийся атрибут в записи

переменной длины.

2. Он может быть обработан как одиночный ключ-запись, состоящая из

одного элемента.

Часто такой атрибут получается в результате ошибки при интерпрета-

ции пользовательских данных, и поэтому правомерность его наличия должна быть тщательно исследована.

_ПЕРВИЧНЫЙ КЛЮЧ - элемент данных, однозначно идентифицирующий один

или несколько элементов данных.

Элементы данных, изображаемые с помощью диаграмм, можно разделить

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

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

----------¬

¦ A +---->----T------>------T------>------¬

L----T----- -----+----¬ -----+----¬ -----+----¬

¦ ¦ C ¦ ¦ D ¦ ¦ N ¦

-----+----¬ L----T----- L----T----- L----T-----

¦ B +---->----+------>------+------>-------

L----------

A и B в данном случае эквивалентны. Они идентифицируют друг друга

и оба идентифицируют C, D,... ,N. В этой диаграмме имеет место избы­точность. В этом случае удаляются связи A-->C, A-->D,... ,A-->N или, соответственно, связь B-->C, B-->D,... ,B-->N; решение, какие связи удалять, принимает разработчик.

_ИСХОДНЫЕ КЛЮЧИ - такие ключи, которые сами идентифицируют другие

первичные ключи.

_КОРНЕВОЙ КЛЮЧ - это первичный ключ, который ни каким другим клю-

чом не идентифицируется.

_ВТОРИЧНЫЙ КЛЮЧ - неоднозначно идентифицирует элемент данных, одно-

му значению первичного ключа соответствует 0, 1, или несколько зна­чений связанного с ним элемента данных. На диаграмме атрибут с двой­ными выходящими из него стрелками - вторичный ключ. Вторичные ключи

не несут информации о структуре данных, а говорят специалисту о том,

как эти данные используются.

_СЦЕПЛЕННЫЙ КЛЮЧ - состоит из двух и более элементов данных. Сцеп-

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

_ТРАНЗИТИВНЫЕ ЗАВИСИМОСТИ :

Представление пользователя о данных, например записи, часто содер-

жит скрытые транзитивные зависимости.

Процесс удаления транзитивных зависимостей по существу эквивален-

тен преобразованию в третью нормальную форму.

Пример удаления транзитивной зависимости путем изображения атрибу-

тов пользователя не транзитивно, а непосредственно зависимыми от ключа:

----------------------------¬

---------------+-¬ ¦

¦----------------¦ --------------¬ -----_----¬ -------------¬

¦- наименование -+->¦ Табельный ¦ ¦ ФИО ¦ ¦Дата выплаты¦

¦- предприятия -¦ ¦номер работн.¦ ¦работника¦ ¦ зарплаты ¦

¦----------------¦ L-------------- L---------- L------_ ------

L--------------T-- ¦

L-------------------------------------------- ------------------------------------------------¬

---------------+-¬ ------------------¬ ¦

¦----------------¦ ¦-----------------¦ ----------¬ -------_-----¬ ¦- наименование -+->¦- Табельный -¦ ¦ ФИО ¦ ¦Дата выплаты¦

¦- предприятия -¦ ¦- номер работн. -¦ ¦работника¦ ¦ зарплаты ¦

¦----------------¦ ¦-----------------¦ L----_ ----- L------ ^^&- ------

L----------------- L--------T--------- ¦

L------------------

_ИЗБЫТОЧНЫЕ СВЯЗИ представлены в следующем виде:

----------¬ ----------¬ ----------¬

¦ X +-->--+ Y +-->--+ Z ¦

L----T----- L---------- L----T----- L--------------->----------------

Если известно, что X-->Y и Y-->Z, то это означает, что X-->Z (т.е.

для каждого значения X существует одно значение Z). Можно сказать, что X идентифицирует Y, Y идентифицирует Z, следовательно, X иденти­фицирует Z. Однако стрелка от X к Z не всегда бывает избыточной, так как между одними и теми же двумя элементами данных может существо­вать более одной связи. Поэтому, перед уничтожением связи X-->Z, не­обходимо изучит смысл ассоциации элементов, чтобы было возможным обеспечить связь X-->Z с помощью связей X-->Y и Y-->Z. Иногда избы­точные связи могут удаляться из длинной цепи связей. Например:

----->-----T---->-----T---->-----T---->-----T---->----¬

¦ ¦ ¦ ¦ ¦ ¦

г===¦===¬ ----+---¬ ----+---¬ ----+---¬ ----+---¬ ---+----¬

¦ 1 ¦ ¦ 2 ¦ ¦ 3 ¦ ¦ 4 ¦ ¦ 5 ¦ ¦ 6 ¦

L=======- L-------- L-------- L-------- L-------- L--------

Пусть 3 и 4 элементы идентифицируются элементом 2. Следовательно,

запись может быть представлена следующим образом:

----->---------->---------->-----T---->-----T---->----¬

¦ ¦ ¦ ¦

г===¦===¬ --------¬ --------¬ ----+---¬ ----+---¬ ---+----¬

¦ 1 ¦ ¦ 2 ¦ ¦ 3 ¦ ¦ 4 ¦ ¦ 5 ¦ ¦ 6 ¦

L===T===- L--T--T-- L---T---- L----T--- L-------- L--------

¦ ¦ ¦ ¦ ¦

L - ->- - - L--->----+----->------

Если элементы данных не могут быть идентифицированы одним элемен­том, то используются сцепленные ключи. Отношения типа M:N между пер­вичными ключами каноническая схема не содержит. В канонической схе­ме сцепленный ключ представляется в виде отдельных блоков для каждо­го элемента данных, являющегося компонентом сцепленного ключа.

Если процедура конструирования устанавливает связи между ключами в

одном направлении, то добавляются эквивалентные связи в обратном направлении, т.е. связь между ключами изображается двунаправленными стрелками. Теперь, если есть отношение типа M:N между ключами A:B:

г=========¬ г=========¬

¦ A ¦-<<------->>-¦ B ¦

L=========- L=========-

и путь в любом направлении предположительно может пересечься, вво­диться третий ключ A+B:

г=========¬ г=========¬

¦ A ¦ ¦ B ¦

L====T====- L====T====-

¦ г=========¬ ¦

L<-->>-¦ A+B ¦-<<-->-

L=========-

АЛГОРИТМ КОНСТРУИРОВАНИЯ КАНОНИЧЕСКОЙ

СТРУКТУРЫ БАЗЫ ДАННЫХ

1. Необходимо взять первое представление пользователя о данных, представляя их в виде графика со связями между элементами данных, заданными только двумя типами ассоциаций: 1 и М.

Проверить наличие скрытых транзитивных зависимостей. Необходимо убедиться, что представление пользователя задано в третьей нор­мальной форме. Вынести на диаграмму только те связи, которые имеют отношения к пользователю.

2. Проверить наличие омонимов или синонимов и удалить их, если

оные присутствуют.

3. Выделить узлы атрибутов и узлы первичных ключей. Пометить пер-

вичный ключ каким-либо способом.

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

отсутствует в графе.

5. Выявить избыточные связи. Оценить их перед удалением, действи­тельно-ли они являются избыточными. Произвести удаление избыточных связей.

6. Идентифицировать корневой ключ. Заново перечертить диаграмму, где корневой ключ будет помещен в вершину, а одиночные связи между ключами должны указывать направление сверху вниз, там, где это воз­можно. Пометить связи между первичными ключами.

7. Проверить наличие изолированных атрибутов, если таковые сущес-

твуют, то обработать их одним из трех способов:

а) может быть представлен как повторяющийся атрибут в записи пере-

менной длины;

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

щая из одного элемента данных;

в) может быть следствием ошибки возникшей при интерпретации пользовательских данных, и в этом случае ее необходимо исправить;

8. Проверить, содержит ли граф пересекающиеся атрибуты. Если со-

держит, то обработать их способом, приведенным выше.

9. Объединить элементы данных в группы так, чтобы каждая группа имела один первичный ключ и ассоциированные с ним атрибуты. Затем группу можно представить в виде прямоугольника.

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

гольниками связи, относящиеся к вторичным ключам.

2.2 ПОДГОТОВКА ИСХОДНЫХ ДАННЫХ

Исходными данными для программы канонической обработки

являются:

1. Список наименований элементов данных исходной струк-

туры.

2. Список всех значимых связей, существующих в исходной структуре, с указанием типов связей (возможные вари-

анты: 1:1, 1:М, М:1, М:N).

Для каждого элемента данных нужно назначить его индиви-

дуальный порядковый номер, начиная с 1-го.

Эти данные могут быть получены из результатов Домашнего Зада­ния N2, выполняемого студентами ММиИОЭ по дисциплине СОЭИ в

первом семестре III курса.

2.3 Методика работы с программой "COBRA"

О ПРОГРАММЕ "COBRA"

Язык программирования: С++

Программная Среда: Borland C++ 3.1

Copyright @ by Borland International

Приложение: Turbo Vision 1.0

Copyright @ by Borland International

Hard: CPU Type - 100 MHz 486DX

Coprocessor Type - 486

Expansion Bus Type - PCI, ISA Base Memory - 640 kB

Extended Memory - 7168 kB

Sound Card - Gravis UltraSound MAX UltraSound is trademark of Advanced Gravis Computer Technology Limited

Soft: Dos Navigator (tm) Copyright @ by RIT S.R.L

~ DN - The Best Shell In The World

WDir, Copyright @ by Smth Fierce / Smth Evil PATHi (tm) Copyright @ by Andy La Rubin

РАБОТА С ПРОГРАММОЙ "COBRA"

Исполняемый файл программы называется cobra.exe

Запуск программы

Запуск программы можно произвести из операционной системы МC-DOS, набрав имя исполняемого файла в командной строке и нажав клавишу Enter.

!!! Если содержимое исполняемого файла было испорчено из-за ошибки считывания, неисправности носителя или по какой-либо другой причине, программа выдаст сообщение об ошибке и пре­кратит работу. В этом случае рекомендуется скопировать для дальнейшего использования оригинальную версию программы и повторить запуск.

Подготовка к работе

После запуска программы на экране появится вступительная заставка. Прочитав ее, пользователь должен нажать клавишу Enter. После этого вступительная заставка сменится текстом подсказки - указанием пользователю, какие действия он должен произвести в дальнейшем. Прочитав заставку и нажав клавишу Enter, пользователь увидит осно­вной экран программы и сможет выбрать необходимые ему пункты меню.

ИСПОЛЬЗОВАНИЕ КЛАВИШ ДЛЯ РАБОТЫ С ПРОГРАММОЙ

Клавиша F1 - вызывает на экран информацию о

программе.

Клавиша F5 - ввод данных с клавиатуры.

Клавиша F6 - ввод данных из файла.

Клавиша F7 - запуск преобразования введенных

данных в каноническую структуру. Клавиша F10 - переход в главное меню

Комбинация клавиш Alt и X - выход из программы.

ИСПОЛЬЗОВАНИЕ ГЛАВНОГО МЕНЮ

Для того, чтобы попасть в главное меню программы, достаточно нажать клавишу F10. Сделать это нужно в момент, когда не открыто ни одного дополнительного программного окна,т.е. не происходит процессов ввода, обработки или просмотра информации.

После нажатия клавиши F10, курсор переместится в верх­нюю часть экрана и укажет на один из пунктов меню. После этого пользователь, нажимая клавиши управления курсором,выбирает нужный ему пункт меню и нажимает клавишу Enter.

На экране появится еще одно меню, выбрав пункт кото­рого, пользователь переведет программу в режим обрабо­тки полученного требования ( ввод, обработка, редакти­рование, просмотр данных и т.д.).

Для того, чтобы прервать процесс работы с главным ме­ню, нужно нажать клавишу Esc.

ВВОД ИСХОДНЫХ ДАННЫХ

Для того, чтобы начать ввод исходных данных с клавиатуры, нужно выбрать пункт меню _Ввод данных

¦

_ _

_С клавиатуры _, или нажать клавишу F5.

Программа запросит имя файла, в котором будет сохранена введенная ин­формация Нужно набрать имя файла в предложенной строке и нажать Enter. После этого программа попросит указать имена всех присутствующих в ис­ходной структуре элементов, начиная с номера 1. Пользователь должен ввести с клавиатуры название элемента и нажать Enter. Программа запо­мнит введенное имя и перейдет к следующему по порядку элементу. Если пользователю понадобится вернуться к одному из ранее введенных эле­ментов, он может воспользоваться клавишей Esc, которая возвращает программу к предыдущему указанному имени.

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

Следующим шагом является определение связей между элементами.

В появившемся запросе существуют три строки для ввода данных. В пер­вой строке указывается номер первого элемента из двух, участвующих в очередной вводимой связи. Указав этот номер, нужно нажать клавишу Tab, и курсор перейдет во вторую строку. Во второй строке указывает­ся номер второго элемента. Указав его нажав Tab, нужно в третьей строке указать тип связи (ввести цифру "1" для связи 1:1, "2" - для связи 1:М, "3" - для связи М:1, "4" - для связи М:N и "0" - чтобы удалить ранее введенную связь между обозначенными элементами).

После окончания ввода информации по очередной связи нужно нажать клавишу Enter, после чего программа выдаст запрос для указания следую­щей связи. Если будет указана некорректная информация о связи (несу­ществующие номер элемента или тип связи), программа выдаст сообщение об ошибке и вернется в окно определения связи. Когда будет введена вся информация обо всех существующих в структуре связях, пользова­тель должен нажать клавишу Esc. На этом процесс обозначения связей бу­дет закончен.

ПРИМЕЧАНИЕ: при редактировании информации о какой-либо из уже обозна­ченных связей между элементами достаточно в любом из запросов ввести новую информацию об этой связи, и старая информация будет отредакти­рована.

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

Ввод данных из файла

Если пользователю понадобиться вновь воспользоваться ранее введен­ной информацией о структуре, он может считать данные из созданного программой файла. Для этого нужно выбрать пункт меню:

_Ввод данных

¦

_

_Из файла , или нажать клавишу F6.

В появившемся запросе будут указаны все имеющиеся в текущей дирек­тории файлы с данными для программы. Пользователь должен использо­вать клавишу TAB и клавиши управления курсором, чтобы выделить имя требуемого файла, и затем нажать ENTER.

После этого программа перейдет в режим редактирования информации, содержащейся в считанном файле.

Обработка введенных данных

Для того чтобы программа произвела преобразование введенных дан­ных в структуру канонического типа, пользователь должен выбрать пункт меню :

_Обработка

¦

_

_Выполнить , или нажать F7.

Процесс обработки не требует участия пользователя. Продолжительность обработки зависит от быстродействия машины и

объема введенных данных. На медленных компьютерах этот процесс мо­жет занять несколько минут, а на сравнительно быстрых будет завер­шен за 10-15 секунд. Во время работы на экране отображается прог­ресс ее выполнения.

После завершения работы программа сообщит, в каком файле был сох-

ранен результат и выведет этот файл на экран для просмотра.

Если в процессе преобразования были обнаружены недочеты в исход­ных данных, например, изолированные атрибуты или атрибуты, не опре­деляющиеся связью с ключом 1:1, то в файл с результатами будут зане­сены предупреждения и рекомендации по исправлению исходной структуры.

Во время просмотра результатов можно пользоваться клавишами управ-

ления курсором и клавишами PageUp, PageDown для осуществления скрол-

линга экрана в нужном направлении.

Для окончания просмотра нужно нажать Esc.

Форма вывода результата

Результирующая каноническая структура выводится в форме каноничес-

ких записей.

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

Форма вывода сцепленных ключей

Сцепленные ключи выводятся отдельными каноническими записями. Каж­дая запись может содержать два или более элементов, образующих сцеп-

ленный ключ. Элементы ключа прибавляются к записи по мере их присое­динения к сцепленному ключу, т.е. если пользователю понадобиться восстановить на бумаге всю структуру ключа, он может воспользо­ваться следующим способом. Сначала нарисовать два первых элемента и объединить их в сцепленный ключ, обозначив связи М:1 от ключа к его элементам. Потом нарисовать третий элемент, объединить его с уже су­ществующим ключом, и так продолжать до тех пор, пока не будут вклю­чены все элементы.

_ 1+2+3

PainBrush !!! (page43) _ 1+2

3 1 2

Р Е З У Л Ь Т А Т Ы Р А Б О Т Ы П Р О Г Р А М М Ы

~ C O B R A ~

-----------------------¬

-- ВНИМАНИЕ !!! L--------------------------¬

¦ Исходная структура содержала 4 элементов, L----------------------¬

¦ которые не определялись не одним из ключей. ¦

¦ (так как не было не одного элемента, связанного сними связью типа 1:1) ¦

¦ В идеале, каноническая структура не должна содержать таких элементов. ¦

¦ Возможно, были допущены ошибки при определении связей. ¦

¦ Рекомендуем исправить исходные данные ( постараться найти ¦

¦ и обозначить связи 1:1 или, что менее приемлимо, М:1, ¦

L¬ направленные к этим элементам ) и повторить обработку. ---------------- L----------------------------------------------------------

Номера этих элементов:

11; 20; 21; 27;

-----------------------¬

-- ВНИМАНИЕ !!! L--------------------------¬

¦ Исходная структура содержала 28 элементов, L----------------------¬

¦ определенных только связями М:1. ¦

¦ В идеале, каноническая структура не должна содержать таких элементов. ¦

¦ Рекомендуем исправить исходные данные L-¬

¦ (постараться найти и обозначить связи 1:1, направленные к этим элементам)¦ L¬ и затем повторить обработку. ¦

L---------------------------------------------------------------------------

Номера этих элементов:

4; 5; 6; 7; 8; 9; 10; 12; 13; 14; 16; 17; 19; 25; 26; 28; 29; 30; 31; 32; 33

-----------------------¬

-- ВНИМАНИЕ !!! L--------------------------------------¬

¦ Каноническая запись # 2 не имеет связей с другими записями. ¦

¦ В канонической структуре такого быть не должно. ¦

L¬ Исправьте исходные данные и повторите процедуру обработки. ¦ L--------------------------------------------------------------

Если вас устраивает получившийся вариант канонической структуры, нарисуйте схему этого варианта на бумаге: Нарисуйте отдельно каждый из ключей, обведите его название прямоугольной рамкой и подчеркните. Затем названия корневых ключей подчеркните прямой чертой; названия первичных ключей - волнистой линией; названия исходных ключей - пре­рывистой линией. Теперь для каждого из ключей нарисуйте по сторонам от него связанные с ним атрибуты. Соедините ключи и атрибуты стрел­ками соответствующими типу связи ( <------> для связи 1:1, <----->> для 1:М, <<------> для М:1 ). Названия атрибутов обведите овальными рамками. Потом нарисуйте все указанные в схеме связи между ключами

( аналогично связям ключей с атрибутами ).

Имя для сцепленного ключа составляется из суммы имен всех входя-

щих в него элементов ( Имя1 + Имя2 + ... + ИмяN ).

Для сцепленных ключей нарисуйте их структуру: под названием сцеп­ленного ключа нарисуйте две его составляющие: первая - сцепленный ключ с именем, как у предыдущего, но без последнего составляющего элемента; вторая - последний элемент сцепленного ключа. Нарисуйте связи М:1 от сцепленного ключа к составляющим. Теперь туже процеду­ру проделайте с только что полученным ~укороченным~ сцепленным клю­чом и продолжайте, пока в сцепленном ключе не останется только один элемент.

На этом построение канонической схемы будет закончено.

г=======================================================================¬ ¦ К А Н О Н И Ч Е С К А Я С Т Р У К Т У Р А ¦

L=======================================================================-

---------------------------¬

¦ КАНОНИЧЕСКАЯ ЗАПИСЬ # 1 ¦ г===¦==========================¦======================================¬ ¦ Номер истории болезни N 2 | ПЕРВИЧНЫЙ КЛЮЧ ¦

¦---------------------------------------------------------------------¦

¦ а т р и б у т ы тип связи ¦

¦ ¦

¦ +----> Диагноз N 1 M:1 ¦

¦ +----> ФИО больного N 3 1:1 ¦

¦ +----> Дата рождения больного N 4 M:1 ¦

¦ +----> Исход лечения N 5 M:1 ¦

¦ +----> Дата начала лечения N 6 M:1 ¦

¦ +----> Дата окончания лечения N 7 M:1 ¦

¦ +----> Сопутствующее заболевание N 8 M:1 ¦

¦ +----> Способ лечения N 9 M:1 ¦

¦ +----> Рекомендации N 10 M:1 ¦

¦ +----> Адрес больного N 18 1:1 ¦

¦---------------------------------------------------------------------¦

¦ с в я з и с к л ю ч а м и тип связи ¦

¦ ¦

¦ СЦЕПЛЕННЫЙ ________ КЛЮЧ # 1 M:1 ¦

¦ СЦЕПЛЕННЫЙ ________ КЛЮЧ # 2 1:M ¦

¦ СЦЕПЛЕННЫЙ ________ КЛЮЧ # 3 1:M ¦

¦ СЦЕПЛЕННЫЙ ________ КЛЮЧ # 4 1:M ¦

¦ СЦЕПЛЕННЫЙ ________ КЛЮЧ # 5 1:M ¦

L=====================================================================-

---------------------------¬

¦ КАНОНИЧЕСКАЯ ЗАПИСЬ # 2 ¦ г===¦==========================¦======================================¬ ¦ ФИО сотрудника N 11 | КОРНЕВОЙ КЛЮЧ ¦

¦---------------------------------------------------------------------¦

¦ а т р и б у т ы тип связи ¦

¦ ¦

¦ +----> Должность сотрудника N 12 M:1 ¦

¦ +----> Количество отработанных часов N 13 М:1 ¦

¦ +----> Разряд сотрудника N 14 M:1 ¦

¦---------------------------------------------------------------------¦

¦ с в я з и с к л ю ч а м и тип связи ¦

¦ ¦

¦ НЕ ИМЕЕТ СВЯЗЕЙ С ДРУГИМИ КЛЮЧАМИ ¦

L=====================================================================-

и так далее по всей структуре.

Графическое отражение канонической структуры

Нарисовать отдельно отдельно каждый из ключей, обвести его назва-

ние прямоугольной рамкой. Затем названия корневых ключей подчер­кнуть прямой чертой; названия первичных ключей - волнистой линией; названия исходных ключей - прерывистой линией.

Теперь для каждого из ключей нарисовать по сторонам от него все связанные с ним атрибуты. Соединить ключи и атрибуты стрелками соот­ветствующими типу связи ( <------> для связи 1:1, <----->> для 1:М, <<------> для М:1 ).

Названия атрибутов обвести овальными рамками.

Потом нарисовать все указанные в схеме связи между ключами (анало-

гично связям ключей с атрибутами).

Имя для сцепленного ключа составляется из суммы имен всех входя-

щих в него элементов ( Имя1 + Имя2 +... + ИмяN ).

Способы изображения сцепленных ключей описан ранее в разделе Фор-

ма вывода сцепленных ключей.

Соседние файлы в папке Methodicals