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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,21 Mb
  • Опубликовано:
    2011-11-29
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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

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

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









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

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

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


Подготовила: студентка группы ИН-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 Атрибуты отношения Штатное расписание

Атрибут

Описание

Идентификатор сотрудника

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_отдела

Number

NUMBER(2)

ИН отдела

Primary Key

Помещение

Room

NUMBER(4,0)

Номер занимаемого помещения


Раб_телефон

Phone

VARCHAR2(20)

Рабочий телефон


Название_отдела

Name

VARCHAR2(30)

Название отдела



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

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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID _сотрудника

ID_s

NUMBER (2)

ИН сотрудника

Primary Key

Паспортные_данные

VARCHAR2 (50)

Серия, номер паспорта, кем выдан и прописка


Профессия

Spesiallity

VARCHAR2 (20)

Специальность сотрудника


Стаж

Years

TIMESTAMP

Дата первого трудового дня


ID_отдела

Number

NUMBER(2)

ИН отдела

Foreign Key


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

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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID

ID

NUMBER(2)

ИН должности

Primary Key

Должность

Post

VARCHAR2 (20)

Должность сотрудника


Оклад

Salary

NUMBER(8,3)

Ставка по занимаемой должности


ID_отдела

Number

NUMBER(2)

ИН отдела

Foreign Key


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

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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

Задание

Task

VARCHAR2 (100)

Задание

Primary Key

Плата

Salary

NUMBER(8,3)

Плата за выполнение задания


Тип работы

Kind_of_work

VARCHAR2 (20)

Тип выполняемой работы


Тип платы

Kind_of_salary

VARCHAR2 (20)

Тип платы


ID _сотрудника

ID_s

NUMBER (2)

ИН сотрудника

Foreign Key


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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

Телефон

Phone

VARCHAR2 (20)

Телефон сотрудника


Адрес

Address

VARCHAR2 (30)

Адрес сотрудника


Электронная почта

E-mail

VARCHAR2 (30)

Электронная почта сотрудника


Другое

Others

VARCHAR2 (100)

Другие контакты сотрудника


ID _сотрудника

ID_s

NUMBER (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', 'jhsdfjskl@yandex.ru', null, 1);

INSERT INTO Contact_info VALUES ('(0542)745-859', 'ул. Кирова, 32', '123mjhj@yandex.ru', null, 2);

INSERT INTO Contact_info VALUES ('(05456)5-36-34', 'ул. Ленина, 257', 'loigerg@mail.ru', 'ICQ - 456789', 3);

INSERT INTO Contact_info VALUES ('(0542)674-256', 'ул. Октября, 3', 'vcmhdl@bk.ru', null, 4);

INSERT INTO Contact_info VALUES ('(05423)7-36-89', 'ул. Колпака, 34', 'oehcpspss@yandex.ru', null, 5);INTO Contact_info VALUES ('(0542)648-820', 'ул. Харьковска, 23', 'juise@yandex.ru', null, 6);

INSERT INTO Contact_info VALUES ('(05446)2-49-88', 'ул. Шевченка, 2', 'lidufklasjd@mail.ru', null, 7);

INSERT INTO Contact_info VALUES ('(065)473-68-39', 'ул. Курская, 18', 'isdkasd@yandex.ru', null, 8);

INSERT INTO Contact_info VALUES ('(044)273-61-21', 'ул. О.Вишни, 78', 'lskdjflskdj@yandex.ru', null, 9);INTO Contact_info VALUES ('(0542)836-358', 'ул. Береговая, 104', 'kudfkjdkdldd@yandex.ru', 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_id

NUMBER

Primary Key

Название

name

VARCHAR2(50)

Название

Описание

description

VARCHAR2(100)

Описание

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

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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID_объекта

object_id

NUMBER


Primary Key

ID_типа_объекта

object_type_id

NUMBER


Foreign Key

Название_объекта

name

VARCHAR2(150)

Название объекта



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

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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID_атрибута

attr_id

NUMBER


Primary Key

ID_типа_объекта

object_type_id

NUMBER


Foreign Key

Название_атрибута

name

VARCHAR2(50)

Название атрибута



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

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

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID_объекта

object_id

NUMBER

Номер объекта

Foreign Key

ID_атрибута

attr_id

NUMBER

Номер атрибута

Текстовое_значение

text_value

VARCHAR2(150)

Поле для текстовых данных


Номерное_значение

number_value

NUMBER

Поле для цифровых данных


Дата

date_value

DATE

Поле для дат



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

 

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

 

Скрипты

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, 'jhsdfjskl@yandex.ru');into params (object_id, attr_id, text_value) values (12, 13, '123mjhj@yandex.ru');into params (object_id, attr_id, text_value) values (13, 13, 'loigerg@mail.ru');into params (object_id, attr_id, text_value) values (14, 13, 'vcmhdl@bk.ru');into params (object_id, attr_id, text_value) values (15, 13, 'oehcpspss@yandex.ru');into params (object_id, attr_id, text_value) values (16, 13, 'juise@yandex.ru');into params (object_id, attr_id, text_value) values (17, 13, 'lidufklasjd@mail.ru');into params (object_id, attr_id, text_value) values (18, 13, 'isdkasd@yandex.ru');into params (object_id, attr_id, text_value) values (19, 13, 'lskdjflskdj@yandex.ru');into params (object_id, attr_id, text_value) values (21, 13, 'kudfkjdkdldd@yandex.ru');

-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 с.

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!