База данных ассоциации шеф-поваров

Автор работы: Пользователь скрыл имя, 05 Декабря 2013 в 06:33, курсовая работа

Краткое описание

База данных ассоциации шеф-поваров необходима для оперативного учета сотрудников и партнеров ассоциации; динамичного контроля актуальной информации.
Целью работы является составление и заполнение базы данных ассоциации шеф-поваров, заполнение всех сотрудников, партнеров, блюд и заказов.

Содержание

Введение 4
Проектирование базы данных 5
Создание и заполнение таблиц 12
Запросы 35
Представления. 56
Процедуры 57
Триггеры 69
Курсор 71
Заключение. 74
Список используемой литературы 75

Вложенные файлы: 1 файл

Куросовой проект Шариповой Елены 1761.docx

— 935.83 Кб (Скачать файл)

Рисунок 5.6 - Процедура 6

 

    1.  Процедура выводит часть информации о конкретном продукте по месту на складе

 

go

create procedure dbo.product2 @polka int as

select dbo.product.name_product, mesto_na_sklade,srok_dney, name_recept

from dbo.product, dbo.sklad, dbo.product_sklad, dbo.recept, dbo.recept_product

where dbo.product.product_id = dbo.product_sklad.product_id

AND dbo.product_sklad.sklad_id = dbo.sklad.sklad_id

AND dbo.product.product_id = dbo.recept_product.product_id

AND dbo.recept.recept_id =dbo.recept_product.recept_id

and dbo.sklad.polka_na_sklade = @polka

go

exec dbo.product2 @polka = '14';

 

Рисунок 5.7 - Процедура 7

 

    1. Процедура выводит часть информации о конкретном партнере по ФИО

 

go

create procedure dbo.Partnet @partnerr varchar(max) as

select dbo.partner.fio, telefon, uslugi, name_asp

from dbo.partner, dbo.assocciacia_shef_povarov

where dbo.partner.asp_id = dbo.assocciacia_shef_povarov.asp_id

AND dbo.partner.fio  = @partnerr;

go

exec dbo.Partnet @partnerr = 'Шипилов Андрей Васильевич';

 

Рисунок 5.8 - Процедура 8

 

    1. Процедура выводит имена партнеров, чьи номера оканчиваются на 5

 

go

create procedure dbo.NomerOkanchivaetsya5 @NomerTelefona varchar(max) as

select dbo.partner.fio, telefon

from dbo.partner

where dbo.partner.telefon LIKE @NomerTelefona

ORDER BY fio;

go

exec dbo.NomerOkanchivaetsya5 @NomerTelefona = '%5';

 

Рисунок 5.9 - Процедура 9

 

    1. Процедура выводит информацию о складе

 

go

create procedure dbo.InfOSklade @sklad int as

select Polka_na_sklade, name_product

from dbo.sklad, dbo.Product, dbo.product_sklad

where dbo.sklad.Polka_na_sklade = @sklad

AND dbo.product_sklad.product_id=dbo.Product.product_id

and dbo.product_sklad.sklad_id=dbo.sklad.sklad_id ;

go

exec dbo.InfOSklade @sklad = '4';

 

Рисунок 5.10 - Процедура 10

 

    1. Процедура Дату и номер заказа по номеру клиента

 

go

create procedure dbo.DataPoNomeryKlienta @klient int as

select dbo.Zakaz3.data_zakaza, Zakaz_id

from dbo.zakaz3, dbo.klient, dbo.klient_bludo1

where dbo.klient.klient_id = @klient

AND dbo.klient.klient_id=dbo.klient_bludo1.klient_id

and dbo.klient_bludo1.klient_bludo_id=dbo.zakaz3.klient_bludo_id ;

go

exec dbo.DataPoNomeryKlienta @klient = '4';

 

Рисунок 5.11 - Процедура 11

 

    1. Процедура выводит номер заказа, ФИО, адрес доставки по дате заказа и цене

 

go

create procedure dbo.Nomerzakaza @dada date, @cena money as

select dbo.Zakaz3.zakaz_id, adres_dostavki

from dbo.zakaz3, dbo.klient, dbo.klient_bludo1

where dbo.Zakaz3.data_zakaza = @dada

AND dbo.klient.klient_id=dbo.klient_bludo1.klient_id

and dbo.klient_bludo1.klient_bludo_id=dbo.zakaz3.klient_bludo_id

and dbo.Zakaz3.cena_bluda_za_zakaz_rub=@cena ;

go

exec dbo.Nomerzakaza  @dada = '2013-05-03', @cena = '400';

 

Рисунок 5.12 - Процедура 12

 

    1. Процедура выводит название блюда, рецепта, время приготовления, продукт по коду блюда

 

go

create procedure dbo.PoBludu @kodBluda int as

select dbo.bludo1.name_bludo, dbo.recept.name_recept, dbo.bludo1.time_prigotovlenia_min

from dbo.product, dbo.recept, dbo.bludo1, dbo.recept_product

where dbo.bludo1.bludo_id = @kodBluda

AND dbo.bludo1.recept_product_id=dbo.recept_product.recept_product_id

and dbo.recept_product.product_id=dbo.product.product_id

and dbo.recept_product.recept_id=dbo.recept.recept_id

and dbo.bludo1.bludo_id=@kodBluda ;

go

exec dbo.PoBludu  @kodBluda = '8'

 

Рисунок 5.13 - Процедура 13

 

 

 

    1. Процедура выводит количество продуктов

 

create procedure productcount @count int output as

select @count = count (product_id)

from product

 

declare @count int

exec productcount @count output

print 'Продуктов'

print @count

 

Рисунок 5.14 - Процедура 14

 

    1.  Процедура выводит сумму заказов

 

create procedure summazakazov1 @j int output as

select @j = SUM(cena_bluda_za_zakaz_rub)

from Zakaz3, bludo1, klient_bludo1

where dbo.Zakaz3.klient_bludo_id=dbo.klient_bludo1.klient_bludo_id

and dbo.klient_bludo1.bludo_id=dbo.bludo1.bludo_id

 

declare @j int

exec summazakazov1 @j output

print 'Сумма заказов'

print @j

 

Рисунок 5.15 - Процедура 15

 

    1.  Процедура выводит количество поваров в ассоциации

 

create procedure kol_voPovarov1 @f int output as

select @f = count(povar_id)

from Povar, assocciacia_shef_povarov, shef

where dbo.Povar.shef_id=dbo.shef.shef_id

and dbo.shef.asp_id=dbo.assocciacia_shef_povarov.asp_id

and dbo.assocciacia_shef_povarov.asp_id='4'

 

declare @f int

exec kol_voPovarov1 @f output

print 'Количество поваров'

print @f

 

Рисунок 5.16 - Процедура 16

 

    1.  Процедура выводит количество партнеров в ассоциации

 

create procedure kol_voPart1 @x int output as

select @x = count(partner_id)

from Partner, assocciacia_shef_povarov

where dbo.partner.asp_id=dbo.assocciacia_shef_povarov.asp_id

and dbo.assocciacia_shef_povarov.name_asp='Новосибирская ассоциация'

 

declare @x int

exec kol_voPart1 @x output

print 'Количество партнеров'

print @x

 

Рисунок 5.17 - Процедура 17

 

    1.  Процедура выводит номер телефона партнера по ассоциации

 

create procedure NomerPart1 @x int output as

select @x = dbo.partner.telefon

from Partner, assocciacia_shef_povarov

where dbo.partner.asp_id=dbo.assocciacia_shef_povarov.asp_id

and dbo.assocciacia_shef_povarov.name_asp='Кемеровская ассоциация'

 

declare @x int

exec NomerPart1 @x output

print 'Номер'

print @x

 

Рисунок 5.18 - Процедура 18

 

 

 

 

 

 

 

    1. Процедура выводит имя повара по номеру шеф-повара

 

create procedure ImyaPovara @x varchar(max) output as

select @x = dbo.povar.name_povar

from Povar, shef

where dbo.povar.shef_id=dbo.shef.shef_id

and dbo.shef.shef_id='3'

 

declare @x varchar(max)

exec ImyaPovara @x output

print 'Номер'

print @x

 

Рисунок 5.19 - Процедура 19

 

    1. Процедура выводит  адрес клиента по блюду

 

create procedure Imyaklienta2 @Imyaklienta varchar(max) output as

select @Imyaklienta = dbo.klient.adres_dostavki

from bludo1, klient, klient_bludo1

where dbo.klient.klient_id=dbo.klient_bludo1.klient_id

and dbo.klient_bludo1.bludo_id=dbo.bludo1.bludo_id

and dbo.bludo1.bludo_id='7'

 

declare @Imyaklienta varchar(max)

exec Imyaklienta2 @Imyaklienta output

print 'Имя'

print @Imyaklienta

 

Рисунок 5.20 - Процедура 20

Триггеры

 

    1. Запрет на добавление заказа с ценой меньше 100 рублей

 

go

create trigger Zapret_na_dobavlenie_zakaza_cenoi_menee_100_rub

on dbo.Zakaz3

after insert

as

begin

if(select cena_bluda_za_zakaz_rub from inserted)<'100'

begin

ROLLBACK TRANSACTION

print 'Меньше 100 рублей. Добавить запись нельзя!!!'

end

else print 'Добавлена в таблицу'

end;

 

go

insert into Zakaz3(cena_bluda_za_zakaz_rub,data_zakaza,klient_bludo_id) values ('99','03.05.2012','6');

go

insert into Zakaz3(cena_bluda_za_zakaz_rub,data_zakaza,klient_bludo_id) values ('200','03.05.2012','6');

 

Рисунок 6.1 - Триггер 1

 

    1. Запрет на удаление заказов начиная с 2013 года

 

go

create trigger YdalenieStarihZazov

on dbo.Zakaz3

after DELETE

as

begin 

if (select Data_zakaza from deleted) > '2013.01.01'

begin

ROLLBACK TRANSACTION

print 'Удалить запись нельзя'

end

else

 

print 'Заказ удален'

end;

 

go

delete from dbo.Zakaz3 where Data_zakaza =

(select Data_zakaza from dbo.zakaz3 where zakaz_id = '19');

Рисунок 6.2 - Триггер 2.1

 

Рисунок 6.3 - Триггер 2.2

 

Курсор

 

    1. Формирование отчета об общей информации о заказе

 

declare

@klient_id varchar(50),

@adres_dostavki varchar(80),

@name_bludo varchar(50),

@data_zakaza varchar(50),

@zakaz_id varchar(50),

@cena_bluda_za_zakaz_rub varchar(10)

declare Cursor_inf_o_zakaze cursor local for

select

dbo.klient.klient_id, adres_dostavki, name_bludo, data_zakaza, zakaz_id, cena_bluda_za_zakaz_rub

from

dbo.klient, dbo.zakaz3, dbo.bludo1, dbo.klient_bludo1

where

dbo.klient.klient_id = '2'

AND dbo.klient.klient_id = dbo.klient_bludo1.klient_id

AND dbo.klient_bludo1.bludo_id = dbo.bludo1.bludo_id

AND dbo.zakaz3.klient_bludo_id = dbo.klient_bludo1.klient_bludo_id

open Cursor_inf_o_zakaze

fetch next from  Cursor_inf_o_zakaze into

@klient_id,@adres_dostavki,

@name_bludo,

@data_zakaza,@zakaz_id, @cena_bluda_za_zakaz_rub

print

'               Номер заказа                   Дата заказа

+-----------------------------+ +-------------------------------+

|'+@zakaz_id+'|                           | '+@data_zakaza+'|

                                                                        

      Номер клиента               Адрес доставки

+-----------------------------+ +-------------------------------+

|'+@klient_id+'|                           | '+@adres_dostavki+' |

                                     

                   Блюдо

+-------------------------------+

| '+@name_bludo+' |

                   Цена блюда

+-------------------------------+

| ' +@cena_bluda_za_zakaz_rub+'  |

 

'

close Cursor_inf_o_zakaze

deallocate Cursor_inf_o_zakaze

 

Рисунок 7.1 - Курсор

 

 

 

 

 

Заключение.

 

В ходе выполнения практической части курсовой работы мной была изучена литература, касающаяся предложенной предметной области, после чего  выполнены необходимые  работы на этапах моделирования  и  создания базы данных. Я освоила подход к проектированию базы данных на основе концептуальной модели и технологий создания базы данных в архитектуре клиент-сервер.

База  данных, разработанная для пользователей, контролирует и учитывает заказы, какие блюда заказаны, какие повара готовили блюда и сколько продуктов было израсходовано.

 

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

 

 

1. Карпова Т.С. «Базы данных: модели, разработка, реализация: Учебник для вузов» — СПб :Питер,2002

2. Диго, С.М. Базы данных : проектирование и использование : учеб. для вузов по спец. "Прикладная информатика (по областям)" / С. М. Диго .- М. : Финансы и статистика, 2005 .- 591 с .(МОРФ)

 

Приложение №1

 

Рисунок 10.1 - Приложение 1.1

 

Рисунок 10.2 - Приложение 1.2

 

Рисунок 10.3 - Приложение 1.3

 

Приложение №2

 

Рисунок 11.1 - Приложение 2.1

 

Рисунок 11.2 - Приложение 2.2

 

 

Рисунок 11.3 - Приложение 2.3

 

Приложение №3

 

Рисунок 12.1 - Приложение 3.1

 

Рисунок 12.2 - Приложение 3.2

 

Рисунок 12.3 - Приложение 3.3

 

 


Информация о работе База данных ассоциации шеф-поваров