В процессе выполнения лабораторной работы Вы узнаете:

В процессе выполнения лабораторной работы Вы научитесь:

2 этап создания логической модели данных Выделение атрибутов.

Определившись с сущностями, необходимо выделить их атрибуты.

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

В нашем примере для сущности Сотрудник такими свойствами будут - Фамилия, Возраст и Адрес.

Атрибуту в БД соответствует поле таблицы.

Таблица 1

Фамилия Возраст Адрес
Иванов 25 Ул. Вишневая, 12-15
Петров 27 Ул. Садовая, 35-84
Сидоров 23 Ул. Летняя, 18-7

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

Рекомендации по выделению атрибутов и их идентификации

  1. Каждая сущность должна обладать одним или несколькими атрибутами, принципиально важными для предметной области, информация о которых должна быть хранима.

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

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

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

    В нашем примере (сущность Сотрудник) каждому работающему присуще свойство Фамилия, Возраст и т.д. нет экземпляров, у которых бы отсутствовали эти свойства.

  3. Значения атрибутов должны быть атомарными.Каждому атрибуту может соответствовать только одна запись (в ячейке таблицы не может храниться список значений).

  4. Значения атрибутов должны быть одного типа и смысла.

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

  5. Каждый атрибут идентифицируется уникальным именем, описывающем представляемую атрибутом характеристику;

    В нашем случае атрибуты сущности Сотрудник будут иметь следующие имена:

    - Фамилия;

    -Имя;

    -Отчество;

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

    - Пол;

    - Должность;

    - Номер телефона;

    - Номер кабинета;

    - Оклад.

    Имена атрибутов сущности Проект:

    - Номер проекта;

    - Название проекта;

    - Тип проекта;

    - Дата начала;

    - Дата конца;

    - Код сотрудника.

    Имена атрибутов сущности Заказчик:

    - Код заказчика;

    - Наименование организации;

    - Адрес;

    - Телефон;

    - Фамилия;

    - Имя;

    - Отчество.

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

Мы определили атрибуты наших сущностей, далее необходимо внести их на диаграмму.

Задание 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. Дополните атрибутами сущности Проект и Сотрудник, согласно таблице 2.

Таблица 2.

Атрибуты сущностей Проект и Сотрудник < <
Сущность Атрибуты Тип атрибута
Проект Номер проекта Number
Название проекта String
Тип проекта String
Дата начала Datetime
Дата конца Datetime
Код сотрудника Number
Сотрудник Фамилия String
Имя String
Отчество String
Дата рождения Datetime
Пол String
Должность String
Номер телефона Number
Номер кабинета Number
Оклад Number

После выполнения Задания 2 Ваша диаграмма должна выглядеть так: (рис 4).

Рис. 4. Внесение атрибутов в сущность

Задание 3. Отображение иконок атрибутов

Для этого необходимо:

Шаг 1. Вызвать контекстное меню в пустом месте экрана;

Шаг 2. Выбрать в контекстном меню пункт Entity Display;

Шаг 3. Во всплывающем меню выбрать пункт Attribute Icon

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

После выполнения данного задания, созданные Вами сущности должны выглядеть следующим образом:

Рис. 6. Внешний вид сущностей Проект и Сотрудник с отображением иконок в ERwin

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

3 этап создания логической модели данных для системы. Выделение первичных ключей

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

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

- в нижней части – прочие атрибуты (не входящие в первичный ключ).

Первичный ключ (primary key) – это атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности и отвечающий требованиям, предъявляемым к таким ключам.

Сложные ключи – содержащие несколько атрибутов.

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

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

Требования, предъявляемые к первичным ключам:

  1. Уникальность – два экземпляра сущности не должны иметь одинаковых значений первичного ключа.

    Например, в нашем случае, у сущности Проект на звание первичного могут претендовать несколько атрибутов – Номер проекта, Название проекта, Тип проекта, Дата начала, но названия проектов могут совпадать, дата начала тоже, а вот номер у проекта всегда однозначный и не может совпадать с номером другого. Следовательно, атрибут Номер проекта самый лучший кандидат на роль первичного ключа.

  2. Компактность

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

  3. Атрибуты ключа не должны содержать нулевых значений.

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

  4. Значение атрибутов ключа не должно меняться в течение всего времени существования экземпляра сущности.

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

Если, учитывая выше перечисленные требования, не удается выделить ни один первичный ключ из существующих атрибутов, то вводится искусственный (дополнительный) атрибут. Дополнительными могут выступать такие атрибуты как: Код, Табельный номер, Номер и др.

В нашем примере, в сущности Сотрудник, если следовать требованиям выделения первичных ключей, на роль первичного ключа не подходит ни один атрибут. Поэтому нам потребуется ввести вспомогательный атрибут. Это будет атрибут Код сотрудника.

Задание 4. Обозначение первичного ключа на диаграмме

В нашем примере сущность Проект будет обладать первичным ключом Номер проекта, сущность Сотрудник – Код сотрудника.

Чтобы сделать атрибут Номер проекта первичным ключом необходимо:

Шаг 1. Вызовите контекстное меню на выделенной сущности Проект и выберите пункт Attributes:

Рис. 7. Вызов диалога Attributes

Шаг 2. В окне Attrubutes выбрать закладку General; Выделить из предлагаемого списка атрибут, претендующий на роль первичного ключа;

Сделать пометку в окне выбора Primary Key.

Рис.8. Присвоение атрибуту Номер проекта звания первичного ключа

Шаг 3. Добавьте в сущности Сотрудник дополнительный атрибут Код сотрудника.

Шаг 4. Вызовите диалог Attrubutes сущности Сотрудник (см. шаг 1)

В списке выберите атрибут Код сотрудника

Сделайте пометку в окне выбора Primary Key

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

Рис.9. Внешний вид сущностей Проект и Сотрудник в ERwin

Редактирование диаграммы

Естественно, что в процессе создания модели, может возникнуть необходимость в редактировании ее объектов (таком как копирование, удаление, переименование). Для выполнения этих операций в AllFusion ERwin Data Modeler используются стандартные приемы.

Рассмотрим некоторые из них.

Копирование сущностей.

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

Задание 5.
Скопируйте сущности Проект и Сотрудник

Переименование сущностей.

Для переименования сущности необходимо:

Задание 6.
Присвойте созданным копированием сущностям имена: Временный сотрудник и Законченный Проект.

Удаление сущностей

Чтобы удалить сущность необходимо:

Копирование атрибутов.

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

Задание 7.
Скопируйте атрибут Название проекта из сущности Законченный проект в сущность Временный сотрудник.

Редактирование первичных ключей.

Чтобы отменить назначение атрибута первичным ключом нужно:

Задание 8.

Шаг 1. В сущности Временный сотрудник отмените назначение первичным ключом атрибута Код сотрудника

Шаг 2. Назначьте первичным ключом другой атрибут – Номер телефона.

Задание 9.
Удалите сущности Временный сотрудник и Законченный Проект.
Задание 10. Самостоятельное Создание сущностей и атрибутов

Шаг 1. Самостоятельно создайте сущность Заказчик, и, руководствуясь таблицей 3, внесите необходимые атрибуты и первичные ключи.

Таблица 3.

Атрибуты сущности Заказчик <
Сущность Атрибуты Первичный ключ
Заказчик Код заказчика Код заказчика
Наименование
Адрес
Телефон
Фамилия
Имя
Отчество

Шаг 2. Внесите определение сущности Заказчик во вкладке Definition

После выполнения задания 10 диаграмма должна выглядеть как на рис. 10

Рис.9. Внешний вид сущностей Проект и Сотрудник в ERwin

Способы отображения диаграммы

Логическая модель ERwin имеет несколько уровней отображения диаграммы:

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

Рис. 11. переключение между уровнями отображения диаграммы

Задание 11.
Просмотрите, как будет выглядеть наша модель на каждом из уровней отображения диаграммы.
Задание 12.
Сохраните проект под названием Lab2.er

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

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

  1. Что такое атрибут? Какими правилами следует руководствоваться для наиболее точного выделения атрибутов?
  2. Какие действия необходимо произвести, чтобы создать и присвоить имя атрибуту сущности в Erwin?
  3. Что такое первичный ключ? Перечислите требования, предъявляемые к первичным ключам. Как назначить первичный ключ в Erwin?
  4. Для чего служат иконки, присваиваемые атрибутам? Как их отобразить на диаграмме?
  5. Перечислите и опишите способы редактирования сущностей и атрибутов в ERwin.
  6. Перечислите уровни отображения диаграммы.

Перейти к Тестовым заданиям №2