Разработка базы данных по акту о приеме работ, выполненных по срочному трудовому договору, заключенному на время выполнения определенной работы
Федеральное
агентство по образованию
Новосибирский
государственный университет экономики и управления - "НИНХ"
Курсовая
работа
Разработка
базы данных по акту о приеме работ, выполненных по срочному трудовому договору,
заключенному на время выполнения определенной работы
Номер группы: 9091
Наименование специальности:
"Прикладная информатика
(в экономике)"
Ф.И.О. студента: Остапенко М.В.
Номер зачетной книжки: 091374
Проверила: Родионова З.В.
Новосибирск,
2012 г.
Оглавление
Введение
. Описание
предметной области
.1 Описание
бизнес-процесса
.2 Описание
формы
.3 Правила
оформления Унифицированной формы №Т-73
.4
Организационная структура предприятия
. Описание
целей и задач создания базы данных
.
Концептуальная модель
. Реляционная
модель данных
. Модель
данных в SQL Server 2008
. Создание и
заполнение таблиц
. Объекты
базы данных
.1 Запросы
7.2 Представления
.3 Хранимые
процедуры
.4 Триггеры
Заключение
Список
литературы
Введение
В различных современных организациях ежедневно трудятся люди. И каждый
сотрудник в любой организации заключает трудовой договор для регулирования
дальнейшей деятельности, а также получения денежной суммы за определенную
работу.
Целью данной работы является автоматизация процесса учета работ, оценки
их качества, объема, уровня выполнения, а также учета суммы за выполнение
работы.
К задачам, поставленным в данной работе, относятся:
. отражение в базе данных подробной информации обо всех
сотрудниках (ФИО, данные паспорта), подразделениях, должностях, работе;
. установление взаимосвязи между всеми элементами базы данных, что
позволит вести оперативный поиск нужной информации по различным критериям.
1. Описание предметной области
Фитнес-клуб - это объект спортивно-оздоровительного назначения,
предоставляющий комплекс фитнес-услуг. Особенностью работы фитнес-клуба
является использование системы клубных абонементов - так называемых карт членов
клуба. Клубный абонемент, или членская карта, дает возможность неограниченного
времени пребывания в клубе в часы его работы и неограниченного количества
посещений в период действия клубного абонемента.
Видение фитнес-клуба "Будь в тонусе!" звучит так: "Сделать
нацию красивой и здоровой". Миссия клуба - помочь, как можно большему
количеству людей быть здоровыми, красивыми и находиться в хорошем настроении с
помощью лучших инструкторов.
Фитнес-клуб "Будь в тонусе!" предлагает целый комплекс услуг.
Среди них: Тренажерный зал, Зал аэробики, Зал единоборств, Сайкл, Зал бокса,
Персональный тренер, Студия красоты, Сауна, Турецкая баня, Джакузи, Солярий,
Массаж, Детская комната, Физиологическое тестирование, Диагностика состава
тела, Спортивный магазин, Интернет-кафе.
Все залы оборудованы самыми современными тренажерами ведущих мировых
производителей: Tehnogym, Cybex, Star Trac, Icarian, Flex, Precor.
Но это не главное. Фитнес-клуб - это еще один бизнес, где кадры решают
все. От мастерства и профессионализма инструкторов зависит физическая форма,
здоровье и настроение посетителей. Следовательно, от того насколько клиентам
нравятся тренера зависит количество клиентов и прибыль клуба. Ведь тренажеры
есть в любой качалке, а вот ответственные и опытные работники не везде.
1.1 Описание
бизнес-процесса
- определение, происходящее от английского глагола "to be fit"
- "быть в форме". А это значит: быть стройным и подтянутым,
жизнерадостным и веселым, энергичным и успешным. Состояние "фитнес" -
это состояние физического, душевного и эмоционального здоровья на самом высоком
уровне. Средством достижения состояния "фитнес" являются фитнес-программы
- научно-обоснованные программы действий, направленные на развитие и
поддержание на высоком качественном уровне всех функций человеческого
организма. Собственно фитнес-технологии - то, что является продуктом продажи, -
очень динамичная субстанция. Методики быстро устаревают, появляются новые
веяния с Запада и Востока.... Новые программы появляются в мировой
фитнес-индустрии очень часто, и основная задача российского фитнес-менеджера -
адаптировать зарубежный опыт, т.к. далеко не все приживается на российской
земле.
Клиент кредитует компанию, потому что клиент оплачивает единовременно и
вперед стоимость посещений клуба в течение срока действия контракта (обычно -
год/полгода). Эта система оплаты носит название non-dues-based. Развитие
банковской системы в России открывает новые возможности в процедурах оплаты
членства, выгодные как для клиента, клуба, так и для банка. Поэтому сегодня
особенно перспективной выглядит система оплаты dues-based. Cуществует еще
несколько видов и процедур оплаты членства в клубе, которые могут быть Вами
выбраны в зависимости от исходных данных и планируемого результата. Безусловно,
постановка клубной системы требует от управляющего специальных знаний. Даже
если Вы экономист по образованию и эксперт в фитнесе (а такое сочетание обычно
редкость, и в этом случае Вам очень повезло), необходимо знать некоторые
"передовые трюки" современного фитнес-менеджмента. Одна из
особенностей индустрии состоит в cпецифической системе ценообразования с учетом
разнообразных видов членств: индивидуальных, семейных, корпоративных, детских и
т.д. Здесь свои законы и традиции, нарушение которых напрямую отражается на
проценте продления членских билетов.
Обычно люди, вступающие в члены фитнес-клуба, проводят в нем значительную
часть свободного времени. А значит, надеются на доброжелательность и радушие,
приветливость и вежливость, любезность и обходительность, а также - заботу,
дружелюбие, теплоту и помощь обслуживающего персонала. Высокий сервисный
уровень фитнес-услуг - это историческая особенность российской фитнес-индустрии.
Несмотря на яркую тенденцию к "демократизации", работа с клиентом
фитнес-клуба очень персонифицирована, а слово "фитнес" все еще
ассоциируется со словом "элита". Фитнес-услуга - это процесс,
происходящий между клиентом и клубом, оказывающим услугу. Это процесс глубоко
индивидуальный. Услуга потребляется в момент её предоставления. Если Вы не
удовлетворены товаром, Вы можете поменять его или вернуть деньги. С услугой это
сделать невозможно. Вы не можете отказаться от некачественно проведенной тренировки,
от опоздания инструктора, от ошибок сотрудников рецепции.... И чаще всего
вообще нельзя объективно продемонстрировать клиенту, хороша услуга или нет, до
момента ее оказания. Всё чаще наиболее значимым параметром при выборе
поставщика фитнес-услуги является не столько уровень цен, сколько качество
сервиса. Современные успешные фитнес-клубы знают, что путь к успеху - это
предоставление клиентам таких услуг, которые бы полностью удовлетворяли их
потребностям и желаниям. Если, конечно, Вы фокусируетесь в первую очередь на
своих клиентах, а не на получении прибыли любым путём.
.2 Описание
формы
Применяется для оформления и учета приема - сдачи работ, выполненных
работником по трудовому договору, заключенному на время выполнения определенной
работы.
Акт может быть оформлен для окончательного либо поэтапного расчета по
трудовому договору, который был заключен между сторонами.
В данном акте должны приводиться:
) наименование выполненных работ;
) стоимость выполненных работ в соответствии с положениями заключенного
между сторонами договора;
) сумма, которая причитается к выплате;
) заключение о качестве выполненных работ;
) заключение об объеме и уровне выполненных работ.
Все указанные сведения приводятся со ссылкой на трудовой договор, который
был заключен между сторонами.
Акт составляет работник, ответственный за приемку выполненных работ, в
двух экземплярах. Один экземпляр передают работнику, выполнившему работу,
второй экземпляр - для расчета заработной платы.
Форма
№Т-73 <#"867892.files/image001.jpg">
Рис. 1. Концептуальная модель
4. Реляционная модель данных
СОТРУДНИК (Код сотрудника, код должности, фамилия имя отчество, данные
паспорта, вид участия в работе)
Внешние ключи: Код должности ссылается на Должность
ДОЛЖНОСТЬ (Код должности, название)
РАБОТА (Код работы, наименование)
ДАТА (Код даты, Дата составления договора, начало действия договора,
конец действия договора)
АКТ О ПРИЕМЕ ВЫПОЛНЕННЫХ РАБОТ (Номер документа, структурное
подразделение)
ВЫПОЛНЕННАЯ РАБОТА (Номер работы, код даты, номер документа, код
сотрудника, код работы, сумма)
Внешние ключи: Код даты ссылается на Дата; Номер документа ссылается на
Акт о приеме выполненных работ; Код сотрудника ссылается на Сотрудник; Код
работы ссылается на Работа
ОЦЕНКА (код оценки, качество работы, объем работы, уровень выполнения
работы)
Таблица, составленная исходя из связи многие - ко - многим:
ОБЯЗАННОСТЬ (Код обязанности, код сотрудника, код работы)
ОЦЕНКА РАБОТЫ (Код оценки работы, номер работы, код оценки)
Рис. 2. Модель данных
6. Создание и
заполнение таблиц
Создание базы данных "Фитнес-клуб"
master;
Удаление базы данных с именем "Фитнес-клуб", если она
существует
if exists(select * from sys.databases where name =
'Fitnes_klub')database Fitnes_klub;
end
Создание пустой базы данных "Фитнес-клуб"
create database Fitnes_klub;Fitnes_klub
Создание пользовательского типа
type Tip from varchar(max) not null;
go
Создание и заполнение таблиц
Совокупность всех таблиц базы данных Fitnes_klub:
Рис. 3. Таблицы базы данных Fitnes_klub
Создание таблицы ДОЛЖНОСТЬ
table Dolzhnost (
Kod_dolzhnosti tinyint identity primary key,
Nazvanie Tip);
Рис. 4 Проект таблицы "ДОЛЖНОСТЬ"
Заполнение таблицы ДОЛЖНОСТЬ
insert into Dolzhnost(Nazvanie) values ('массажист');into Dolzhnost(Nazvanie) values ('менеджер');into Dolzhnost(Nazvanie) values ('фитнес-инструктор');into Dolzhnost(Nazvanie) values ('тренер');into Dolzhnost(Nazvanie) values ('администратор');into Dolzhnost(Nazvanie) values ('косметолог');into Dolzhnost(Nazvanie) values ('кассир');into Dolzhnost(Nazvanie) values ('уборщица');into Dolzhnost(Nazvanie) values ('воспитатель');into Dolzhnost(Nazvanie) values ('охранник');into Dolzhnost(Nazvanie) values ('директор');into Dolzhnost(Nazvanie) values ('врач');into Dolzhnost(Nazvanie) values ('главный бухгалтер');into Dolzhnost(Nazvanie) values ('продавец-консультант');
Рис. 5 Таблица "Должность"
Создание таблицы ВИД УЧАСТИЯ В РАБОТЕ
create table Vid_uchastiy_v_rabote(_vida_uchastiy_v_rabote
tinyint identity primary key,_vida_v_rabote Tip);
Рис. 6 Проект таблицы "Вид участия в работе"
Заполнение таблицы ВИД УЧАСТИЯ В РАБОТЕ
insert Vid_uchastiy_v_rabote(Naimenovanie_vida_v_rabote) values
('сдал');Vid_uchastiy_v_rabote(Naimenovanie_vida_v_rabote)
values ('принял');
Рис. 7. Таблица "Вид участия в работе"
оздание таблицы СОТРУДНИК
table Sotrudnik(
Kod_sotrudnika smallint identity primary key,_dolzhnosti
tinyint not null foreign key references Dolzhnost
(Kod_dolzhnosti),Tip,_pasporta Tip,_vida_uchastiy_v_rabote tinyint not null
foreign key references Vid_uchastiy_v_rabote(Kod_vida_uchastiy_v_rabote));
Рис. 8. Проект таблицы "Сотрудник"
Заполнение таблицы СОТРУДНИК
into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Петров Алексей Федерович','5','890109 9076','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Чернышов Сергей Михайлович','4','673476 8065','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Черноярова Анастасия Павловна','7','907876 5609','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Симонова Дарья Владимировна','6','762135 6149','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Ильиных Владимир Владимирович','2','614356 7813','1');into Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote)
values ('Ильиных Татьяна Викторовна','9','713457 7754','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Попов Петр Сергеевич','3','878645 9731','1');into Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote)
values ('Огородникова Виктория Олеговна','12','561234 4178','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Клюшникова Алина Александровна','4','612343 8601','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Носова Ирина Александровна','8','813470 6144','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Круглов Сергей Витальевич','10','678934 8614','1');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Федотов Сергей Васильевич','13','513523 0342','2');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Федотова Татьяна Васильевна','11','719527 1834','2');into
Sotrudnik(FIO,Kod_dolzhnosti,Dannye_pasporta,Kod_vida_uchastiy_v_rabote) values
('Шичкин Андрей Степанович','14','354728 5421','1');
Рис. 9. Таблица "Сотрудник"
Создание таблицы РАБОТА
create table Rabota (_raboty smallint IDENTITY (901,1)
primary key,
Naimenovanie Tip);
Рис. 10. Проект таблицы "Работа"
Заполнение таблицы РАБОТА
insert Rabota(Naimenovanie) values ('Персональные тренировки');Rabota(Naimenovanie) values ('Мануальная терапия');Rabota(Naimenovanie) values ('Физиологическое тестирование');Rabota(Naimenovanie) values ('Проведение групповых занятий');Rabota(Naimenovanie)
values ('Наращивание ресниц');Rabota(Naimenovanie) values ('Управление персоналом');Rabota(Naimenovanie) values ('Классический массаж');Rabota(Naimenovanie) values ('Организация работы
фитнес-клуба');Rabota(Naimenovanie) values ('Встреча клиентов');Rabota(Naimenovanie)
values ('Прием денежных средств в кассу');Rabota(Naimenovanie) values ('Уборка территории');Rabota(Naimenovanie) values ('Работа
с детьми');Rabota(Naimenovanie) values ('Охрана помещения');Rabota(Naimenovanie) values ('Организация бухгалтерского учета');Rabota(Naimenovanie) values ('Консультирование покупателей');
Рис. 11. Таблица "Работа"
Создание таблицы ДАТА
create table Data (_daty smallint identity primary
key,_sostavleniy_dogovora date not null,_deistviy_dogovora date not
null,_deistviy_dogovora date not null);
Рис. 12. Проект таблицы "Дата"
Заполнение таблицы ДАТА
insert
Data(Data_sostavleniy_dogovora,Nachalo_deistviy_dogovora,Konec_deistviy_dogovora)
values
('12-08-2006','01-09-2006','10-01-2008');Data(Data_sostavleniy_dogovora,Nachalo_deistviy_dogovora,Konec_deistviy_dogovora)
values ('06-05-2001','10-05-2001','01-06-2003');Data(Data_sostavleniy_dogovora,Nachalo_deistviy_dogovora,Konec_deistviy_dogovora)
values
('01-04-2009','02-04-2009','11-01-2012');Data(Data_sostavleniy_dogovora,Nachalo_deistviy_dogovora,Konec_deistviy_dogovora)
values ('2010-07-01','2010-07-04','2013-01-15');
Рис. 13. Таблица "Дата"
Создание таблицы АКТ О ПРЕМЕ ВЫПОЛНЕННЫХ РАБОТ
create table Akt_o_prieme_vypolnennyh_rabot (_dokumenta
smallint identity primary key,
Strukturnoe_podrazdelenie Tip);
Рис. 14 Проект таблицы "Акт о приеме выполненных работ"
Заполнение таблицы АКТ О ПРИЕМЕ ВЫПОЛНЕННЫХ РАБОТ
Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie) values
('Тренажерный зал');Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie)
values ('Спортивный
магазин');Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie) values
('Студия красоты');
insert
Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie) values ('Солярий');Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie)
values ('Касса');Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie)
values ('Детский центр');Akt_o_prieme_vypolnennyh_rabot(Strukturnoe_podrazdelenie)
values ('Администрация');
Рис. 15. Таблица "Акт о преме работ"
table Vypolnennay_rabota (
Nomer_raboty smallint identity primary key,_daty smallint not
null foreign key references Data(Kod_daty),_dokumenta smallint not null foreign
key references Akt_o_prieme_vypolnennyh_rabot(Nomer_dokumenta),_sotrudnika
smallint not null foreign key references Sotrudnik(Kod_sotrudnika),_raboty
smallint not null foreign key references Rabota(Kod_raboty),
Summa money not null);
Рис. 16. Проект таблицы "Выполненная работа"
Заполнение таблицы ВЫПОЛНЕННАЯ РАБОТА
insert Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values ('3','7','1','909','6000');
insert Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('2','1','2','901','8000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values ('1','5','3','910','11000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('2','3','4','905','15000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('3','7','5','906','9000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('4','6','6','912','9000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('1','1','7','904','13000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values ('1','1','8','902','8000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('4','1','9','901','10000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values ('1','1','10','911','11000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('2','2','11','913','9000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('2','5','12','914','18000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('3','7','13','908','30000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values
('4','2','14','915','10000');Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values ('1','1','8','903','18000');
Рис. 17. Таблица "Выполненная работа"
Создание таблицы КАЧЕСТВО РАБОТЫ
create table Kachestvo_raboty(_kachestva_raboty tinyint
identity primary key,
Naimenovanie_kachestva_raboty Tip);
Рис. 18. Проект таблицы "Качество работы"
Заполнение таблицы КАЧЕСТВО РАБОТЫ
Kachestvo_raboty(Naimenovanie_kachestva_raboty) values ('высокое качество
работы');Kachestvo_raboty(Naimenovanie_kachestva_raboty) values ('среднее
качество работы');Kachestvo_raboty(Naimenovanie_kachestva_raboty) values
('низкое качество работы');
Рис. 19 Таблица "Качество работы"
Создание таблицы ОБЪЁМ РАБОТЫ
create table Objem_rabty(_objema_rabty tinyint identity
primary key,
Naimenovanie_objema_raboty Tip);
Рис. 20. Проект таблицы "Объём работы"
Заполнение таблицы ОБЪЁМ РАБОТЫ
insert Objem_rabty(Naimenovanie_objema_raboty)
values ('полный объём работы');
insert Objem_rabty(Naimenovanie_objema_raboty) values ('средний объём работы');Objem_rabty(Naimenovanie_objema_raboty)
values ('не полный
объём работы');
Рис. 21 Таблица "Объём работы"
Создание таблицы УРОВЕНЬ ВЫПОЛНЕНИЯ РАБОТЫ
create table
Uroven_vypolneniy_raboty(_urovny_vypolneniy_raboty tinyint identity primary
key,_urovny_vypolneniy_raboty Tip);
Рис. 22. Проект таблицы "Уровень выполнения работ"
Заполнение таблицы УРОВЕНЬ ВЫПОЛНЕНИЯ РАБОТЫ
Uroven_vypolneniy_raboty(Naimenovanie_urovny_vypolneniy_raboty) values
('сложный уровень выполнения
работы');Uroven_vypolneniy_raboty(Naimenovanie_urovny_vypolneniy_raboty) values
('средний уровень выполнения работы');Uroven_vypolneniy_raboty(Naimenovanie_urovny_vypolneniy_raboty)
values ('легкий уровень выполнения работы');
Рис. 23. Таблица "Уровень выполнения работы"
Создание таблицы ОЦЕНКА
table Ocenka (
Kod_ocenki tinyint identity primary key,_kachestva_raboty
tinyint not null foreign key references
Kachestvo_raboty(Kod_kachestva_raboty),_objema_rabty tinyint not null foreign
key references Objem_rabty(Kod_objema_rabty),_urovny_vypolneniy_raboty tinyint
not null foreign key references
Uroven_vypolneniy_raboty(Kod_urovny_vypolneniy_raboty));
Рис. 24. Проект таблицы "Оценка"
Заполнение таблицы ОЦЕНКА
insert into Ocenka(Kod_kachestva_raboty
,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty) values ('1','1','1');into
Ocenka(Kod_kachestva_raboty ,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty)
values ('2','2','2');into Ocenka(Kod_kachestva_raboty
,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty) values ('3','3','3');into Ocenka(Kod_kachestva_raboty
,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty) values ('1','2','3');into
Ocenka(Kod_kachestva_raboty ,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty)
values ('2','1','3');into Ocenka(Kod_kachestva_raboty
,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty) values ('3','3','1');into
Ocenka(Kod_kachestva_raboty ,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty)
values ('1','3','2');into Ocenka(Kod_kachestva_raboty
,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty) values ('2','3','1');into Ocenka(Kod_kachestva_raboty
,Kod_objema_rabty,Kod_urovny_vypolneniy_raboty) values ('3','2','1');
Рис. 25. Таблица "Оценка"
Создание таблицы ОБЯЗАННОСТЬ
create table Obyzannost (_obyzannosti smallint identity
primary key,_sotrudnika smallint not null foreign key references
Sotrudnik(Kod_sotrudnika),_raboty smallint not null foreign key references
Rabota(Kod_raboty));
Рис. 26. Проект таблицы "Обязанность"
Заполнение таблицы ОБЯЗАННОСТЬ
insert Obyzannost(Kod_sotrudnika,Kod_raboty) values
('1','909');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('2','901');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('3','910');Obyzannost(Kod_sotrudnika,Kod_raboty) values ('4','905');Obyzannost(Kod_sotrudnika,Kod_raboty)
values ('5','906');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('6','912');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('7','904');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('8','902');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('9','901');Obyzannost(Kod_sotrudnika,Kod_raboty) values
('10','911');Obyzannost(Kod_sotrudnika,Kod_raboty) values ('11','913');
Рис. 27. Таблица "Обязанность"
Создание таблицы ОЦЕНКА РАБОТЫ
create table Ocenka_raboty (_ocenki_raboty smallint identity
primary key,_raboty smallint not null foreign key references
Vypolnennay_rabota(Nomer_raboty),_ocenki tinyint not null foreign key
references Ocenka(Kod_ocenki));
Рис. 28. Проект таблицы "Оценка работы "
Заполнение табдицы ОЦЕНКА РАБОТЫ
insert Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('1','1');
insert Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('2','2');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('3','1');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('4','4');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('5','3');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('6','8');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('7','2');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('8','5');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('9','6');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('10','2');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values ('11','7');Ocenka_raboty(Nomer_raboty,Kod_ocenki)
values ('12','9');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('13','2');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values
('14','4');Ocenka_raboty(Nomer_raboty,Kod_ocenki) values ('15','7');
Рис. 29. Таблица "Оценка работы"
7. Объекты базы данных
Поставленные задачи решаются с помощью следующих объектов SQL Server
2008.
.1 Запросы
) Выбор сотрудников с видом участия "сдал"
select Naimenovanie_vida_v_rabote,FIOdbo.Sotrudnik,dbo.Vid_uchastiy_v_rabotedbo.Sotrudnik.Kod_vida_uchastiy_v_rabote=dbo.Vid_uchastiy_v_rabote.Kod_vida_uchastiy_v_raboteNaimenovanie_vida_v_rabote=
'сдал';
) Выбор суммы с номером документа равным 1
where Nomer_dokumenta = 1;
) Привести ФИО сотрудника и сумму работы с кодом даты = 4
select Kod_daty,FIO,Summadbo.Sotrudnik,
dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnika
AND Kod_daty=4;
) Вывести структурное подразделение в котором работают сотрудники с кодом
даты равным 4, а также ФИО сотрудников
select Strukturnoe_podrazdelenie,FIO,Kod_datydbo.Akt_o_prieme_vypolnennyh_rabot,dbo.Sotrudnik,dbo.Vypolnennay_rabotadbo.Vypolnennay_rabota.Nomer_dokumenta=dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumentadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikaKod_daty=4BY
FIO;
) Вывести ФИО сотрудника и наименование должности с видом участия в
работе "принял"
select
FIO,Nazvanie,Naimenovanie_vida_v_rabotedbo.Sotrudnik,dbo.Dolzhnost,dbo.Vid_uchastiy_v_rabotedbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnostidbo.Sotrudnik.Kod_vida_uchastiy_v_rabote=dbo.Vid_uchastiy_v_rabote.Kod_vida_uchastiy_v_raboteNaimenovanie_vida_v_rabote='принял';
) Вывести ФИО, должность, название работы сотрудников, которые работают в
структурном подразделении "тренажерный зал"
select
FIO,Nazvanie,Naimenovanie,Strukturnoe_podrazdeleniedbo.Akt_o_prieme_vypolnennyh_rabot,dbo.Sotrudnik,dbo.Dolzhnost,dbo.Rabota,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Nomer_dokumenta=dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumentadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotyStrukturnoe_podrazdelenie='Тренажерный зал'BY FIO;
) Выбор ФИО сотрудников, код и название должности, которые имеют полный
или средний объем работы и подсчитать их количество
select DISTINCT
dbo.Dolzhnost.Kod_dolzhnosti,FIO,Nazvanie,Naimenovanie_objema_rabotydbo.Dolzhnost,dbo.Ocenka,dbo.Sotrudnik,dbo.Vypolnennay_rabota,dbo.Ocenka_raboty,dbo.Objem_rabtydbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Vypolnennay_rabota.Kod_sotrudnika=dbo.Sotrudnik.Kod_sotrudnikadbo.Ocenka_raboty.Nomer_raboty=dbo.Vypolnennay_rabota.Nomer_rabotydbo.Ocenka_raboty.Kod_ocenki=dbo.Ocenka.Kod_ocenkidbo.Ocenka.Kod_objema_rabty=dbo.Objem_rabty.Kod_objema_rabty(Naimenovanie_objema_raboty='полный объём работы' OR Naimenovanie_objema_raboty='средний объём работы')BY
dbo.Dolzhnost.Kod_dolzhnostiCOUNT(dbo.Dolzhnost.Kod_dolzhnosti);
) Вывести ФИО сотрудников и подсчитать для каждого сумму работы, где она
больше 20000
база данные сотрудник поиск
select FIO, SUM(Summa) AS SUMMA
from dbo.Vypolnennay_rabota,dbo.Sotrudnik,dbo.Dolzhnost
where dbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnika
AND dbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnosti
GROUP BY dbo.Sotrudnik.FIOSUM(Summa) > 20000;
) Вывести наименования структурных подразделений и количество работающих
в них сотрудников
dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumenta,
dbo.Akt_o_prieme_vypolnennyh_rabot.Strukturnoe_podrazdelenie,(dbo.Akt_o_prieme_vypolnennyh_rabot.Strukturnoe_podrazdelenie)
AS
Kolichestvo_sotrudnikovdbo.Sotrudnik,dbo.Vypolnennay_rabota,dbo.Akt_o_prieme_vypolnennyh_rabotdbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnika
AND dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumenta=dbo.Vypolnennay_rabota.Nomer_dokumentaBY
dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumenta,
dbo.Akt_o_prieme_vypolnennyh_rabot.Strukturnoe_podrazdelenie;
) Вывести ФИО сотрудников и их должности, у которых сумма работы больше
11000
select
FIO,Nazvanie,Summadbo.Dolzhnost,dbo.Vypolnennay_rabota,dbo.Sotrudnikdbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Summa
IN
(select
Summadbo.Vypolnennay_rabotadbo.Vypolnennay_rabota.Summa>=11000);
11) Вывести должность, структурное подразделение сотрудников с фамилией
на Ф
select FIO,Nazvanie,Strukturnoe_podrazdeleniedbo.Akt_o_prieme_vypolnennyh_rabot,dbo.Dolzhnost,dbo.Sotrudnik,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnosti
AND
dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumenta=dbo.Vypolnennay_rabota.Nomer_dokumentadbo.Vypolnennay_rabota.Kod_sotrudnika=dbo.Sotrudnik.Kod_sotrudnikaFIO
LIKE 'Ф%';
) Вывести ФИО сотрудников, их должности, наименования работ, которые были
составлены между 2001-06-05 и 2006-12-08 и подсчитать их количество
select FIO,Nazvanie,Naimenovanie,Data_sostavleniy_dogovoradbo.Data,dbo.Dolzhnost,dbo.Rabota,dbo.Sotrudnik,dbo.Vypolnennay_rabotadbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnostidbo.Rabota.Kod_raboty=dbo.Vypolnennay_rabota.Kod_rabotydbo.Vypolnennay_rabota.Kod_sotrudnika=dbo.Sotrudnik.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_daty=dbo.Data.Kod_datyData_sostavleniy_dogovora
BETWEEN '2001-06-05' AND '2006-12-08'COUNT(Data_sostavleniy_dogovora);
) Выбор сотрудников у которых сложный уровень выполнения работ и
подсчитать их количество
select
FIO,Nazvanie,dbo.Rabota.Kod_raboty,Naimenovanie,Naimenovanie_urovny_vypolneniy_rabotydbo.Sotrudnik,dbo.Ocenka,dbo.Dolzhnost,dbo.Rabota,dbo.Ocenka_raboty,dbo.Vypolnennay_rabota,dbo.Uroven_vypolneniy_rabotydbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnostidbo.Vypolnennay_rabota.Kod_sotrudnika=dbo.Sotrudnik.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Vypolnennay_rabota.Nomer_raboty=dbo.Ocenka_raboty.Nomer_rabotydbo.Ocenka_raboty.Kod_ocenki=dbo.Ocenka.Kod_ocenkidbo.Ocenka.Kod_urovny_vypolneniy_raboty=dbo.Uroven_vypolneniy_raboty.Kod_urovny_vypolneniy_rabotyNaimenovanie_urovny_vypolneniy_raboty
= 'сложный уровень
выполнения работы'
COMPUTE COUNT(FIO);
) Вывод ФИО и коды всех сотрудников, а также наименования их должностей и
работ
select FIO,dbo.Sotrudnik.Kod_sotrudnika,Nazvanie AS
Naimenovanie_dolzhnosti_and_rabotydbo.Dolzhnost,dbo.Sotrudnikdbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostiFIO,dbo.Sotrudnik.Kod_sotrudnika,Naimenovaniedbo.Rabota,dbo.Sotrudnik,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_raboty
ORDER BY FIO;
15) Вывести ФИО сотрудников у которых сумма находится между 8000 и 16000
select FIO, SUM(Summa) AS
SUMMAdbo.Vypolnennay_rabota,dbo.Sotrudnik,dbo.Dolzhnostdbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnostiSumma
BETWEEN '8000' AND '16000'BY dbo.Sotrudnik.FIO;
) Вывести среднюю сумму работ каждого сотрудника, а также ФИО сотрудника
и его должность
select FIO, AVG(Summa) AS
Srednyy_summadbo.Sotrudnik,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnika
GROUP BY FIO;
17) Выбор ФИО и должность сотрудников с самой ранней датой составления
договора
select
FIO,Nazvanie,Data_sostavleniy_dogovoradbo.Sotrudnik,dbo.Dolzhnost,dbo.Data,dbo.Vypolnennay_rabotadbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_sotrudnikadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_daty=dbo.Data.Kod_datyData_sostavleniy_dogovora=
(select MIN(Data_sostavleniy_dogovora)
from dbo.Data);
) Вывод сотрудников и сумму работ для каждого, у которых ФИО начинается
на И
select FIO, SUM(Summa) AS
SUMMAdbo.Vypolnennay_rabota,dbo.Sotrudnik,dbo.Dolzhnostdbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnostiBY
dbo.Sotrudnik.FIOFIO LIKE 'И%';
) Вывод наименования работы и количество сотрудников, работающих на таких
условиях
select
Naimenovanie,dbo.Sotrudnik.Kod_sotrudnika,(dbo.Sotrudnik.Kod_sotrudnika) AS
Kolichestvo_sotrudnikovdbo.Sotrudnik,dbo.Rabota,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotyBY
Naimenovanie,dbo.Sotrudnik.Kod_sotrudnika;
) Выбор сотрудников у которых полный объём работ и подсчитать их
количество
select
FIO,Nazvanie,dbo.Rabota.Kod_raboty,Naimenovanie,Naimenovanie_objema_rabotydbo.Sotrudnik,dbo.Ocenka,dbo.Dolzhnost,dbo.Rabota,dbo.Ocenka_raboty,dbo.Vypolnennay_rabota,dbo.Objem_rabtydbo.Dolzhnost.Kod_dolzhnosti=dbo.Sotrudnik.Kod_dolzhnostidbo.Vypolnennay_rabota.Kod_sotrudnika=dbo.Sotrudnik.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Vypolnennay_rabota.Nomer_raboty=dbo.Ocenka_raboty.Nomer_rabotydbo.Ocenka_raboty.Kod_ocenki=dbo.Ocenka.Kod_ocenkiNaimenovanie_objema_raboty
= 'полный объём работы';
) Создается представление которое содержит часть информации о каждом
работнике (код сотрудника, ФИО, данные паспорта, должность, дату составления
договора, наименование структурных подразделений в которых они работают)
goview Obshay_informaciy_o_sotrudnike
asdbo.Sotrudnik.Kod_sotrudnika,FIO,Dannye_pasporta,Nazvanie,Data_sostavleniy_dogovora,Strukturnoe_podrazdeleniedbo.Sotrudnik,dbo.Dolzhnost,dbo.Data,dbo.Akt_o_prieme_vypolnennyh_rabot,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_daty=dbo.Data.Kod_datydbo.Vypolnennay_rabota.Nomer_dokumenta=dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumenta;
Результат выполнения представления:
) Создается представление которое содержит часть информации о каждом
работнике (код сотрудника, ФИО, должность, данные паспорта,наименование работы
которую сотрудник выполняет, сумму,котрую он получает за работу)
goview Infrmaciy_sorudnikov_o_ih_rabote
asdbo.Sotrudnik.Kod_sotrudnika,Dannye_pasporta,Nazvanie,
FIO,Naimenovanie,Summadbo.Sotrudnik,dbo.Rabota,dbo.Vypolnennay_rabota,dbo.Dolzhnostdbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_raboty;
Результат выполнения представления:
) Создается представление в котором содержится краткая информация о
каждом сотруднике (код сотрудника, ФИО, должность, работа, качество работы,
объём работы, уровень выполнения работы)
goview Kratkay_info_o_rabote_sotrudnikov
asdbo.Sotrudnik.Kod_sotrudnika,FIO,Dannye_pasporta,Nazvanie,Naimenovanie,Naimenovanie_kachestva_raboty,Naimenovanie_objema_raboty,Naimenovanie_urovny_vypolneniy_rabotydbo.Sotrudnik,dbo.Rabota,dbo.Dolzhnost,dbo.Kachestvo_raboty,dbo.Vypolnennay_rabota,dbo.Objem_rabty,dbo.Uroven_vypolneniy_raboty,dbo.Ocenka_raboty,dbo.Ocenkadbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Vypolnennay_rabota.Nomer_raboty=dbo.Ocenka_raboty.Nomer_rabotydbo.Ocenka_raboty.Kod_ocenki=dbo.Ocenka.Kod_ocenkidbo.Ocenka.Kod_kachestva_raboty=dbo.Kachestvo_raboty.Kod_kachestva_rabotydbo.Ocenka.Kod_objema_rabty=dbo.Objem_rabty.Kod_objema_rabtydbo.Ocenka.Kod_urovny_vypolneniy_raboty=dbo.Uroven_vypolneniy_raboty.Kod_urovny_vypolneniy_raboty;
Результат выполнения представления:
.3 Хранимые процедуры
) Процедура выводит наименование должности по коду должности
goprocedure Naim_dolzhnosti(@KodDolzh tinyint =3)
asKod_dolzhnosti,Nazvaniedbo.DolzhnostKod_dolzhnosti=@KodDolzh;Naim_dolzhnosti
2;
) Выводит код работы по наименованию работы
goprocedure KodRab @KR varchar(max)
asKod_raboty,Naimenovaniedbo.Rabota
where Naimenovanie = @KR;KodRab 'управление персоналом';
) Выводит всех сотрудников нужной должности по должности
goprocedure Sotr (@kod smallint = 5)
asKod_sotrudnika,FIO,Nazvaniedbo.Dolzhnost,dbo.Sotrudnikdbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Dolzhnost.Kod_dolzhnosti
= @kod;
goSotr 4;
) Выводит всю информацию о сотруднике по ФИО из представления
Obshay_informaciy_o_sotrudnike
goprocedure Obshay_informaciy_o_sotrudnike_po_FIO @FIOrab
varchar(max) as*Obshay_informaciy_o_sotrudnikeFIO =
@FIOrab;Obshay_informaciy_o_sotrudnike_po_FIO'Федотов Сергей Васильевич';
) Выводит всю информацию о сотруднике по ФИО из представления
Infrmaciy_sorudnikov_o_ih_rabote
goprocedure Infrmaciy_sorudnikov_o_ih_rabote_po_FIO
@PredstFIO varchar(max) as*Infrmaciy_sorudnikov_o_ih_raboteFIO =
@PredstFIO;Infrmaciy_sorudnikov_o_ih_rabote_po_FIO 'Ильиных Владимир Владимирович';
) Выводит всю информацию о сотруднике по ФИО из представления
Kratkay_info_o_rabote_sotrudnikov
goprocedure Kratkay_info_o_rabote_sotrudnikov_po_FIO
@PoFIOPredst varchar(max) as*Kratkay_info_o_rabote_sotrudnikovFIO =
@PoFIOPredst;Kratkay_info_o_rabote_sotrudnikov_po_FIO 'Федотова Татьяна
Васильевна';
) Выводит часть информации о сотруднике по коду сотрудника( ФИО,данные
паспорта, должность, работу)
goprocedure Chast_info (@KodInf smallint = 4)
asFIO,Dannye_pasporta,Nazvanie,Naimenovaniedbo.Rabota,dbo.Sotrudnik,dbo.Dolzhnost,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Sotrudnik.Kod_sotrudnika
= @KodInf
goChast_info 5;
) Dыводит дату составления документа, дату начала действия договора, дату
конца действия договора и ФИО работника по номеру документа
goprocedure DataDog (@Dat int)
asData_sostavleniy_dogovora,Nachalo_deistviy_dogovora,Konec_deistviy_dogovora,FIOdbo.Data,dbo.Sotrudnik,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_daty=dbo.Data.Kod_datydbo.Vypolnennay_rabota.Nomer_dokumenta
= @Dat;
goDataDog 7;
9) Выводит ФИО, должность, название работы сотрудников, название
структурного подразделени в котором они работают , по коду сотрудника
goprocedure Str_podr (@KSP tinyint = 3)
asFIO,Nazvanie,Naimenovanie,Strukturnoe_podrazdeleniedbo.Akt_o_prieme_vypolnennyh_rabot,dbo.Sotrudnik,dbo.Dolzhnost,dbo.Rabota,dbo.Vypolnennay_rabotadbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Nomer_dokumenta=dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumentadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Sotrudnik.Kod_sotrudnika=
@KSP;
goStr_podr 13;
) Выводит качество, объем и уровень выполнения работ по коду оценки
goprocedure K_ocenka (@OK tinyint = 2)
asNaimenovanie_kachestva_raboty,Naimenovanie_objema_raboty,Naimenovanie_urovny_vypolneniy_rabotydbo.Uroven_vypolneniy_raboty,dbo.Objem_rabty,dbo.Kachestvo_raboty,dbo.Ocenkadbo.Ocenka.Kod_kachestva_raboty=dbo.Kachestvo_raboty.Kod_kachestva_rabotydbo.Ocenka.Kod_objema_rabty=dbo.Objem_rabty.Kod_objema_rabtydbo.Ocenka.Kod_urovny_vypolneniy_raboty=dbo.Uroven_vypolneniy_raboty.Kod_urovny_vypolneniy_rabotydbo.Ocenka.Kod_ocenki
= @OK;
goK_ocenka 4;
) выводит наименование работы по коду работы
goprocedure Krsot (@KRABO smallint = 3)
asKod_raboty,Naimenovaniedbo.Rabotadbo.Rabota.Kod_raboty = @KRABO;
goKrsot 902;
12) выводит краткую информацию о сотруднике (ФИО, данные паспорта,
должность, работу) по виду участия в работе
goprocedure VidUch @UchR varchar(max) asDISTINCT FIO,Dannye_pasporta,Nazvanie,Naimenovaniedbo.Rabota,dbo.Sotrudnik,dbo.Vypolnennay_rabota,dbo.Dolzhnost,dbo.Vid_uchastiy_v_rabotedbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_vida_uchastiy_v_rabote=dbo.Vid_uchastiy_v_rabote.Kod_vida_uchastiy_v_rabotedbo.Vid_uchastiy_v_rabote.Naimenovanie_vida_v_rabote
= @UchR;
goVidUch 'принял';
) выводит ФИО, коды сотрудников, с должностью "тренер" и
структурным подразделением "тренажерный зал" и их количество
goprocedure DolzhSotr @Struktur varchar(max), @dolzhnost
varchar(max) asFIO,dbo.Sotrudnik.Kod_sotrudnika,Nazvanie,Naimenovanie,Strukturnoe_podrazdeleniedbo.Dolzhnost,dbo.Sotrudnik,dbo.Rabota,dbo.Vypolnennay_rabota,dbo.Akt_o_prieme_vypolnennyh_rabotdbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostiNazvanie=
@dolzhnostdbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotydbo.Vypolnennay_rabota.Nomer_dokumenta=dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumentadbo.Akt_o_prieme_vypolnennyh_rabot.Strukturnoe_podrazdelenie=@StrukturCOUNT(dbo.Sotrudnik.Kod_sotrudnika);DolzhSotr
@Struktur = 'тренажерный зал',@dolzhnost = 'тренер';
) выводит всю информацию для сотрудников с должностью 'врач'
procedure Informathion @vr varchar(max)
as*dbo.Sotrudnik,dbo.Dolzhnost,dbo.Rabota,dbo.Vypolnennay_rabota,dbo.Akt_o_prieme_vypolnennyh_rabotdbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Dolzhnost.Nazvanie=@vrdbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Nomer_dokumenta=dbo.Akt_o_prieme_vypolnennyh_rabot.Nomer_dokumentadbo.Vypolnennay_rabota.Kod_raboty=dbo.Rabota.Kod_rabotyInformathion
@vr = 'тренер';
) Процедура выводит ФИО и код сотрудника, данные паспорта, должность,
дату составления договора, количество проработанных лет в данной организации
goprocedure Info_kolichestvo_pror_day @Imy varchar(max)
as@curdate date@curdate = GETDATE()dbo.Sotrudnik.Kod_sotrudnika,
FIO,Dannye_pasporta,Nazvanie,Data_sostavleniy_dogovora,
DATEDIFF(MONTH,Data_sostavleniy_dogovora,@curdate)/12 AS
ProrabotalVOrganizaciiLetdbo.Sotrudnik,dbo.Dolzhnost,dbo.Data,dbo.Vypolnennay_rabotaFIO
=
@Imydbo.Sotrudnik.Kod_dolzhnosti=dbo.Dolzhnost.Kod_dolzhnostidbo.Sotrudnik.Kod_sotrudnika=dbo.Vypolnennay_rabota.Kod_sotrudnikadbo.Vypolnennay_rabota.Kod_daty=dbo.Data.Kod_daty;Info_kolichestvo_pror_day
@Imy = 'Огородникова Виктория Олеговна';
.4 Триггеры
) Запрет на добавление суммы меньше 2000
gotrigger ZapretVvodadbo.Vypolnennay_rabotaINSERT(select
Summa from inserted) < '2000'TRANSACTION'Сумма меньше 2000, нельзя добавить!'print 'Сумма добавлена';Vypolnennay_rabota(Kod_daty,Nomer_dokumenta,Kod_sotrudnika,Kod_raboty,Summa)
values ('1','1','5','909','3000')
gotrigger data_sosdbo.Datainsert, update, deleteexists(select
*dbo.Data where dbo.Data.Data_sostavleniy_dogovora ={fn CURRENT_DATE()})'Дата добавлена'
print 'Дата введена не верно!'
endData(Data_sostavleniy_dogovora,Nachalo_deistviy_dogovora,Konec_deistviy_dogovora)
values ('2009-08-09','2010-09-10','2012-01-12')
2) Удаление
trigger Udalendbo.Sotrudnik
for deleteprint 'Из таблицы Cотрудник удалена запись!'
gofrom dbo.Sotrudnik where Kod_sotrudnika=15
Заключение
Выполненная работа по созданию базы данных полностью отразила требования
к информационной системе конкретной организации.
Цели и задачи, поставленные в начале работы, были выполнены.
Проект готов к реализации в организациях не только внутри фитнес-клуба,
но и в других учреждениях, так как формирование акта о приеме работ,
выполненных по срочному договору является общепринятыми.
Список
литературы
1. Дейт
К.Дж. Введение в системы баз данных. - К.: Диалектика, 1998.
2. Диго
С.М. Проектирование и использование баз данных: Учебник. - М.: Финансы и
статистика, 1995.
. Коннолли
Т., Бегг К., Страчан А. Базы данных: Проектирование, реализация и
сопровождение: Теория и практика. - К, М, СПб: Вильямс, 2000.
. (URL:http://msdn.microsoft.com/ru-ru/library/bb418440%28v=SQL.10%29.aspx)