Разработка серверной части информационной системы для сопровождения процесса выдачи заработной платы

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



тношению Штатное расписание соответствует полная ФЗ ID > Dolzhnost, Money.

Таблица 3.4 Атрибуты отношения Выполняемая работа

АтрибутОписаниеTaskЗаданиеSalaryПлата зазаданиеKind_of_workТип работыKind_of_salaryТип платы

Отношению Выполняемая работа соответствует полная ФЗ Task > Salary, Kind_of_work, Kind_of_salary.

Таблица 3.5 Атрибуты отношения Контактная инфо

АтрибутОписаниеIDИдентификационный номерPhoneТелефонAddressАдресE-mailЭлектронная почтаOthersДругое

Отношению Контактная инфо соответствует полная ФЗ ID > Phone, Address, E-mail, Others.

Анализ функциональных зависимостей, которые имеют место для отношений Отделы, Сотрудник, Штатное расписание, Выполняемая работа, Контактная инфо показывают, что они полные. Следовательно, универсальное отношение Заработная плата нормализовано.

Логическая реализация базы данных

Реализуем таблицу Отделы. Для идентификации записей введем первичный ключ Number.

Таблица 4.1 Обоснование типов полей табл. Отделы

АтрибутСтолбецТип данныхМотивацияПримечаниеID_отделаNumberNUMBER(2)ИН отделаPrimary KeyПомещениеRoomNUMBER(4,0)Номер занимаемого помещенияРаб_телефонPhoneVARCHAR2(20)Рабочий телефонНазвание_отделаNameVARCHAR2(30)Название отдела

Реализуем таблицу Сотрудник. Для идентификации записей введем первичный ключ ID_s.

Таблица 4.2 Обоснование типов полей табл. Сотрудник

АтрибутСтолбецТип данныхМотивацияПримечаниеID _сотрудникаID_sNUMBER (2)ИН сотрудникаPrimary KeyПаспортные_данныеPasportVARCHAR2 (50)Серия, номер паспорта, кем выдан и пропискаПрофессияSpesiallityVARCHAR2 (20)Специальность сотрудникаСтажYearsTIMESTAMPДата первого трудового дняID_отделаNumberNUMBER(2)ИН отделаForeign Key

Реализуем таблицу Штатное расписание. Для идентификации записей введем первичный ключ ID.

Таблица 4.3 Обоснование типов полей табл. Штатно_ расписание

АтрибутСтолбецТип данныхМотивацияПримечаниеIDIDNUMBER(2)ИН должностиPrimary KeyДолжностьPostVARCHAR2 (20)Должность сотрудникаОкладSalaryNUMBER(8,3)Ставка по занимаемой должностиID_отделаNumberNUMBER(2)ИН отделаForeign KeyРеализуем таблицу Выполняемая работа. Для идентификации записей введем первичный ключ Task.

Таблица 4.4 Обоснование типов полей табл. Выполняемая_работа

АтрибутСтолбецТип данныхМотивацияПримечаниеЗаданиеTaskVARCHAR2 (100)ЗаданиеPrimary KeyПлатаSalaryNUMBER(8,3)Плата за выполнение заданияТип работыKind_of_workVARCHAR2 (20)Тип выполняемой работыТип платыKind_of_salaryVARCHAR2 (20)Тип платыID _сотрудникаID_sNUMBER (2)ИН сотрудникаForeign Key

Реализуем таблицу Контактная инфо. Для идентификации записей введем мигрирующий первичный ключ ID_s.

Таблица 4.5 Обоснование типов полей табл. Контактная_инфо

АтрибутСтолбецТип данныхМотивацияПримечаниеТелефонPhoneVARCHAR2 (20)Телефон сотрудникаАдресAddressVARCHAR2 (30)Адрес сотрудникаЭлектронная почтаE-mailVARCHAR2 (30)Электронная почта сотрудникаДругоеOthersVARCHAR2 (100)Другие контакты сотрудникаID _сотрудникаID_sNUMBER (2)ИН сотрудникаPFK

Сущности Отделы и Сотрудник, Отделы и Штатное расписание соединены связями один-ко-многим. При этом происходит мигрирование первичного ключа ID_отдела и преобразование его во внешний. Сущности Сотрудник и Выполняемая работа, Сотрудник и Контактная инфо соединены связями один-к-одному. При этом происходит мигрирование первичного ключа ID_сотрудника и преобразование его во внешний ключ (Выполняемая работа) или PFK (Контактная инфо).

Окончательная реляционная модель базы данных выглядит следующим образом:

Физическая реализация базы данных

Скрипты

Create table Department (

Nоmer Number NOT NULL , --ИН отдела Number, --Номер занимаемого помещения

Phone Varchar2(20), --Рабочий телефон

Name Varchar2(100)) --Название отдела

Create table Worker ( Varchar2(50), --ФИО сотрудника

Pasport Varchar2(200), --Серия, номер паспорта, кем выдан и пропискаVarchar2(40), --Специальность сотрудникаTimestamp(8), --Дата первого трудового дня

ID_s Number NOT NULL , --ИН сотрудникаNumber NOT NULL ) --ИН отдела

table List_of_memb (Number NOT NULL , --ИН должности Varchar2(40), --Должность сотрудника

Salary Number(8,3), --Ставка по занимаемой должности

Nоmer Number NOT NULL ) --ИН отдела

table Work (Varchar2(200), --Задание сотрудника Number(8,3), --Плата за выполненное задание

kind_of_work Varchar2(20), --Тип выполняемой работы_of_salary Varchar2(20), --Тип оплаты_s Number NOT NULL ) -- ИН сотрудника

table Contact_info (Varchar2(20), --Телефон сотрудника Varchar2(50), --Адрес сотрудника

e_mail Varchar2(30), --Электронная почта

others Varchar2(100), --Другие контакты сотрудника

ID_s Number NOT NULL ) -- ИН сотрудника

Alter table Department add Constraint pk_Department primary key (Nоmer)table Worker add Constraint pk_Worker primary key (ID_s)table List_of_memb add Constraint pk_List_of_memb primary key (ID)table Work add Constraint pk_Work primary key (ID_s)table Contact_info add Constraint pk_Contact_info primary key (ID_s)

table List_of_memb add foreign key (Nоmer) references Department (Nоmer)table Worker add foreign key (Nоmer) references Department (Nоmer)table Contact_info add foreign key (ID_s) references Worker (ID_s)table Work add foreign key (ID_s) references Worker (ID_s)

;

Заполнение таблиц

--DepartmentINTO Department VALUES (1, 21, '(0542)236-743', 'Бухгалтерия');INTO Department VALUES (2, 143, '(0542)298-756', 'Отдел кадров');INTO Department VALUES (3, null, '(0542)255-733', 'Пропускн_пункт');INTO Department VALUES (4, 32, '(0542)278-736', 'Тех_отдел');INTO Department VALUES (5, 24, '(0542)243-721', 'Тест_отдел');

-WorkerINTO Worker VALUES ('Костюк А. О.','MB347856, Сумским ГРО УМВД 20.09.03, прописка - г. Сумы', 'Бухгалтер', TO_DATE ('2007-02-22', 'YYYY-MM-DD'), 1, 1);INTO Worker VALUES ('Миненко В. А.','MB836472, Сумским ГРО УМВД 15.05.96, прописка - г. Сумы', 'Бухгалтер', TO_DATE ('2002-04-12', 'YYYY-MM-DD'), 2, 1);INTO Worker VALUES ('Чешкин Б. В.','MB917382, Конотопским ГРО УМВД 20.03.93, прописка - г. Конотоп', 'Менеджер', TO_DATE ('2005-02-12', 'YYYY-MM-DD'), 3, 2);INTO Worker VALUES ('Синь Е. Р.','MB153728, Сумским ГРО УМВД 17.04.76, прописка - г. Сумы', 'Вахтер', TO_DATE ('2010