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

 

Министерство образования, науки, молодежи и спорта Украины

Сумской государственный университет

Кафедра компьютерных наук











Курсовая работа

по дисциплине «Базы данных»

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




Подготовила: студентка группы ИН-82

Данечкина Яна

Проверил:Чекалов А. П.






Сумы


Постановка задачи


Отдел кадров и бухгалтерия некоторой компании:

сотрудники: ФИО, паспортные данные, дом. и моб. телефоны;

отдел: комната, раб. телефоны (в т.ч. местный), подчинённые сотрудники, должность, тип(ы) работы, задание(я), проект(ы), размер зарплаты, форма зарплаты (почасовая, фиксированная).


Построение use case диаграммы


На первом этапе предпроектного исследования выяснено, что основная задача разрабатываемой системы - сопровождение процесса выдачи заработной платы.

Use case диаграмма:


Рисунок 2.1 - Концептуальная модель 0-уровня


1.Бухгалтерия запрашивает список сотрудников и данных о них в отделе кадров и получает его.

.Далее бухгалтерия проводит расчет заработной платы.

.Передача расчетов и списков сотрудников в кассу.

.В кассе происходит проверка паспорта и выдача заработной платы.

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


Построение концептуальной модели 1-уровня (диаграмма последовательности действий)


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

.Бухгалтерия запрашивает список сотрудников и данных о них в отделе кадров и получает его.

.Далее бухгалтерия проводит расчет заработной платы.

.Передача расчетов и списков сотрудников в кассу.

.В кассе происходит проверка паспорта и выдача заработной платы.


Рисунок 2.2 - Концептуальная модель 1-го уровня (диаграмма последовательности действий)


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


Диаграмма классов


Исходя из диаграммы последовательности действий, мы получим 5 классов: Отделы, Сотрудник, Штатное_расписание, Выполняемая_работа и Контактная_инфо.



Диаграмма классов состоит из таких элементов:

1.Отделы - класс, который совмещает в себе отделы предприятия, имеет атрибуты: ID_отдела, название отдела, помещение, телефонный номер.

2.Сотрудник - класс, характеризующий сотрудников данной фирмы, имеет атрибуты: ID_сотрудника, паспортные данные, ФИО, стаж. Сотрудник приходит в кассу, предъявляет паспорт и получает заработную плату.

3.Штатное расписание - класс, описывающий имеющуюся информацию о должностях, окладах данной фирмы. Имеет атрибуты: ID, должность, оклад. Штатное расписание требуется для расчета заработной платы каждого сотрудника.

4.Выполняемая работа - класс, описывающий задание и тип работы конкретного сотрудника, плату за его выполнение и форму платы (почасовая или фиксированная). Имеет атрибуты: задание, размер_зарпл., тип_работы, форма_зарпл. Требуется для расчета заработной платы каждого сотрудника.

5.Контактная инфо - класс, описывающий контактные данные каждого сотрудника. Имеет атрибуты: e-mail, телефон, адресс, другое. Нужен при необходимости связаться с конкретным сотрудником.


Проектирование базы данных


Возьмем за правило считать классы сущностями. Объектной модели можно сопоставить модели данных из-за постоянного характера классов. Стойкие классы могут выступать в качестве постоянного хранения данных во время работы приложения. Следовательно, для всех постоянных классов можно применить утверждение, что они могут использовать однозначное отображение в сущностях. Этот процесс называется маппированием.

Отношения Отделы, Сотрудник и Штатное расписание, Выполняемая_работа и Контактная_инфо выявленные на этапе построения концептуальной модели характеризуются следующими атрибутами (табл. 3.1).


Таблица 3.1 Атрибуты отношения Отделы

АтрибутОписаниеNumberНомер отделаNameНазвание отделаRoomПомещения, где расположены отдел кадров и бухгалтерияPhoneКонтактный телефон

Отношению Отделы соответствует полная ФЗ Number ? Name, Room, Phone.


Таблица 3.2 Атрибуты отношения Сотрудник

АтрибутОписаниеfioФИО сотрудникаID_sИдентификатор сотрудникаPasportПаспортные данныеSpesiallityПрофессия сотрудникаYearsСтаж работы

Отношению Сотрудник соответствует полная ФЗ ID ? Pasport, Info, Contact_Info, Spesiallity, Years.


Таблица 3.3 Атрибуты отношения Штатное расписание

АтрибутОписаниеIDИдентификатор сотрудникаPostДолжность сотрудникаSalaryСтавка (оклад) по должности

Отношению Штатное расписание соответствует полная ФЗ 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-07-30', 'YYYY-MM-DD'), 4, 3);INTO Worker VALUES ('Ешеренев П. Г.','MB153728, Белопольским ГРО УМВД 28.08.74, прописка - г. Ворожба', 'Вахтер', TO_DATE ('2009-05-20', 'YYYY-MM-DD'), 5, 3);INTO Worker VALUES ('Соломкина А. А.','MB635217, Сумским ГРО УМВД 25.06.71, прописка - г. Сумы', 'Вахтер', TO_DATE ('2004-06-18', 'YYYY-MM-DD'), 6, 3);INTO Worker VALUES ('Масько П. Л.','MB762534, Ахтырским ГРО УМВД 20.09.95, прописка - г. Ахтырка', 'Менеджер', TO_DATE ('2007-10-29', 'YYYY-MM-DD'), 7, 4);INTO Worker VALUES ('Кучер Ф. Г.','MB453277, Харьковским ГРО УМВД 10.09.96, прописка - г. Харьков', 'Тестер', TO_DATE ('2001-10-22', 'YYYY-MM-DD'), 8, 5);INTO Worker VALUES ('Шинкарюк Л. Д.','MB256346, Киевским ГРО УМВД 05.06.92, прописка - г. Киев', 'Тестер', TO_DATE ('2002-11-28', 'YYYY-MM-DD'), 9, 5);INTO Worker VALUES ('Воронная Н. Д.','MB736488, Сумским ГРО УМВД 20.09.98, прописка - г. Сумы', 'Тестер', TO_DATE ('2003-12-01', 'YYYY-MM-DD'), 10, 5);


-List_of_membINTO List_of_memb VALUES (1, 'Бухгалтер', 2000, 1);INTO List_of_memb VALUES (2, 'Менеджер o/к', 1800, 2);INTO List_of_memb VALUES (3, 'Вахтер', 800, 3);INTO List_of_memb VALUES (4, 'Менеджер т/o', 2500, 4);INTO List_of_memb VALUES (5, 'Тестер', 2300, 5);


-WorkINTO Work VALUES (null, 2000, 'на предпр.', 'почасовая', 1);INTO Work VALUES (null, 2000, 'на предпр.', 'почасовая', 2);INTO Work VALUES (null, 1800, 'на предпр.', 'почасовая', 3);INTO Work VALUES (null, 800, 'на предпр.', 'почасовая', 4);INTO Work VALUES (null, 800, 'на предпр.', 'почасовая', 5);INTO Work VALUES (null, 800, 'на предпр.', 'почасовая', 6);INTO Work VALUES (null, 2500, 'на предпр.', 'почасовая', 7); INTO Work VALUES ('тестирование офисного прогр. обесп.', 2300, 'на предпр.', 'фиксир.', 8);

INSERT INTO Work VALUES ('тестирование пользовательского прогр. обесп.', 2300, 'на дому', 'фиксир.', 9);

INSERT INTO Work VALUES ('тестирование системного прогр. обесп.', 2300, 'на предпр.', 'фиксир.', 10);


--Contact_infoINTO Contact_info VALUES ('(0542)736-839', 'ул. Ахтырская, 3', '[email protected]', null, 1);

INSERT INTO Contact_info VALUES ('(0542)745-859', 'ул. Кирова, 32', '[email protected]', null, 2);

INSERT INTO Contact_info VALUES ('(05456)5-36-34', 'ул. Ленина, 257', '[email protected]', 'ICQ - 456789', 3);

INSERT INTO Contact_info VALUES ('(0542)674-256', 'ул. Октября, 3', '[email protected]', null, 4);

INSERT INTO Contact_info VALUES ('(05423)7-36-89', 'ул. Колпака, 34', '[email protected]', null, 5);INTO Contact_info VALUES ('(0542)648-820', 'ул. Харьковска, 23', '[email protected]', null, 6);

INSERT INTO Contact_info VALUES ('(05446)2-49-88', 'ул. Шевченка, 2', '[email protected]', null, 7);

INSERT INTO Contact_info VALUES ('(065)473-68-39', 'ул. Курская, 18', '[email protected]', null, 8);

INSERT INTO Contact_info VALUES ('(044)273-61-21', 'ул. О.Вишни, 78', '[email protected]', null, 9);INTO Contact_info VALUES ('(0542)836-358', 'ул. Береговая, 104', '[email protected]', null, 10);


Department


Worker


List_of_memb


проектирование база данных логический метамодель

Contact_info


Создание выборок

1.SELECT fio, spesiallity, EXTRACT (YEAR FROM SYSDATE) - EXTRACT (YEAR FROM years) AS stazh

FROM Worker; -- выводит сотрудников, их специальности и стаж работы (использование функции - EXTRACT)

2.SELECT w.fio, w.spesiallity, w.pasport, l.salary

FROM Worker w, List_of_memb l

WHERE w.ID_s=l.ID_s AND w.nomer=l.nomer; -- выводит ФИО, специальность, паспортные данные и заработную плату сотрудников (выборка)

3.SELECT DISTINCT post

FROM List_of_memb; -- выводит уникальные записи должностей штатного расписания (проекция)

4.SELECT d. nomer, w.ID_s, w.fio

FROM Worker w, Department d

WHERE w. nomer =d. nomer; -- выводит номера сотрудников и их ФИО с учетом номеров отделов (пересечение)

5.SELECT salary

FROM List_of_memb

WHERE salary NOT IN (SELECT salary FROM List_of_memb WHERE salary<2000); -- выводит ставки по заработной плате выше 2000 грн. (разность)


Мапирование реляционной модели в метамодель


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

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

.Каждая сущность, информация о которой хранится в БД, - это объект.

.Каждый объект уникален в пределах БД и имеет уникальный идентификатор.

.Объект имеет свойства (строковые, числовые, временные, перечислимые), которые описывают атрибуты сущности.

.Объекты могут быть связаны между собой произвольным образом. Связь характеризуется связанными объектами и типом связи.

.Объект может быть хранилищем. В этом случае допускается хранение в нем других объектов.

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

Построение диаграммы классов для метамодели


Исходя из описанных выше утверждений, была спроектирована диаграмма классов, которая удовлетворяет этим тезисам (рис. 4.1).

Как видно из диаграммы классов она состоит из 4 классов: Типы, Объекты, Атрибуты и Параметры. В каждом классе, кроме класса Параметры, имеется 3 атрибута, из которых один - это идентификатор данного класса. В классы Объекты и Атрибуты мигрирует идентификатор из класса Типы. Класс Параметры не имеет своего идентификатора, но в него мигрируют идентификаторы из классов Атрибуты и Объекты.


Рисунок 4.1 - Диаграмма классов


Проектирование метамодели базы данных


Отношения Типы, Объекты, Атрибуты и Параметры, выявленные на этапе построения концептуальной модели характеризуются следующими атрибутами (табл. 3.1).


Таблица 3.1 Атрибуты отношения «Типы»

АтрибутОписаниеID_типа_объектаПервичный ключНазваниеНазвание типаОписаниеОписание типа

Таблица 3.2 Атрибуты отношения «Объекты»

АтрибутОписаниеID_объектаПервичный ключID_типа_объектаВнешний ключ отношения «Типы»Название_объектаНазвание объекта

Таблица 3.3 Атрибуты отношения «Атрибуты»

АтрибутОписаниеID_атрибутаПервичный ключID_типа_объектаВнешний ключ отношения «Типы»Название_атрибутаНазвание атрибута

Таблица 3.3 Атрибуты отношения «Параметры»

АтрибутОписаниеID_объектаВнешний ключ отношения «Объекты»ID_отношения ID_атрибутаПоказывает отношение между объектами Внешний ключ отношения «Атрибуты»Текстовое значение Номерное значениеПоле для текстовых данных Поле для числовых данных

Отношение Параметры играет роль связи «Многие ко Многим», а атрибут ID_отношения показывает эту связь.


Логическая реализация метамодели


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

Таблица 5.1 Обоснование типов полей таблицы object_types:

АтрибутСтолбецТип данныхМотивацияПримечаниеID_типа_объектаobject_type_idNUMBERPrimary KeyНазваниеnameVARCHAR2(50)НазваниеОписаниеdescriptionVARCHAR2(100)Описание

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


Таблица 5.2 Обоснование типов полей таблицы objects:

АтрибутСтолбецТип данныхМотивацияПримечаниеID_объектаobject_idNUMBERPrimary KeyID_типа_объектаobject_type_idNUMBERForeign KeyНазвание_объектаnameVARCHAR2(150)Название объекта

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


Таблица 5.3 Обоснование типов полей таблицы attributes:

АтрибутСтолбецТип данныхМотивацияПримечаниеID_атрибутаattr_idNUMBERPrimary KeyID_типа_объектаobject_type_idNUMBERForeign KeyНазвание_атрибутаnameVARCHAR2(50)Название атрибута

Реализуем таблицу cf_par. Первичных ключей таблица не имеет.


Таблица 5.4 Обоснование типов полей таблицы params:

АтрибутСтолбецТип данныхМотивацияПримечаниеID_объектаobject_idNUMBERНомер объектаForeign KeyID_атрибутаattr_idNUMBERНомер атрибутаForeign KeyТекстовое_значениеtext_valueVARCHAR2(150)Поле для текстовых данныхНомерное_значениеnumber_valueNUMBERПоле для цифровых данныхДатаdate_valueDATEПоле для дат

Схема метамодели была реализована так:


Физическая реализация метамодели


Скрипты

drop table params;

drop table attributes;table objects;table object_types;


- Create tablestable object_types (_type_id Number NOT NULL ,Varchar2(100),Varchar2(1000));

table objects (_id Number NOT NULL ,_type_id Number NOT NULL ,Varchar2(100));

table attributes (_id Number NOT NULL ,_type_id Number NOT NULL ,Varchar2(100));

table params (_id Number NOT NULL ,_id Number NOT NULL ,_value Varchar2(1000),_value Number,_value DATE);


- Create primary keystable object_types add primary key (object_type_id);table objects add primary key (object_id);table attributes add primary key (attr_id);


- Create foreign keystable objectsConstraint r_5 foreign key (object_type_id)object_types (object_type_id) on delete cascade;

table attributesforeign key (object_type_id)object_types (object_type_id) ;

table paramsConstraint r_6 foreign key (object_id)objects (object_id) ;

table paramsConstraint r_7 foreign key (attr_id)attributes (attr_id) ;;


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


delete from params;from objects;from attributes;from object_types;


-object_types (object_type_id, name, description)into object_types values (1, 'Department', null);into object_types values (2, 'Worker', null);into object_types values (3, 'List_of_memb', 'List_of_members');into object_types values (4, 'Work', null);into object_types values (5, 'Contact_info', 'Contact_information');


-attributes (attr_id, object_type_id, name)into attributes values (1, 1, 'Room');into attributes values (2, 1, 'Phone');into attributes values (3, 2, 'Pasport');into attributes values (4, 2, 'Spesiallity');into attributes values (5, 2, 'Years');into attributes values (6, 3, 'Salary');into attributes values (7, 4, 'Task');into attributes values (8, 4, 'Salary');into attributes values (9, 4, 'Kind_of_work');into attributes values (10, 4, 'Kind_of_salary');into attributes values (11, 5, 'Phone');into attributes values (12, 5, 'Address');into attributes values (13, 5, 'E-mail');into attributes values (14, 5, 'Others');


-objects (object_id, object_type_id, name)

-Departmentinto objects values (10, 1, 'Бухгалтерия');into objects values (20, 1, 'Отдел кадров');into objects values (30, 1, 'Пропускн_пункт');into objects values (40, 1, 'Тех_отдел');into objects values (50, 1, 'Тест_отдел');

-Workerinto objects values (11, 2, 'Костюк А. О.');into objects values (12, 2, 'Миненко В. А.');into objects values (13, 2, 'Чешкин Б. В.');into objects values (14, 2, 'Синь Е. Р.');into objects values (15, 2, 'Ешеренев П. Г.');into objects values (16, 2, 'Соломкина А. А.');into objects values (17, 2, 'Масько П. Л.');into objects values (18, 2, 'Кучер Ф. Г.');into objects values (19, 2, 'Шинкарюк Л. Д.');into objects values (21, 2, 'Воронная Н. Д.');

-List_of_membinto objects values (1, 3, 'Бухгалтер');into objects values (2, 3, 'Менеджер о\к');into objects values (3, 3, 'Вахтер');into objects values (4, 3, 'Менеджер т\о');into objects values (5, 3, 'Тестер');


-params (object_id, attr_id, text_value, number_value, date_value)

-Department => Roominto params (object_id, attr_id, number_value) values (10, 1, 21);into params (object_id, attr_id, number_value) values (20, 1, 143);into params (object_id, attr_id, number_value) values (30, 1, null);into params (object_id, attr_id, number_value) values (40, 1, 32);into params (object_id, attr_id, number_value) values (50, 1, 24);

-Department => Phoneinto params (object_id, attr_id, text_value) values (10, 2, '(0542)236-743');into params (object_id, attr_id, text_value) values (20, 2, '(0542)298-756');into params (object_id, attr_id, text_value) values (30, 2, '(0542)255-733');into params (object_id, attr_id, text_value) values (40, 2, '(0542)278-736');into params (object_id, attr_id, text_value) values (50, 2, '(0542)243-721');

-Worker => Pasportinto params (object_id, attr_id, text_value) values (11, 3, 'MB347856, Сумским ГРО УМВД 20.09.03, прописка - г. Сумы');into params (object_id, attr_id, text_value) values (12, 3, 'MB836472, Сумским ГРО УМВД 15.05.96, прописка - г. Сумы');into params (object_id, attr_id, text_value) values (13, 3, 'MB917382, Конотопским ГРО УМВД 20.03.93, прописка - г. Конотоп');into params (object_id, attr_id, text_value) values (14, 3, 'MB153728, Сумским ГРО УМВД 17.04.76, прописка - г. Сумы');into params (object_id, attr_id, text_value) values (15, 3, 'MB153728, Белопольским ГРО УМВД 28.08.74, прописка - г. Ворожба');into params (object_id, attr_id, text_value) values (16, 3, 'MB635217, Сумским ГРО УМВД 25.06.71, прописка - г. Сумы');into params (object_id, attr_id, text_value) values (17, 3, 'MB762534, Ахтырским ГРО УМВД 20.09.95, прописка - г. Ахтырка');into params (object_id, attr_id, text_value) values (18, 3, 'MB453277, Харьковским ГРО УМВД 10.09.96, прописка - г. Харьков');into params (object_id, attr_id, text_value) values (19, 3, 'MB256346, Киевским ГРО УМВД 05.06.92, прописка - г. Киев');into params (object_id, attr_id, text_value) values (21, 3, 'MB736488, Сумским ГРО УМВД 20.09.98, прописка - г. Сумы');

-Worker => Spesiallityinto params (object_id, attr_id, text_value) values (11, 4, 'Бухгалтер');into params (object_id, attr_id, text_value) values (12, 4, 'Бухгалтер');into params (object_id, attr_id, text_value) values (13, 4, 'Менеджер');into params (object_id, attr_id, text_value) values (14, 4, 'Вахтер');into params (object_id, attr_id, text_value) values (15, 4, 'Вахтер');into params (object_id, attr_id, text_value) values (16, 4, 'Вахтер');into params (object_id, attr_id, text_value) values (17, 4, 'Менеджер');into params (object_id, attr_id, text_value) values (18, 4, 'Тестер');into params (object_id, attr_id, text_value) values (19, 4, 'Тестер');into params (object_id, attr_id, text_value) values (21, 4, 'Тестер');

-Worker => Yearsinto params (object_id, attr_id, date_value) values (11, 5, TO_DATE('2007-02-22', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (12, 5, TO_DATE('2002-04-12', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (13, 5, TO_DATE('2005-02-12', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (14, 5, TO_DATE('2010-07-30', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (15, 5, TO_DATE('2009-05-20', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (16, 5, TO_DATE('2004-06-18', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (17, 5, TO_DATE('2007-10-29', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (18, 5, TO_DATE('2001-10-22', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (19, 5, TO_DATE('2002-11-28', 'YYYY-MM-DD'));into params (object_id, attr_id, date_value) values (21, 5, TO_DATE('2003-12-01', 'YYYY-MM-DD'));

-List_of_memb => Salaryinto params (object_id, attr_id, number_value) values (1, 6, 2000);into params (object_id, attr_id, number_value) values (2, 6, 1800);into params (object_id, attr_id, number_value) values (3, 6, 800);into params (object_id, attr_id, number_value) values (4, 6, 2500);into params (object_id, attr_id, number_value) values (5, 6, 2300);

-Work => Taskinto params (object_id, attr_id, text_value) values (11, 7, null);into params (object_id, attr_id, text_value) values (12, 7, null);into params (object_id, attr_id, text_value) values (13, 7, null);into params (object_id, attr_id, text_value) values (14, 7, null);into params (object_id, attr_id, text_value) values (15, 7, null);into params (object_id, attr_id, text_value) values (16, 7, null);into params (object_id, attr_id, text_value) values (17, 7, null);into params (object_id, attr_id, text_value) values (18, 7, 'тестирование офисного прогр. обесп.');into params (object_id, attr_id, text_value) values (19, 7, 'тестирование пользовательского прогр. обесп.');into params (object_id, attr_id, text_value) values (21, 7, 'тестирование системного прогр. обесп.');

-Work => Salaryinto params (object_id, attr_id, number_value) values (11, 8, 2000);into params (object_id, attr_id, number_value) values (12, 8, 2000);into params (object_id, attr_id, number_value) values (13, 8, 1800);into params (object_id, attr_id, number_value) values (14, 8, 800);into params (object_id, attr_id, number_value) values (15, 8, 800);into params (object_id, attr_id, number_value) values (16, 8, 800);into params (object_id, attr_id, number_value) values (17, 8, 2500);into params (object_id, attr_id, number_value) values (18, 8, 2300);into params (object_id, attr_id, number_value) values (19, 8, 2300);into params (object_id, attr_id, number_value) values (21, 8, 2300);

-Work => Kind_of_workinto params (object_id, attr_id, text_value) values (11, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (12, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (13, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (14, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (15, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (16, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (17, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (18, 9, 'на предпр.');into params (object_id, attr_id, text_value) values (19, 9, 'на дому');into params (object_id, attr_id, text_value) values (21, 9, 'на предпр.');

-Work => Kind_of_salaryinto params (object_id, attr_id, text_value) values (11, 10, 'почасовая');into params (object_id, attr_id, text_value) values (12, 10, 'почасовая');into params (object_id, attr_id, text_value) values (13, 10, 'почасовая');into params (object_id, attr_id, text_value) values (14, 10, 'почасовая');into params (object_id, attr_id, text_value) values (15, 10, 'почасовая');into params (object_id, attr_id, text_value) values (16, 10, 'почасовая');into params (object_id, attr_id, text_value) values (17, 10, 'почасовая');into params (object_id, attr_id, text_value) values (18, 10, 'фиксир.');into params (object_id, attr_id, text_value) values (19, 10, 'фиксир.');into params (object_id, attr_id, text_value) values (21, 10, 'фиксир.');

-Contact_info

-Phoneinto params (object_id, attr_id, text_value) values (11, 11, '(0542)736-839');into params (object_id, attr_id, text_value) values (12, 11, '(0542)736-839');into params (object_id, attr_id, text_value) values (13, 11, '(05456)5-36-34');into params (object_id, attr_id, text_value) values (14, 11, '(0542)674-256');into params (object_id, attr_id, text_value) values (15, 11, '(05423)7-36-89');into params (object_id, attr_id, text_value) values (16, 11, '(0542)648-820');into params (object_id, attr_id, text_value) values (17, 11, '(05446)2-49-88');into params (object_id, attr_id, text_value) values (18, 11, '(065)473-68-39');into params (object_id, attr_id, text_value) values (19, 11, '(044)273-61-21');into params (object_id, attr_id, text_value) values (21, 11, '(0542)836-358');

-Addressinto params (object_id, attr_id, text_value) values (11, 12, 'г. Сумы, ул. Ахтырская, 3');into params (object_id, attr_id, text_value) values (12, 12, 'г. Сумы, ул. Кирова, 32');into params (object_id, attr_id, text_value) values (13, 12, 'г. Конотоп, ул. Ленина, 257');into params (object_id, attr_id, text_value) values (14, 12, 'г. Сумы, ул. Октября, 3');into params (object_id, attr_id, text_value) values (15, 12, 'г. Ворожба, ул. Колпака, 34');into params (object_id, attr_id, text_value) values (16, 12, 'г. Сумы, ул. Харьковска, 23');into params (object_id, attr_id, text_value) values (17, 12, 'г. Ахтырка, ул. Шевченка, 2');into params (object_id, attr_id, text_value) values (18, 12, 'г. Харьков, ул. Курская, 18');into params (object_id, attr_id, text_value) values (19, 12, 'г. Киев, ул. О.Вишни, 78');into params (object_id, attr_id, text_value) values (21, 12, 'г. Сумы, ул. Береговая, 104');

-E-mailinto params (object_id, attr_id, text_value) values (11, 13, '[email protected]');into params (object_id, attr_id, text_value) values (12, 13, '[email protected]');into params (object_id, attr_id, text_value) values (13, 13, '[email protected]');into params (object_id, attr_id, text_value) values (14, 13, '[email protected]');into params (object_id, attr_id, text_value) values (15, 13, '[email protected]');into params (object_id, attr_id, text_value) values (16, 13, '[email protected]');into params (object_id, attr_id, text_value) values (17, 13, '[email protected]');into params (object_id, attr_id, text_value) values (18, 13, '[email protected]');into params (object_id, attr_id, text_value) values (19, 13, '[email protected]');into params (object_id, attr_id, text_value) values (21, 13, '[email protected]');

-Otherinto params (object_id, attr_id, text_value) values (11, 14, null);into params (object_id, attr_id, text_value) values (12, 14, null);into params (object_id, attr_id, text_value) values (13, 14, 'ICQ - 456789');into params (object_id, attr_id, text_value) values (14, 14, null);into params (object_id, attr_id, text_value) values (15, 14, null);into params (object_id, attr_id, text_value) values (16, 14, null);into params (object_id, attr_id, text_value) values (17, 14, null);into params (object_id, attr_id, text_value) values (18, 14, null);into params (object_id, attr_id, text_value) values (19, 14, null);into params (object_id, attr_id, text_value) values (21, 14, null);

;


Создание выборок


1. SELECT o.name, p1.text_value , EXTRACT (YEAR FROM SYSDATE) - EXTRACT (YEAR FROM p2.date_value) Stazh

FROM objects o JOIN params p1

ON o.object_id=p1.object_id AND p1.attr_id=4

JOIN params p2

ON o.object_id=p2.object_id AND p2.attr_id=5; -- выводит сотрудников, их специальности и стаж работы (использование функции - EXTRACT)

2. select o.name, p1.text_value, p2.text_value, p3.number_value

from objects o join params p1

on o.object_id=p1.object_id and p1.attr_id=4

join params p2

on p1.object_id=p2.object_id and p2.attr_id=3

join params p3

on p2.object_id=p3.object_id and p3.attr_id=8; -- выводит ФИО, специальность, паспортные данные и заработную плату сотрудников (выборка)

3. select distinct text_value

from params

where attr_id=4; -- выводит уникальные записи должностей (проекция)


Выводы


Выполняя курсовую работу, я освоила язык для создания баз данных - SQL. Моей задачей было создание базы данных некоего предприятия. Во время выполнения задания я изучила основные понятия и компоненты этого языка: типы моделей, структура сущностей (таблиц), выражения SQL , DML (разность, проекция, пересечение, выборка, объединение), соединения, функции, операторы (арифметические, AND, IN, NOT IN…), иерархию данных, метамодель и многое другое.

Самым сложным в понимании мне показались соединения и метамодель, но я преодолела эти трудности.

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


Список литературы


  1. А. Чекалов. Базы данных: от проектирования до разработки приложений - СПб.: БХВ-Петербург, 2003. - 384 с.

Министерство образования, науки, молодежи и спорта Украины Сумской государственный университет Кафедра компьютерных наук

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ