ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
Иркутский государственный университет путей сообщения
Кафедра: Вычислительной техники и прикладной математике
Предмет: Управление данными
Курсовой проект
КАДРЫ
Выполнил: студент гр.
Проверил: проф., д. т. н.
г. Иркутск - 2006
Разработать и программно реализовать информационную систему
«Кадры»
Порядок выполнения задания:
· Анализ предметной области и разработка структуры ИС.
· Описание информационных процессов.
· Разработка структуры БД и структуры ИС.
· Реализация и тестирование ИС.
СОДЕРЖАНИЕ
ЗАДАНИЕ КУРСОВОГО ПРОЕКТА
.. 2
1. ВВЕДЕНИЕ
.. 4
2. ОСНОВНАЯ ЧАСТЬ
.. 5
2.1. Анализ предметной области
. 5
2.2. Разработка структуры ИС.. 7
2.3. Разработка структуры базы данных и интерфейсов. 7
Таблица «Сотрудники»:
7
Таблица «Воинский учет»:
9
Таблица «Командировки»:
9
Таблица «Семья»:
9
Таблица «Образование»:
10
Таблица «Трудовая книжка»:
10
Таблица «Отпуска»:
11
Главная кнопочная форма
. 12
Форма: Основная информация о сотрудниках
. 12
Заключение
. 15
Литература
. 16
Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия или учреждения. Такая система должна:
· обеспечивать получение общих и/или детализированных отчетов по итогам работы;
· позволять легко определять тенденции изменения важнейших показателей;
· обеспечивать получение информации, критической по времени, без существенных задержек;
· выполнять точный и полный анализ данных.
Темой данного курсового проекта является Информационная система отдела кадров предприятия. Результатом работы является программа «Кадры». Работа отдела кадров достаточно крупного предприятия связана с накоплением большого количества информации о личных данных сотрудников. Традиционно информация хранится на бумажных носителях. При этом трудно осуществить быстрый отбор нужных данных при приеме на работу, уходе в отпуск, увольнении, переходе на другую должность или других перемещениях сотрудника. Немаловажен вопрос надежности хранения и конфиденциальности личных данных о работающих на предприятии. Таким образом, автоматизация процесса работы отдела кадров является нужным и перспективным процессом.
Рассмотрим схему работы отдела кадров. Начальник отдела кадров заполняет личное дело сотрудника данными. Периодически начальник отдела кадров подшивает в дело новые сведения и приказы, касающиеся этого сотрудника. Время от времени требуется выдать справки фиксированного содержания на основании данных личного дела (краткая информация о сотруднике и др.).
В разрабатываемом приложение должна иметься возможность добавления нового и удаление старого сотрудника в базе данных, редактирование его анкетных данных. Также должны быть предусмотрены функции поиска данных по фамилии сотрудника, функции формирования и печати справки содержащую краткую информация о сотруднике, печати всех данных о нем.
В штате отдела кадров помимо начальника отдела кадров, также работает и несколько сотрудников отдела кадров. Фактически, только начальник отдела кадров должен иметь полный доступ к архиву хранящейся информации. Остальные сотрудники должны иметь в своем пользовании пользовательский интерфейс с ограничением прав.
Основная задача проектируемой ИС, обеспечить быстрое нахождение и редактирование нужной информации по работе с кадрами. В качестве критериев выбора предлагаются следующие информационные объекты:
· Сотрудники;
· Воинский учет;
· Семья;
· Трудовая книжка;
· Образование;
· Отпуска;
· Командировки;
· Увольнение (справочник по статьям КЗОТ-вспомогательный, не связанный с остальными, объект)
Отобразим взаимоотношения между этими объектами на диаграмме «сущность–связь»
( рис. 1 ).
Рис.
1
. Концептуальная модель данных
Каждый рассматриваемый сотрудник может либо состоять на военном учете, либо не состоять, причем, если имеет военный билет, то единственный. Этим объясняется связь один – к - одному между объектами «сотрудники – воинский учет». Все остальные объекты связаны с объектом «сотрудники» соответственно с помощью связей «многие – к - одному» поскольку сотрудник:
· может иметь более одного родственника;
· может иметь более одной записи в трудовой книжке;
· может иметь более одного образования;
· может иметь более одного отпуска в год;
· может побывать более, чем в одной командировке.
Для хранения данных в ИС и реализации механизмов выборки данных для обработки используется СУБД. Одной из основных функций ИС является анализ данных - наблюдение за состоянием объектов системы в различных срезах предметной области. Данная функция реализуется посредством организации запросов на языке SQL. Проблема заключается в невозможности общения пользователя (оператора) ИС с СУБД, так как знание SQL никак не может являться обязательным требованием. Решением является встроенный в ИС интерфейсный модуль.
На основании построенной концептуальной модели можно разработать реляционную модель данных, которая будет реализована в выбранной СУБД (Access). Каждому объекту ставится в соответствие реляционная таблица. Ниже представлена структура созданных таблиц, а на рис. 2 изображена схема связей между таблицами.
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Подразделение
|
Текстовый
|
50
|
Оклад
|
Денежный
|
Денежный
|
Надбавка
|
Числовой
|
Длинное целое
|
Премия
|
Числовой
|
Длинное целое
|
ИНН
|
Текстовый
|
9
|
Страховое свидетельство
|
Текстовый
|
15
|
Медицинский полис
|
Текстовый
|
15
|
Характер работы
|
Текстовый
|
50
|
Вид работы
|
Текстовый
|
20
|
Поле
|
Тип
|
Размер
|
Режим труда
|
Текстовый
|
50
|
Пол
|
Текстовый
|
7
|
Фамилия
|
Текстовый
|
20
|
Имя
|
Текстовый
|
20
|
Отчество
|
Текстовый
|
20
|
Дата рождения
|
Дата/время
|
Краткий формат даты
|
Место рождения
|
Текстовый
|
50
|
Национальность
|
Текстовый
|
15
|
Гражданство
|
Текстовый
|
15
|
Семейное положение
|
Текстовый
|
10
|
Фактический индекс
|
Числовой
|
6
|
Фактический адрес
|
Текстовый
|
50
|
Профсоюз
|
Логический
|
Группа инвалидности
|
Числовой
|
1
|
Пенсионер
|
Логический
|
Участник войны
|
Логический
|
Домашний телефон
|
Числовой
|
10
|
Сотовый
|
Числовой
|
10
|
Паспорт
|
Текстовый
|
11
|
Кем выдан
|
Текстовый
|
50
|
Дата выдачи
|
Дата/время
|
Краткий формат даты
|
Индекс
|
Числовой
|
6
|
Адрес
|
Текстовый
|
50
|
Дата регистрации
|
Дата/время
|
Краткий формат даты
|
Военный билет
|
Текстовый
|
11
|
Последняя медкомиссия
|
Дата/время
|
Краткий формат даты
|
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Категория запаса
|
Текстовый
|
20
|
Воинское звание
|
Текстовый
|
12
|
Состав
|
Текстовый
|
50
|
ВУС
|
Текстовый
|
50
|
Категория годности
|
Текстовый
|
50
|
Наименование военкомата
|
Текстовый
|
50
|
Начало срочной службы
|
Дата/время
|
Краткий формат даты
|
Окончание срочной службы
|
Дата/время
|
Краткий формат даты
|
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Дата начала
|
Дата/время
|
Краткий формат даты
|
Дата окончания
|
Дата/время
|
Краткий формат даты
|
Место назначения
|
Текстовый
|
25
|
Код
|
Счетчик
|
Длинное целое
|
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Степень родства
|
Текстовый
|
20
|
ФИО родственника
|
Текстовый
|
50
|
Дата рождения
|
Дата/время
|
Краткий формат даты
|
Код
|
Счетчик
|
Длинное целое
|
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Дата поступления в у/з
|
Дата/время
|
Краткий формат даты
|
Дата окончания у/з
|
Дата/время
|
Краткий формат даты
|
Образование
|
Текстовый
|
30
|
Название у/з
|
Текстовый
|
50
|
Диплом
|
Текстовый
|
15
|
Форма обучения
|
Текстовый
|
15
|
Квалификация
|
Текстовый
|
15
|
Специальность
|
Текстовый
|
15
|
Ученая степень
|
Текстовый
|
30
|
Ученое звание
|
Текстовый
|
30
|
Код
|
Счетчик
|
Длинное целое
|
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Название учреждения
|
Текстовый
|
50
|
Должность
|
Текстовый
|
255
|
Дата постановки
|
Дата/время
|
Краткий формат даты
|
Приказ о приеме
|
Числовой
|
Длинное целое
|
Дата увольнения
|
Дата/время
|
Краткий формат даты
|
Причина увольнения
|
Текстовый
|
255
|
Приказ на увольнение
|
Числовой
|
Длинное целое
|
Код
|
Счетчик
|
Длинное целое
|
Поле
|
Тип
|
Размер
|
Табельный номер
|
Числовой
|
Длинное целое
|
Вид отпуска
|
Текстовый
|
15
|
Приказ на отпуск
|
Числовой
|
Длинное целое
|
За время с
|
Дата/время
|
Краткий формат даты
|
За время по
|
Дата/время
|
Краткий формат даты
|
Дата начала
|
Дата/время
|
Краткий формат даты
|
Дата окончания
|
Дата/время
|
Краткий формат даты
|
Код
|
Счетчик
|
Длинное целое
|
На рис. 2 первичные ключи таблиц выделены жирным шрифтом. На все связи наложены условия обеспечения целостности данных (такой режим поддерживается СУБД Microsoft Access).
Рис. 2. Схема данных
Рис. 3. Главная кнопочная форма
Работа с приложением начинается с открытия главной кнопочной формы. На данной форме имеются кнопки для открытия соответственных форм, а также кнопка выхода из приложения.
Рис. 4. Основная информация о сотрудниках
Основной операцией при работе с базой данных является операция просмотра / редактирования данных о сотруднике. Эта операция выполняется с помощью разработанной формы, показанной на рис. 3.
Набор вкладок «Сотрудники - Уволенные» позволяет просматривать и при необходимости корректировать данные о работающих или уволенных. Многие поля формы имеют фиксированные списки значений, маски ввода что значительно упрощает работу. Значение поля «возраст» вычисляется в одноименном запросе.
В левой части формы находится блок кнопок, позволяющих просматривать, либо редактировать частную информацию о сотрудниках. Здесь же кнопки принятия / увольнения сотрудников.
Форма: Поиск сотрудников
Рис. 5. Поиск сотрудников
На рисунках 5, 6, 7, 8 изображены формы поиска. Поиск может быть осуществлен по фамилии, по должности и по окладу. Нажатие кнопки выводит информацию в виде выпадающего списка. При нажатии кнопки отмена все формы поиска закрываются. Это реализовано с помощью макроса «Закрытие поиска».
Рис. 6. Поиск по фамилии
Рис. 7. Поиск по должности
Рис.8. Поиск по окладу
Форма: Печать /редактирование приказов
Рис. 9. Печать приказов
Приказы, выводимые на печать, выполнены в виде форм. Тем самым достигается большая универсальность: там, где это необходимо, поля представлены в виде полей с выпадающим списком.
Запрос Возраст
SELECT DateDiff("yyyy",Сотрудники.[Дата рождения],Now()) AS Возраст, Сотрудники.[Табельный номер]
FROM Сотрудники;
Запрос Общий стаж
SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения])) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((Last([Трудовая книжка].[Дата увольнения])) Is Not Null))
UNION
SELECT DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((First([Трудовая книжка].[Дата увольнения])) Is Null))
UNION SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения]))+DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (Last([Трудовая книжка].[Дата увольнения]) Is Null And (First([Трудовая книжка].[Дата увольнения]) Is Not Null));
SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения])) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
WHERE [Трудовая книжка].[Название учреждения]="ЗАО Строительная компания"
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((Last([Трудовая книжка].[Дата увольнения])) Is Not Null))
UNION
SELECT DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
WHERE [Трудовая книжка].[Название учреждения]="ЗАО Строительная компания"
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (((First([Трудовая книжка].[Дата увольнения])) Is Null))
UNION SELECT Sum(DateDiff("m",[Трудовая книжка].[Дата постановки],[Трудовая книжка].[Дата увольнения]))+DateDiff("m",Last([Трудовая книжка].[Дата постановки]),Now()) AS Все, Int(Все/12) AS Годы , Все-Годы*12 AS Месяцы , [Трудовая книжка].[Табельный номер]
FROM [Трудовая книжка]
WHERE [Трудовая книжка].[Название учреждения]="ЗАО Строительная компания"
GROUP BY [Трудовая книжка].[Табельный номер]
HAVING (Last([Трудовая книжка].[Дата увольнения]) Is Null And (First([Трудовая книжка].[Дата увольнения]) Is Not Null));
Запрос ФИО
SELECT Сотрудники.Фамилия & " " & Сотрудники.Имя & " " & Сотрудники.Отчество AS ФИО
FROM Сотрудники INNER JOIN [Трудовая книжка] ON Сотрудники.[Табельный номер]=[Трудовая книжка].[Табельный номер]
WHERE (([Трудовая книжка]!Должность="Генеральный директор"));
Заключение
В ходе выполнения курсовой работы средствами СУБД Microsoft Access была разработана информационная система «Кадры»
, предназначенная для автоматизации работы сотрудников отдела кадров.
Концептуальная модель данных представлена диаграммой «сущность-связь». На ее основании разработана логическая структура базы данных, в ходе реализации которой задействованы механизмы обеспечения целостности данных.
Система для автоматизации работы кадровой службы предприятия имеет дружественный интерфейс пользователя и позволяет решать все задачи, сформулированные в постановке задачи на курсовую работу. Набор учетных параметров по сотрудникам, учет приема/увольнения. Большой выбор документов для внутренней отчетности и в помощь другим службам.
Учтен реальный опыт традиционной процедуры работы кадровой службы. Также в помощь пользователю предоставлены законодательные акты, которые могут пригодиться для обоснования решений в спорных вопросах
1. Хансен Г., Хансен Дж. Базы данных: разработка и управление. — М.: БИНОМ, 1999. — 704 с.
2. Дейт К. Дж. Введение в системы баз данных. — К.; М.; СПб.: Издательский дом «Вильямс», 1999. — 848 с.
3. Карпов Б. Microsoft Access 2000: справочник. — СПб: Питер, 2000. — 416 с.
4. Праг К. Н., Ирвин М. Р. Access 2000. Библия пользователя. — М.: Вильямс, 2000. — 1040 с.
5. Евдокимов В.В. и др. Экономическая информатика: Учебник для вузов / Под ред. проф. В.В. Евдокимова. — СПб.: Питер, 1997. — 592 с.
6. Хомоненко А. Д., Цыганков В. М., Мальцев М. Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А. Д. Хомоненко. — СПб: Корона принт, 2000. — 416 с.
|