5. Архитектура программного обеспечения



Скачать 198.04 Kb.
Дата11.07.2014
Размер198.04 Kb.
ТипДокументы

5. Архитектура программного обеспечения


Программное обеспечение автоматизированной информационной системы «Будущий абитуриент» построено по двух уровневой архитектуре, показанной на рисунке 2. На верхнем уровне располагается клиентское приложение, на нижнем – сервер базы данных под управлением FireBird 2.1.

Взаимодействие между уровнями происходит следующим образом:


  • Клиент отправляет запрос на сервер БД;

  • База данных обрабатывает запрос и отправляет результат клиенту.

Запрос и ответ обрабатываются компонентами FibPlus и DatAccess клиентского приложения. Данные отображаются на форме следующими компонентами: ExpressEditors6, ExpressDBEditors6, DevExpress, Dialogs, ExpressBars, ExpressUtilities, ExpressEditors, IndyClients, Standart, Win32.

Рис.2 Архитектура ПО



6. Структура программного обеспечения

По виду предоставляемой информации пользователю программное обеспечение разделено на шесть модулей (таблица 15).

Таблица 15. Список модулей программного обеспечения

Модуль

Описание

Vabit

Модуль регистрации. Предоставляет пользователю поля для заполнения данных о возможном абитуриенте.

UFView_vabit

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

Autorizatiya

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

FabitSetSource

Модуль регистрации мероприятия. Предоставляет возможность зарегистрировать новое мероприятие, либо выбрать из списка.

UPost

Модуль формирования и отправки сообщения. Предоставляет поля для заполнения параметров сообщения, список зарегистрированных с email-адресами. Отправка сообщений выбранным адресатам.

U_Post_V

Модуль просмотра сообщений. Предоставляет сводные таблицы по отправленным сообщениям

MainForm

Модуль навигации. Дает возможность переключаться между основными модулями.


Модули могут работать независимо друг от друга. Для удобства отдельные модули связаны между собой навигацией.

По функциональным возможностям модули разложены на подсистемы:



  • Подсистема администрирования;

  • Подсистема просмотра данных;

  • Подсистема редактирования данных;

  • Подсистема работы с сообщениями.

6.1. Подсистема администрирования

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

Аутентификация проходит с использованием учетной записи базы данных. Вход в программу происходит с использованием имени пользователя и пароля учетной записи. Заведение и удаление пользователей осуществляется администратором базы данных.

После аутентификации пользователи проходят авторизацию. Если аутентификация прошла успешна, то пользователям открывается панель навигации с доступом ко всем формам. Иначе панель навигации имеет только поле файл и классификаторы.

Блок-схема алгоритма авторизации представлена на рисунке 3.

Рис.3 Блок-схема алгоритма авторизации


6.2. Подсистема просмотра данных



Подсистема просмотра данных обеспечивает визуализацию запрашиваемой пользователем информации из БД. Подсистема состоит из набора компонент расположенных на форме (таблица компонент).
Таблица компонент.

Название компонент

Описание

SQL – отчеты

Табличные отчеты. Содержат информацию из таблицы БД.

Интерактивный отчет

Табличные отчеты с встроенными функциями поиска и сортировки. Содержит информацию из таблицы БД.

Раскрывающиеся списки

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

Текстовые метки

Содержит значение атрибута таблицы БД.

Текстовые поля

Содержит значение атрибута таблицы БД. Предназначены для отображения и редактирования информации.

Неактивные текстовые поля

Содержит значение атрибута таблицы БД. Предназначены для отображения информации.

Кнопки

Служат для навигации и вызова форм.

Радиогруппы

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

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

6.3. Подсистема редактирования данных



Редактирование персональной информации будущих абитуриентов осуществляется для правильной работы алгоритма отправки сообщения и корректной работы ЦПК с будущими абитуриентами. Подсистема редактирования данных для обеспечения целостности информации предоставляется возможность изменять значения атрибутов в таблицах БД. Редактирование данных производится с помощью компонент, вынесенных на отдельную форму (редактирование значений атрибутов одной записи) или встроенных непосредственно в табличный отчет (редактирование значения атрибута нескольких записей).

Механизм редактирования данных происходит следующим образом:



  • Подсистема проверяет на наличие содержимого в обязательных для заполнения текстовых полях. В случае отсутствия содержимого в обязательных для заполнения текстовых полях пользователю выводится сообщение об ошибке и алгоритм завершается;

  • Подсистема проверяет соответствие введенных пользователем данных формату данных атрибутов БД. В случае не соответствия форматов данных пользователю выводится сообщение об ошибке и алгоритм завершается;

  • Выполняется обновление информации в таблице БД;

  • Если редактирование осуществлялось на отдельной форме, происходит переход на форму просмотра данных;


6.4. Подсистема работы с сообщениями

Подсистема работы с сообщениями управляет процессом создания, отправки и просмотра сообщений.

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

Отправка сообщения происходит с использованием учетной записи пользователя на почтовом сервере. Параметры соединения с почтовым сервером отражены в таблице базы данных FST_MAILLOGIN. Заведение и удаление параметров авторизации осуществляется администратором базы данных.

Просмотр сообщений происходит с использованием двух сводных таблиц и текстовых полей.

Блок-схема алгоритма добавления адресатов и отправки сообщения представлена на рисунке 4. Блок-схема алгоритма формирования сообщения представлена на рисунке 5.



Рис.4 Блок-схема алгоритма добавления адресата и отправки сообщения



Рис.5 Блок-схема алгоритма формирования сообщения

7. Описание интерфейса программного обеспечения



Форма авторизации.

Форма авторизации (рис.4) открывается сразу после входа в программу. На ней указываются имя и пароль пользователя для входа в систему.



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\авторизация1.jpg

Рис.6 Форма авторизации

Нажатие кнопки ОК на форме обрабатывает следующий фрагмент программного кода:

{Обрабатываем нажатие кнопки ОК}

procedure TSecurityForm.BitBtn_okClick(Sender: TObject);

begin


//поиск введенных значений в БД

if not pFIBDataSet.Locate('NAME_USER;password_USER',

VarArrayOf([LabeledEdit_Nick.Text,

LabeledEdit_pass.Text]),

[loCaseInsensitive]) then exit;

DM_Main.NickID:=

pFIBDataSet.FieldByName('ID_User').AsInteger;

DM_Main.NickName:= LabeledEdit_Nick.Text;

SecurityForm.ModalResult:= mrOK;

end;
После нажатия на кнопку ОК происходит открытие панели навигации. Этот процесс обрабатывает следующий фрагмент программного кода:

if (SecurityForm.ShowModal = mrOK) then

begin


// если авторизация успешна, открываем главную форму

MForm.Caption := '...::: '+CPROG_NAME+' ::: ' +

DM_Main.PutBase + ' ::: ' + DM_Main.NickName + '

:::...';


MForm.N1_Abit.Visible := true;

end


else // скрываем пункты меню если авторизация

безуспешна

MForm.N1_Abit.Visible := false;

MForm.N4_Post.Visible := MForm.N1_Abit.Visible;


Панель навигации

Панель навигации (рис.5) служит для удобного перехода между модулями программы. После успешной авторизации открывается с полным набором вкладок: Файл -> Авторизация -> Выход; Абитуриент -> Регистрация -> Просмотр; Почта -> Отправить сообщение -> Просмотреть сообщения; Классификаторы ->Источник.



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\главная форма.jpg

Рис.7 Панель навигации



Форма выбора мероприятия

Форма выбора мероприятия открывается перед первичным открытием после запуска программы формы регистрации возможного абитуриента или при выборе на панели навигации вкладки Источник. На форме можно добавить новое мероприятие или выбрать уже существующее в базе данных из списка.



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\регистрация - выбор источника.jpg

Рис.8 Форма выбора источника

Для мониторинга открытия формы перед открытием формы регистрации в программе введена глобальная переменная vSource, в которую сохраняется ID мероприятия после выбора его на форме и нажатия на кнопку Выбрать:

{Обрабатываем нажатие кнопки ОК}

procedure TFSetSoure.aOKExecute(Sender: TObject);

begin


if cxLookupComboBox_user.EditingValue <> Null then

DM_Main.vSource := cxLookupComboBox_user.EditingValue

За мониторинг отвечает следующий фрагмент кода:



{Открываем форму регистрации возможных абитуриентов}

procedure TMForm.N3Click(Sender: TObject);

begin

// проверяем выбран ли источник данных



if DM_Main.vSource = 0 then

with TFSetSoure.Create(self) do

try

if ShowModal = mrCancel then exit;



finally

free;


end;

Форма регистрации

Форма регистрации возможного абитуриента открывается при выборе на панели навигации вкладки Регистрация. Если это первое открытие формы после запуска программы, то сначала необходимо выбрать источник (мероприятие), от которого будут в дальнейшем зарегистрированы возможные абитуриенты. Повторное открытие формы осуществляется без открытия дополнительных форм. Внешней вид незаполненной формы регистрации показан на рисунке 9.



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\регистрация - пустая.jpg

Рис.9 Форма регистрации

Обязательными для заполнения полями на форме являются поле Фамилия и Имя, они выделены жирным шрифтом. После внесения соответствующих данных в эти поля для осуществления дальнейшей регистрации, в частности внесения интересов возможного абитуриента, необходимо нажать на кнопку регистрации. Рисунок 10 и 11.

d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\регистрация - 1.jpg

Рис.10 Форма регистрации с заполненными обязательными полями

Помимо данных обязательных для заполнения на форме указывается следующая информация: отчество возможного абитуриента, откуда он узнал об Университете, его дата рождения, требуется ли ему общежитие, пол возможного абитуриента, его координаты – домашний телефон, мобильный телефон, email, информацию о его образовании – вид учебного заведения (выбирается из предложенного списка в базе данных), наименование учебного заведения, местоположение учебного заведения. Отмечаются интересы абитуриента: предпочтительная форма оплаты за обучение, направление обучения (техническое или гуманитарное), факультеты и специальности, на которые он хотел бы поступить. Выбор факультета с использованием параметра поиска показан на рисунке 12. Выбор специальности показан на рисунке 13.
Рис.11 Форма регистрации. Ввод интересов абитуриента

d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\регистрация - 31.jpg

Рис.12 Выбор факультета



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\регистрация - 41.jpg

Рис.13 Выбор специальности

После нажатия на кнопку Готово внесенные данные сохраняются в базе данных и форма регистрации закрывается. После нажатия на кнопку Отмена форма закрывается, а данные не сохраняются. Если до нажатия на кнопку Отмена была нажата кнопка регистрация, то в базе данных будут сохранены сгенерированный уникальный идентификатор и обязательные данные.

В случае, когда возможный абитуриент еще раз приходит на какое-либо мероприятие Университета, в поле ID вносится его уникальный идентификатор, который есть на его Карточке абитуриента, затем нажимается клавиша Enter и все поля формы заполняются данными из БД по этому абитуриенту. И в таблице FST_PERS_DATA базы данных значение атрибута REPEAT этого абитуриента становится равным 1. Кнопка Регистрации становится не активной. Данные можно редактировать, если есть изменения и сохранить, нажав на кнопку Готово. За реализацию описанного функционала отвечает фрагмент программного кода:

{Обрабатываем введение в поле ‘ID’ идентификационный номер возможного абитуриента во время повторного посещения МГОУ}

procedure TFvabit.cxME_ID_AbitKeyUp(Sender: TObject; var

Key: Word;Shift: TShiftState);

begin


if Key = 13 then

begin


cxB_Registr.Visible := false;

pFIBDS_All.Active := false;

pFIBDS_All.ParamByName('ID').AsString :=

cxME_ID_Abit.Text;

pFIBDS_All.Active := true;

pFIBDS_All.Edit;

pFIBDS_All.FieldByName('REPEAT').AsInteger := 1;

end;


end;
Форма просмотра зарегистрированных

На форме просмотра зарегистрированных после ее открытия отображаются параметры информации о возможных абитуриентах, а сами абитуриенты представлены в группах. Используется следующая иерархия групп: по факультетам, по специальностям, по форме оплаты. Справа на панели управления расположены две кнопки для быстрой группировки. На рисунке 14 показана кнопка Сгруппировать и сгруппированные данные после нажатия на эту кнопку. Причем после группировки остается выделенным абитуриент, который был выбран при разгруппированном отображении. Это можно проследить если сравнить формы на рисунках 14 и 15.


Рис.14 Форма просмотра зарегистрированных возможных абитуриентов. Сгруппированные данные
Рис.15 Форма просмотра зарегистрированных возможных абитуриентов. Разгруппированные данные

На рисунке 15 показано как действует кнопка Разгруппировать и выделен возможный абитуриент. Также как и в случае с кнопкой Сгруппировать, если в режиме сгруппированного отображения данных был выделен возможный абитуриент, то после разгруппировки выделение не снимается. За функционал группировки отвечает следующий программный код:

{Обрабатываем нажатие кнопки разгруппировать}

procedure TFView.AagroupExecute(Sender: TObject);

begin

sDBTableView1PAY_FORM_ID.GroupIndex := -1;



sDBTableView1PAY_FORM_ID.Caption := 'Форма оплаты';

sDBTableView1PAY_FORM_ID.Visible := true;


sDBTableView1NAME1.GroupIndex := -1;

sDBTableView1NAME1.Caption := 'Специальность';

sDBTableView1NAME1.Visible := true;
sDBTableView1NAME2.GroupIndex := -1;

sDBTableView1NAME2.Caption := 'Факультет';

sDBTableView1NAME2.Visible := true;

end;
{Обрабатываем нажатие кнопки сгруппировать}

procedure TFView.AGroupExecute(Sender: TObject);

begin


sDBTableView1NAME2.GroupIndex := 0;

sDBTableView1NAME2.Caption := '';

sDBTableView1NAME2.Visible := false;
sDBTableView1NAME1.GroupIndex := 1;

sDBTableView1NAME1.Caption := '';

sDBTableView1NAME1.Visible := false;
sDBTableView1PAY_FORM_ID.GroupIndex := 2;

sDBTableView1PAY_FORM_ID.Caption := '';

sDBTableView1PAY_FORM_ID.Visible := false;

end;
При выборе абитуриента и нажатии на кнопку Редактирование или при двойном щелчке мыши по выбранному абитуриенту открывается форма редактирования возможного абитуриента. Она показана на рисунке 16.

При выборе абитуриента и нажатии на кнопку Создать сообщение открывается форма Сообщение, показанная на рисунке 17.

Кнопка Печать предназначена для предварительного просмотра созданных отчетов таких как: общий отчет, «ваш» отчет, диаграммы. Нажатие на кнопку Печать и открытие предварительного просмотра отчетов обрабатывает следующий программный код:

{Обрабатываем нажатие кнопки Печать -> Название отчета}

procedure TFView.APrintExecute(Sender: TObject);

begin

frxReport_View.Clear;



try

if not frxReport_View.LoadFromFile

(ExtractFilePath(Application.ExeName)+'Название

отчета.fr3') then

MessageBox(0, PansiChar('Не удалось загрузить файл

отчета!'+ #13 + #10 + 'Проверьте наличие файла'),

'Внимание!', MB_ICONSTOP or MB_OK or

MB_TASKMODAL);

finally

frxReport_View.ShowReport(true);



end;

end;

Рис.16 Форма редактирования возможного абитуриента

Рис.17 Форма создания сообщения



Форма редактирования

Форма редактирования (рисунок 16) предназначена для редактирования ранее введенной информации по будущему абитуриенту. Она представляет собой форму регистрации с ограниченным функционалом. На форме не отображается уникальный идентификатор абитуриента, так как его нельзя редактировать. Также нет кнопки Регистрация, так как происходит процесс редактирования, а не регистрации. Кнопка Печать ID не нужна потому, что не для кого печатать Карточку абитуриента.


Форма создания и отправки сообщения

Эта форма (рисунок 17) предназначена для создания сообщения и отправки его выбранным будущим абитуриентам. Форма вызывается с формы просмотра абитуриентов с выбранным адресатом или открывается по вкладке Отправить сообщение на панели навигации пустая. Пользователь пишет тему и текст сообщения, добавляет файлы к сообщению и выбирает абитуриентов из представленного в таблице списка, проставляя напротив каждого из них галочку.

Кнопки управления в блоке со списком абитуриентов предназначены для выделения всех абитуриентов или снятия всех галочек. Программный код:

{Обрабатываем нажатие кнопки Выделить все или Снять выделение}

procedure TFPost.cxBAllClick(Sender: TObject);

var i:integer;

begin

pFIBDS_Post.DisableControls;



pFIBDS_Post.First;

for i := 0 to cxGrid1DBTableView1.

DataController.RecordCount + 1 do

begin


pFIBDS_Post.Edit;

pFIBDS_Post.FieldByName('CB').AsInteger := {если

выделить}1{снять выделение}0;

pFIBDS_Post.Post;

cxGrid1DBTableView1.DataController.RecNo := i;

end;


pFIBDS_Post.EnableControls;

end;
Нажатие на кнопку Сохранить приведет к сохранению параметров сообщения в базе данных. Нажатие на кнопку Отправить запустит процесс отправки. Этот процесс отображается в строке загрузки. На рисунке 18 представлена форма сообщения в процессе отправки. В нижнем правом углу рисунка можно видеть, что адресат получает сообщение на указанную почту.

Рис.18 Форма сообщения в процессе отправки

Форма просмотра сообщений

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



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\3.jpg

Рис.19 Форма просмотра сообщений


Отчеты

Главным отчетом в разработанном приложении является «Карточка абитуриента», направленная на расширение возможностей актуализации. «Карточка абитуриента» показана на рисунке 20. Этот отчет выдается на руки возможному абитуриенту в печатном виде. Абитуриент будет знать какую информацию о себе он оставил в вузе и что с ним обязательно смогут связаться если возникнет такая необходимость. Если его контактные данные изменяться, а карточка абитуриента ему всегда напомнит, какая информация о нем известна Университету, в его интересах будет сообщить о произошедших изменениях. Также на карточке абитуриента отражен его ID в университетской базе данных, которое он может использовать, чтобы сообщить о повторном посещении Университета. ID изображен в виде штрих кода для дальнейшей автоматизации учебного процесса.


Рис.20 «Карточка абитуриента»

Отчеты, вызываемые с формы просмотра зарегистрированных будущих абитуриентов, предназначены для ведения статистики по регистрируемым и тех кто их регистрирует.

«Общий» отчет на рисунке 21 дает сводную информацию по всем мероприятиям и зарегистрированным на них абитуриентам. На отчете показана дата его формирования.

«Ваш» отчет на рисунке 22 похож на «Общий» отчет, но формируется только на пользователя авторизованного в системе.



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\отчет№2 - общий отчет21.jpgd:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\отчет№2 - общий отчет12.jpg

Рис.21 «Общий» отчет



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\отчет№2 - ваш отчет.jpg

Рис.22 «Ваш» отчет

Отчеты в виде диаграмм дают наглядную статистику по количеству необходимых мест в общежитии – «Общежитие», рисунок 23, по количеству студентов из разных учебных заведений – «Откуда к нам идут», рисунок 24, показывают, кто из сотрудников ЦПК сколько будущих абитуриентов зарегистрировал – «Рейтинг среди сотрудников», рисунок 25.
d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\отчет№3 - сводка по общежитию.jpg

Рис.23 «Общежитие»


d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\отчет№2 - откуда к нам идут.jpg

Рис.24 «Откуда к нам идут»



d:\у ч е б а\диплом\плакаты\№4 экранные формы\скрины\отчет№3 - рейтинг среди сотрудников цпк.jpg

Рис.25 «Рейтинг среди сотрудников»


7.1. Интерфейс – «Галочки»

Для корректной работы Галочек на формах регистрации и создания сообщения в базе данных были реализованы представления. Представление (англ. View) — виртуальная (логическая) таблица, представляющая собой поименованный запрос (алиас к запросу), который будет подставлен как подзапрос при использовании представления. Типичным способом создания представлений для СУБД, поддерживающих язык запросов SQL, является связывание представления с определённым SQL-запросом. Соответственно, содержимое представления — это результат выполнения этого запроса, а возможности построения представления ограничиваются только степенью сложности диалекта SQL, поддерживаемого конкретной СУБД.

Представления используются в запросах к БД тем же образом, как и обычные таблицы. В случае SQL-СУБД имя представления может находиться в SQL-запросе на месте имени таблицы (в предложении FROM). Запрос из представления обрабатывается СУБД точно так же, как запрос, в котором на месте имени представления находится подзапрос, определяющий это представление. При этом СУБД с развитыми возможностями оптимизации запросов перед выполнением запроса из представления могут проводить совместную оптимизацию запроса верхнего уровня и запроса, определяющего представление, с целью минимизации затрат на выборку данных.

Использование представлений не даёт каких-то совершенно новых возможностей в работе с БД, но может быть очень удобно:



  • Представления скрывают от прикладной программы сложность запросов и саму структуру таблиц БД. Когда прикладной программе требуется таблица с определённым набором данных, она делает простейший запрос из подготовленного представления. При этом даже если для получения этих данных требуется чрезвычайно сложный запрос, сама программа этого запроса не содержит.

  • Использование представлений позволяет отделить прикладную схему представления данных от схемы хранения. С точки зрения прикладной программы структура данных соответствует тем представлениям, из которых программа эти данные извлекает. В действительности данные могут храниться совершенно иным образом, достаточно лишь создать представления, отвечающие потребностям программы. Разделение позволяет независимо модифицировать прикладную программу и схему хранения данных: как при изменении структуры физических таблиц, так и при изменении программы достаточно изменить представления соответствующим образом. Изменение программы не затрагивает физические таблицы, а изменение физической структуры таблиц не требует корректировки программы.

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

  • Поскольку SQL-запрос, выбирающий данные представления, зафиксирован на момент его создания, СУБД получает возможность применить к этому запросу оптимизацию или предварительную компиляцию, что положительно сказывается на скорости обращения к представлению, по сравнению с прямым выполнением того же запроса из прикладной программы.

Первое представление ONE_VIEW отвечает за наличие связки между абитуриентом и выбранными им для поступления факультетами:

CREATE VIEW ONE_VIEW(

ID,

NAME,


CB,

FST_PD_ID)

AS

SELECT


s.id,

s.NAME,


case when pr.id is null then 0 else 1 end as cb,

per.id as pers_id

FROM STU_KL_FACULTY s

left join fst_pers_data per on (1=1)

left join fst_fprof pr on (pr.facult_id = s.id and

pr.fst_pd_id = per.id);


За проставление галочки в данном представлении отвечает параметр CB. По запросу проверяется если в таблице-связке абитуриента с факультетом отсутствует связка, от галочка не ставится, иначе галочка ставится. За создание связки между абитуриентом и факультетами при изменении состояния галочки на форме отвечает триггер базы данных ONE_VIEW_BU0:

AS

begin



if (old.cb != new.cb) then

if (new.cb = 1) then

INSERT INTO FST_FPROF(FST_PD_ID, FACULT_ID)

VALUES (old.fst_pd_id, old.id);

else

DELETE FROM FST_FPROF



WHERE (new.fst_pd_id = fst_fprof.fst_pd_id and

new.id = fst_fprof.facult_id);

end
Данный триггер проверяет, если старое значение параметра (значение галочки) не равно новому, то выполнить следующие действия:


  • если новое значение равно единице, то создать связь между абитуриентом и факультетом;

  • иначе удалить связь.

Второе представление TWO_VIEW отвечает за наличие связки между абитуриентом и выбранными им для поступления специальностями:

CREATE VIEW TWO_VIEW(

ID,

NAME,


CB,

PERS_ID)


AS

SELECT


s.id,

s.NAME,


case when pr.id is null then 0 else 1 end as cb,

per.id as pers_id

FROM stu_kl_specialization s

left join fst_pers_data per on (1=1)

left join fst_fprof pr on (pr.spec_id = s.id and

pr.fst_pd_id = per.id);


За проставление галочки в данном представлении отвечает параметр CB. По запросу проверяется, если в таблице-связке абитуриента со специальностью отсутствует связка, то галочка не ставится, иначе галочка ставится. За создание связки между абитуриентом и специальностью при изменении состояния галочки на форме отвечает триггер базы данных TWO_VIEW_BU0:

AS

begin



if (new.cb != old.cb) then

if (new.cb = 1) then

INSERT INTO FST_FPROF(SPEC_ID, FST_PD_ID)

VALUES (old.id, old.pers_id);

else

DELETE FROM FST_FPROF



WHERE (old.id = fst_fprof.spec_id and old.pers_id =

fst_fprof.fst_pd_id);

end
Данный триггер проверяет, если старое значение параметра (значение галочки) не равно новому, то выполнить следующие действия:


  • если новое значение равно единице, то создать связь между абитуриентом и специальностью;

  • иначе удалить связь.

Третье представление MES_VIEW отвечает за наличие связки между абитуриентом и отправленным ему сообщением:

CREATE VIEW MES_VIEW(

ID,

THEME,


CB,

PERS_ID)


AS

SELECT


m.id,

m.theme,


case when pr.pers_data_id is null then 0 else 1 end

as cb,


per.id as pers_id

FROM FST_MESSAGE m

left join fst_pers_data per on (1=1)

left join fst_l_persdata_message pr on (pr.message_id =

m.id and pr.pers_data_id = per.id);
За проставление галочки в данном представлении отвечает параметр CB. По запросу проверяется, если в таблице-связке абитуриента с отправленным ему сообщением отсутствует связка, то галочка не ставится, иначе галочка ставится. За создание связки между абитуриентом и сообщением при изменении состояния галочки на форме отвечает триггер базы данных MES:

AS

begin



if (old.cb != new.cb) then

if (new.cb = 1) then

INSERT INTO FST_L_PERSDATA_MESSAGE(PERS_DATA_ID,

MESSAGE_ID)

VALUES (old.PERS_ID, old.ID);

else


DELETE FROM FST_L_PERSDATA_MESSAGE

WHERE(new.PERS_ID =

fst_l_persdata_message.pers_data_id) AND (new.ID

= FST_L_PERSDATA_MESSAGE.message_id);



end
Данный триггер проверяет, если старое значение параметра (значение галочки) не равно новому, то выполнить следующие действия:

  • если новое значение равно единице, то создать связь между абитуриентом и сообщением;

  • иначе удалить связь.

Похожие:

5. Архитектура программного обеспечения iconСпецкурс "Архитектура распределенных систем программного обеспечения "
Понятие распределенных систем программного обеспечения. Виды и свойства распределенных систем программного обеспечения. Виды архитектуры...
5. Архитектура программного обеспечения iconИнтегрированная среда разработки программного обеспечения Visual Basic, Borland Delphi
Интегрированная) среда разработки программного обеспечения (англ. Ide, Integrated development environment) — система программных...
5. Архитектура программного обеспечения iconМетодика выбора программного обеспечения турфирмой
Если решение о необходимости использования программного обеспечения (ПО) в компании принято твердо и окончательно, встает следующий...
5. Архитектура программного обеспечения iconПрограммное обеспечение и лицензия на него
Для определения юридических рисков использования нелицензионного программного обеспечения необходимо прежде всего дать определение...
5. Архитектура программного обеспечения iconСостояние рынка прикладного программного обеспечения
Рынок прикладного программного обеспечения существует при соблюдении следующих условий
5. Архитектура программного обеспечения iconВнедрение пакета свободного программного обеспечения
Учитывая важность и неизбежность процесса информатизации системы образования Курской области, рассмотрим один из важнейших вопросов...
5. Архитектура программного обеспечения iconЛицензионное соглашение об использовании программного обеспечения
Астоящим лицензионным соглашением («лицензией») перед использованием программного обеспечения компании reg. Ru. Используя программное...
5. Архитектура программного обеспечения iconТрадиционные процессы разработки по. Стадии разработки по. Водопадный и спиральный процессы, rup. Стадии разработки программного обеспечения
В компьютерной терминологии, показатель Стадии разработки программного обеспечения используется программистами для описания степени...
5. Архитектура программного обеспечения iconПорядок выполнения ремонтных работ и технического обслуживания вычислительной техники и оргтехники и программного обеспечения отделом технического обслуживания и материального обеспечения уит
Работы по ремонту вычислительной и оргтехники, восстановлению поврежденного программного обеспечения производятся на основании письменной...
5. Архитектура программного обеспечения iconРабочая программа По дисциплине «Разработка программного обеспечения» По специальности
Основная задача курса – сформировать фундаментальные знания у студентов о принципах построения, реализации и функционирования программного...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org