Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНАЯ РАБОТ К КУРСУ_БД_№7_2012.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.05 Mб
Скачать

Учебный вопрос «Определение атрибутов и связей между сущностями»

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

  1. Действия проектировщика

    1. Для описания атрибутов следует выполнить один из вариантов дейст­вий:

  • дважды «щелкнуть» по прямоугольнику сущности левой кнопкой ручно­го манипулятора «мышь» (рис.9);

  • «щелкнуть» по прямоугольнику сущности правой кнопкой ручного ма­нипу­лятора «мышь», в открывшемся окне «нажать» левой кнопкой ручного ма­нипулятора «мышь» на закладке «Attributes» (рис.10);

  • «щелкнуть» по прямоугольнику сущности левой кнопкой ручного мани­пу­лятора «мышь», далее той же кнопкой «нажать» ярлык «Model» головного ме­ню и далее в от­рывшемся списочном меню «нажать» левой кнопкой ручного ма­нипулятора «мышь» на закладке «Attributes» (рис.11).

Кнопка ввода нового атрибута

Кнопка редактирования атрибута

Кнопка удаления атрибута

Окно атрибута

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

Рис.9 Диалоговое окно для описания атрибутов

Рис.11 Закладка Attributes в раскрывшемся списке ярлыка «Model»

Рис.11 Закладка Attributes в списочном меню

    1. «Щелкнуть» по кнопке New, и в появившемся диалоге New Attribute можно указать имя атрибута, имя соответствующей ему в физической модели колонки и домен (рис.12).

Рис. 12. Диалог New Attribute

Для атрибутов первичного ключа во вкладке General диалога Attributes необходимо сделать пометку в окне выбора Primary Key (рис.13).

Окно выбора для назначения ключевого поля

Ключевое поле, отмеченное знаком ключа

Рис. 13 Назначение атрибута - первичного ключа

Вкладка Definition позволяет записывать определения отдельных атрибутов (рис.14).

Рис. 14 Запись определения отдельных атрибутов

Для большей наглядности диаграммы каждый атрибут можно связать с пик­тограммой (иконкой). При помощи списка выбора Icon во вкладке General осу­ществляется связь иконки с атрибутом.

Домен атрибута будет использоваться при определении типа поля на уровне физической модели. В ERwin домен определяется только один раз и используется как в логической, так и в физической модели.

Домен может быть создан на основе другого домена и наследовать все свой­ства домена-прародителя. По умолчанию ERwin имеет четыре предопределенных домена: String, Number, Blob, Datetime. Создать домен можно во вкладке Do­mains окна Model Explorer.

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

    1. Для создания новой связи следует:

  • установить курсор на нужной кнопке (идентифицирующая или неиден­тифицирующая связь ) в палитре инструментов и нажать левую кнопку руч­ного манипулятора «мышь» (рис. 15);

  • щелкнуть сначала по родительской, а затем по дочерней сущности.

Рис. 15 Создание связи между таблицами

    1. Изменение формы линии связи следует осуществить в следующем порядке.

      1. Захватывать ручным мышью нужную линию связи и переносить ее с места на место, пока линия не начнет выглядеть лучше.

      2. В палитре инструментов кнопка соответствует идентифицирующей связи, кнопка связи "многие ко многим" и кнопка соответствуют неидентифицирующей связи.

      3. Для редактирования свойств связи следует щелкнуть правой кнопкой ручного манипулятора «мышь» по связи и выбрать в контекстном меню пункт Relationship Properties. Двойной щелчок по левой кнопке открывает вкладку диалога General, что позволяет задать мощность, имя и тип связи (рис. 16).

Рис.16. Редактирование свойств связи.

      1. Для выбора представляются следующие варианты типов связи:

      2. В секции «Relationship Type» следует задать характер связи – иденти­фицирующая или неидентифицирующая.

В первом случае первичный ключ родительской таблицы входит составной частью в первичный ключ дочерней таблицы. Во втором случае – не входит.

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

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

Значение «NULL» не является нулем, пустой строкой и т.д. Оно го­ворит о том, что в данном поле вообще отсутствует какое-либо значение.

Для выбора представляются следующие варианты типов связи:

  • Zero, One or More – связь «Ноль, один или много»;

  • One or More – связь «Один или много»;

  • Zero or One – связь «Ноль или один»;

  • Exactly – связь «Точно указанное количество».

    1. Созданная модель имеет ряд недостатков.

      1. Атрибут «жанр» для многих книг будет иметь одно и то же значение. Например, все учебники или детективные романы.

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

      1. Аналогичная ситуация атрибутом «Издательство». Издательств гораздо меньше, чем публикуемых этими издательствами книг.

      2. В модели реализована связь «многие-ко-многим», которую большинство современных СУБД не поддерживают в чистом виде.

    1. Основные направления оптимизации.

      1. Оптимизация осуществить выделением атрибута «Жанр» в отдельную сущность. При этом возникает связь со следующими требованиями:

      2. Одна книга может относиться только к одному жанру;

      3. В одном жанре могут быть написаны множество книг. Этим требо­ваниям отвечает связь типа «один-ко-многим».

    2. Аналогично выполняется выделение сущности «Издательство».

    3. Далее, связь типа «многие-ко-многим» формализовать введе­нием дополнительной сущности «автор книги» и заменой связи «многие-ко мно­гим» двумя связями «один-ко-многим».

      1. При связывании таблиц целесообразно задавать специальные поля–идентификаторы (первичные ключи), которые будут использоваться для пе­рекрестных ссылок между таблицами.

Такие связи рекомендуется делать неиден­тифицирующими.

    1. В результате будет создана модель, представленная на рис. 17.

Рис.17. Модель данных, представленная на логическом уровне