- •Часть 1
- •0804 - "Компьютерные науки"
- •Содержание
- •Вступление
- •Ознакомиться с назначением и основными технологическими приемами использования инструментальной case-системы eRwin 4.0.
- •Изучить графические характеристики диаграммы в eRwin. Методические указания к выполнению лабораторной работы
- •Общие сведения
- •Назначение системы
- •Уровни представления информации в системе eRwin
- •4. Моделирование данных в eRwin
- •4.1 Процесс построения информационной модели
- •4.3. Сущности (Entity) в eRwin
- •4.4. Описание работы с системой
- •– Изучить процесс построения простейших er-диаграмм для заданной предметной области.
- •Методические указания к выполнению лабораторной работы
- •1. Исходные данные
- •2. Постановка задачи
- •3. Создание логической модели данных
- •Методические указания к выполнению лабораторной работы
- •Общие сведения по работе
- •1.1. Создание файла бд в среде субд ms Access
- •1.2. Генерация структуры бд в среде eRwin для целевой субд
- •2. Порядок выполнения работы
- •Методические указания к выполнению лабораторной работы
- •1. Общие сведения о работе с таблицами данных в субд ms Access
- •1.1. Создание новой или открытие существующей базы данных
- •1.2. Создание таблицы базы данных.
- •1.3. Задание отношений ссылочной целостности между таблицами.
- •1.4. Ввод информации.
- •1.5. Создание таблиц при помощи мастера таблиц.
- •2. Порядок выполнения работы
- •Методические указания к выполнению лабораторной работы
- •1. Общие сведения о работе с запросами в субд ms Access
- •Команда select
- •Команда update
- •Команда insert
- •Команда delete
- •1.5. Особенности записи конструкции where
- •1.6. Примеры написания простых sql запросов для тестовой предметной области
- •1.7. Построения запросов в режиме конструктора
- •Порядок выполнения работы
- •Контрольные вопросы
- •ЗаключенИе Перечень рекомендуемых источников
- •“ Організація баз даних і знань ”
- •0804 - "Комп'ютернi науки"
- •В авторській редакції
4.3. Сущности (Entity) в eRwin
На диаграмме сущность изображается прямоугольником. В зависимости от режима представления диаграммы прямоугольник может содержать имя сущности, ее описание, список ее атрибутов и другие сведения. Горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора - атрибуты, составляющие первичный ключ в верхней части, и прочие (не входящие в первичных ключ) - в нижней части, как показано на рис. 1.1:
Рисунок 1.1 – Отображение ключевых и неключевых атрибутов сущности
Сущность представляет собой множество реальных или абстрактных объектов, например: люди, места, события, факты, которые имеют общие характеристики.
Сущность - это логическое понятие. Сущности соответствует таблица в реальной СУБД. В ERwin сущность визуально представляет три основных вида информации:
-
атрибуты, составляющие первичный ключ;
-
не ключевые атрибуты;
-
тип сущности (независимая/зависимая).
Первичный ключ - это атрибут или набор атрибутов, уникально идентифицирующий экземпляр сущности. Если несколько наборов атрибутов могут уникально идентифицировать сущность, то выбор одного из них осуществляется разработчиком на основании анализа предметной области.
Для каждого первичного ключа ERwin создает при генерации структуры БД уникальный индекс.
Правила определения сущностей состоят в следующем:
-
Сущность должна иметь уникальное имя.
-
Сущность обладает одним или несколькими атрибутами, которые либо принадлежат сущности, либо наследуются через отношения.
-
Сущность обладает одним или несколькими атрибутами, которые однозначно идентифицируют каждый образец сущности и называются ключом или составным ключом.
-
Каждая сущность может обладать любым количеством отношений с другими сущностями.
-
Если внешний ключ целиком используется в составе первичного ключа, то сущность является зависимой от идентификатора.
Экземпляры независимой (родительской) сущности могут быть уникально идентифицированы без определения ее связей с другими сущностями; зависимая (дочерняя) сущность, наоборот, не может быть уникально идентифицирована без определения ее связей с другими сущностями. Зависимая сущность отображается в ERwin прямоугольником с закругленными углами (рис. 1.2).
Рисунок 1.2 – Пример представления родительской и дочерней сущности.
Существует несколько видов связей:
-
идентифицирующая. Идентифицирующая связь указывает на то, что дочерняя сущность в связи является логически зависимой от родительской сущности. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Идентифицирующая связь отображается сплошной линией, причем дочерняя сущность является зависимой и поэтому отображается прямоугольником со скругленными углами, как показано на рис.1.2.
-
неидентифицирующая. Связь называется неидентифицирующей, если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав неключевых атрибутов дочерней сущности. Не идентифицирующая связь отображается штриховой линией, рис. 1.3:
Рисунок 1.3 – Отображение не идентифицирующей связи
-
рекурсивная. Это такая связь, при которой одна и та же сущность является и родительской и дочерней. Такая ситуация часто встречается в реальном мире: напр, справедливы утверждения: «юди - родители людей», «руководители управляют руководителями», «компании приобретают компании» и т.д..
Существует два типа рекурсии, оба распространены и оба отражены в системе ERwin. Первый тип называется “иерархической рекурсией” (другое название - однотабличная рекурсия или “петля”), и задает иерархию связей между родительской и дочерней сущностью, при которой родитель может породить любой количество дочерних сущностей, но дочерняя сущность может иметь только одного родителя. Указывает на связь сущности саму на себя, рис. 1.4.
Рисунок 1.4 – Представление иерархической рекурсивной связи
Рекурсивные связи должны быть не идентифицирующими. Обосновать данное утверждение можно с доказательства того, по какой причине им не имеет смысла быть идентифицирующими. В идентифицирующей связи первичный ключ родительской сущности становится подмножеством первичного ключа дочерней, и ключевые атрибуты никогда не могут принимать значение NULL. Подумав об этом и нарисовав простую таблицу экземпляров на основе примера из “реального мира”, можно убедиться, что идентифицирующая связь не имела бы смысла, потому что она бы утверждала, что некоторая сущность является своим собственным родителем. Мигрирующий ключ мигрировал бы бесконечное число раз, что собственно не имеет смысла.
В процессе моделирования данных могут быть выявлены сущности, часть атрибутов и связей которых одинаковы. В этом случае используется иерархия категорий.
Все общие атрибуты выделяются в сущность называемую супертипом, а отличающиеся атрибуты помещаются в сущности - подтипы, связанные с супертипом, рис. 1.5. При помощи дискриминанта определяется, с экземпляром какого подтипа связан экземпляр супертипа.
Рисунок 1.5 – Выделение супертипа и использование иерархии категорий
Для определения связей ERwin выбирается тип связи, затем мышью указывается родительская и дочерняя сущность. Идентифицирующая связь изображается сплошной линией; не идентифицирующая - пунктирной линией. Линии заканчиваются точкой со стороны дочерней сущности. При определении связи происходит миграция атрибутов первичного ключа родительской сущности в соответствующую область атрибутов дочерней сущности. Поэтому такие атрибуты не вводятся вручную.
Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли, т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности. В случае неоднократной миграции атрибута такое переименование необходимо. Например, сущность посредническая сделка имеет атрибут код предприятия-продавца и код предприятия-покупателя. В данном случае первичный ключ сущности предприятие (код предприятия) имеет две роли в дочерней сущности. На физическом уровне имя роли - это имя колонки внешнего ключа в дочерней таблице.