Проектирование информационной системы для хранения, накопления и выборки данных

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

µсующую информацию (номер путевого листа, и подробную информацию о транспортном средстве и водителе работающем по этому путевому листу);

выполняет выборку из таблиц "pytevka", "mashini", "voditeli"интересующих данных.

Сценарий, препятствующий вставке отрицательной суммы за работу:

Данный сценарий реализуем в виде тригера, который будет срабатывать в том случае, если мы попытаемся сохранить в качестве значения суммы за выполнение работы отрицательное число. То есть, когда мы записываем сумму за работу в столбец [symma_za_raboty] таблицы dan_o_zayavke, он подставляется в переменную ограничевающего триггера и проверяется на корректность. Если введенная сумма положительная, то она сохраняется, в противном случае срабатывает триггер и выводится окно ошибки, содержащие описание причины её возникновения.

Сценарий на каскадное удаление таблиц реализуется в виде триггера.

При удалении какой либо строки из таблицы dogovorтриггер проводит удаление строк из других таблиц. Данные из таблицы dan_o_zayavkeудаляются на основе соответствия колонки id_dogovora. Данные из таблицы pytevkaудаляются на основе соответствия значений колонок id_pytevki.

Сценарий, ограничивающий длину номера от 5 до 12 цифр:

Данный сценарий реализуем в виде тригера, который будет срабатывать в том случае, если мы попытаемся сохранить в качестве значения номера телефона некорректный номер. То есть, когда мы записываем номер телефона в столбецtelefon таблицы dan_o_zakazchiken (аналогично для столбца kont_telefon таблицы) он подставляется в переменную ограничевающего триггера и проверяется на корректность. Если в номере от 5 до 12 цифр номер сохраняется, в противном случае срабатывает тригер и выводится окно ошибки, содержащие описание причины её возникновения.

Сценарий, производящий заполнение таблицы pytevka:

Для функционирования данного сценария необходимо при вызове процедуры ввести три переменные: номер новой заявки, номер водителя и номер транспортного средства(будут выступать в качестве параметров процедуры). Все данные почещаются в определенные переменные. При помощисовместного использования функций insert и valuesданные в таблицу поступают из переменных которые заполнил пользоваетль.

Yнеобходимые исходные данные: номер путевого лист, номер машины, номер водителя;

Yвыполняет вставку значений в таблицу "pytevka".

 

2.10Разработка механизмов реализации сценариев серверной компоненты

 

Создадим хранимую процедуру, которая будет производить поиск информации о заявке:

 

USE [KURSOV]

/****** Object: StoredProcedure [dbo].[vibor_zakaza] Script Date: 01/14/2012 22:33:07 ******/_NULLSON_IDENTIFIERON[dbo].[vibor_zakaza] @id_dog intdan_o_zayavke.*, assortiment.naiminovanie from_o_zayavke join assortiment on dan_o_zayavke.tip_prodykta = assortiment.tip_prodykta

where @id_dog = dan_o_zayavke.id_dogovora

 

Пример выполнения процедуры:

 

 

Результат:

 

 

Создадим хранимую процедуру, которая будет выводить всю информацию о договоре.

 

USE [KURSOV]

/****** Object: StoredProcedure [dbo].[viborALL] Script Date: 01/14/2012 22:34:53 ******/_NULLSON_IDENTIFIERON[dbo].[viborALL]dogovor.id_dogovora, dan_o_zakazchike.*, dan_o_zayavke.*,.*, mashini.*, voditeli.*leftjoin dan_o_zakazchike on dogovor.id_zakazchika = dan_o_zakazchike.id_zakazchikadan_o_zayavke on dan_o_zayavke.id_dogovora = dogovor.id_dogovoraassortiment on assortiment.tip_prodykta = dan_o_zayavke.tip_prodyktapytevka on pytevka.id_pytevki = dogovor.id_pytevkimashini on mashini.id_trsr = pytevka.id_trsr

join voditeli on voditeli.id_voditela = pytevka.id_voditela

 

Результат:

 

 

Создадим курсор, который будет выводить контрагентов и все сделанные им заявки

 

declare @zay nvarchar(50), @zay1 nvarchar(50), @ima nvarchar(50), @ima1 nvarchar(50)cur cursorforselect dan_o_zakazchike.ima_org, dogovor.id_dogovoradan_o_zakazchike join dogovor on dogovor.id_zakazchika = dan_o_zakazchike.id_zakazchikaima_orgcurcur into @ima, @zay@ima1 = @ima@zay1 = @zay@@FETCH_STATUS= 0cur into @ima, @zay@ima1 = @ima@zay1 = @zay1 +,+ @zayорганизация +@ima1+ подала заявки + @zay1@ima1=@ima@zay1=@zayорганизация +@ima1+ подала заявки + @zay1curcur

 

Результат:

 

 

Создадим курсор, который будет выводить информацию о путёвке:

 

USE [KURSOV]

/****** Object: StoredProcedure [dbo].[vibor_voditela] Script Date: 01/14/2012 22:39:58 ******/_NULLSON_IDENTIFIERON[dbo].[vibor_voditela] @id_pyt intpytevka.id_pytevki, mashini.*, voditeli.*fulljoin mashini on pytevka.id_trsr = mashini.id_trsrvoditeli on pytevka.id_voditela = voditeli.id_voditela@id_pyt = pytevka.id_pytevki

Пример выполненияvibor_voditela14

 

Результат:

 

 

Создадим хранимую процедуру, которая будет вставлять данные в таблицу pytevka.

 

USE [KURSOV]

/****** Object: StoredProcedure [dbo].[dobav2] Script Date: 01/14/2012 22:43:10 ******/_NULLSON_IDENTIFIERON[dbo].[dobav2] @id_pytevki int,@id_voditela int, @id_trsr intpytevka(id_pytevki ,id_voditela , id_trsr)(@id_pytevki ,@id_voditela , @id_trsr)*from pytevka wherepytevka.id_pytevki=@id_pytevki

 

Пример выполнения:

 

exec dobav219,4,6

 

Результат:

 

 

Триггер, препятствующий вводу отрицательной суммы.

 

 

USE [KURSOV]

/****** Object: Trigger [dbo].[o_dengax] Script Date: 01/14/2012 22:44:58 ******/_NULLSON_IDENTIFIERON[dbo].[o_dengax][dbo].[dan_o_zayavke] FORINSERT@@ROWCOUNT=1@summ real@summ=symma_za_raboty from inserted@summ<0tranВведеное число должно быть положительнмым

 

Результат при некорректном вводе суммы:

 

 

 

Триггер, удаляющий проекты и данные о заявке при удалении связанной с ними заявки.

 

USE [KURSOV]

/****** Object: Trigger [dbo].[ydal] Script Date: 01/14/2012 22:46:34 ******/_NULLSON_IDENTIFIERON[dbo].[ydal][dbo].[dogovor];dogovorid_dogovora in(select id_dogovora from deleted)dan_o_zayavkeid_dogovora in(select id_dogovora from deleted)pytevkaid_pytevki in(select id_pytevki from deleted)

 

Триггер, ограничивающий ввод номеров телефонов.

 

USE [KURSOV]

/****** Object: Trigger [dbo].[nomera_org] Script Date: 01/14/2012 22:51:13 ******/_NULLSON_IDENTIFIERON[dbo].[nomera_org][dbo].[dan_o_zakazchike] forinsert@@ROWCOUNT=1@Telefon int@Telefon=telefon from inserted@Telefon600Диапазон номера телефона от 5 до 12

 

 

 

.Разработка клиентских компонент