Меню Услуги

Разработка автоматизированной информационной системы обслуживания заявителей отдела легализации Министерства Иностранных ДЕЛ РФ. Часть 4.


Страницы:   1   2   3   4   5   6

Узнай стоимость написания такой работы!

Ответ в течение 5 минут! Без посредников!

2.6. Нормализация базы данных системы

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

Тем не менее, некоторые каноны, правила все-таки существуют. К таким правилам относятся правила нормализации, т.е. приведения  отношений к нормальной форме.

Как отмечает К.Дейт, [2, 12] общее назначение процесса нормализации заключается в исключение избыточности, устранение аномалий обновления, гибкости при изменениях и расширениях проекта базы данных, упрощение процедур применения необходимых ограничений целостности.

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

  • первая нормальная форма (1NF);
  • вторая нормальная форма (2NF);
  • третья нормальная форма (3NF);

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

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

2.7. Обзор основных методов создания веб-приложений, сайтов

Существуют различные методы создания веб-приложений, сайтов. Самый тривиальный в смысле технологии метод, но не в смысле наличия необходимых знаний для создания – это верстка html страниц вручную. При этом можно использовать любой текстовый или специализированный редактор. Кроме знания html понадобятся также знания CSS. Это то, что касается простейшего дизайна сайта. Сверстав сайт, можно начинать его продвижение, улучшая дизайн. Кроме того, можно воспользоваться различного рода онлайн конструкторами сайтов или готовыми шаблонами и затем изменять, улучшать дизайн сайта. Это касается статических сайтов, обладающих минимальным дизайном и готовых к использованию. Кроме того, скоро будет понятно, что невозможно обойтись и без JavaScript, который, в данном случае, работает на стороне клиента и с его помощью можно добиться как улучшения дизайна сайта, так и его функциональных возможностей. Например, такая типовая операция характерная для любого сайта как заполнения различного рода форм (обратная связь, регистрация данных пользователей, отправка электронной почты и пр.) невозможна без JavaScript или фрейворка jQuery.

Другой путь создания сайтов, который является наиболее популярным сегодня, это использование инструментов под общим названием «системы управления содержимым или контентом» (Content Management Systems, CMS). Этот инструмент, программы, которые позволяют конструировать сайты из отдельных «заготовок» и управлять содержанием сайтов. CMS, упрощенно говоря,  представляет собой  готовую программную оболочку, которую можно наполнить определенным  контентом, а также изменить , настроить на свои требования. Существую платные и бесплатные CMS, последние пользуются большей популярностью, благодаря открытому коду. К платным, например, относятся 1С-Битрикс, NetCat, HostCMS, UMLCMS. Наиболее известные из бесплатных – Joomla, WordPress, DataLife Engine, uCoz, Drupal. Многие организации создают свои CMS, наиболее отвечающие их требованиям или адаптируют существующие системы. Статистика использования  бесплатных CMS такова (по материалам http://denвеб.ru):

  • Joomla – 38, 95%;
  • WordPress – 31,52%;
  • DataLife Engine – 10,16%;
  • uCoz – 7,08%;
  • Drupal – 6, 34%.

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

Создание сайтов на основе бесплатных онлайн-конструкторов удобно для тех, кто желает быстро создать и «запустить свой сайт в мир». Этот метод подходит для создания небольших простых сайтов с ограниченным функционалом и динамичностью.

Широкие возможности по созданию сайтов любой сложности предоставляют CMS. Именно этот метод создания сайтов считается одним из наиболее удобных и практичных. Система настроек, возможность редактирования CMS, отдельных ее элементов, простота добавления и изменения контента – все это сделало создание сайтов на базе CMS эффективным инструментом.

Однако в настоящем проекте не использовались CMS для создания сайтов, а использовалась ручная верстка htmlcss кода. Это связано с тем, что основной целью проекта явилось не создание полнофункционального интернет-организации, а проектирование и реализация отдельных составляющих базы данных, отдельных программных компонент по оперативному управлению базой данных, представлению данных на экране дисплея, интерфейсу с пользователем.

Вывод по 2 главе

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

Распознавание групп пользователей происходит в процессе регистрации в системе «Сотрудника» либо «Заявителя».

Для функционального моделирования бизнес-процессов отдела легализации МИД РФ предлагается использование диаграммы потоков данных DFD, так как данная методология дает больше преимуществ при проектировании информационной системы.

При создании логической модели базы данных в настоящем проекте используется разработка MySQL Workbench. Этот инструмент упрощает проектирование и обслуживание баз данных, автоматизирует отнимающие много времени и подверженные ошибкам задачи и улучшает связь среди команд разработчиков и архитекторами БД.

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

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

 

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

3.1. Принятая концепция архитектуры программного обеспечения

Программное обеспечение, реализующее управление базой данных и поисковые функции разработано как веб-приложение (будем называть, просто «приложение»). По определению, веб-приложение – это «клиент-серверное приложение, в котором клиентом выступает браузер, а сервером – веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети [2,4].

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

Клиентская часть программного обеспечения реализует пользовательский интерфейс, формирует запросы к серверу и обрабатывает ответы от него. Серверная часть получает запрос от клиента, выполняет обработку, формирует веб-страницу и отправляет её клиенту по сети.

Для реализации клиент-серверной архитектуры выбрано трио базового программного обеспечения, базирующегося на Linux платформе — удаленный сервер со стандартным программным обеспечением Аpache, PHP, MySQL и широко распространенный пакет интерактивного удаленного управления базой данных phpMyAdmin. Эти программные средства являются той средой, на основе которой функционируют большинство веб-сайтов и веб-приложений. На текущий год на этой бесплатной платформе функционирует около 70% веб-сайтов.

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

Узнай стоимость написания такой работы!

Ответ в течение 5 минут!Без посредников!

Большинство веб-приложений базируется на веб-серверах общего пользования, так называемых разделяемых хостах (shared hostings), когда на одном или нескольких физических серверах располагается множество веб-сайтов, веб приложений.

Доступ к таким виртуальным хостам, находящимся в пользовании отдельных приложений осуществляется, как правило, посредством FTP-доступа. Для этого созданы специальные клиентские программы типа GuteFTP 8 Professional и множество других. С помощью FTP-клиентов можно легко администрировать веб-приложения на сервере.

3.2. Реляционная база данных MySQL

СУБД MySQL – это система управления реляционными базами данных, которая, в том числе, работает в связке бесплатных мощных продуктов, таких как Unix, Linux …, Apache, PHP, что обеспечивает мощные инструменты поддержки и быструю разработку веб-приложений.

MySQL является многопользовательским, «много потоковым» сервером и использует стандартный, принятый программистском мире структурированный язык запросов SQL (Structured Query Language) [4,9].

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

Кратко можно описать типовую упрощенную схему взаимодействия этих продуктов следующей схемой.

  1. [ Браузер] à [ Веб-сервер] à [PHP ] à [ Сервер MySQL]
  2. [ Браузер] ß [ Веб-сервер] ß [PHP ] ß [ Сервер MySQL]
  3. Браузер клиента отправляет HTTP запрос на загрузку веб-страниц веб-серверу. Веб-сервер принимает запрос, получает файл и передает его PHP, который сканирует и выполняет код PHP, встроенный или динамически загружаемый в веб-страницу. Если в PHP коде присутствуют функции обращения к базе данных, то выполняются соответствующие операции по открытию соединения с сервером MySQL. Сервер MySQL принимает запрос, обрабатывает его.
  4. Сервер MySQL отправляет результаты PHP, который завершает выполнение сценария, формируя HTML код страницы. После этого результаты передаются в HTML формате Веб-серверу. Сервер пересылает HTML файл браузеру, которые отображает страницу на экране.

В нашем проекте используются модифицированный под приложение класс PHP для работы с MySQL[4,13].

3.3. Использование программы phpMyAdmin для управления базой данных отдела легализации МИД РФ

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

Для данного приложения был создан специальный аккаунт, обеспечивающий доступ к базе данных только этого приложения и ограничения доступа к другим базам данных, находящимся под управлением сервера (рисунке 3.1). Для входа необходимо перейти по ссылке и ввести следующие данные: логин = zao712, пароль = zao712,

http://diofant.com/phpmyadmin/

Рис.3.1. Структура БД в представлении phpMyAdmin

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

Из PHP-приложения открытие связи с базой данных обеспечивается следующим кодом:

<?php

define(«DB_HOST»,     «localhost»             ); // адрес сервера баз данных   #

define(«DB_USER»,     «zao712»                ); // имя пользователя                #

define(«DB_PWD»,      «zao712»                ); // пароль к бд                           #

define(«DB_NAME»,   «control_clients_mid»); // имя базы данных          #

define(«DB_MODE»,                            2); // 0 — в ручную откр/закр,           #

3.4. Использование объектно-ориентированного подхода в приложении

Веб-приложение Control_Clients_Mid создано на языке PHP, с использованием объектно-ориентированного программирования (ООП). Модули PHP кода проекта представлены в Приложении 2. PHP код проекта.

Объектно-ориентированное программирование является модерном современных технологий программирования, это направление, которое невозможно полностью описать даже в рамках одной книги. Необходимо только отметить, что разработка современных приложений практически невозможна без ООП.

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

Класс – это синтаксическая конструкция языка программирования с закрытым набором переменных и функция, используемых в программах по определенным соглашениям, с целью сокращения времени разработки и построению структурированного, легко изменяемого программного кода. Класс – это шаблон объектов определенного типа, на основе которого можно создать и использовать в программах множество объектов этого типа. Созданный однажды класс, можно использовать во многих приложениях без изменений внутренней структуры класса, а лишь, при необходимости, добавляя новые функции и переменные. Класс и создается для того, чтобы программист не разбирался во внутренней структуре кода, а брал и использовал готовый код по соглашениям, изложенным в описании классах [4,13].

3.5. Структура программных модулей и используемые свойства языка PHP

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

Разработка программных модулей не велась с нуля, а были существенно модифицированы необходимые программные модули, функции классы PHP, взятые из сети. Несмотря на это процент новых доработок адаптированных под настоящее приложение составляет около 90%.

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

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

Узнай стоимость написания такой работы!

Ответ в течение 5 минут!Без посредников!

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

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

Главная страница системы расположена по адресу: http://www.diofant.com/Control_Clients_Mid/index.php.

Структурно эта веб-страница состоит из ряда, специальным образом построенных таблиц в терминологии языка HTML, разделяющих экран на отдельные поля и линейного, в виде ленты, меню с возможными вариантами работы с системой (рисунок. 3.2).

Рис.3.2. Структура веб-страниц страниц приложения

Иногда такой вариант веб-страницы называют «панелью управления» системы. Каждой кнопке этого меню соответствует ссылка на определенный модуль приложения. Кликая по кнопке, пользователь инициирует выполнение определенного модуля, каждый модуль – это несколько взаимосвязанных PHP модулей, которые выполняются сервером и результат в виде HTML, CSS, JavaScript веб-страницы отправляется браузеру. Ниже на рисунке можно увидеть взаимосвязь различных PHP модулей (рисунок 3.3).

В структуре программного обеспечения в определенной степени отображается технология MVC (Model-View-Controller) и состоит из трех уровней (рисунок 3.3.). В схеме представлены не все модули, часть из них описывается ниже. Как уже было сказано ранее, базовые класс были разработаны в компании MitriDAT и в процессе работы над проектом адаптировались под требования проекта.

Рис. 3.3. Структурная схема программного обеспечения веб-приложения

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

При нажатии кнопки топ-меню «Веб-Схема БД», вызывается модуль All_Tables.php. Этот модуль обращается к нижележащему уровню, вызывая модуль DB_Tables_Fields.php, который сканирует текущую логику базы данных («на лету», именно поэтому можно менять структуру и содержание полей страниц, не задумываясь о модификации кода), считывает таблицы и поля. Затем модуль All_Tables.php формирует запрос к базе данных, обращается к модулю DB_Class.php, который оформлен как класс, получает значения полей базы данных (строк). После этого с помощью модулей табличного представления вышележащего уровня Any_Table_HTML.php формируется HTML-код таблиц, добавляется заголовок («шапка») Header.php страницы, содержащая логотип,HTML-CSS код страницы и полностью сформированная страница отправляется в браузер пользователя в ответ на запрос. Напомним, что весь программный код работает на стороне сервера, который и отправляет уже готовую для отображения HTML – страницу. Аналогично происходит формирование табличных представлений для любой выбранной таблицы, но при этом работает другой модуль – Tables_Handler.php. Краткое описание работы каждого модуля будет дано ниже.

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

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

Control_Clients_Mid                      Главная папка, содержащая все модули

All_Tables_short.php                       Главная страница с таблицами БД

Any_Table_HTML_New.php          Класс таблиц отображения

DB_Class.php                                      Класс работы с базой данных

DB_Coding.php                                  Модуль перекодировки в кириллицу

DB_data.php                                       Параметры соединения с БД

Depart_Handler.php                         Обработчик «Подразделения»

Device_Handler.php                         Обработчик представления

Form_Buttons.php                            Формы удаления, поиска, обновления

Form_Buttons_Staff.php                Форма поиска по нескольким ключам

FormMsgs.php                                   Сообщения

Forms_Main.php                              Форма добавления данных во все таблицы

Header.php                                        Стандартная шапка страниц приложения

Prod_Handler.php                           Обработчик БД и представления

Staff_Handler.php                           Обработчик БД  «Сотрудники»

Staff_Search.php                              Модуль поиска по нескольким ключам

Table_Headers.php                         Файлы настройки «шапок» таблиц

Узнай стоимость написания такой работы!

Ответ в течение 5 минут! Без посредников!

Table_Headers_DB.php                Файлы настройки полей таблиц БД

Universal_Forms_Builder.php    Построитель форм добавления в таблицы

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

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

Выше дана только краткая характеристика модулей, составляющих программное обеспечение веб-приложения. Структура программного обеспечения, содержание папок и файлов представлены на рисунке 3.4. Все приложение находится в папке Control_Clients_Mid. В Приложении 2 дана распечатка основных PHP модулей, составляющих основу программного обеспечения веб-приложения. Кроме того, представлена распечатка SQL кода, для генерации базы данных.

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

Рис.3.4. Структура программного обеспечения приложения в представлении Zend Development Environment

3.7. Реализация функций администрирования базы данных отдела легализации МИД РФ

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

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

Управление данными осуществляется посредством браузера через веб-интерфейс – специально разработанными представлениями таблиц, форм, последовательностей команд.

Работа администратора начинается с главной страницы, на которой отображаются в «усеченном виде» все таблицы базы данных (Приложение 1). Перейдя по ссылкам на требуемую таблицу, можно осуществлять все доступные операции с данными этой таблицы.

Для добавления данных в таблицы разработана унифицированная форма, которая базируется на универсальном PHP коде, но заполнятся именами полей, соответствующим видам таблиц. Для того, чтобы добавить данные в нужную таблицу, необходимо по ссылке на главной странице с перечнем всех таблиц выйти на эту таблицу, например «Подразделения», в нижней части которой находится ссылка «Добавить подразделение». Появиться форма для заполнения данных вида (рисунок 3.5):

рис.3.5. Форма для добавления данных подразделений в таблицы

Поля расположены в последовательности – удалить, найти, обновить. Для совершения этих действий необходимо ввести Id код соответствующей строки (сотрудника в нашем примере). Если вводится Id и нажимается кнопка «Обновить», то появляется форма для обновления со всеми данными подразделения (рисунок 3.6). Тоже для других таблиц, например, «Сотрудников».

После добавления данных и нажатия кнопки «обновить», данные будут занесены в таблицу, появиться список всех сотрудников с сопутствующими полями меню. Здесь можно проконтролировать правильность введенных данных.

Таким же образом происходит удаление записи о подразделении, если это необходимо. Аналогичные операции доступны для всех таблиц базы данных, независимо от содержания таблиц.

рис.3.6. Форма для обновления данных таблицы «Заявителей»

3.8. Реализация поисковых функций

Для реализации поисковых функций используется класс DB_Class работы с базой данных MySQL и стандартный язык запросов SQL. Программное обеспечение устроено таким образом, чтобы предусмотреть возможность изменения структуры полей БД. Для этого, во-первых, используются файлы настройки Table_Heades.php и Table_Headers_DB.php, а также локализация поисковых запросов. Так как структура таблиц БД, представлений таблиц может в определенной степени меняться при развитии функций приложения, то такой подход обеспечит гибкость, надежность, возможность быстрой адаптации под новые функции или при модификации поисковых запросов. При изменении наименования, полей таблиц БД, структуры таблиц, наименований полей (шапок полей) табличных представлений необходимо соответствующим образом изменить файлы настройки и наименования полей, атрибуты поиска в поисковых запросах.

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

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

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

Для поиска сотрудников, отвечающим определенным критериям поиска, можно задавать Id сотрудника, занимаемую должность, выбрать сотрудников, работающих в настоящее время и тех, кто работал раньше.

Если, например, задается только должность, то система построит таблицу представления со всеми должностями «инспектор» всех сотрудников, работающих в настоящее время во всех подразделениях.

Если же будет добавлено значение поля Id Подразделения, то соответственно будет выведена таблица всех должностей в этом отделе.

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

 


Страницы:   1   2   3   4   5   6


Узнай стоимость написания такой работы!

Ответ в течение 5 минут! Без посредников!