Дипломная работа: Автоматизация "личного кабинета" консультанта по недвижимости (на примере организации Росинформ)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
83
после двоеточия. И, наконец, четвертое заключенное в скобки подвыражение
выделяет информацию о пути и/или страницы, указанной в сетевом адресе.
Данное подвыражение /соответствует одному или более количеству символов
отличных от '#' и символа пробела.
После применения регулярного выражения к указанному выше URI,
подсоответствия будут содержать следующие значения:
1. RegExp.$1 содержит "http"
2. RegExp.$2 содержит "msdn.microsoft.com"
3. RegExp.$3 содержит ":80"
4. RegExp.$4 содержит "/scripting/default.htm"
Примеры использования сервера регулярных выражений.
Традиционно серверы баз данных применяются для накопления и
выдачи данных по запросу пользователя, в то время как бизнес-логика по
работе с данными реализована в клиентском приложении. Функциональность
языка запросов при этом обычно ограничивается возможностями добавления,
выборки, редактирования и удаления строк. Тем не менее, основными
клиентами баз данных являются приложения, специально созданные для
выполнения определенных задач. Эти приложения часто реализуют сложные
операции, требующие использования множества команд.
Чтобы выполнить такие операции, приложение отсылает на сервер одну
или более команд, которые там выполняются. В ответ сервер отправляет
клиенту (приложению) результат обработки запроса. Этим результатом может
быть как сообщение об успешном завершении выполнения команды,
занимающее всего несколько байт, так и огромный массив данных,
включающий тысячи строк и занимающий несколько мегабайт. Клиент может
обработать полученный результат и на основе своего полученного результата
отослать серверу новый запрос.
Предложенный подход к обработке данных имеет несколько
недостатков. Например, если необходимо изменить логику обработки данных,
то следует изменять исходный код программы, после чего заново
84
компилировать ее и распространять всем пользователям. Кроме того, если одна
и та же логика обработки данных используется в нескольких приложениях, то в
худшем случае для каждого из этих приложений нужно будет повторять
процесс разработки запросов, а в лучшем переносить код из работающего
приложения.
Все сказанное выше демонстрирует недостатки подхода к разработке
систем, когда логика обработки данных реализуется на клиенте. Описанные
проблемы могут быть решены за счет переноса алгоритмов обработки данных
на сервер. В этом случае приложение просто сообщает серверу, какой именно
набор команды необходимо выполнить. Дополнительно могут быть указаны
параметры, которые в зависимости от реализации алгоритма будут влиять на
ход обработки данных. При этом приложение сможет получать только
конечный результат выполнения. Все промежуточные результаты будут
обработаны сервером. Этот набор команд, хранимых на сервере, и
выполняемых как одно целое, в терминологии SQL Server называется хранимой
процедурой.
В связи с тем, что часть логической обработки данных переноситься с
клиента на сервер, язык SQL, реализованный в СУБД Microsoft SQL Server
Transact-SQL кроме поддержки операций работы с данными также
поддерживает практически все современные синтаксические конструкции
алгоритмических языков, тем самым, позволяя реализовать алгоритмы
практически любой сложности.
В системе автоматизации «Росинфом» хранимые процедуры
используется для реализации базовых операций обработки и получения данных,
а также для реализации некоторых правил бизнес-логики, имеющей свойство
изменяться с течением времени.
К примеру, приведен исходных код хранимой процедуры
dbo.AddEntrant:
CREATE procedure dbo.AddEntrant
@ApplicationStatusID int,
@SpecialityID int,
85
@CitizenshipID int,
@MilitaryStatusID int,
@EnterPlaceID int,
@LearnFormID int,
@LanguageID int,
@FamilyStatusID int,
@LastName nvarchar(30),
@FirstName nvarchar(30),
@SecondName nvarchar(30),
@BirthDate datetime,
@Sex int,
@NeedHostel int,
@EnterTime int,
@MilitaryRegistration nvarchar(100),
@ApplicationDate datetime,
@PersonalFileNumber int,
@ExamListNumber int,
@Phone nvarchar(20),
@BornPlace nvarchar(100),
@PlaceID int,
@StreetAddress nvarchar(100),
@ZIP nvarchar(6),
@Series nvarchar(5),
@Number nvarchar(6),
@GiveBy nvarchar(100),
@DateOfGet datetime,
@EducationDocTypeID int,
@IsCopy int,
@IsExcellence int,
@SeriesDoc nvarchar(4),
@NumberDoc nvarchar(10),
@SchoolName nvarchar(50),
@GradeYear int,
@IsPrepared int = -1,
@FileIsGive int = 0,
@GiveFileDate datetime = '01.01.2016'
as
insert into Address(PlaceID,StreetAddress,ZIP)
values(@PlaceID,@StreetAddress,@ZIP)
declare @AddressID int
set @AddressID = @@identity
86
insert into Passport(Series, Number, GiveBy, DateOfGet)
values(@Series, @Number, @GiveBy, @DateOfGet)
declare @PassportID int
set @PassportID = @@identity
insert into EducationDoc(EducationDocTypeID,IsCopy, IsExcellence, Series, Number, SchoolName,
GradeYear)
values(@EducationDocTypeID,@IsCopy, @IsExcellence, @SeriesDoc, @NumberDoc, @SchoolName,
@GradeYear)
declare @EducationDocID int
set @EducationDocID = @@identity
insert into Entrant
(ApplicationStatusID,SpecialityID,PassportID,CitizenshipID,EducationDocID,
MilitaryStatusID,EnterPlaceID,LearnFormID,LanguageID,FamilyStatusID,
RegistrationAddressID,LastName,FirstName,SecondName,
BirthDate,Sex,NeedHostel,EnterTime,MilitaryRegistration,ApplicationDate,
PersonalFileNumber,ExamListNumber,Phone,BornPlace,
FatherID,MotherID, IsPrepared, FileIsGive, GiveFileDate)
values (@ApplicationStatusID,@SpecialityID,@PassportID,
@CitizenshipID,@EducationDocID,@MilitaryStatusID,@EnterPlaceID,
@LearnFormID,@LanguageID,@FamilyStatusID,@AddressID,
@LastName,@FirstName,@SecondName,@BirthDate,@Sex,
@NeedHostel,@EnterTime,@MilitaryRegistration,
@ApplicationDate,@PersonalFileNumber,@ExamListNumber,
@Phone,@BornPlace,-1,-1,@IsPrepared, @FileIsGive, @GiveFileDate)
declare @EntrantID int
set @EntrantID = @@identity
return @EntrantID
Из приведенного листинга видно, что использование хранимых
процедур позволяет значительно уменьшить объем исходного кода клиентского
приложения. И тем самым сделать его намного менее зависимым от физической
структуры базы данных.
В клиентском приложении системы автоматизации «Росинфом»
выполнение запросов к базе данных выполняется исключительно через
87
хранимые процедуры. Дополнительным преимуществом подобного подхода
является тот факт, что набор хранимых процедур создает некий интерфейс
между приложением и структурой таблиц базы данных. Это, в частности,
позволяет при необходимости изменить структуру базы данных, не требуя
изменения и перекомпиляции клиентского приложения, достаточно лишь
оставить существующий набор хранимых процедур с прежним набором
параметров.
3.5. Реализация клиентского приложения
В то время, когда серверная часть системы автоматизации ООО
Росинфом разработана и протестирована, тогда необходимо было
сосредоточиться на клиентских приложениях.
Для продуктивной работы сотрудникам необходимо обеспечить
пользовательский интерфейс, при работе с которым они могли бы мыслить в
терминах предметной области, а не в терминах администрирования Хранилища
данных Рисунок 11. Именно для коммерческой организации интерфейса между
пользователями системы и Хранилищем необходимо клиентское приложение.
Рисунок 11. Основная форма пользовательского интерфейса
личного кабинета консультанта ООО Росинфом
Клиентское приложение реализует механизм преобразования действий
пользователя, который взаимодействует с графическим интерфейсом, в
Источник: https://baza.diplomsite.ru/previewfile/2504