Определившись с сущностями, необходимо выделить их атрибуты.
Атрибуты – выражают определенные свойства объекта, однозначно идентифицируют каждый экземпляр сущности.
В нашем примере для сущности Сотрудник такими свойствами будут - Фамилия, Возраст и Адрес.
Атрибуту в БД соответствует поле таблицы.
Таблица 1
Фамилия | Возраст | Адрес |
---|---|---|
Иванов | 25 | Ул. Вишневая, 12-15 |
Петров | 27 | Ул. Садовая, 35-84 |
Сидоров | 23 | Ул. Летняя, 18-7 |
Очень важно правильно выделить атрибуты и присвоить им имена. Соблюдение следующих рекомендаций позволяет частично решить проблему нормализации данных уже на этапе определения атрибутов.
Рассмотрим создаваемую нами модель. Например, в сущности Сотрудник может присутствовать атрибут Семейное положение. Но, в соответствии с требованиями к системе (см. Описание системы (лаб.1)), нет необходимости хранить данное свойство сотрудников. Следовательно, в сущности Сотрудник не должен присутствовать атрибут Семейное положение.
Известно, что про каждого работающего в компании надо знать: имя, фамилию, номер телефона – эти свойства и являются атрибутами сущности Сотрудник.
В нашем примере (сущность Сотрудник) каждому работающему присуще свойство Фамилия, Возраст и т.д. нет экземпляров, у которых бы отсутствовали эти свойства.
Допустим, что в сущности Сотрудник должны бы были присутствовать атрибуты Дата приема и Дата увольнения. Нельзя объединить их, и создать один атрибут Дата, т.к. эти атрибуты имеют разный смысл.
В нашем случае атрибуты сущности Сотрудник будут иметь следующие имена:
- Фамилия;
-Имя;
-Отчество;
-Дата рождения;
- Пол;
- Должность;
- Номер телефона;
- Номер кабинета;
- Оклад.
Имена атрибутов сущности Проект:
- Номер проекта;
- Название проекта;
- Тип проекта;
- Дата начала;
- Дата конца;
- Код сотрудника.
Имена атрибутов сущности Заказчик:
- Код заказчика;
- Наименование организации;
- Адрес;
- Телефон;
- Фамилия;
- Имя;
- Отчество.
Мы определили атрибуты наших сущностей, далее необходимо внести их на диаграмму.
Для этого необходимо выполнить следующие шаги:
Шаг 1. Откройте сохраненный Вами файл Lab1.er.
Шаг 2. Вызовите контекстное меню на выделенной сущности Проект и выберите пункт Attributes:
Рис. 1. Вызов диалога Attributes
Шаг 3. Для создания нового атрибута в диалоговом окне Attributes нажмите кнопку New
Рис.2. Диалог Attributes
С помощью кнопок Rename и Delete соответственно можно переименовать или удалить уже созданный атрибут.
Шаг 4. В новом диалоговом окне New Attribute в поле Name введите имя атрибута Номер проекта (рис.3)
Шаг 5. В предлагаемом списке выберите иконку, которая будет соответствовать типу этого атрибута – Number. Иконки определяют тип данных атрибута, а также служат для большей наглядности.
Рис. 3. Диалог New Attribute
Для символьных переменных нужно будет выбирать иконку String, для даты – Datetime
Таблица 2.
Атрибуты сущностей Проект и Сотрудник
Сущность | Атрибуты | Тип атрибута |
---|---|---|
Проект | Номер проекта | Number |
Название проекта | String | |
Тип проекта | String | |
Дата начала | Datetime | |
Дата конца | Datetime | |
Код сотрудника | Number | |
Сотрудник | Фамилия | String |
Имя | String | |
Отчество | String | |
Дата рождения | Datetime | |
Пол | String | |
Должность | String | |
Номер телефона | Number | |
Номер кабинета | Number | |
Оклад | Number |
После выполнения Задания 2 Ваша диаграмма должна выглядеть так: (рис 4).
Рис. 4. Внесение атрибутов в сущность
Для этого необходимо:
Шаг 1. Вызвать контекстное меню в пустом месте экрана;
Шаг 2. Выбрать в контекстном меню пункт Entity Display;
Шаг 3. Во всплывающем меню выбрать пункт Attribute Icon
Рис.5. Отображение иконок на диаграмме
После выполнения данного задания, созданные Вами сущности должны выглядеть следующим образом:
Рис. 6. Внешний вид сущностей Проект и Сотрудник с отображением иконок в ERwin
После выделения атрибутов и отображения их на диаграмме, следует перейти к выполнению следующего этапа создания логической модели.
Как Вы видите, прямоугольник, изображающий сущность на диаграмме, разделен на две части. Эта горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора:
- в верхней части – атрибуты, составляющие первичный ключ
- в нижней части – прочие атрибуты (не входящие в первичный ключ).
Первичный ключ (primary key) – это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности и отвечающий требованиям, предъявляемым к таким ключам.
Сложные ключи – содержащие несколько атрибутов.
Потенциальные ключи – атрибуты, однозначно идентифицирующие каждый экземпляр сущности.
Из потенциальных ключей выбираются первичные. Для успешного выбора необходимо следовать следующим требованиям.
Например, в нашем случае, у сущности Проект на звание первичного могут претендовать несколько атрибутов – Номер проекта, Название проекта, Тип проекта, Дата начала, но названия проектов могут совпадать, дата начала тоже, а вот номер у проекта всегда однозначный и не может совпадать с номером другого. Следовательно, атрибут Номер проекта самый лучший кандидат на роль первичного ключа.
При выборе первичного ключа предпочтение должно отдаваться более простым ключам, т.е. ключам, содержащим меньшее количество атрибутов
Т.е. атрибут обязательно должен иметь какое-то значение (не может быть пустым). Например, ИНН заказчика не подходит на статус первичного ключа, т.к. заказчиком может оказаться физическое лицо, которое не знает свой ИНН.
Например, атрибут Фамилия не может быть первичным ключом еще и по причине того, что девушка может выйти замуж и сменить ее.
В нашем примере, в сущности Сотрудник, если следовать требованиям выделения первичных ключей, на роль первичного ключа не подходит ни один атрибут. Поэтому нам потребуется ввести вспомогательный атрибут. Это будет атрибут Код сотрудника.
В нашем примере сущность Проект будет обладать первичным ключом Номер проекта, сущность Сотрудник – Код сотрудника.
Чтобы сделать атрибут Номер проекта первичным ключом необходимо:
Шаг 1. Вызовите контекстное меню на выделенной сущности Проект и выберите пункт Attributes:
Рис. 7. Вызов диалога Attributes
Шаг 2. В окне Attrubutes выбрать закладку General; Выделить из предлагаемого списка атрибут, претендующий на роль первичного ключа;
Сделать пометку в окне выбора Primary Key.
Рис.8. Присвоение атрибуту Номер проекта звания первичного ключа
Шаг 3. Добавьте в сущности Сотрудник дополнительный атрибут Код сотрудника.
Шаг 4. Вызовите диалог Attrubutes сущности Сотрудник (см. шаг 1)
В списке выберите атрибут Код сотрудника
Сделайте пометку в окне выбора Primary Key
После внесения первичных ключей, сущности Проект и Сотрудник должны выглядеть следующим образом:
Рис.9. Внешний вид сущностей Проект и Сотрудник в ERwin
Естественно, что в процессе создания модели, может возникнуть необходимость в редактировании ее объектов (таком как копирование, удаление, переименование). Для выполнения этих операций в AllFusion ERwin Data Modeler используются стандартные приемы.
Рассмотрим некоторые из них.
Для того чтобы скопировать сущность, необходимо выполнить следующие действия:
Для переименования сущности необходимо:
Чтобы удалить сущность необходимо:
Для того чтобы скопировать атрибут сущности, необходимо выполнить следующие действия:
Чтобы отменить назначение атрибута первичным ключом нужно:
Шаг 1. В сущности Временный сотрудник отмените назначение первичным ключом атрибута Код сотрудника
Шаг 2. Назначьте первичным ключом другой атрибут – Номер телефона.
Шаг 1. Самостоятельно создайте сущность Заказчик, и, руководствуясь таблицей 3, внесите необходимые атрибуты и первичные ключи.
Таблица 3.
Атрибуты сущности Заказчик
Сущность | Атрибуты | Первичный ключ |
---|---|---|
Заказчик | Код заказчика | Код заказчика |
Наименование | ||
Адрес | ||
Телефон | ||
Фамилия | ||
Имя | ||
Отчество |
Шаг 2. Внесите определение сущности Заказчик во вкладке Definition
После выполнения задания 10 диаграмма должна выглядеть как на рис. 10
Рис.9. Внешний вид сущностей Проект и Сотрудник в ERwin
Логическая модель ERwin имеет несколько уровней отображения диаграммы:
Переключиться между первыми тремя уровнями можно с использованием кнопок на стандартной панели
инструментов . Переключиться на другие уровни отображения можно при помощи
контекстного меню, которое появляется, если щелкнуть по любому месту диаграммы, не занятому объектами модели.
В контекстном меню следует выбрать пункт Display Livel и затем необходимый уровень отображения.
Рис. 11. переключение между уровнями отображения диаграммы
Ответьте на следующие вопросы и покажите преподавателю результат выполнения лабораторной работы.
Перейти к Тестовым заданиям №2