Текст хранимой процедуры

CREATE PROCEDURE otchet(sub integer, sem int,

                               o_year integer)

BEGIN

declare semester,id int;

declare ida int;

declare spec varchar(10);

declare avgm float;

declare done integer default 0;

declare c1 cursor for select T_id, dep_id from T_plan

                     where sub_id=sub and semester=sem;

declare continue handler for Not found set done=1;

open c1;

repeat

fetch c1 into id,spec;

if (done=0) then

begin

         select AVG(mark) into avgm

       from Exam E, Vedomost V, Sgroup G

       where E.E_id=V.E_id and E.G_id=G.G_id and

       Year(E_date)=o_year and E.Semester =sem

            and G.Dep_id =sub;

          insert Avg_mark values(NULL,id,o_year,avgm);

    end;

end if;

until done=1 end repeat;

END

 

 

Итоговая логическая модель БД

       Итоговая модель базы данных получена объединением таблиц, описанных в п. 5.6, и таблиц, добавленных в ходе разработки структуры отчетов.

Таблица «Студент – Student»

S_Id Name G_Id

 

Таблица «Преподаватель – Teacher»

T_Id T_Name

 

Таблица «Экзамен – Exam»

E_Id E_date S_id Semester G_Id

 

Таблица «Дисциплина – Subject»

S_id S_name Dep_id

 

Таблица «Студент-Экзамен – Vedomost»

E_Id S_Id Mark

 

Таблица «Преподаватель-Экзамен – TeX»

T_Id E_Id

 

Таблица «Кафедра – Department»

Dep_id D_name Telefon

 

Таблица «Учебный план – T_plan»

T_Id Sub_id Dep_id Semester

 

       Таблица «Группа – Sgroup»

G_Id S_index Dep_id

 

       Таблица «Отчет 1 – Avg_mark»

Am_Id T_id A_year A_mark

 

           

Рис. 6. Логическая модель базы данных.

Разработка  приложения конечного пользователя.

Предполагаем, что все статические HTML страницы и управляющие скипты на языке PHP (д алее - контроллеры), необходимые для работы приложения, хранятся в директории Localhost/Kusovaja на персональном компьютере студента.

Запуск приложения.

      Для запуска приложения загружается статическая HTML страница menu.html, которая отсылает пользователю меню, состоящее из 8 пунктов.

Первые 6 пунктов меню позволяют перейти к выполнению одного из оперативных запросов.

При этом управление передается контроллеру соответствующего запроса.

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

 

Контроллеры запросов 1-6.

В самом простом варианте все контроллеры запросов выполняют однотипные действия.

  • Подключаются к базе данных
  • Формируют текст соответствующего запроса и передают его на выполнение SQL серверу.
  • Переносят результаты запроса в двумерный ассоциированный массив.
  • Построчно переносят ассоциированный массив в результирующую динамическую HTML страницу и отсылают ее пользователю. Все сформированные таким образом динамические HTML страницы имеют ссылку для возврата в главное меню.

 

Контроллер создания стандартного статистического отчета и форма ввода параметров отчета.

Контроллер должен запустить отлаженную ранее процедуру для создания в базе данных новых записей в таблице Avg_mark.  При запуске хранимой процедуры необходимо передать ей входные параметры – id дисциплины, семестр и год. Для получения входных параметров от пользователя разработана статическая HTML страница Param_otchet.html. Форма ввода с этой страницы содержит все необходимые поля для ввода параметров и кнопку для отправки их контроллеру создания отчета. При отправке параметров форма передает управление контроллеру создания отчета.

Контроллер создания отчетов выполняет следующие действия.

· Соединяется с базой данных.

· Проверяет, не создавались ранее отчеты с полученными от пользователя параметрами.

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

· По окончании работы процедуры передает пользователю сообщение об успешном создании отчетов и ссылкой для возврата в главное меню.

· Если запрошенный для создания отчет уже создавался ранее, то контроллер сообщает об этом пользователю и предлагает вернуться в главное меню.

 

Контроллер просмотра отчетов за период и форма ввода параметров отчета.

 

Контроллер просмотра отчетов должен выполнить параметризованный запрос к таблице отчетов. Поэтому при выборе соответствующего пункта главного меню вызывается статическая HTML страница для ввода параметров отчета – id дисциплины, семестр и год. После ввода и отсылки параметров на сервер управление передается контроллеру просмотра отчетов, который выполняет следующие действия.

  • Соединяется с базой данных.
  • Формирует Select запрос для выбора необходимых строк из таблицы отчетов, используя полученные параметры отчета.
  • Передает запрос для выполнения SQL серверу.
  • Получает результаты запроса и переносит их в двумерный ассоциированный массив.
  • Построчно переносит ассоциированный массив в результирующую динамическую HTML страницу и отсылает ее пользователю.

 




Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: