Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
66
Добавлен:
23.11.2017
Размер:
746.36 Кб
Скачать

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

Проектирование базы данных средствами программы ERwin

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

Продолжительность работы - 4 ч.

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

Основные сведения о методологии IDEF1X

Проектирование базы данных (БД) начинается с описания предметной облас-

ти, данные о которой будут накапливаться и обрабатываться информационной сис-

темой. Это описание выражается в виде инфологической модели (ИЛМ) предмет-

ной области. ИЛМ содержит, в частности, описание объектов и связей между ними,

которые могут задаваться диаграммой “сущность-связь” (ER-диаграммой).

Результатом проектирования БД является даталогическая модель (ДЛМ) ба-

зы данных, содержащая описание таблиц, образующих проектируемую БД, и свя-

зей.

ER-диаграммы стали основой для более совершенных методологий создания ИЛМ, учитывающих такие требования, как простота изучения и возможность ав-

томатизации. В частности, такой методологией является методология IDEF1X, реа-

лизованная в ряде специальных программ автоматизации проектирования БД, на-

пример, в программе ERwin.

В методологии IDEF1X сущности делятся на независимые и зависимые. Не-

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

тифицирован без учета его связи с другими сущностями. Примерами независимых сущностей являются ОТДЕЛ и СЛУЖАЩИЙ, если всем экземплярам каждой из этих сущностей присвоить уникальные номера, которые будут значениями атрибу-

тов “Номер отдела” и “Табельный номер” служащего. В этом случае, несмотря на то, что каждый служащий работает в конкретном отделе, он идентифицируется своим номером независимо от отдела, в котором работает. Аналогично каждый от-

дел идентифицируется своим номером независимо от служащих, которые в нем ра-

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

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

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

(рис. 1, а).

а

б

Рис. 1. Графическое обозначение независимых (а) и зависимой (б) сущностей

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

это сущность, экземпляр которой невозможно однозначно идентифицировать без учета связи с другой сущностью. Примером зависимой сущности служит сущность РЕБЕНОК (см. рис. 1, б), если в качестве естественного идентификатора ребенка,

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

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

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

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

Связь между двумя сущностями задается с учетом их подчиненности, т.е.

одна из сущностей считается главной (сущностью-родителем, Parent), а другая -

подчиненной (сущностью-потомком, Child). Например, главная сущность ОТДЕЛ является сущностью-родителем, а подчиненная сущность СЛУЖАЩИЙ - сущно-

стьюпотомком.

Связь сущностей характеризуется идентификацией и степенью.

Идентифицирующая связь, обозначаемая сплошной линией, соединяет сущ-

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

потомка и степень связи 1:N (или 1:1).

2

СЛУЖАЩИЙ

РЕБЕНОК

 

 

 

 

 

 

 

а

ОТДЕЛ

СЛУЖАЩИЙ

б

Рис. 2. Графическое обозначение идентифицирующей (а) и неидентифицирующей (б) связей между сущностями

Неидентифицирующая связь, обозначаемая штриховой линией, соединяет сущность-родителя с независимой сущностью-потомком и представляет степень связи 1:N или 1:1 (рис. 2, б).

Методология IDEF1X позволяет представить изображаемые на ER-

диаграммах классы принадлежности и степени связи (1:1, 1:N, N:1, N:M) с помо-

щью идентифицирующей и неидентифицирующей связей и связи “многие ко мно-

гим” (рис. 3).

1:1, 1:N

1: 1

N:1

 

 

N:M

Рис. 3. Представление степеней связи

Степень связи 1:N со стороны “многие” характеризуется мощностью

(cardinality), которая обозначает количество экземпляров сущности-потомка (СП),

существующих для каждого экземпляра сущности-родителя (СР). Мощность позво-

ляет задать класс принадлежности (обязательный - О и необязательный - Н) для сущности-потомка и может принимать значения, указанные в табл. 1.

Для сущности-родителя класс принадлежности графически не обозначается и в случае неидентифицирующей связи не влияет на определение соответствующей ДЛМ.

3

Таблица 1

Представление степеней связи и классов принадлежности

Итак, критерием выбора идентифицирующей и неидентифицирующей связей является зависимость или независимость сущности-потомка. Например, рассмот-

рим агрегированную сущность (агрегированный объект) ПОСТАВКА, которая со-

ответствует процессу, который отражает передачу товаров со складов в магазины и в котором участвуют сущности СКЛАД, ТОВАР, МАГАЗИН (рис. 4).

СКЛАД

 

ТОВАР

 

МАГАЗИН

 

 

 

 

 

 

 

 

 

 

 

 

ПОСТАВКА

D

Дата поставки

D

Объем поставки

Рис. 4. Представление агрегированной сущности в ИЛМ

Для идентификации экземпляра показанной на рис. 4 сущности, т.е. для ука-

зания конкретной поставки, требуются сведения о сущностях, участвующих в по-

ставке: с какого склада в какой магазин поставляется какой товар. Следовательно,

сущность ПОСТАВКА оказывается зависимой и должна быть соединена с сущно-

стями СКЛАД, ТОВАР, МАГАЗИН идентифицирующими связями (рис. 5, а). Од-

нако, если к двум свойствам сущности ПОСТАВКА добавить еще одно свойство – номер поставки, то для идентификации конкретной поставки сведения о других

4

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

няться с другими сущностями неидентифицирующими связями (рис. 5, б).

а

б

Рис. 5. Варианты представления агрегированной сущности с использованием методологии IDEF1X

Кроме идентифицирующей и неидентифицирующей связей предусмотрена

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

довыми и видовыми сущностями, т.е. представляет классификацию сущностей в предметной области. Например, рассмотрим обобщенную сущность (обобщенный объект) КЛИЕНТ (рис. 6), у которой одна категория экземпляров, т.е. клиентов, яв-

ляется физическими лицами (ФЛ), а другая категория – юридическими лицами

(ЮЛ).

Рис. 6. Представление обобщенной сущности в ИЛМ

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

5

Рис. 7. Представление обобщенной сущности с использованием категориальной связи

Назначение, возможности и особенности программы ERwin

Программа ERwin предназначена для построения ИЛМ с использованием методологии IDEF1X и автоматической генерации соответствующей ДЛМ с уче-

том особенностей выбранной СУБД. Результатом генерации ДЛМ является схема БД, представленная на языке выбранной СУБД, и созданные таблицы, входящие в БД. ERwin может генерировать ДЛМ для примерно 20 реляционных и нереляцион-

ных СУБД.

Для обозначения моделей данных ERwin использует терминологию, отлич-

ную от рассмотренной в лекциях: ИЛМ именуется логической (Logical) моделью, а

ДЛМ - физической (Physical) моделью.

Создание БД с помощью ERwin начинается с построения логической модели.

После описания логической модели проектировщик выбирает необходимую СУБД,

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

ключение к СУБД.

Этот процесс называется прямым проектированием (Forward Engineering) и

обеспечивает масштабируемость: создав одну логическую модель, можно сгенери-

ровать физические модели для любой СУБД, поддерживаемой программой ERwin.

Кроме того, ERwin способен для существующей БД воссоздать физическую и логическую модели, т.е. обеспечить обратное проектирование (Reverse

6

Engineering). На основе полученной логической модели можно сгенерировать фи-

зическую модель для другой СУБД и затем сформировать новую БД. Следователь-

но, ERwin позволяет решить задачу по переносу структуры БД с одной СУБД на другую.

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

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

Рис.8. Окно программы ERwin

Вид палитры инструментов (Toolbox) зависит от выбора логической или фи-

зической модели, который осуществляется с помощью списка Logical-Physical, рас-

положенного в правой части панели инструментов (см. рис. 8). Для логической мо-

дели палитра инструментов имеет кнопки, назначение которых указано в табл.2.

Таблица 2

Кнопки палитры инструментов

Кнопка

Назначение

 

Указатель элемента модели. Элементами модели являются сущности и связи

 

 

 

Добавление сущности

 

 

 

Добавление категориальной связи происходит при щелчке по этой кнопке на палитре

 

инструментов и последующих щелчках сначала по родовой сущности, а затем – по первой

 

видовой сущности; далее опять производится щелчок по этой кнопке на палитре инстру-

 

ментов, а потом щелчки по символу категориальной связи в рабочей области и второй

 

видовой сущности и т.д.

 

Добавление идентифицирующей связи “один ко многим”

 

 

 

Добавление связи “многие ко многим”

 

 

 

Добавление неидентифицирующей связи “один ко многим”

 

 

7

Использование программы ERwin

Рассмотрим в качестве предметной области предприятие, в структуре кото-

рого имеются отделы, и спроектируем БД для хранения сведений о служащих, ра-

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

ставлено на рис.9.

Рис.9. Описание объектов и связей между ними

На ER-диаграмме атрибут ChiName (Имя ребенка) подчеркнут штриховой линией, чтобы указать на то, что по имени можно идентифицировать ребенка, толь-

ко “подчинив” его служащему-родителю, т.е. ребенок является зависимой сущно-

стью по отношению к служащему. (Сделать сущность РЕБЕНОК независимой можно, если пронумеровать всех детей и использовать их номера для однозначной идентификации.)

Для использования программы ERwin связь объектов, показанную на ER-

диаграмме, необходимо представить в соответствии с методологией IDEF1X (см.

табл.1), как показано на рис.10.

Рис.10. Логическая модель

Полученная диаграмма описывается средствами ERwin и помещается в файл с расширением erwin. После выбора СУБД программа ERwin формирует физиче-

скую модель БД как совокупность взаимосвязанных таблиц. Для последующего

8

использования БД удобнее, чтобы имена таблиц и столбцов записывались латин-

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

Таблица 3 Cоответствие между именами логической и физической моделей

Имя

Имя

 

Домен (тип)

сущности

таблицы

атрибута

столбца

атрибута

столбца

ОТДЕЛ

Department

Номер отдела

DepId

Числовой

Number

 

 

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

DepName

Строковый

String

СЛУЖА-

Employee

Табельный номер

EmpId

Числовой

Number

ЩИЙ

 

ФИО

EmpName

Строковый

String

 

 

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

Birthday

Дата

Datetime

 

 

Оклад

Salary

Числовой

Number

 

 

Должность

Post

Строковый

String

РЕБЕНОК

Children

Имя

ChiName

Строковый

String

 

 

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

Birthday

Дата

Datetime

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

1. На панели инструментов задать режим создания логической модели

(Logical).

2. Командой File | New создать новую модель; в появившемся окне Create

Model - Select Template указать тип модели Logical/Physical, выделить шаблон

Blank Logical/Physical Diagram, в списке Database выбрать СУБД Access и нажать кнопку ОК.

3.На палитре инструментов нажать кнопку , соответствующую сущности.

4.В рабочем поле диаграммы щелчком мыши разместить три сущности.

5.Курсором мыши указать на первую сущность в рабочем поле диа-

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

Entity Properties.

6. В области Name диалогового окна Entities набрать имя сущности

Department, которое будет использоваться в модели вместо имени ОТДЕЛ.

7. На вкладке Definition в одноименной области набрать определение сущно-

сти (Отдел предприятия) и нажать кнопку ОК. Таким способом на вкладке

Definition для сущности фиксируется информация, содержащаяся в лингвистиче-

ских отношениях инфологической модели предметной области.

9

8. Щелкнуть правой кнопкой на сущности Department и выбрать из контекст-

ного меню команду Attributes для описания атрибутов сущности.

9. В одноименном диалоговом окне (рис. 11) нажать кнопку New и в появив-

шемся диалоговом окне New Attribute (рис. 12) указать имя атрибута, имя соответ-

ствующего столбца в таблице БД и тип (домен) данных, хранящихся в столбце: в

области Attribute Name набрать “Номер отдела”, в области Column Name - DepId, в

области Domain щелчком мыши выбрать числовой домен Number.

Примечание. Домен Blob – Binary large object – соответствует двоичным данным большого объема, например, графическим данным, видеоили аудиоданным.

Рис.11. Окно редактора атрибутов

Рис.12. Окно описания нового атрибута

10.Нажать кнопку ОК для возврата в диалоговое окно Attributes и на вкладке General щелчком мыши установить признак Primary Key, чтобы отметить описанный атрибут как входящий в ключ сущности.

11.На вкладке Definition для описываемого атрибута набрать определение атрибута: “Номер отдела задается уникальным целым числом и используется для идентификации отдела”. Таким способом на вкладке Definition для атрибута фик-

сируется информация, содержащаяся в лингвистических отношениях инфологиче-

ской модели предметной области.

12. Описать атрибут “Название отдела” согласно табл.3, повторив пп. 9 - 11,

но без включения его в состав ключа сущности.

13.Нажать кнопку ОК в диалоговом окне Attributes.

14.Описать сущности Employee (СЛУЖАЩИЙ) и Children (РЕБЕНОК) со-

гласно табл.3, выполнив действия, указанные в пп. 5 - 13, применительно к этим сущностям, и набрать определения сущностей и атрибутов на вкладке Definition..

10

Соседние файлы в папке БД лабы