Государственноеобразовательное учреждение
высшегопрофессионального образования
«Санкт-Петербургскийгосударственный политехнический университет»
Факультетэкономики и менеджмента
Кафедра «Предпринимательствои коммерция»
Курсовойпроект
по дисциплине«Информатика»
на тему «Проектированиебазы данных для отдела организации и оплаты труда ОАО „Печатный двор“»
Выполнил: студент
В 1077/22 группы
Принял: преподаватель
Попов Е.О.
Санкт-Петербург
2008
Проектирование баз данныхреляционного типа: Курсовой проект по дисциплине «Информатика». СПб.:СПб ГПУ, 2008, стр. 25, рис. – 8, табл. – 4.
База данных, er-диаграмма, предварительные отношения, исходные таблицы,запросы, форма
В курсовом проекте спроектирована база данных для отдела организации оплатытруда ОАО «Печатный двор».
Содержание
Введение
1. Постановка задачи
2. Построение ER-диаграммы
3. Создание БД в Access
4. Разработка запросов
5. Разработка пользовательского интерфейса
Заключение
Список литературы
Введение
В Microsoft Access предусмотренывсе необходимые средства для определения и обработки данных, а также дляуправления ими при работе с большими объемами информации. Благодаря тому, чтобаза данных состоит из отдельных таблиц, с установленными между ними связями,обеспечивается безопасность и конфиденциальность информации, а такжеобеспечивается удобство поиска нужной информации из массива данных. Знаниепакета Microsoft Access, его функций и возможностей, позволяет понятьустройство некоторых элементов управления и поиска среды Windows. Таким образомпри работе с большими объёмами информации базы данных более удобны, чем простыетаблицы, так как будучи занесёнными в базу данных записи остаются логическисвязанными. Благодаря логической зависимости одних данных от других появляетсявозможность по-разному подходить к анализу имеющихся сведений.
MicrosoftAccess является настольной СУБД (система управления базами данных) реляционноготипа. Достоинством Access является то, что она имеет очень простой графическийинтерфейс, который позволяет не только создавать собственную базу данных, но иразрабатывать приложения, используя встроенные средства.
В отличие отдругих настольных СУБД, Access хранит все данные в одном файле, хотя ираспределяет их по разным таблицам, как и положено реляционной СУБД. К этимданным относится не только информация в таблицах, но и другие объекты базыданных.
Для выполнения почти всех основных операций Access предлагает большоеколичество Мастеров, которые делают основную работу за пользователя при работес данными и разработке приложений, помогают избежать рутинных действий иоблегчают работу.
В отношениизащиты информации и разграничения доступа Access не имеет надежных стандартныхсредств. В стандартные способы защиты входит защита с использованием пароля БДи защита с использованием пароля пользователя. Снятие такой защиты непредставляет сложности для специалиста.
Однако, приизвестных недостатках MS Access обладает большим количеством преимуществ посравнению с системами подобного класса.
В первуюочередь можно отметить распространенность, которая обусловлена тем, что Access является продуктомкомпании Microsoft, программное обеспечение и операционные системы которойиспользует большая часть пользователей персональных компьютеров. MS Access полностью совместим соперационной системой Windows, постоянно обновляется производителем,поддерживает множество языков.
В целом MS Access предоставляет большоеколичество возможностей. Также необходимо отметить ориентированность напользователя с разной профессиональной подготовкой, что выражается в наличиибольшого количества вспомогательных средств, развитую систему справки ипонятный интерфейс. Эти средства облегчают проектирование, создание БД ивыборку данных из нее.
Access обладает широкимивозможностями по импорту/экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, допрактически любой серверной СУБД через механизм ODBC.
Получаетсячто Access, обладая всеми чертами СУБД, предоставляет и дополнительные возможности.Это не только гибкая и простая в использовании СУБД, но и система дляразработки работающих с базами данных приложений.
1.Постановка задачи
В курсовом проекте будетразработана база данных для отдела организации и оплаты труда ОАО «Печатныйдвор». База данных будет предназначена для хранения сведений и расчетазаработной платы работников.
В указанном отделесостоит большое число работников. Начальник отдела должен владеть достовернойинформацией о всех работниках предприятия, иметь возможность вести учет сотрудников.Без использования базы данных велика вероятность потери части необходимыхсведений. Использование базы данных позволит уменьшить число бумажныхдокументов и значительно упростит работу отдела организации и оплаты труда и руководстваОАО «Печатного двора».
База данных должна содержатьинформацию следующего вида:
А: Служебная информация:
1. Табельныйномер;
2. ФамилияИмя Отчество;
3. Наименованиедолжности;
4. Отдел;
5. Видоплаты труда;
6. Номерразрядаю.
Б: Личная информация:
1. ФамилияИмя Отчество;
2. Адрес;
3. Домашнийтелефон;
4. Мобильныйтелефон;
5. Датарождения.
В: Сведения о детяхсотрудника:
1. ФамилияИмя Отчество;
2. ФамилияИмя Отчество детей;
3. Датарождения;
4. Местопроживания.
Г: Расценок:
1. Видоплаты труда;
2. Номерразряда;
3. Расценок.
Д:Процент премии:
1. Номерразряда
2. Процентпремии
Запросы базы данных:
1) Запрос на выборкус условием отбора: работники по заданному разряду;
2) Запрос на выборкус группировкой: средняя заработная плата по должностям ;
3) Запрос на выборкус расчетом: расчет премии по окладникам;
4) Запрос на выборкус расчетом: расчет премии по сдельщикам;
5) Запрос на выборкус расчетом: зарплата по окладникам;
6) Запрос на выборкус расчетом: зарплата по сдельщикам;
7) Запрос наобновление: повышение тарифов;
8) Запрос наудаление: увольнение;
9) Запрос надобавление: прием на работу нового работника;
10) Запрос насоздание таблицы: дни рождения сотрудников;
11) Перекрестныйзапрос: суммы окладов по должностям.2. ПостроениеER-диаграммы
На основании собранных исходныхданных (см. параграф 1 данного раздела) можем построить ER-диаграмму (см. рисунок 1).
/>
Рис. 1. ER-диаграмма
1. Работники – имеют– личную информацию.
— степень связи 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. Разработка запросов
1. Запрос на выборкус условием отбора: работники по заданному разряду
SELECTСлужебнаяИнформация.ТабельныйНомер, СлужебнаяИнформация.ФамилияИмяОтчество,СлужебнаяИнформация.НомерРазряда
FROM СлужебнаяИнформация
WHERE(((СлужебнаяИнформация.НомерРазряда) Like [Нужный разряд])); Этот запроснеобходим чтобы без лишних поисков посмотреть работников с одним и тем жеразрядом.
2. Запрос на выборкус группировкой: средняя заработная плата по должностям
SELECT Расценок.ВидОплаты,Avg(Расценок.Расценок) AS [Avg-Расценок],СлужебнаяИнформация.НаименованиеДолжности
FROM Расценок INNER JOINСлужебнаяИнформация ON Расценок.НомерРазряда = СлужебнаяИнформация.НомерРазряда
GROUP BYРасценок.ВидОплаты, СлужебнаяИнформация.НаименованиеДолжности
HAVING(((Расценок.ВидОплаты)=«оклад, премия»));
Этот запрос необходим длятого, чтобы легко можно было посмотреть среднюю зарплату по должности.
3. Запрос на выборкус расчетом: расчет премии по окладникам
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 ЛичнаяИнформация;
11. Перекрестныйзапрос: суммы окладов по должностям
TRANSFORMSum(Hfcwtyjr/Hfcwtyjr) AS [Sum-Hfcwtyjr]
SELECTСлужебнаяИнформация.НаименованиеДолжности
FROM Расценок INNER JOINСлужебнаяИнформация ON Расценок.НомерРазряда = СлужебнаяИнформация.НомерРазряда
GROUP BYСлужебнаяИнформация.НаименованиеДолжности
PIVOT Расценок.ВидОплаты;
Этот запрос необходим длятого, чтобы знать какая сумма денег уходит на зарплату по каждой должности.
5. Разработка пользовательского интерфейса
Была разработанакнопочная форма для игрового центра «Вегас».
/>
Рис. 8. Форма
В кнопочной формепредставлены кнопки, которые ссылаются на основные категории БД (Таблицы,Запросы, Отчеты, Формы) и удобны в использовании. Кнопки предназначены длятого, чтобы было легко открывать все таблицы, запросы, формы и отчеты. Кнопка «Выход»позволяет закрыть БД и сохраняет при изменении.
Заключение
Впроделанной работе были опробованы и использованы основные метода и объектысистемы управления базами данных Microsoft Access.
Вкурсовом проекте разработана удобная база данных для отдела организации иоплаты труда ОАО «Печатный двор», в которой содержатся таблицы изапросы. Стало намного удобнее работать.
Список литературы
1. Правила оформления курсовых проектов и работ: Методическиеуказания / Сост.: В.А. Дуболазов, Н.В. Павлов. СПб.: Изд-во Политехн. ун-та,2007. 25 с.
2. Проектирование баз данных реляционного типа: Методическиеуказания / Д.А. Гаврилов, Н.В. Павлов, Ю. Г. Пономарев. СПб.: Изд-во СПбГТУ,2001. 54 с.