Лабораторная
 

Лабораторная работа № 1

Проектирование моделей данных с применением CASE-средств.
Создание диаграммы сущность-связь.

Цель работы: ознакомиться с работой программы Erwin, на примере создания логической модели данных.

Теоретические сведения

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

Логическая модель данных разрабатывается на основе существующих моделей данных (например, реляционной), но никак не связана с конкретной реализацией системы управления базы данных (СУБД) и прочих физических условий реализации. Она может быть построена на основе другой логической модели, например, на основе модели потоков данных или процессов.

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

Физическая модель данных, напротив, зависит от конкретной СУБД фактически являясь отображением системного каталога. В физической модели содержится информация обо всех объектах БД. Поскольку стандартов на объекты БД не существует (например, нет стандарта на типы данных), физическая модель зависит от конкретной реализации СУБД. Следовательно, одной и той же логической модели могут соответствовать несколько разных физических моделей.

Интерфейс ERWin. Уровни отображения модели.

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

Рис. 1. Создание новой модели.

Интерфейс модели выполнен в стиле Windows-приложений, достаточно прост и интуитивно понятен.

Палитра инструментов выглядит различно на разных уровнях отображения модели.

Рис. 2. Окно отображение модели.

Рассмотрим кратко основные функции ERwin по отображению модели, а также панель и палитру инструментов.

Основная панель инструментов

Таблица 1.1.

Кнопки

Назначение кнопок

Создание, открытие, сохранение и печать модели

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

Изменение масштаба просмотра модели

Переключение между областями модели - Subject Area

Диалоги для генерации отчетов по модели

Палитра инструментов

Панель инструментов Font and Color Toolbar

Панель Суперкласс — подкласс

Панель для рисования графических объектов

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

Рис. 3. Палитра инструментов.

Палитра инструментов

Таблица 1.2.

Кнопки

Назначение кнопок

Описание

Указатель

кнопка указателя (режим мыши) - в этом режиме можно установит фокус на каком-либо объекте модели

Сущность

кнопка внесения сущности - для внесения сущности нужно щелкнуть левой кнопкой мыши по кнопке внесения сущности и один раз по свободному пространству на модели. Для редактирования сущностей или других объектов модели необходимо перейти в режим указателя

Категория

категория, или категориальная связь, - специальный тип связи между сущностями, которая будет рассмотрена ниже. Для установления категориальной связи нужно щелкнуть левой кнопкой мыши по кнопке категории, затем один раз щелкнуть по сущности - родовому предку, затем - по сущности-потомку

Идентифицирующая связь

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

Связь “Многие-ко-многим”

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

Неидентифицирующая связь

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

Создание логической модели данных.

Различают три уровня логической модели, отличающихся по глубине представления информации о данных:

-       диаграмма сущность-связь (Entity Relationship Diagram, ERD);

-       модель данных, основанная на ключах (Key Based model, KB);

-       полная атрибутивная модель (Fully Attributed model, FA).

Диаграмма сущность-связь представляет собой модель данных верхнего уровня. Она включает сущности и взаимосвязи, отражающие основные бизнес-правила предметной области. Такая диаграмма не слишком детализирована, в нее включаются основные сущности и связи между ними, которые удовлетворяют основным требованиям, предъявляемым к информационным системам (ИС).Диаграмма ERD может включать связи многие-ко-многим и не включать описание ключей. Как правило, ERD используется для презентаций и обсуждения структуры данных с экспертами предметной области.

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

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

Сущности и атрибуты

Основные компоненты диаграммы ERWin — это сущности, атрибуты и связи. Сущность можно определить как объект, событие или концепцию, информация о которой должна сохраняться. Сущности должны иметь наименование с четким смысловым значением, фактически это имя ее экземпляра. Например, сущность Заказчик с атрибутами Номер заказчика, Фамилия заказчика, Адрес заказчика.

Entity Editor в контекстном меню для сущности позволяет определить имя, описание, комментарии, иконку. Для описания атрибутов сущности выбирается пункт Attribute Editor. Здесь можно указать имя нового атрибута и домен, который будет использоваться при определении типа колонки на уровне физической модели. Атрибуты должны именоваться в единственном числе и иметь четкое смысловое значение. Каждый атрибут должен быть определен (закладка Definition), при этом следует избегать циклических определений и производных атрибутов. Для атрибутов первичного ключа (это атрибут или группа атрибутов, идентифицирующая сущность) необходимо сделать пометку в окне выбора Primary Key.

Связи.

Связь является логическим соотношением между сущностями. Каждая связь должна именоваться глаголом или глагольной фразой (Relationship Verb Phrases). Имя связи облегчает чтение диаграммы, например:

По умолчанию имя связи на диаграмме не показывается. Для отображения имени следует в контекстном меню для свободного места диаграммы выбрать пункт Display Option/relationship и включить опцию Verb Phrase.

На логическом уровне можно установить идентифицирующую связь один-ко-многим, связь многие-ко-многим и неидентифицирующую связь один-ко-многим (кнопки в палитре инструментов). Тип сущности определяется ее связью с другими сущностями. Различают зависимые и независимые сущности. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда рисуется идентифицирующая связь, ERWin автоматически преобразует дочернюю сущность в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами (в предыдущем примере сущность Заказ). Информация о заказе не может быть внесена и не имеет смысла без информации о клиенте, который ее размещает. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности и помечается в дочерней сущности как внешний ключ (FK). Эта операция называется миграцией атрибутов. В дальнейшем, при генерации схемы БД, атрибуты первичного ключа получат признак NOT NULL, что означает невозможность внесения записи в таблицу заказов без информации о номере клиента.

 

Рис. 5. Идентифицирующая связь между независимой и зависимой сущностью.

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

 

Рис. 6. Неидентифицирующая связь.

Во вкладке General меню Relationship Editor можно задать мощность, имя и тип связи.

Мощность связи (Cardinality) — служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней.

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

-         общий случай, когда одному экземпляру родительской сущности соответствует 0, 1 или много экземпляров дочерней сущности (не помечается каким-либо символом);

-         одному экземпляру родительской сущности соответствует 1 или много экземпляров дочерней сущности (помечается символом Р);

-         одному экземпляру родительской сущности соответствует 0 или 1 экземпляр дочерней сущности (помечается символом Z);

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

По умолчанию символ, обозначающий мощность связи, не показывается на диаграмме. Для отображения имени следует в контекстном меню для диаграммы (в месте не занятом объектами модели) выбрать пункт Display Options/Relationship и затем включить опцию Cardinality.

Имя связи (Verb Phrase) — фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим идентифицирующей или неидентифицирующей достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to Child так и Child-to-Parent.

0,1 или много

1 или много

0 или 1

точно N(5)

Рис.2.3. Обозначения мощности.

Связь многие-ко-многим возможна только на логическом уровне. При переходе к физическому уровню Erwin автоматически преобразует связь многие-ко-многим, добавляя новую таблицу и устанавливая две новые связи один-ко-многим от старых к новой таблице. Имя новой таблице присваивается автоматически как «Имя1_Имя2».

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

1.     Основные этапы проектирования базы данных

2.     Принципы построения логической модели данных.

3.     Какие типы связей используются при построении модели «сущность-связь»?

4.     Привести примеры идентифицирующих и неидентифицирующих связей?

5.     Что такое мощность связи?

Требования к отчету

В качестве отчета должна быть представлена ER диаграмма логической модели данных своего варианта с подробным объяснением ее построения.

Лабораторные задания

Номер варианта

Задание

1, 10, 19

Тип сущности: Преподаватель

Атрибуты типа сущности:

Идентификатор преподавателя

Имя преподавателя

Отчество преподавателя

Фамилия преподавателя

Кафедра

Должность преподавателя

Стаж работы

Тип сущности: Занятие

Атрибуты типа сущности:

Дата проведения занятия

время проведения занятия

тип занятия

Тип сущности: Аудитория.

Атрибуты типа сущности:

Корпус

Этаж

Номер аудитории

Тип аудитории

Вместительность аудитории

Тип сущности: Студент

Атрибуты типа сущности:

Имя студента

Отчество студента

Фамилия студента

Группа

Номер студенческого билета

Пол студента

Дата рождения студента

Тип документа об образовании

Страна проживания студента

Область проживания студента

Город проживания студента

Проживание в общежитии

Вступительный балл по математике

Вступительный балл по физике

Номер школы

Наличие медали

2, 11, 20

Тип сущности: Группа

Атрибуты типа сущности:

Номер группы

Идентификатор старосты

Идентификатор профорга

Количество человек в группе

Выпускающая кафедра

Тип сущности: Текущая успеваемость

Атрибуты типа сущности:

Название учебной дисциплины

Дата определения текущей успеваемости

Оценка текущей успеваемости

Тип сущности: Факультет

Атрибуты типа сущности:

Идентификатор факультета

Краткое название факультета

Полное название факультета

ФИО декана факультета

Тип сущности: Студент

Атрибуты типа сущности:

Имя студента

Отчество студента

Фамилия студента

Номер группы

Номер студенческого билета

Пол студента

Дата рождения студента

Тип документа об образовании

Страна проживания студента

Область проживания студента

Город проживания студента

Проживание в общежитии

Вступительный балл по математике

Вступительный балл по физике

Номер школы

Наличие медали

3, 12, 21

Тип сущности: Команда

Атрибуты типа сущности:

Вид спорта

Номер команды

Название команды

Город базирования

Количество игроков

Фамилия тренера

Базовый стадион

Тип сущности: Игрок

Атрибуты типа сущности:

Номер игрока

Номер команды

Фамилия игрока

Дата рождения игрока

Роль в команде

Тип сущности: Гол

Атрибуты типа сущности:

Дата/время гола

Номер игры

Номер игрока

Номер команды

Тип сущности: Соревнование

Атрибуты типа сущности:

Номер соревнования

Дата/время соревнования

Название соревнования

Место проведения (город)

Дата проведения соревнования

Тип сущности: Игра

Атрибуты типа сущности:

Номер игры

Номер соревнования

Дата/время игры

Участник_1 игры

Участник_2 игры

4, 13, 22

Тип сущности: Родственник студента

Атрибуты типа сущности:

Идентификатор родственника студента

Имя родственника студента

Отчество родственника студента

Фамилия родственника студента

Дата рождения родственника студента

Тип родственника студента

Место жительства родственника студента

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

Тип сущности: Семья студента

Атрибуты типа сущности:

Глава семьи

Количество членов семьи