Государственное образовательное учреждение
высшего профессионального образования
"Санкт-Петербургский государственный политехнический университет"
Факультет экономики и менеджмента
Кафедра "Предпринимательство и коммерция"
Курсовой проект
по дисциплине "Информатика"
на тему "Проектирование базы данных для отдела организации и оплаты труда ОАО "Печатный двор""
Выполнил: студент
В 1077/22 группы
Принял: преподаватель
Попов Е.О.
Санкт-Петербург
2008
Проектирование баз данных реляционного типа: Курсовой проект по дисциплине "Информатика". СПб.: СПб ГПУ, 2008, стр. 25, рис. – 8, табл. – 4.
База данных, er-диаграмма, предварительные отношения, исходные таблицы, запросы, форма
В курсовом проекте спроектирована база данных для отдела организации оплаты труда ОАО "Печатный двор".
Содержание
Введение
1. Постановка задачи
2. Построение ER-диаграммы
3. Создание БД в Access
4. Разработка запросов
5. Разработка пользовательского интерфейса
Заключение
Список литературы
Введение
В Microsoft Access предусмотрены все необходимые средства для определения и обработки данных, а также для управления ими при работе с большими объемами информации. Благодаря тому, что база данных состоит из отдельных таблиц, с установленными между ними связями, обеспечивается безопасность и конфиденциальность информации, а также обеспечивается удобство поиска нужной информации из массива данных. Знание пакета Microsoft Access, его функций и возможностей, позволяет понять устройство некоторых элементов управления и поиска среды Windows. Таким образом при работе с большими объёмами информации базы данных более удобны, чем простые таблицы, так как будучи занесёнными в базу данных записи остаются логически связанными. Благодаря логической зависимости одних данных от других появляется возможность по-разному подходить к анализу имеющихся сведений.
Microsoft Access является настольной СУБД (система управления базами данных) реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать приложения, используя встроенные средства.
В отличие от других настольных СУБД, Access хранит все данные в одном файле, хотя и распределяет их по разным таблицам, как и положено реляционной СУБД. К этим данным относится не только информация в таблицах, но и другие объекты базы данных.
Для выполнения почти всех основных операций Access предлагает большое количество Мастеров, которые делают основную работу за пользователя при работе с данными и разработке приложений, помогают избежать рутинных действий и облегчают работу.
В отношении защиты информации и разграничения доступа Access не имеет надежных стандартных средств. В стандартные способы защиты входит защита с использованием пароля БД и защита с использованием пароля пользователя. Снятие такой защиты не представляет сложности для специалиста.
Однако, при известных недостатках MS Access обладает большим количеством преимуществ по сравнению с системами подобного класса.
В первую очередь можно отметить распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft, программное обеспечение и операционные системы которой использует большая часть пользователей персональных компьютеров. MS Access полностью совместим с операционной системой Windows, постоянно обновляется производителем, поддерживает множество языков.
В целом MS Access предоставляет большое количество возможностей. Также необходимо отметить ориентированность на пользователя с разной профессиональной подготовкой, что выражается в наличии большого количества вспомогательных средств, развитую систему справки и понятный интерфейс. Эти средства облегчают проектирование, создание БД и выборку данных из нее.
Access обладает широкими возможностями по импорту/экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, до практически любой серверной СУБД через механизм ODBC.
Получается что Access, обладая всеми чертами СУБД, предоставляет и дополнительные возможности. Это не только гибкая и простая в использовании СУБД, но и система для разработки работающих с базами данных приложений.
1. Постановка задачи
В курсовом проекте будет разработана база данных для отдела организации и оплаты труда ОАО "Печатный двор". База данных будет предназначена для хранения сведений и расчета заработной платы работников.
В указанном отделе состоит большое число работников. Начальник отдела должен владеть достоверной информацией о всех работниках предприятия, иметь возможность вести учет сотрудников. Без использования базы данных велика вероятность потери части необходимых сведений. Использование базы данных позволит уменьшить число бумажных документов и значительно упростит работу отдела организации и оплаты труда и руководства ОАО "Печатного двора".
База данных должна содержать информацию следующего вида:
А: Служебная информация:
Табельный номер;
Фамилия Имя Отчество;
Наименование должности;
Отдел;
Вид оплаты труда;
Номер разрядаю.
Б: Личная информация:
Фамилия Имя Отчество;
Адрес;
Домашний телефон;
Мобильный телефон;
Дата рождения.
В: Сведения о детях сотрудника:
Фамилия Имя Отчество;
Фамилия Имя Отчество детей;
Дата рождения;
Место проживания.
Г: Расценок:
Вид оплаты труда;
Номер разряда;
Расценок.
Д: Процент премии:
Номер разряда
Процент премии
Запросы базы данных:
Запрос на выборку с условием отбора: работники по заданному разряду;
Запрос на выборку с группировкой: средняя заработная плата по должностям ;
Запрос на выборку с расчетом: расчет премии по окладникам;
Запрос на выборку с расчетом: расчет премии по сдельщикам;
Запрос на выборку с расчетом: зарплата по окладникам;
Запрос на выборку с расчетом: зарплата по сдельщикам;
Запрос на обновление: повышение тарифов;
Запрос на удаление: увольнение;
Запрос на добавление: прием на работу нового работника;
Запрос на создание таблицы: дни рождения сотрудников;
Перекрестный запрос: суммы окладов по должностям.
2. Построение ER-диаграммы
На основании собранных исходных данных (см. параграф 1 данного раздела) можем построить ER-диаграмму (см. рисунок 1).
Рис. 1. ER-диаграмма
Работники – имеют – личную информацию.
- степень связи 1:1, потому что один работник может иметь только одну личную информацию;
Класс принадлежности между сущностями РАБОТНИКИ и ЛИЧНАЯ ИНФОРМАЦИЯ обязательный потому, что каждому работнику соответствует своя индивидуальная информация.
2. Личная информация – включает – сведения о детях.
- Степень связи здесь 1:n.
Класс принадлежности: необязательный для ЛИЧНОЙ ИНФОРМАЦИИ и обязательный для СВЕДЕНИЙ О ДЕТЯХ (т.е. не каждый работник может иметь детей).
3.Работники – имеют - расценок.
- степень связи n:1, потому что много сотрудников может иметь один и тот же оклад (или тарифную ставку);
Класс принадлежности обязательный для РАБОТНИКОВ и необязательный для РАСЦЕНКА.
4. Расценок – включает – процент премии
- степень связи 1:1, потому что каждый оклад, который соответствует определенному разряду, может иметь только один определенный процент премии соответственно по тому же разряду;
Класс принадлежности сущности РАСЦЕНОК и ПРОЦЕНТ ПРЕМИИ необязательный.
Имена и содержание ключевых атрибутов сводятся в одну таблицу (см. табл. 1).
Таблица 1 Имена и содержание ключевых атрибутов
Табельный Номер | Табельный номер сотрудника. Чаще всего этот номер содержит только цифры, но иногда в него вводятся дополнительные буквенные обозначения. |
ФИО | Фамилия, имя, отчество работников. |
ФИО Детей | Фамилия, имя, отчество детей работника. |
Номер Разряда | В зависимости от квалификации и стажу работы работникам присваивается номер разряда. |
ПроцентПремии | Каждому разряду соответствует процент премии. |
Построение предварительных отношений
Для БД формируются следующие предварительные отношения (см. Таблицу 2).
Таблица 2 Таблица предварительных отношений
Процент премии включает Расценок получают Работники имеют Личная информация Включает сведения о детях |
НомерРазряда, ПроцентПремии. ВидОплаты, НомерРазряда, Расценок. ТабельныйНомер, ФИО, НаименованиеДолжности, Отдел, ВилОплатыТруда, НомерРаряда. ФИО, Адрес, ДомТел, МобТел, ДатаРождения. ФИО, ФИОДетей, ДатаРождения, МестоПроживания. |
(правило 1) (правило 1) (правило 1) (правило 4) (правило 5) |
Правила нормализации отношений
Если отношение находится в нормальной форме, то снимаются многие проблемы хранения и обработки данных. Разрабатываемые методы проектирования применимы к определенным нормальным формам.
Существует уже более 15 нормальных форм, но продолжается поиск новых. В пособии будут рассмотрены первые три нормальных формы и нормальная форма Бойса-Кодда.
Нормальные формы строятся по следующему принципу: чтобы отношение находилось в некоторой нормальной форме, требуется, чтобы оно находилось в предыдущей нормальной форме и выполнялись определенные дополнительные условия. Исключением является только первая нормальная форма.
Первая нормальная форма (1НФ) - это обычное отношение. Согласно определению отношений, любое отношение автоматически уже находится в 1НФ.
Напомним кратко свойства отношений (это и будут свойства 1НФ):
В отношении нет одинаковых кортежей.
Кортежи не упорядочены.
Атрибуты не упорядочены и различаются по наименованию.
Все значения атрибутов атомарны.
Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа). Замечание. Если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ. Определение. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого. Отношение находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы. В большинстве случаев третьей нормальной формы вполне достаточно, чтобы разрабатывать вполне работоспособные базы данных. Однако рассмотрим еще одну нормальную формы более высокого порядка, а именно, нормальную форму Бойса-Кодда (НФБК). При приведении отношений при помощи нормализации к отношениям в 3НФ неявно предполагалось, что все отношения содержат один потенциальный ключ. Это не всегда верно. Функциональная зависимость атрибутов утверждает лишь то, что для каждого конкретного состояния базы данных по значению одного атрибута (детерминанта) можно однозначно определить значение другого атрибута (зависимой части). Но конкретные значение зависимой части могут быть различны в различных состояниях базы данных. Если имеются отношения, содержащие несколько потенциальных ключей, то необходимо проверить, имеются ли функциональные зависимости, детерминанты которых не являются потенциальными ключами. Если такие функциональные зависимости имеются, то необходимо провести дальнейшую декомпозицию отношений. Те атрибуты, которые зависят от детерминантов, не являющихся потенциальными ключами выносятся в отдельное отношение вместе с детерминантами. Отношение находится в нормальной форме Бойса-Кодда (НФБК) тогда и только тогда, когда детерминанты всех функциональных зависимостей являются потенциальными ключами. Представляющие интерес для игрового центра "Вегас" дополнительные (неключевые) атрибуты.
Таблица 3 Таблица неключевых атрибутов
ФИО | Фамилия, имя отчество каждого работника |
Адрес | Адрес места проживания |
ДомТел | Домашний телефон работника |
МобТел | Мобильный телефон работника |
НомерРазряда | Номер разряда работника |
ПроцентПремии | Прцент премии на оклад |
ВидОплаты | Вид оплаты труда работника |
ФИОДетей | Фамилия, имя, отчество детей работника |
ДатаРожд | Дата рождения детей работника |
МестоПрожив | Место проживание детей работника |
ТабНомер | Табельный номер работника |
НаимДолжн | Наименование должности работника |
Отдел | Наименование отдела, за которым закреплен работник |
Формируется таблица окончательных отношений (см. Таблицу 4).
Таблица 4 Таблица окончательных отношений
Работники Расценок Процент премии Личная информация Сведения о детях |
Табельный Номер, ФИО, Наименование Должности, Отдел, Вил Оплаты Труда, Номер Разряда. Вид Оплаты, Номер Разряда, Расценок. Номер Разряда, Процент Премии. ФИО, Адрес, Дом Тел, Моб Тел, Дата Рождения. ФИО, ФИО Детей, Дата Рождения, Место Проживания. |
3. Создание БД в Access
В ходе создания базы данных были созданы такие таблицы, как: Служебная Информация (см. рис. 2); Личная Информация (см рис. 3); Сведения О Детях Сотрудника (см. рис. 4); Расценок (см. рис. 5); Процент Премии(см. рис. 6);
Рис. 2. Таблица Служебная Информация
Эта таблица необходима для учета всех работников на предприятии. Чтобы всегда можно было с легкостью посмотреть какой работник в каком отделе работает, какой разряд у работника.
Рис. 3. Таблица Личная Информация
Таблица в которой содержится полная информация о всех сотрудниках данного предприятия. Очень важно знать где проживает сотрудник, его телефоны, чтобы всегда можно было с ним связаться.
Рис. 4. Таблица Сведения О Детях Сотрудника
Эта таблица необходима для того, чтобы в дальнейшем можно было рассчитывать НДФЛ.
Рис. 5.Таблица Расценок
В этой таблице содержится информация о размерах окладов и тарифных ставках по разрядам.
Рис. 6. Таблица Процент Премии
Эта таблица нужна для того, чтобы четко видеть какому разряду соответствует определенный процент премии. Была сделана схема данных.
Рис. 7. Схема данных
Благодаря тому, что база данных состоит из отдельных таблиц, с установленными между ними связями, обеспечивается безопасность и конфиденциальность информации, а также обеспечивается удобство поиска нужной информации из массива данных.
4. Разработка запросов
Запрос на выборку с условием отбора: работники по заданному разряду
SELECT СлужебнаяИнформация.ТабельныйНомер, СлужебнаяИнформация.ФамилияИмяОтчество, СлужебнаяИнформация.НомерРазряда
FROM СлужебнаяИнформация
WHERE (((СлужебнаяИнформация.НомерРазряда) Like [Нужный разряд]));Этот запрос необходим чтобы без лишних поисков посмотреть работников с одним и тем же разрядом.
Запрос на выборку с группировкой: средняя заработная плата по должностям
SELECT Расценок.ВидОплаты, Avg(Расценок.Расценок) AS [Avg-Расценок], СлужебнаяИнформация.НаименованиеДолжности
FROM Расценок INNER JOIN СлужебнаяИнформация ON Расценок.НомерРазряда = СлужебнаяИнформация.НомерРазряда
GROUP BY Расценок.ВидОплаты, СлужебнаяИнформация.НаименованиеДолжности
HAVING (((Расценок.ВидОплаты)="оклад, премия"));
Этот запрос необходим для того, чтобы легко можно было посмотреть среднюю зарплату по должности.
Запрос на выборку с расчетом: расчет премии по окладникам
SELECT СлужебнаяИнформация.ТабельныйНомер, СлужебнаяИнформация.ФамилияИмяОтчество, Расценок.ВидОплаты, Расценок.НомерРазряда, Расценок.Расценок, ПроцентПремии.ПроцентПремии, [Расценок]*[ПроцентПремии] AS Премия
FROM Расценок INNER JOIN (ПроцентПремии INNER JOIN СлужебнаяИнформация ON ПроцентПремии.НомерРазряда = СлужебнаяИнформация.НомерРазряда) ON (ПроцентПремии.НомерРазряда = Расценок.НомерРазряда) AND (Расценок.НомерРазряда = СлужебнаяИнформация.НомерРазряда)WHERE (((Расценок.ВидОплаты)="оклад, премия"));
Этот запрос необходим чтобы легко можно было рассчитать премию по каждому работнику с окладом. Иногда это бывает очень необходимо.
4. Запрос на выборку с расчетом: расчет премии по сдельщикам;
SELECT СлужебнаяИнформация.ТабельныйНомер, СлужебнаяИнформация.ФамилияИмяОтчество, СлужебнаяИнформация.ВидОплаты, СлужебнаяИнформация.НомерРазряда, Расценок.Расценок, ПроцентПремии.ПроцентПремии, [Расценок]*[ПроцентПремии]*[Введите количество часов в месяце] AS Премия
FROM Расценок INNER JOIN (ПроцентПремии INNER JOIN СлужебнаяИнформация ON ПроцентПремии.НомерРазряда = СлужебнаяИнформация.НомерРазряда) ON (ПроцентПремии.НомерРазряда = Расценок.НомерРазряда) AND (Расценок.НомерРазряда = СлужебнаяИнформация.НомерРазряда)
WHERE (((СлужебнаяИнформация.ВидОплаты)="сдельно-премиальный"));Этот запрос необходим чтобы легко можно было рассчитать премию по каждому работнику со сдельным видом оплаты труда. Иногда это бывает очень необходимо.
5. Запрос на выборку с расчетом: зарплата по окладникам;
SELECT [расчет премии по окладникам].ТабельныйНомер, [расчет премии по окладникам].ФамилияИмяОтчество, [расчет премии по окладникам].Премия, [расчет премии по окладникам].Расценок, [Премия]+[Расценок] AS ИтогоЗарплата
FROM [расчет премии по окладникам];
Для расчета основной заработной платы для работников с окладом.
6. Запрос на выборку с расчетом: зарплата по сдельщикам;
SELECT [расчет премии по сдельщикам].ТабельныйНомер, [расчет премии по сдельщикам].ФамилияИмяОтчество, [расчет премии по сдельщикам].Расценок, [расчет премии по сдельщикам].ПроцентПремии, [Премия]+[Расценок] AS ИтогоЗарплата
FROM [расчет премии по сдельщикам];
Для расчета основной заработной платы для работников со сдельным видом оплаты труда.
7. Запрос на обновление: повышение тарифов;
UPDATE Расценок SET Расценок.Расценок = [Расценок]*2
WHERE (((Расценок.Расценок)>"10"));
Этот запрос необходим для увеличения тарифов по сдельному виду оплаты труда.
8. Запрос на удаление: увольнение;
DELETE СлужебнаяИнформация.ТабельныйНомер
FROM СлужебнаяИнформация
WHERE (((СлужебнаяИнформация.ТабельныйНомер) Like [Введите табельный номер]));
Этот запрос тоже очень необходим, для того, чтобы можно было при увольнении работника быстро удалить его из списка по табельному номеру.
9. Запрос на добавление: прием на работу нового работника;
INSERT INTO СлужебнаяИнформация ( ТабельныйНомер, ФамилияИмяОтчество, НаименованиеДолжности, Отдел, ВидОплаты, НомерРазряда )
SELECT [введите ТабельныйНомер], [введите ФамилияИмяОтчество], [введите НаименованиеДолжности], [введите Отдел], [введите ВидОплаты], [введите НомерРазряда]
FROM СлужебнаяИнформация;
Данный запрос имеет немало важную роль, т. к. с помощью него можно быстро включить в список нового работника.
10. Запрос на создание таблицы: дни рождения сотрудников;
SELECT ЛичнаяИнформация.ФамилияИмяОтчество, ЛичнаяИнформация.ДатаРождения INTO ДниРождения
FROM ЛичнаяИнформация;
Перекрестный запрос: суммы окладов по должностям
TRANSFORM Sum(Hfcwtyjr/Hfcwtyjr) AS [Sum-Hfcwtyjr]
SELECT СлужебнаяИнформация.НаименованиеДолжности
FROM Расценок INNER JOIN СлужебнаяИнформация ON Расценок.НомерРазряда = СлужебнаяИнформация.НомерРазряда
GROUP BY СлужебнаяИнформация.НаименованиеДолжности
PIVOT Расценок.ВидОплаты;
Этот запрос необходим для того, чтобы знать какая сумма денег уходит на зарплату по каждой должности.
5. Разработка пользовательского интерфейса
Была разработана кнопочная форма для игрового центра "Вегас".
Рис. 8. Форма
В кнопочной форме представлены кнопки, которые ссылаются на основные категории БД (Таблицы, Запросы, Отчеты, Формы) и удобны в использовании. Кнопки предназначены для того, чтобы было легко открывать все таблицы, запросы, формы и отчеты. Кнопка "Выход" позволяет закрыть БД и сохраняет при изменении.
Заключение
В проделанной работе были опробованы и использованы основные метода и объекты системы управления базами данных Microsoft Access.
В курсовом проекте разработана удобная база данных для отдела организации и оплаты труда ОАО "Печатный двор", в которой содержатся таблицы и запросы. Стало намного удобнее работать.
Список литературы
1. Правила оформления курсовых проектов и работ: Методические указания / Сост.: В.А. Дуболазов, Н.В. Павлов. СПб.: Изд-во Политехн. ун-та, 2007. 25 с.
2. Проектирование баз данных реляционного типа: Методические указания / Д.А. Гаврилов, Н.В. Павлов, Ю. Г. Пономарев. СПб.: Изд-во СПбГТУ, 2001. 54 с.