Материал: db_lab_02_of_12_ivt-4

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Создание логической модели БД

Цель: научиться проектировать базы данных.

Методические рекомендации

Для выполнения лабораторной работы рекомендуется использовать программу ERwin, установленную на терминале 4100 (skylab.sipc.miet.ru). Для запуска этой программы следует выбрать: Все программы -> CA -> AllFusion -> ERwin Data Modeler r7 -> ERwin Data Modeler r7 (не путать с ERwin Model Navigator!!!).

При желании, вместо программы ERwin можно использовать любые другие программные средства построения модели данных, к примеру сервис www.diagrams.net, или любой другой аналогичный.

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

Далее следует краткий конспект теоретического материала.

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

1. Работа с программой ERwin

ERwin имеет два уровня представления модели – логический и физический.

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

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

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

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

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

При создании новой логической модели с целью дальнейшего создания на ее основе модели физической необходимо установить переключатель типа модели в положений «Logical/Physical» остальные значения оставить без изменения (см. рис. 1).

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

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

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

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

Таблица 1

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

 

Таблица 2

 

 

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

Кнопки

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

Описание

 

 

Указатель

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

 

 

 

установит фокус на каком-либо объекте модели

 

 

Сущность

кнопка внесения сущности - для внесения сущности

 

 

 

нужно щелкнуть левой кнопкой мыши по кнопке

 

 

 

внесения сущности и один раз по свободному

 

 

 

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

 

 

 

или других объектов модели необходимо перейти в

 

 

 

режим указателя

 

 

Категория

категория, или категориальная связь, - специальный тип

 

 

 

связи между сущностями, которая будет рассмотрена

 

 

 

ниже. Для установления категориальной связи нужно

 

 

 

щелкнуть левой кнопкой мыши по кнопке категории,

 

 

 

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

 

 

 

затем - по сущности-потомку

 

 

Идентифицирующая

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

 

 

связь

подробно описана ниже по тексту)

 

 

Связь «Многие-ко-

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

 

 

многим»

многими экземплярами другой сущности и наоборот

 

 

 

(возможна только на уровне логической модели)

 

 

Неидентифицирующая

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

 

 

связь

описана ниже по тексту)

 

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

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

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

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

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

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

Такая диаграмма не слишком детализирована, в нее включаются основные сущности и связи между ними, которые удовлетворяют основным требованиям, предъявляемым к информационным

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

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

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

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

Основные компоненты диаграммы ERWin – это сущности, атрибуты и связи.

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

Фамилия заказчика, Адрес заказчика.

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

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

4. Связи

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

размещает

 

выполняется

клиент

заказ

сотрудник

 

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

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

На логическом уровне можно установить идентифицирующую связь один-ко-многим, связь многие-ко-многим и неидентифицирующую связь один-ко-многим (кнопки в палитре инструментов). Тип сущности определяется ее связью с другими сущностями. Различают зависимые и независимые сущности.

Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда рисуется идентифицирующая связь,

ERWin автоматически преобразует дочернюю сущность в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами (в предыдущем примере сущность Заказ). Информация о заказе не может быть внесена и не имеет смысла без информации о клиенте, который ее размещает.

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

 

 

Заказ

Клиент

 

 

 

 

Номер клиента (FK)

Номер клиента

размещает

Номер заказа

 

Имя клиента

 

 

 

Сумма заказа

 

Адрес клиента

 

 

Дата заказа

 

 

 

 

Дата отгрузки

 

 

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

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

 

 

Сотрудник

 

 

 

Отдел

 

Табельный номер сотрудника

 

 

состоит из

Номер отдела (FK)

 

Номер отдела

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

 

 

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

 

 

Наименование отдела

 

 

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

 

 

 

 

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

 

 

 

 

 

Рисунок 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 или много

P

0 или 1

Z

точно N(5)

5

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