Фамилия

Таб_номер

Адрес

Текущая_зарплата

Дата_найма

история_карьеры *

Должность

Дата_изменения

история_зарплаты *

Зарплата

Дата_изменения

На следующем шаге осуществляется упрощение схемы за счет устранения избыточности.

Действительно, «текущая_зарплата» всегда является последней записью в «история_зарплата», а «дата_найма»по сути дела всегда содержится в разделах «история_зарплаты» и «история_карьеры». Кроме того, несколько дат в последних разделах одни и те же, поэтому целесообразно создать на их основе единую структуру «история_зарплаты_карьеры» и вводить в нее данные при изменении должности и/или зарплаты. Результатом приведенного рассуждения может быть схема:

Фамилия

Таб_номер

Адрес

история_зарплаты_карьеры *

Зарплата

Должность

Дата_изменения

Следующий шаг – упрощение схемы при помощи нормализации (удаления повторяющихся элементов). Основным способом нормализации является расщепление данной схемы на две схемы, являющиеся более простыми. Первая схема будет содержать фамилию и адрес (которые, как правило, не меняются), вторая – каждое изменение зарплатыи должности. Кроме того, каждая схема должна содержать «таб_номер»– единственный элемент данных, уникально идентифицирующий каждого сотрудника. Данные схемы и представляют те сущности, которые должны быть представлены в хранилище данных о персонале с учетом их связей и отношений.

Для идентификации сущностей определим ключевые атрибуты. Для первой схемы ключевым атрибутом является «таб_номер», для второй – ключом является совокупность атрибутов «таб_номер» и «дата_изменения», т.к. для каждого сотрудника возможно несколько записей в разделе «история_зарплаты_карьеры». Таким образом, хранилище данных о персонале содержит две сущности (рис. 3.18), которые в общепринятом виде могут быть представлены следующим образом:

Сотрудник (таб_номер, фамилия, адрес)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: