Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KURSOVIK.doc
Скачиваний:
27
Добавлен:
31.03.2015
Размер:
1.94 Mб
Скачать

Министерство по образованию российской федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И УПРАВЛЕНИЯ

КАФЕДРА ЭКОНОМИЧЕСКОЙ ИНФОРМАТИКИ

КУРСОВАЯ РАБОТА

ПО КУРСУ «БАЗЫ ДАННЫХ»

Тема: Акт о приеме-сдаче отремонтированных, реконструированных, модернизированных объектов основных средств

Номер группы: 9091

Наименование специальности: Прикладная информатика (в экономике)

Ф.И.О. студента и номер зачетной книжки: Ларин Максим Васильевич; 091378

Дата регистрации кафедрой: «_____» __________________ 20__ г.

Проверила: Родионова З.В.

(фамилия, имя, отчество)

Новосибирск

2012

Оглавление

Оглавление 2

1.Описание предметной области 9

2.Цели и задачи создания базы данных 11

3.Концептуальная модель базы данных 12

4.Реляционная модель базы данных 12

5.Модель данных 13

6.Создание таблиц 15

7.Структура таблиц и данные 16

--ЗАПРОСЫ 23

--1)вывести фио сотрудников долность которых - бухгалтер 23

select worker_name 23

from dbo.worker 23

where job='7'; 23

--2)вывести информацию о строительной фирме 23

select * 23

from dbo.build_org; 23

--3)вывести код сотрудника c фио петров петр петрович 23

select kod_worker 23

from dbo.worker 23

where worker_name='петров петр петрович' 23

--4)вывести фио сотрудника код которого - 4007 23

select worker_name 23

from dbo.worker 23

where kod_worker='4007' 23

--5)вывести объекты ОС инвентарный номер которых начинается с "8" 23

select * 23

from dbo.info_os_object 23

where inventory_number like '8%' 23

--6)вывести объекты ОС названия которых соответствуют коду "106" 23

select * 23

from dbo.info_os_object 23

where os_object_name='106' 23

--7)вывести обьекты ОС срок использования которых = "5" 23

select * 23

from dbo.info_os_object 23

where fact_usage= '5' 23

--8)вывести обьекты ОС срок использования которых > "50" 23

select * 23

from dbo.info_os_object 23

where fact_usage>'50' 23

--9) вывести обьекты ОС срок использования которых < "10" 23

select * 23

from dbo.info_os_object 23

where fact_usage< '10' 23

--10) вывести имя о заказчике которы йнаходится на улице "фабричная" 23

select name 23

from dbo.zakazchik 23

where adres like 'фабричная%' 23

--ВСТРОЕНЫЕ ФУНКЦИИ 24

--1)вывести количество составленных актов 24

select COUNT (act_number) as [количество актов] 24

from dbo.act_ps 24

--2)кличество объектов ОС 24

select COUNT (info_kod) as [количество объектов] 24

from dbo.info_os_object 24

--3) кличество актов составленных в 2011 году 24

select COUNT (act_number) as [акты за 2011] 24

from dbo.act_PS 24

where sign_date like '2011%' 24

--4)количество работ стоимостью 50000 24

select COUNT (service_price) as [услуги 50000] 24

from dbo.service 24

where service_price='50000' 24

--5)количество клиентов фирмы 24

select COUNT (kod_zakazchika) as [количество клиентов] 24

from dbo.zakazchik 24

--Сложные функции (group by & having) 24

--1.Вывести количество составленных документов на каждую дату подписания актов. 24

select sign_date, COUNT(act_number)as[Кол-во документов] 24

from act_PS 24

group by sign_date 24

--2.Вывести код должности, в которых более 1 сотрудников. 24

select job, COUNT(kod_worker)as[Кол-во сотрудников] 24

from dbo.worker 24

group by job 24

having COUNT(job)>1 24

--3.Вывести код услуги, стоимость которых больше или равно 50000. 24

select service_price, COUNT(servce_name)as[Кол-во услуг] 24

from dbo.service 24

group by service_price 24

having COUNT(service_price)>=50000 24

--4.Вывести коды должностей и количество сотрудников, работающих по этой должности. 24

select job, COUNT(job)as[Кол-во сотрудников] 24

from dbo.worker 24

group by job 24

--5.Сколько раз каждый из сотрудников подписывал акт. 24

select response_person, COUNT(act_number)as[Кол-во актов] 24

from dbo.act_PS 24

group by response_person 24

--6. Сколько ремонтов осуществлено по каждому обьекту ОС. 25

select result, COUNT(act_number)as[Кол-во ремонтов] 25

from dbo.act_PS 25

group by result 25

--8. Сколько раз подписывал акт сотрудник с табельным номером 4003. 25

select response_person, COUNT(act_number)as[Кол-во актов] 25

from dbo.act_PS 25

group by response_person 25

having response_person='4003' 25

--10. Показать профессию на которой работает 1 сотрудник 25

SELECT kod_job AS код_должности 25

FROM dbo.worker,dbo.job 25

where (select COUNT(dbo.job.kod_job) from dbo.job WHERE dbo.worker.job=dbo.job.kod_job)=1 25

GROUP BY kod_job 25

--Хранимые процедуры 25

--1. Какую должность занимает каждый сотрудник. 25

go 25

create procedure doljnost_sotrudnika 25

as 25

select dbo.worker.worker_name, dbo.job.job_name 25

from dbo.worker, dbo.job 25

where dbo.worker.job=dbo.job.kod_job 25

go 25

exec doljnost_sotrudnika 25

--2. список обьектов отремонтированных в конкретную дату 25

go 25

create procedure act @r date 25

as 25

select dbo.os_object.os_object_kod, dbo.act_PS.sign_date,dbo.act_PS.finish_date, dbo.act_PS.result 25

from dbo.os_object,dbo.act_PS 25

where dbo.act_PS.result=dbo.os_object.os_object_kod and sign_date=@r 25

go 25

exec act'2011.03.12' 25

--3. По табельному номеру определить профессию 25

GO 25

CREATE PROCEDURE prof_vibran_sotryd12 @kod int 25

AS 25

SELECT kod_worker,worker_name,job_name 25

FROM dbo.worker, dbo.job 25

WHERE dbo.worker.job= dbo.job.kod_job and dbo.worker.kod_worker=@kod 25

go 25

EXEC prof_vibran_sotryd12 @kod=4004 25

--4. Возвращает должность по коду сотрудника 25

Go 26

create procedure work 26

AS 26

select dbo.worker.kod_worker,dbo.job.kod_job 26

from dbo.worker,dbo.job 26

where dbo.worker.kod_worker=dbo.job.kod_job 26

Go 26

exec work 26

--5. Возвращает код должности и ФИО по табельному номеру 26

GO 26

CREATE PROCEDURE koddol @TAB_N int 26

AS 26

SELECT dbo.job.kod_job,kod_worker,worker_name 26

FROM dbo.job,dbo.worker 26

WHERE dbo.worker.job=dbo.job.kod_job and dbo.worker.kod_worker=@TAB_N 26

go 26

EXEC koddol @TAB_N=4006 26

--6. Возвращает табельный номер и ФИО по коду должности 26

GO 26

CREATE PROCEDURE n_fio @job int 26

AS 26

SELECT kod_worker,dbo.job.kod_job,worker_name 26

FROM dbo.worker,dbo.job 26

WHERE dbo.worker.job=dbo.job.kod_job and dbo.job.kod_job=@job 26

go 26

EXEC n_fio @job=4 26

--7. Возвращает номер акта по коду всех отремонтированных обьектов 26

Go 26

create procedure nact 26

AS 26

select dbo.act_PS.act_number,dbo.os_object.os_object_kod 26

from dbo.act_PS,dbo.os_object 26

where dbo.act_PS.act_number=dbo.os_object.os_object_kod 26

Go 26

exec nact 26

--8. Показать данные о акта 26

GO 26

CREATE PROCEDURE actsigndate @actn_N int 26

AS 26

SELECT act_number,response_person,result 26

FROM dbo.act_PS,dbo.worker,dbo.os_object 26

WHERE dbo.act_PS.response_person=dbo.worker.worker_name and dbo.act_PS.result=dbo.os_object.os_object_name and dbo.act_PS.act_number=@actn_N 26

go 26

EXEC actsigndate @actn_N=6001 26

--9. Показать табельный номер и код должности 27

GO 27

CREATE PROCEDURE koddponworker @worker_N int 27

AS 27

SELECT kod_worker,kod_job 27

FROM dbo.worker,dbo.job 27

WHERE dbo.worker.job=dbo.job.kod_job and dbo.worker.kod_worker=@worker_N 27

EXEC koddponworker @worker_N=4002 27

--10. Возвращает табельный номер и ФИО по квалификации 27

GO 27

CREATE PROCEDURE kvalif_trebyem @kval_tred varchar (50) 27

AS 27

SELECT kod_worker,worker_name 27

FROM dbo.worker,dbo.job 27

WHERE dbo.worker.job=dbo.job.kod_job and 27

dbo.job.job_name=@kval_tred 27

go 27

EXEC kvalif_trebyem @kval_tred='прораб' 27

--Триггеры 27

--1.При добавлении новой записи выводит сообщение:"В таблицу Должности внесена новая запись!" 27

use build2 27

go 27

create trigger dobavlenie 27

on dbo.job 27

for insert 27

as print 'В таблицу Должности внесена новая запись!' 27

go 27

insert into dbo.job values(9,'уборщик') 27

27

--2.При удалении записи выводит сообщение: "Из таблицы Должности удалена запись!" 27

go 27

create trigger udalenie 27

on dbo.job 27

for delete 27

as print 'Из таблицы Работник удалена запись!' 27

go 27

delete from dbo.job where kod_job=3 27

27

--3.При изменении таблицы выводит сообщение:"Таблица Должности изменена!" 27

go 27

create trigger izmenenie 27

on dbo.job 27

for update 27

as print 'Таблица Должности изменена!' 27

go 27

update dbo.job 27

set job_name=('сантехник') where kod_job=9 27

27

--Представления 28

--1. Выводит таблицу Работник и заполняет в ней столбцы Наименование должности и Наименование структурного подразделения, соответственно из таблиц Должность и Структурное подразделение. 28

use build2 28

go 28

create view [kod_worker_job] as 28

select kod_worker as "Код сотрудника", worker_name as "ФИО", kod_job as "Должность" 28

from dbo.worker,dbo.job 28

where dbo.worker.job=dbo.job.kod_job 28

--2. Выводит таблицу затраты и заполняет в ней столбцы тип работ и Обьект ОС. 28

go 28

create view [zatrat] as 28

select kod_zatrat, os_object, work_type, adittion 28

from dbo.money_lost,dbo.service, dbo.os_object 28

where dbo.money_lost.work_type=dbo.service.service_kod and dbo.money_lost.os_object=dbo.os_object.os_object_kod 28

Заключение 29

Список используемой литературы 30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]