Здесь можно найти учебные материалы, которые помогут вам в написании курсовых работ, дипломов, контрольных работ и рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.
Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение оригинальности любого файла в формате MS Word. После такого повышения оригинальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, РУКОНТЕКСТ, etxt.ru. Программа «StudentHelp» работает по уникальной технологии так, что на внешний вид, файл с повышенной оригинальностью не отличается от исходного.
Результат поиска
Наименование:
дипломная работа База Данных с веб-интерфейсом для крупных организаций
Информация:
Тип работы: дипломная работа.
Добавлен: 01.12.2012.
Год: 2011.
Страниц: 35.
Уникальность по antiplagiat.ru: < 30%
Описание (план):
ВВЕДЕНИЕ
Автоматизированные
кадровые системы разрабатываются
с первых дней компьютерной эры. Но и по
сей день разработка таких систем остается
актуальной проблемой, поскольку разработать
качественную и универсальную систему,
которая подходила бы ко всем предприятиям,
практически невозможно. Одним из самых
эффективных способов реализации централизованной
кадровой системы является создание базы
данных и разработка веб-интерфейса для
доступа к данным.
Основные
цели, которые необходимо достигнуть
в рамках данного дипломного проекта
следующие:
-
спроектировать модель базы данных;
- спроектировать
логическую модель ввода/вывода
информации для базы данных;
- построить
и реализовать комплекс по
управлению информацией в базе
данных;
- выбрать комплекс
программных средств, на которых
реализуется функционирование системы;
-
реализовать основные программные
модули системы.
1.
ТЕОРИЯ ИНФОРМАЦИОННЫХ
СИСТЕМ И ПОСТАНОВКА
ЗАДАЧ ДИПЛОМНОГО
ПРОЕКТА
Структура
информационных систем
В
информационной системе осуществляются
следующие информационные процессы:
-
сбор информации;
-
хранение информации;
-
обработка информации;
-
выдача информации.
За
выполнение этих процессов отвечают
различные компоненты информационной
системы. Сбор и выдача информации в
основном происходят через пользовательский
интерфейс с участием человека. Хотя
возможны и другие, автоматизированные
средства сбора информации.
Интерфейс
пользователя – элементы и компоненты
программы, которые способны оказывать
влияние на взаимодействие пользователя
с программным обеспечением.
Процесс
хранения информации заключается в
долговременном хранении данных на носителях,
в виде массивов данных, с определенной
структурой. В данное время, для хранения
информации как правило используются
базы данных.
База
данных (БД) может быть определена как
совместно используемый набор логически
связанных данных (и описание этих данных),
предназначенный для удовлетворения информационных
потребностей. Для модификации хранимых
данных применяется общий управляющий
метод.
Обработка
информации состоит в получении
одних «информационных объектов»
из других «информационных объектов»
путем выполнения некоторых алгоритмов
и является одной из основных операций,
осуществляемых над информацией.
Различают
следующие основные процедуры обработки
информации:
-
создание данных;
-
модификация данных;
-
обеспечение целостности данных;
-
поиск информации;
-
принятие решений;
-
создание отчетов и документов.
Таким
образом, информационная система, как
правило, состоит из следующих компонентов:
-
база данных;
-
программные средства обработки данных;
-
пользовательский интерфейс.
Классификация
информационных систем
По
методу обработки данных информационные
системы делятся на системы с
централизованной и децентрализованной
организацией данных.
Централизованная
система отличается самой простой
реализацией. Используется единственная
база данных, все операции с данными
производятся одним сервером баз
данных. Таким образом, основным преимуществом
централизованной системы является
отсутствие необходимости в использовании
специальных средств, для обеспечения
целостности и актуальности данных.
Главным же недостатком является
ограничение на размер базы данных
и количество обрабатываемых запросов
возможностями одного сервера.
При
децентрализованной организации информационной
системы применяются распределенные
базы данных. Такие базы данных разбиваются
на части, располагаемые на разных серверах.
Существует
два основных подхода к организации
децентрализованных информационных систем.
Клиенты
используют локальную базу данных,
содержащие копии частей общей информационной
базы.
Несколько
серверов содержат полную копию информационной
базы.
В
первом случае часть запросов может
быть обработана с использованием только
локальной базы данных, что снизит
нагрузку на центральный сервер. Во
втором случае каждый сервер обрабатывает
запросы от своей части клиентов,
распределяя, таким образом, нагрузку
между серверами.
В
любом случае, при использовании
децентрализованных систем возникает
необходимость поддержания актуальности
данных в различных базах данных.
Это создает дополнительную нагрузку
на систему, при изменении данных.
Традиционно
в информационных системах используется
GUI пользовательский интерфейс, предоставляемый
большинством современных операционных
систем, однако последнее время все большую
распространенность получают web-ориентированные
информационные системы.
Структура
web-ориентированной информационной
системы
Web-ориентированная
информационная система, реализованная
в виде клиент-серверного приложение,
в котором клиентом выступает
браузер, а сервером — веб-сервер.
Такая
организация дает следующие преимущества:
web-браузер встроен в большинство
операционных систем, таким образом,
функции по разработке, установке, обновлении
и поддержке клиентской части
не лежат на разработчике информационной
системы. Логика работы информационной
системы сосредоточена на сервере.
Так же, клиенты не зависят от
конкретной операционной системы пользователя,
и информационная система, таким образом,
являются кроссплатформенной. При этом
функции системы реализуются один раз,
вместо того, чтобы разрабатывать различные
версии для Microsoft Windows, Mac OS X, GNU/Linux и других
операционных систем.
По
причине этой универсальности и
относительной простоты разработки
веб-приложения стали широко популярными
в конце 1990-х — начале 2000-х годов.
Ограничения
функциональности интерфейса, предоставляемого
web-браузером, могут быть преодолены,
за счет использования Adobe Flash или Java-апплетов.
Такое приложение принято называть
rich internet application.
Для
создания веб-приложений на стороне
сервера используются разнообразные
технологии и языки программирования:
-
PHP
-
ASP, ASP.NET
-
Perl
-
Python
-
Ruby
-
JavaScript
-
AJAX
-
JQuery
Обзор
существующих решений
Эволюция
автоматизированных систем управления.
Можно
выделить несколько этапов развития
автоматизированных систем управления.
-
использование индивидуальных моделей
бизнес-процессов;
-
использование типовой модели бизнес-процессов
MRP/MRP II;
-
развитие модели ERP, применение реляционных
СУБД, основанных на стандартах SQL, переход
к клиент-серверной архитектруе;
-
перенос типовых функций с уровня приложений
на уровень СУБД, использование GUI, включая
web-интерфейс;
-
дальнейшая типизация метаданных на основе
стандартов STEP и CORBA (включая UML), создание
репозитория стандартных компонентов
бизнес-объектов и функций, администрирование,
основанное на идеологии ORB и DCOM Развитие
систем пятого поколения только начинается. ВЫВОДЫ
Рассмотрев вышеизложенный материал и
сопоставив его с задачей дипломной работы,
было принято решение использовать web-ориентированную
централизованную базу данных.
2.
РАЗРАБОТКА ВЕБ-ОРИЕНТИРОВАННОЙ
СПЕЦИАЛИЗИРОВАННОЙ
БАЗЫ ДАННЫХ «ОРГАНИЗАЦИИ
И КАДРЫ» ДЛЯ КОРПОРАЦИЙ
2.1 СОЗДАНИЕ СХЕМЫ ДАННЫХ
2.1.1 ОСНОВНЫЕ КОМПОНЕНТЫ
БАЗЫ ДАННЫХ
На момент разработки данной базы данных
(БД) внедрить ее в работу какого-либо предприятия
не представлялось возможным, поэтому
задачи и компоненты БД формулировались
автором данной дипломной работы на основе
собственных знаний и наблюдений.
Исходя из названия БД, можно
сделать вывод, что основными
компонентами ее будут непосредственно
карточки организаций и сотрудников
какой-либо корпорации.
Определим структуру основных
компонентов.
Карточка организаций:
- название организации;
- сокращенное название (если есть);
- ее юридический адрес;
- телефон/факс;
- электронная почта;
- отметки статуса организации
(главный офис/филиал) и подчинении
какой-либо структуре.
Карточка сотрудника:
- Ф.И.О. сотрудника;
- Пол сотрудника;
- Дата и место рождения;
- Адрес проживания и контакты
(домашний/мобильный телефон);
- Информация об образовании;
- Организация, в которой работает
сотрудник, отдел, должность, контакты,
оклад, а также дата приема
на работу;
- Стаж работы в данной организации.
2.1.2 ДОПОЛНИТЕЛЬНЫЕ
КОМПОНЕНТЫ БАЗЫ ДАННЫХ
И ВИД СХЕМЫ ДАННЫХ
В каждой организации существуют отделы/подотделы
и определенные должности в этих отделах.
Также полезно знать такую информацию
о сотрудниках организации, как знание
иностранных языков и работа в других
организациях.
Проанализировав складывающуюся
картину компонентов базы данных,
можно получить такую схему
данных БД:
Рис 2.1 Схема
данных
2.2 ИНСТРУМЕНТАЛЬНЫЕ
СРЕДСТВА ПРОЕКТИРОВАНИЯ
БАЗ ДАННЫХ
Исходя из вышеизложенного текста, схема
данных в дипломной БД была разработана
вручную, не прибегая к существующим инструментальным
средствам. Это обусловлено тем, что данная
БД относительно простая. Но для больших
баз данных с десятками таблиц ручное
проектирование чревато ошибками и значительными
упущениями, поэтому ниже будут описаны
некоторые средства проектирования баз
данных в порядке ознакомления.
ERwin
ERwin
является современным инструментом
CASE - моделирования (Computer Aided Software Engineering)
баз данных, удовлетворяющим ряду
требований:
-
Он дает возможность разработчику сконцентрироваться
на моделировании, а не на проблемах с
графическим отображением
диаграммы. Инструмент автоматически
размещает сущности на диаграмме,
позволяет иметь развитые и простые в
управлении средства визуализации
и создания представлений модели.
-
Инструмент проверяет диаграмму на согласованность,
автоматически определяет и разрешает
несоответствия. Однако инструмент может
быть настраиваемым и при желании предоставлять
разработчику некоторую свободу в действиях
и право самому разрешать несоответствия
или отступления от методологии.
-
Инструмент моделирования поддерживает
как логическое, так и физическое моделирование.
-
Современный инструмент позволяет автоматически
генерировать СУБД.
ERwin
7 – мощное и простое в использовании
средство конструирования баз
данных. Проектирование инфологической
модели базы данных осуществлялось
с помощью этого инструмента. Разработка
модели базы данных состояла из двух этапов:
составление логической модели и создание
на ее основе физической модели. ERwin
полностью поддерживает такой процесс,
он имеет два представления модели: логическое
(logical) и физическое (physical). Таким образом,
разработчику предоставляется возможность
строить логическую модель базы данных,
не задумываясь над деталями физической
реализации, т.е. уделяя основное внимание
требованиям к информации и бизнес-процессам,
которые будет поддерживать будущая база
данных. ERwin имеет очень удобный пользовательский
интерфейс, позволяющий представить базу
данных в самых различных аспектах. Например,
ERwin имеет такие средства визуализации
как "хранимое представление" (stored
display) и "предметная область" (subject
area). Хранимые представления позволяют
иметь несколько вариантов представления
модели, в каждом из которых могут быть
подчеркнуты определенные детали, которые
вызвали бы перенасыщение модели, если
бы они были помещены в одном представлении.
Предметные области помогают вычленить
из сложной и трудной для восприятия модели
отдельные фрагменты, которые относятся
лишь к определенной области, из числа
тех, что охватывает информационная модель.
Возможность
использования модели ERwin одновременно
для логического и физического
представления данных позволяет
по окончании работы получить полностью
документированную модель. ERwin , как
и инструмент моделирования бизнес-процессов
BPwin, интегрирован с генератором
отчетов фирмы Logic Works - RPTwin. Это средство
позволяет получать подробные отчеты
по модели, освещая самые различные
ракурсы и аспекты. Инструмент RPTwin
поставляется вместе с ERwin и имеет
богатый набор встроенных отчетов,
позволяющих получать многогранную
информацию по модели. Документирование
структуры данных является очень
важной частью моделирования, т.к. это
позволяет другим разработчикам
или лицам, которые будут сопровождать
систему, быстрее начать ориентироваться
во внутренней структуре и понимать назначение
компонентов.
ERwin
имеет средство, выполняющее задачу,
обратную генерации, что называется
"обратная разработка" (reverse engineering).
Т.е. ERwin может присоединиться
к СУБД, получить всю информацию
о структуре базы данных и
отобразить ее в графическом
интерфейсе, сохранив все сущности,
связи, атрибуты и прочие свойства.
Таким образом, можно переносить
существующую структуру данных
с одной платформы на другую,
а также исследовать структуру
существующих баз данных.
ERwin
имеет средство Complete-Compare, которое
является единственным на данный
момент средством интерактивной
разработки. ERwin демонстрирует
разногласия между моделью и
базой данных, эти несоответствия
можно переносить или оставлять
без изменений. При помощи этого
средства можно все изменения
модели вносить в базу данных
автоматически без необходимости
контроля за соответствием модели
и базы данных "вручную", при
этом существующие данные не
будут затронуты.
CASE-средство
ERWin было выбрано в качестве средства проектирования
базы данных по следующим причинам:
ERWin поддерживает
прямое (создание БД на основе модели)
и обратное (генерация модели по имеющейся
базе данных) проектирование для 20 типов
СУБД;
увеличивает
производительность труда благодаря удобному
интерфейсу и уменьшает число рутинных
операций, облегчает и сокращает работу;
позволяет
максимально повысить производительность
информационной системы благодаря поддержке
работы с БД на физическом уровне, учитывая
особенности каждой конкретной СУБД;
поддерживает
методологию структурного моделирования;
позволяет
повторно использовать компоненты созданных
ранее моделей, а также использовать наработки
других разработчиков, что повышает
эффективность работы;
позволяет
переносить структуру БД из СУБД одного
типа СУБД в другой;
позволяет
документировать структуру БД (позволит
получить отчеты презентационного качества);
продукт можно
использовать на всех стадиях жизненного
цикла баз данных: при проектировании,
разработке, тестировании и поддержке;
позволяет
получить точную и наглядную информацию,
где хранятся данные и как получить к ним
доступ;
позволяет,
используя визуальные средства, описать
структуру БД, а затем автоматически сгенерировать
файлы данных для любого типа СУБД.
BPwin
Система
BPwin поможет повысить конкурентоспособност ,
оптимизировать процессы управления.
BPwin
- это незаменимый инструмент
менеджеров и бизнес-аналитиков,
а начиная с версии 1.8, в которую
включена поддержка диаграмм
потоков данных и методики IDEF3
(BPwin Professional), становится в руках
системных аналитиков и разработчиков
и мощным средством моделирования
процессов при создании корпоративных
информационных систем.
BPwin
обладает интуитивно-понятным графическим
интерфейсом, помогает быстро
создавать и анализировать модели
с целью оптимизации деловых
и производственных процессов.
Применение универсального графического
языка бизнес-моделирования IDEF0 обеспечивает
логическую целостность и полноту
описания, необходимую для достижения
точных и непротиворечивых результатов.
Посредством набора графических
инструментов BPwin позволяет Вам легко
построить схему процесса, на
которой показаны исходные данные, результаты
операций, ресурсы, необходимые для их
выполнения, управляющие воздействия,
взаимные связи между отдельными работами.
BРwin
поддерживает ссылочную целостность,
не допуская определения некорректных
связей и гарантируя непротиворечивость
отношений между объектами при
моделировании. Встроенный механизм
вычисления стоимости позволяет
оценивать и анализировать затраты
на осуществление различных видов
деловой активности Механизм
вычисления расходов на основе
выполняемых действий (Activity-Based Costing,
ABC) - это технология, применяемая
для оценки затрат и используемых
ресурсов. Она помогает распознать
и выделить наиболее дорогостоящие
операции для дальнейшего анализа.
BPwin
может генерировать отчеты непосредственно
в формате MS Excel и Word для последующей
обработки и использования в
других приложениях. Связь с
ERwin (моделирование данных в стандарте
IDEF1X) позволяет сократить время
проектирования и разработки
сложных информационных систем.
Для системных аналитиков тесная
интеграция BРwin с инструментом проектирования
баз данных открывает уникальные
возможности по созданию комплексных
систем, в которых ERwin служит для
описания информационных объектов
системы, в то время как BPwin
отражает функциональные особенности
предметной области. Связывая
сущности и атрибуты модели
данных с информацией о выполняемых
действиях, Вы можете продолжить
анализ процессов на новом
уровне с одновременной перекрестной
проверкой моделей процессов
и данных.
Основные
характеристики BPwin
- Развитая методология
функционального моделирования на основе
IDEF0
- Мощные редакторы для
описания операций, связей и вычисления
затрат на выполнение работ
- Иерархическая структура
диаграмм, облегчающая последовательное
уточнение элементов модели
- Контекстные диаграммы
для описания границ системы, области
действия, назначения объектов
- Декомпозиционные диаграммы
для описания особенностей взаимодействия
различных процессов
- Расширенные возможности
по поддержанию ссылочной целостности
- Поддержка методологии
IDEF3
- Экспорт моделей в средства
имитационного моделирования
- Интеграция и связь
со средством проектирования баз данных
ERwin (методология IDEF1X)
- Поддержка свойств,
определяемых пользователем. Описание
моделей может быть расширено за счет
свойств, определяемых пользователем,
включая мультимедийные документы.
- Интеграция с ModelMart,
поддерживающим мощный набор инструментальных
программных средств, обеспечивающих
совместное (групповое) проектирование
и разработку программных систем, включая
механизмы объединения моделей и анализа
изменений, контроль версий, возможность
создания "компонент" модели и т.д.
Для организации хранилища моделей в ModelMart
используются СУБД на платформах Oracle,
Sybase, Informix или SQL Server. Кроме того, поддерживаются
прямые связи ModelMart с ERwin и BPwin.
- Удобный интерфейс
пользователя. В распоряжении пользователей
имеется проводник, ставший привычным
в среде Windows 95/NT, позволяющий легко переходить
с одной диаграммы на другую простым перемещением
по "дереву" проводника.
- Расширенная архитектура.
BPwin поддерживает 16- и 32-х разрядные системы,
позволяя организовать совместную работу
для всех участников проекта.
-
Автоматическая поддержка изменения размеров.
BPwin поддерживает автоматическую настройку
размеров диаграмм и возможность изменения
масштабов изображения моделей.
Это то, что касается проектирования
систем и баз данных. Далее
речь пойдет о программных
продуктах для реализации системы.
Для данного проекта будут
использованы следующие программные
продукты:
- Windows – операционная
система;
- Apach– web-сервер;
- MySQL – СУБД;
- PHP – язык программирования.
- JavaScript – объектно-ориентирова ный язык
программирования.
- AJAX – особый подход к построению интерактивных
пользовательских интерфейсов веб-приложений.
- JQuery – библиотека JavaScript для работы с
AJAX.
PHP
PHP
(Hypertext Preprocessor) — язык программирования,
созданный для генерирования HTML-страниц
на web-сервере и работы с базами данных.
РНР
серверный язык создания сценариев,
разработанный специально для Web.
Преимуществом
PHP является предоставление web-разработчикам
возможности быстрого создания динамически
генерируемых web-страниц. В HTML-страницу
можно внедрить код РНР, который
будет выполняться при каждом
ее посещении.
Одно
из замечательных свойств РНР
в том, что он доступен как для
Windows, так и для UNIX и выполняется
на любых полнофункциональных web-серверах.
Синтаксис PHP подобен
синтаксису обычного языка.
Код
РНР очень похож на Си с некоторыми
элементами из Perl. Это заметно снижает
начальные усилия при изучении РНР.
PHP — язык, сочетающий достоинства Perl
и Си и специально нацеленный на работу
в интернете.
Языку
PHP присуща простота. Для работы программы
не требуется описывать какие-либо
переменные, используемые модули. Не придется
подгружать библиотеки, указывать специальные
параметры компиляции. PHP исполняет
код, находящийся внутри ограничителей
<?php ?>. Всё, что находится вне ограничителей,
выводится без изменений. Это очень удобно
для вставки PHP-кода в HTML-документ. PHP является
языком программирования с динамической
типизацией, не требующим указания типа
при объявлении переменных, равно как
и самого объявления переменных. Преобразования
между скалярными типами зачастую осуществляются
неявно без дополнительных усилий
Языку
PHP присуща эффективность. Эффективность
является исключительно важным фактором
при программировании для многопользовательски
сред, к числу которых относится
web .
По
некоторым оценкам, большинство PHP-сценариев
(особенно не очень больших размеров)
обрабатываются быстрее аналогичных
им программ, написанных на Perl. Производительность
PHP вполне достаточна для создания
серьезных web-приложений.
Языку
PHP присуща гибкость. Поскольку РНР
является встраиваемым (embedded) языком, он
отличается исключительной гибкостью
по отношению к потребностям разработчика.
Хотя РНР обычно рекомендуется использовать
в сочетании с HTML, он с таким
же успехом интегрируется в WML, XML
и в других языках. Кроме того,
хорошо структурированные приложения
РНР легко расширяются по мере
необходимости .
PHP
полностью независим от браузеров, поскольку
перед отправкой клиенту сценарии РНР
полностью компилируются на стороне сервера.
Поскольку
РНР не содержит кода, ориентированного
на конкретный web-сервер, пользователи
не ограничиваются определенными серверами.
Поскольку серверы Apache, Microsoft IIS, Netscape
Enterprise Server, Stronghold и Zeus работают на разных
платформах, РНР в целом является платформенно
- независимым языком и существует на таких
платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT/2000/XP/2003.
Все
эти факторы обуславливают выбор
PHP как основного языка сценариев в разрабатываемой
системе.
Архитектура
Web-баз данных
Теперь,
когда рассмотрена внутренняя архитектура
базы данных, пришло время взглянуть
на внешнее построение системы Web-баз
данных и обсудить методологию ее
разработки.
Основная
операция Web-сервера проиллюстрирована
на рис. 2.2. Эта система состоит
из двух объектов: Web-браузера и Web-сервера.
Между ними должен существовать канал
связи. Web-браузер посылает запрос на
сервер, сервер отсылает обратно ответ.
Для сервера, отсылающего обычные
статические страницы, такая архитектура
подходит.
Архитектура
же сайта, который включает в себя
базу данных, несколько сложнее.
Рис. 2.2 Отношение типа клиент/сервер между
Web-браузером и Web-сервером требует наличия
связи.
Приложения
Web-баз данных, которые разрабатываются
в этом проекте , наследуют
глобальную структуру Web-баз данных,
показанную на рис. 2.3.
Рис. 2.3
Базовая архитектура Web-баз данных включает
в себя Web-браузер
Web-cepвep,
сценарный механизм и сервер
баз данных
Типичная
транзакция Web-базы данных состоит из
этапов, обозначенных цифрами на рис.
2.3.
1.
Web-браузер пользователя отправляет
HTTP-запрос определенной Web-страницы.
2.
Web-сервер принимает запрос на
results.php, получает файл и передает
его механизму РНР на обработку.
3.
Механизм РНР начинает синтаксический
анализ сценария. В сценарии присутствует
команда подключения к базе
данных и выполнения запроса
в ней. РНР открывает соединение
с сервером MySQL и отправляет необходимый
запрос.
4.
Сервер MySQL принимает запрос в
базу данных, обрабатывает его,
а затем отправляет результаты
— в данном случае, список книг
— обратно в механизм РНР.
5.
Механизм РНР завершает выполнение
сценария, форматируя результаты
запроса в виде HTML, после чего
отправляет результаты в HTML-формате
Web-серверу
6.
Web-сервер пересылает HTML в браузер,
с помощью которого пользователь
просматривает необходимую информацию,
либо получает картинку или
другой иной файл.
Процесс
этот, как правило, протекает вне
зависимости от того, какой сценарный
механизм и какой сервер баз данных
используется. Зачастую программное обеспечение
Web-сервера, механизм РНР и сервер баз данных
находятся на одной машине. Правда, не
менее часто сервер базы данных работает
на другой машине. Это делается из соображений
безопасности, увеличение объема или разделения
потока. С точки зрения перспектив развития,
в работе оба варианта одинаковы, однако
в план производительности второй вариант
может оказаться более предпочтительным.
MySQL
MySQL
- свободная система управления
реляционными базами данных. Разработка
принадлежит Майклу Монти
Видениус (Michael Widenius). MySQL имеет двойное
лицензирование. MySQL может распространяться
в соответствии с условиями
лицензии GPL (General Public License), это означает,
что применять и модифицировать его может
любой желающий. Такое ПО можно получать
по Internet и использовать бесплатно. При
этом каждый пользователь может изучить
исходный код и изменить его в соответствии
со своими потребностями. Однако по условиям
GPL, если какая-либо программа включает
исходные коды MySQL, то она тоже должна распространяться
по лицензии GPL. Это может расходиться
с планами разработчиков, не желающих
открывать исходные тексты своих программ.
Для таких случаев предусмотрена коммерческая
лицензия компании MySQL AB, которая обеспечивает
качественную защиту программных продуктов.
MySQL
является наиболее приспособленной для
применения в среде web СУБД (системой управления
базами данных). Известно, что для исполнения
приложений клиента на большинстве хостинг-
площадок провайдеры предоставляют небольшое
количество ресурсов (как вычислительных,
так и дисковых). Поэтому для данного применения
необходима высокоэффективная СУБД, обладающая
высокой надежностью (большинство web-приложений
и сайтов должны работать в режиме 24/7).
По
всем этим причинам MySQL признана стандартом
в области СУБД для web и в ней развиваются
возможности для использования в любых
критичных бизнес-приложениях, то есть
она конкурирует на равных с такими СУБД,
как Oracle, IBM, Microsoft и Sybase и при этом является
бесплатной.
Apache Apache
HTTP - сервер (сокращение от англ. a patchy
server) — свободный web-сервер.
Основными
достоинствами Apache считаются надёжность
и гибкость конфигурации. Он позволяет
подключать внешние модули для предоставления
данных, использовать СУБД для аутентификации
пользователей, модифицировать сообщения
об ошибках и т. д. Поддерживает IPv6.
Его
недостатком наиболее часто называется
отсутствие удобного стандартного графического
интерфейса для администраторов.
DHTML Dynamic HTML или DHTML —
это способ создания интерактивного веб-сайта,
использующий сочетание статичного языка
разметки HTML, встраиваемого (и выполняемого
на стороне клиента) скриптового языка JavaScript, CSS (каскадных
таблиц стилей) и DOM (объектной
модели документа).
Он может быть
использован для создания приложения
в веб-браузере: например для более
простой навигации или для придания интерактивности
форм. DHTML может быть использован для динамического
перетаскивания элементов по экрану. Также
он может служить как инструмент для создания
основанных на браузере видеоигр.
DHTML приложения,
которые вполне автономны в
браузере, без серверной поддержки,
такой как база данных.
JavaScript JavaScript — объектно-ориентированный скриптовый язык
программирования. JavaScript обычно используется
как встраиваемый язык для программного
доступа к объектам приложений. Наиболее
широкое применение находит в браузерах как
язык сценариев для придания интерактивности веб-страницам.
Основные
архитектурные черты: динамическая
типизация, слабая типизация, автоматическое
управление памятью, прототипное программирование,
функции как объекты первого класса.
На JavaScript
оказали влияние многие языки, при
разработке была цель сделать язык
похожим на Java, но при этом лёгким
для использования непрограммистами.
Языком JavaScript не владеет какая-либо компания
или организация, что отличает его от ряда
языков программирования, используемых
в веб-разработке.
JavaScript
обладает рядом свойств объектно-ориентированного
языка, но реализованное
в языке прототипирование обусловливает отличия
в работе с объектами по сравнению с традиционными
объектно-ориентиров нными языками. Кроме
того, JavaScript имеет ряд свойств, присущих функциональным языкам — функции как объекты первого класса, объекты как списки, карринг, анонимные функции, замыкания —
что придаёт языку дополнительную гибкость.
Несмотря на
схожий с Си синтаксис, JavaScript по сравнению
с языком Си имеет
коренные отличия:
объекты,
с возможностью интроспекции;
функции как объекты первого класса;
автоматическое приведение типов;
автоматическая сборка мусора;
анонимные функции.
В языке отсутствуют
такие полезные вещи, как:
модульная система: JavaScript не предоставляет
возможности управлять зависимостями
и изоляцией областей видимости;
стандартная библиотека: в частности, отсутствует интерфейс программирования
приложений по
работе с файловой системой, управлению
потоками ввода/вывода, базовых типов
для бинарных
данных;
стандартные интерфейсы к веб-серверам и базам данных;
система управления
пакетами, которая
бы отслеживала зависимости и автоматически
устанавливала их.
AJAX AJAX (от англ. Asynchronous
Javascript and XML — «асинхронный JavaScript и XML») —
подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузерас веб-сервером. В результате, при обновлении
данных, веб-страница не перезагружается
полностью, и веб-приложения становятся
более быстрыми и удобными.
По-английски AJAX
произносится как эй-джэкс, по-русски
довольно распространено ая?кс.
AJAX — не самостоятельная
технология, а концепция использования
нескольких смежных технологий. AJAX базируется
на двух основных принципах:
- использование
технологии динамического обращения
к серверу «на
лету», без перезагрузки всей страницы
полностью, например:
-
с использованием XMLHttpRequest (основной
объект);
-
через динамическое создание
дочерних фреймов[1];
- через динамическое создание
тега <script>[2].
- использование DHTML для
динамического изменения содержания страницы;
В качестве формата
передачи данных обычно используются
JSON или XML.
Преимущества:
-
экономия трафика -
использование AJAX позволяет значительно сократить трафик при работе с веб-приложением
благодаря тому, что часто вместо загрузки
всей страницы достаточно загрузить только
изменившуюся часть, как правило, довольно
небольшую; -
уменьшение нагрузки
на сервер - AJAX позволяет несколько снизить
нагрузку на сервер; к примеру, на странице
работы с почтой, когда вы отмечаете прочитанные
письма, серверу достаточно внести изменения
в базу данных и отправить клиентскому
скрипту сообщение об успешном выполнении
операции без необходимости повторно
создавать страницу и передавать её клиенту; -
ускорение реакции интерфейса -
поскольку нужно загрузить только изменившуюся
часть, пользователь видит результат своих
действий быстрее.
Недостатки: -
Отсутствие интеграции
со стандартными инструментами
браузера.
Динамически создаваемые
страницы не регистрируются браузером
в истории посещения страниц,
поэтому не работает кнопка «Назад»,
предоставляющая пользователям
возможность вернуться к просмотренным
ранее страницам, но существуют скрипты,
которые могут решить эту проблему.
Другой недостаток
изменения содержимого страницы
при постоянном URL заключается в невозможности
сохранения закладки на желаемый материал.
Частично решить эти проблемы можно с
помощью динамического изменения идентификатора фрагмента (части URL после
#), что позволяют многие браузеры. -
Динамически загружаемое
содержимое недоступно
поисковикам (если не
проверять запрос, обычный
он или XMLHttpRequest).
Поисковые машины
не могут выполнять JavaScript,
поэтому разработчики должны позаботиться
об альтернативных способах доступа к
содержимому сайта. -
Старые методы учёта
статистики сайтов становятся
неактуальными.
Многие сервисы
статистики ведут учёт просмотров новых
страниц сайта. Для сайтов, страницы
которых широко используют AJAX, такая
статистика теряет актуальность. -
Усложнение проекта.
Перераспределяется
логика обработки данных — происходит
выделение и частичный перенос на сторону
клиента процессов первичного форматирования
данных. Это усложняет контроль целостности
форматов и типов. Конечный эффект технологии
может быть нивелирован необоснованным
ростом затрат на кодирование и управление
проектом, а также риском снижения доступности
сервиса для конечных пользователей. -
Требуется включенный JavaScript
в браузере.
JQuery jQuery — библиотека JavaScript, фокусирующаяся на
взаимодействии JavaScript и HTML.
Библиотека jQuery помогает легко получать
доступ к любому элементу DOM,
обращаться к атрибутам и содержимому
элементов DOM, манипулировать ими. Также
библиотека jQuery предоставляет удобный API по
работе с Ajax.
В
данной работе библиотека JQuery будет использована
для работы с технологией AJAX.
2.3 ОПИСАНИЕ
СТРУКТУРЫ БАЗЫ ДАННЫХ
Пришло
время описать структуру базы
данных разрабатываемой системы.
БД
состоит из 12 таблиц:
- организации
– содержит информацию о предприятии
и его филиалах;
- отделы –
содержит информацию по отделам
организаций;
- должности
– содержит список должностей,
привязанных к отделам из таблицы
«отделы»;
- сотрудники
– список карточек сотрудников
организаций;
- образование
– информация об образовании
сотрудников (ВУЗ, год и т.п.);
- типы образования
– содержит типы образования,
как то: высшее, среднее и т.п.;
- языки –
список всех возможных языков,
которые могут знать сотрудники;
- языки и
сотрудники – содержит в себе
информацию о владении яызками
сотрудниками организаций;
- стаж работы
– информация о работе в
других организациях и стаж;
- тип ставки
– содержит типы ставок для
сотрудников (полный рабочий день,
неполный рабочий день и т.п.);
- пол –
список полов сотрудников (мужской/женский);
- пользователи
– информация о пользователях
и их правах в системе.
Пройдем
по каждой таблице отдельно.
ОРГАНИЗАЦИИ
Таблица
«Организации» состоит из 11 следующих
полей полей: keyOrg (int)
- целое число, первичный ключ таблицы,
также будем считать это число табельным
номером организации; Name (varchar)
– поле типа строка, содержит полное название
организации; ShortName (varchar)
– поле типа строка, содержит сокращенное
название организации; Country (varchar)
– поле типа строка, содержит страну, в
которой зарегистрирована организация; City (varchar)
– поле типа строка, содержит город, в
котором зарегистрирована организация; Address (varchar)
– поле типа строка, содержит адрес, по
которому зарегистрирована организация; Phone (varchar)
– поле типа строка, содержит контактный
телефон организации; Fax (varchar)
– поле типа строка, содержит контактный
факс организации; Mail (varchar)
– поле типа строка, контактный e-mail организации; Main (bool)
– флаг, содержит информацию является
ли данная органищация головным офисом
или это филиал (1 или 0 соответственно); Subject (int)
– целочисленное поле, содержит в себе
табельный номер организации, которой
подчиняется филиал.
ОТДЕЛЫ
Таблица
«Отделы» состоит из 5 следующих
полей: keyDep (int)
– целочисленное поле, первичный ключ
таблицы, по-умолчанию табельный номер
отдела; DepName (varchar)
– строковое поле, название отдела; keyOrg (int)
– целое число, содержит табельный номер
организации, в которой числится данный
отдел; SubDep (bool)
– флаг, определяет является ли данный
отдел подразделением 1-го уровня (содержит
ли в себе другие отделы, 1 или 0 соответственно); Subj (int)
– целое число, содержит табельный номер
подразделения 1-го уровня, которому подчиняется
данный отдел.
ДОЛЖНОСТИ
Таблица
«Должности» состоит из 4 следующих
полей: keyPos (int)
– целочисленное поле, первичный ключ
таблицы, табельный номер должности; Pos (varchar)
– поле типа строка, название должности; keyDep (int)
– целочисленное поле, содержит табельный
номер отдела, за которым закреплена должность; Vacancy (bool)
– флаг, определяет является ли данная
должность вакантной или уже занята (1
или 0 соответственно).
СОТРУДНИКИ
Таблица
«Сотрудники» сотрудники состоит из 18
следующих полей: keyEmp (int)
– целое число, первичный ключ таблицы,
табельный номер сотрудника; FIOEmp (varchar)
– строковое поле, содержит фамилию, имя
и отчество сотрудника; keySex (int)
– целочисленное поле, содержит в себе
ключ из таблицы «Пол» и определяет
пол сотрудника; BornDate (date)
– поле типа дата, содержит дату рождения
сотрудника; BornPlace (varchar)
– строковое поле, место рождения сотрудника; Address (varchar)
– строкове поле, адрес проживания/прописки
сотрудника; PhoneHome (varchar)
– поле типа строка, содержит домашний
телефон сотрудника; PhoneMob (varchar)
– строковое поле, содержит мобильный
телефон сотрудника; keyEduType (int)
– целое число, содержит ключ таблицы
типов образования, определяет тип образования
сотруника; keyOrg (int) – целочисленное
поле, содержит табельный номер органищации,
за которой закреплен сотрудник; keyDep (int) – целое
число, содержит табельный номер отдела,
за которым закреплен сотрудник; keyPos (int) – целочисленное
поле, табельный номер должности, за которой
закреплен сотрудник; PhoneFax (varchar) –
строковое поле, содержит внутренний телефон/факс
сотрудника; Pay (varchar) – поле
типа строка, оклад сотрудника; DateWork (date) –
поле типа дата, содержит дату приема сотрудника
на работу; keyRate (int) – целочисленное
поле, содержит ключ таблицы «Тип ставки»,
определяет ставку сотрудника; Exp
(int) – целочисленное поле, содержит
стаж работы сотрудника в данной организации. Archive (bool)
– флаг, определяет сотрудника, которого
уволили, но в силу имеющийся объемной
дополнительной информации о сотрудниках,
нет смысла удалять запись из БД.
ОБРАЗОВАНИЕ
Таблица
«Образование» состоит из 8 следующих
полей: keyEmpEdu (int) –
целое число, первичный ключ таблицы; keyEmp (int) – целое
число, содержит табельный номер сотрудника,
на которого оформляется карточка информации
об образовании; Institution (varchar)
– строковое поле, содержит полное название
учебного заведения, которое окончил сотрудник; InstAbbr (varchar) –
поле типа строка, аббревиатура учебного
заведения, которое окончил сотрудник; Faculty (varchar) –
поле типа строка, содержит факультет
учебного заведения; Specialty (varchar)
– строковое поле, специальность, на которой
учился сотрудник; ReceiptDate (year) –
поле типа год, содержит год поступления
в учебное заведение; ExpirationDate (year)
– поле типа год, содержит год окончания
учебного заведения.
ТИПЫ
ОБРАЗОВАНИЯ
Таблица
«Типы образования» состоит из 2
полей: keyEduType (int) –
целое число, первичный ключ таблицы; EduType (varchar) –
строковое поле, содержит название типа
образования;
ЯЗЫКИ
Таблица
языки состоит из 2 полей: keyLang (int) – целое
число, первичный ключ таблицы; Lang (varchar) – строковое
поле, содержит название языка;
ЯЗЫКИ
И СОТРУДНИКИ
Таблица
«Языки и сотрудники» состоит
из следующих 3 полей: keyEmpLang (int) –
целое число, первичный ключ таблицы; keyEmp (int) – целое
число, содержит табельный номер сотрудника; keyLang (int) – целое
число, содержит ключ таблицы «Языки»,
определяет язык, которым владеет сотрудник;
СТАЖ
РАБОТЫ
Таблица
«Стаж работы» состоит из 6 полей: keyExp (int) – целое
число, первичный ключ таблицы keyEmp (int) – целое
число, содержит табельный номер сотрудника; Org (varchar) – строковое
поле, содержит название организации,
в которой работал сотрудник; datebegin (year) –
поле типа год, содержит год приема на
работу сотрудника, в данную организацию; dateend (year) – поле
типа год, содержит год увольнения сотрудника
из данной организации; exp (int) – целое
число, содержит стаж работы сотрудника
в данной организации.
ТИП
СТАВКИ
Таблица
«Тип ставки» состоит из следующих
2 полей: keyRate (int) – целочисленное
поле, первичный ключ таблицы; Rate (varchar) – поле
типа строка, содержит название типа ставки.
ПОЛ
Талица
«Пол» состоит из 2 полей: keySex (int) – целое
число, первичный ключ таблицы; Sex (varchar) – строковое
поле, содержит пол;
ПОЛЬЗОВАТЕЛИ
Таблица
«Пользователи» состоит из 15 полей: keyUser (int) – целое
число, первичный ключ таблицы; UserName (varchar) –
строковое поле, имя пользователя, уникальное; pass (varchar) – строковое
поле, пароль пользователя; admin (bool) – флаг,
определяет является ли пользователь
администратором системы.
Остальные
11 полей являются флагами, определяющими
права доступа каждого пользователя
к таблицам базы данных.
2.4
РАЗРАБОТКА ВЕБ-ИНТЕРФЕЙСА
После
всех вышеописанных действий мы пришли
к непосредственно разработке веб-интерфейса
управления системой.
В
любой базе данных имеются пользователи
с разными правами доступа
к данным, и наша БД не исключение.
Разработаем страницу входа в систему.
На ней должна находится форма авторизации
с полями «Имя пользователя», «Пароль»,
а также кнопка входа в систему, которая
обрабатывает данные из полей и по результатам
разрешает вход в систему или отказывает.
На рисунке ниже (2.4.1) приведена получившаяся
страница.
Рис. 2.4.1
Страница входа в систему.
При
отказе выводится эта же страница
входа в систему, но с соответствующим
сообщением. При успешно выполненном
входе мы попадаем в главное меню
системы.
Главное
меню состоит из списка в виде ссылок
доступных данному пользователю
страниц. При переходе по ссылкам
мы можем просматривать информацию
из таблиц. Также в главном меню имеется
обработчик выхода из системы. На рисунках
ниже приведена страница отказа входа
в систему, а также главное меню при успешной
авторизации.
Рис. 2.4.2
Страница отказа входа в систему
Рис. 2.4.2
Главное меню системы (вход выполнен
от пользователя с правами администратора)
Рис. 2.4.3
Главное меню программы (вход выполнен
от пользователя с правами доступа
к таблице «Организации»)
На
рисунках главной программы системы
можно заметить, что ссылка «Отчеты»
доступна и от администратора, и
от другого пользователя с ограниченными
правами. Стоит отметить, что в
ходе разработки системы было принято
решение сделать отчеты доступными
всем пользователям, т.к. при выводе
отчетов никаких изменений в
таблицах сделать нельзя. Так же
хочется отметить, что права доступа
по умолчанию даются на все виды
действий с конкретной таблицей. Такое
решение целесообразно в связи
с политикой доступа к данной
системе, принятой в организации, в
которую внедряется система.
Теперь
пройдем по всем ссылкам таблиц и
перечислим основные функции и отдельные
моменты работы системы.
Начнем
с таблицы «Организации». При
переходе по ссылке открывается окном
с иерархическим списком организаций:
сначала отображается головной офис, затем
ниже идут филиалы, подчиняющиеся данной
организации. На странице также есть обработчики:
«Добавить новую организацию», «Назад»
и «На главную». Целесообразность по сути
одинаковых обработчиков «Назад» и «На
главную» обусловлена тем, что обработчик
«Назад» содержит в себе данные страницы,
с которой мы пришли к списку организаций.
Такие данные содержатся с суперглобальном
массиве PHP $_SERVER[‘HTTP_REFERE ’]. Дело в том,
что попасть к списку организаций в системе
можно с нескольких страниц. Обработчик
же «На главную» содержит прямую ссылку
в главное меню системы. Такое же решение
было принято для всех страниц, на которых
имеются эти два обработчика.
Рис. 2.4.5
Список организаций
При
переходе по ссылкам с названием
организаций открывается информация
о данной организации. Страницу можно
редактировать, можно удалять организацию
из таблицы БД, а также есть ссылка
перехода к отделам, которые закреплены
за данной организацией. Ниже будут
представлены рисунки информации об
организации, список отделов данной
организации, а также описание некоторых
моментов.
Рис. 2.4.6
Информация об организации
Рис. 2.4.7
Форма редактирования информации об
организации
Стоит
отметить, что на форме редактирования
мы видим выпадающий список «Подчиняется».
В данном списке присутствуют только
те организации, у которых стоит
флаг «Головной офис». Тут мы сталкиваемся
с вопросом: что же делать заносить
в поле «Подчиняется», если мы регистрируем
головной офис? Есть два простых
способа:
оставить
поле пустым;
занести
в поле номер этой же организации, чтобы
фактически она подчинялась сама себе.
Выбор какого-либо
способа в данной ситуации ни на
что не влияет. Было принято решение
использовать второй способ.
Рис. 2.4.8
Отделы
Информация
об отделах также представлена иерархическим
списком, в голове которого выступает
так называемое подразделение первого
уровня: это значит, что в составе
данного подразделения находятся
несколько подотделов, занимающихся
похожими делами. На рисунке 2.4.8 мы видим
подразделение первого уровня ИТ
(отдел Информационных технологий»),
в составе которого находятся подотделы
технической поддержки, системного администрирования
и программирования. На странице присутствуют
обработчики «Назад», «На главную», «К
организациям» (отправляет к информации
об организации, за которой закреплены
данные отделы) и «Добавить новый отдел».
Стоит
обратить внимание, как строится список
отделов, если открыть его с главной
страницы меню:
Рис. 2.4.8
Список отделов по организациям
Список в точности
повторяет страницу организацией с
той разницей, что при переходе
по ссылке организации открываются
отделы, закрепленные за этой организацией.
Здесь же Присутствует обработчик «К
должностям», который отправляет нас
к списку должностей, где мы имеем
возможность добавить, удалить или
отредактировать должность.
2.4.9 Список
должностей
Список
должностей отображается в виде таблицы
с полями табельного номера должности,
названия должности, отдела, за которым
закреплена должность, организации, флага
«Вакансия», который определяет является
ли данная должность вакантной, а
также обработчиков удаления и редактирования.