Сущности «Сотрудник» и «Начисление удержания» связаны через внешний ключ по полю «Табельный номер». Т.к. у одного сотрудника может быть много удержаний, то эта связь будет «один-ко-многим».
Сущности «Сотрудник» и «Начисление надбавки» связаны через внешний ключ по полю «Табельный номер». Т.к. у одного сотрудника может быть много надбавок, то эта связь будет «один-ко-многим». Сущности «Сотрудник» и «Табельный учет» связаны через внешний ключ по полю «Табельный номер». Т.к. у одного сотрудника может быть много отклонений от графика работы, то эта связь будет «один-ко-многим».Сущности «Профессиональные группы» и «Квалификационный уровень» связаны через внешний ключ по полю «Квалификационная группа». Т.к. в одной профессиональной группе может быть несколько квалификационных уровеней, то эта связь будет «один-ко-многим».
Сущности «Квалификационный уровень» и «Должность» связаны через внешний ключ по полю «Квалификационный уровень». Т.к. на одном квалификационном уровне может быть несколько дожностей, то эта связь будет «один-ко-многим».
Сущности «Должность» и «Штатное расписание» связаны через внешние ключи: «Название должности», «Квалификационный уровень». Т.к. одна должность может повторятся в штатном расписании несколько раз, то эта связь будет «один-ко-многим».
Сущности «Должность» и «Размеры окладов» связаны через внешние ключи: «Название должности», «Квалификационный уровень». Т.к. одной должности может соответствовать только один оклад, то эта связь будет «один-к-одному».
Сущности «Сотрудник» и «Штатное расписание» связаны через внешний ключ по полю «Табельный номер». Т.к. один сотрудник может быть несколько раз в штатном расписании (совместитель), то эта связь будет «один-ко-многим».Сущности «Отделение» и «Ставки» связаны через внешний ключ по полю «Код отделения». Т.к. одна должность может быть в разных отделениях, то эта связь будет «один-ко-многим».
Сущности «Ставки» и «Должности» связаны через внешние ключи: «Название должности», «Квалификационный уровень». Т.к. в одном отделении может быть несколько должностей, то эта связь будет «один-ко-многим».
Сущности «Размеры окладов» и «Расчет заработной платы» связаны через внешние ключи: «Название должности», «Квалификационный уровень». Т.к. должностной оклад может назначаться несколько раз одному сотруднику, если он работает совместителем, то эта связь будет «один-ко-многим».
Сущности «Штатное расписание» и «Расчет заработной платы» связаны через внешние ключи: «Код отделения», «Табельный номер». Т.к. для каждого сотрудника, находящегося на конкретной должности в месяц может производится один расчет заработной платы, то эта связь будет «один-к-одному».
Проанализируем отношения с учетом их первичных ключей и функциональных зависимостей для доказательства нормализации.
В отношениях «Сотрудник», «Вычеты НДФЛ», «Приказ», «Отделение», «Ставки», «Должность», «Штатное расписание», «Профессиональные группы», «Квалификационный уровень», «Надбавки», «Начисление надбавки», «Размеры окладов», «Отклонения от графика», «Табельный учет», «Удержания», «Начисление удержаний» и «Расчет заработной платы» нет повторяющихся групп данных, т.е. все значения их атрибутов неделимы. Следовательно, данные отношения находятся в первой нормальной форме (НФ).
В отношениях «Отделение», «Сотрудник», «Вычеты НДФЛ», «Студент», «Удержание», «Приказ», «Стипендия», «Надбавка», «Профессиональные группы», «Квалификационный уровень», «Надбавки», «Отклонения от графика», «Удержания» уникальными являются только первичные ключи, остальные не ключевые атрибуты не уникальны и функционально полно зависят от ключа.В отношении «Приказ» уникальным является составной первичный ключ, который состоит из атрибутов: «Табельный номер» и «Номер приказа». Не ключевыми атрибутами являются: «Дата», «Вид приказа», «Содержание». Каждый атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.
В отношении «Должность» уникальным является составной первичный ключ, который состоит из атрибутов: «Название должности» и «Квалификационный уровень». Не ключевыми атрибутами являются: «Месяц», «Количество рабочих дней в месяц». Каждый атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.
В отношении «Ставки» уникальным является составной первичный ключ, который состоит из атрибутов: «Код отделения», «Название должности» и «Квалификационный уровень». Не ключевым атрибутом является: «Количество ставок». Атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.
В отношении «Штатное расписание» уникальным является составной первичный ключ, который состоит из атрибутов: «Табельный номер», «Код отделения». Не ключевыми атрибутами являются: «Название должности», «Квалификационный уровень». Каждый атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.
В отношении «Начисление удержания» уникальным является составной первичный ключ, который состоит из атрибутов: «Табельный номер» и «Код удержания». Не ключевыми атрибутами являются: «Дата начисления удержания», «Сумма по удержанию». Каждый атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.В отношении «Начисление надбавки» уникальным является составной первичный ключ, который состоит из атрибутов: «Табельный номер» и «Код надбавки». Не ключевыми атрибутами являются: «Дата начисления надбавки», «Сумма по надбавке». Каждый атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.
В отношении «Расчет заработной платы» уникальным является составной первичный ключ, который состоит из атрибутов: «Номер расчета», «Табельный номер» и «Код отделения». Не ключевыми атрибутами являются: «Название должности», «Квалификационный уровень», «Рабочие дни», «Норма часов», «Код отклонения», «Начислено за отработанное время», «Код надбавки», «Код удержания», «Начислено аванс», «К выдаче». Каждый атрибут зависит только от полного значения ключа, и не зависит ни от какого отдельного атрибута, входящего в состав первичного ключа. Следовательно, отношение находится во 2НФ.
Ни в одном из отношений не существует транзитивных зависимостей, т.е. не ключевые атрибуты не зависят функционально друг от друга. Таким образом, отношения находятся в 3НФ.Логическая структура базы данных (ER – диаграмма) представлена на рисунке Б.1.
4.5 Физическое проектирование системы
На этапе логического проектирования на основе семантического анализа предметной области осуществляется разбиение БД на таблицы. При этом каждой сущности предметной области ставится в соответствие таблица, атрибутам объекта соответствуют атрибуты таблицы, а идентификатору объекта соответствует ключ таблицы.
Типы данных атрибутов сущностей приведены в таблицах 5-21.
Таблица 5 - Типы данных атрибутов сущности «Отделение»
Отделение | |
Атрибут | Тип данных |
Код отделения | Числовой |
Название отделения | Текстовый (30) |
Источник средств | Текстовый (18) |
Таблица 6 - Типы данных атрибутов сущности «Сотрудник»
Сотрудник | |
Атрибут | Тип данных |
Табельный номер | Числовой |
ФИО | Текстовый (100) |
Пол | Текстовый (10) |
Дата рождения | Дата |
Документ | Текстовый (18) |
Номер документа | Числовой |
Адрес | Текстовый (50) |
Страховой номер | Числовой |
ИНН | Числовой |
Форма работы | Текстовый (18) |
Резидент | Булево |
Сведения | Текстовый (100) |
Инвалидность | Текстовый (18) |
Является членом профсоюза | Булево |
Номер лицевой карточки | Числовой |
Дата принятия на работу | Дата |
Фотография | Объект OLE |
Вычеты НДФЛ | |
Атрибут | Тип данных |
Табельный номер | Числовой |
Код вычета личный | Числовой |
Код вычета на детей | Числовой |
Количество детей | Числовой |
Код вычета на детей инвалидов | Числовой |
Количество детей инвалидов | Числовой |
Таблица 8 - Типы данных атрибутов сущности «Приказ»