- •Введение
- •Часть 1.Техническое задание
- •1.1.Цель
- •1.1.Задачи
- •1.3.Технические требования
- •1.4.Требования к сервисам и функциональности веб-портала
- •1.5.Требования к системе управления веб-порталом
- •Часть 2.Технико-экономическое обоснование проекта
- •2.1. Анализ и выбор базы данных
- •Часть 3. Анализ поставленных задач и разработка на структурном уровне
- •2.2. Анализ и выбор web-сервера
- •2.3. Анализ и выбор Фреймворка
- •2.4. Анализ и выбор языков программирования
- •Часть 4. Разработка программных средств
- •4.1.Установка и настройка компонентов
- •4.2. Регистрация пользователей
- •4.3.Авторизация пользователей
- •4.4. Возможности администрирования
- •4.5. Отображение страниц web-портала.
- •4.6.Архитектура программного средства
- •Глава 5. Экономическая часть
- •5.1. Планирование комплекса работ по разработке темы и оценка трудоемкости
- •5.2. Расчет затрат на разработку проекта
- •5.3. Расчёт прибыли
- •5.4. Расчет показателя экономического эффекта
- •Заключение литература
Часть 3. Анализ поставленных задач и разработка на структурном уровне
В техническом задании был определен перечень решаемых задач, после решения которых будет достигнута цель – «Разработать портал для электронного обучения абитуриентов»:
Создать базу данных для информационного обеспечения веб-портала;
Разместить на сервере основные веб-страницы и организовать их взаимосвязь, посредством меню навигации и ссылок;
Разработать функции регистрации и авторизации;
Разработать календарь событий;
Разработать форум для пользователей.
К списку представленных выше задач следует подобрать совокупность методов её решения. Под методом следует понимать систематизированную совокупность шагов, действий, которые нацелены на решение определённой задачи.
2.1. Анализ и выбор базы данных
Для решения первой задачи – создания базы данных, необходимо воспользоваться системой управления базами данных (СУБД). Базы данных - это специально разработанное хранилище для различных типов данных. Каждая база данных, имеет определённую модель (реляционная, документно-ориентированная), которая обеспечивает удобный доступ к данным. Системы управления базами данных - специальные приложения (или библиотеки) для управления базами данных различных размеров и форм.
По версии веб-сайта devacademy1самыми популярными СУБД являются:
SQLite - легко встраиваемая в приложения база данных. Так как это система базируется на файлах, то она предоставляет довольно широкий набор инструментов для работы с ней, по сравнению с сетевыми СУБД. При работе с этой СУБД обращения происходят напрямую к файлам (в этих файлах хранятся данные), вместо портов и сокетов в сетевых СУБД. Именно поэтому SQLite очень быстрая, а также мощная благодаря технологиям обслуживающих библиотек.
MySQL - это самая распространенная полноценная серверная СУБД. MySQL очень функциональная, свободно распространяемая СУБД, которая успешно работает с различными сайтами и веб приложениями. Обучиться использованию этой СУБД довольно просто. Стоит заметить, что благодаря популярности этой СУБД, существует огромное количество различных плагинов и расширений, облегчающих работу с системой.
PostgreSQL - является самой профессиональной из всех трех рассматриваемых СУБД. Она свободно распространяемая и максимально соответствует стандартам SQL.
Приступая к выбору необходимой в проекте системы управления базами данных, прежде всего необходимо проанализировать преимущества и недостатки каждой из СУБД.
SQLite
Преимущества:
Файловая структура - вся база данных состоит из одного файла, поэтому её очень легко переносить на разные машины
Используемые стандарты - хотя может показаться, что эта СУБД примитивная, но она использует SQL. Некоторые особенности опущены (RIGHT OUTER JOIN или FOR EACH STATEMENT), но основные все-таки поддерживаются
Отличная при разработке и тестировании - в процессе разработки приложений часто появляется необходимость масштабирования. SQLite предлагает всё что необходимо для этих целей, так как состоит всего из одного файла и библиотеки написанной на языке C.
Недостатки:
отсутствие системы пользователей - более крупные СУБД включают в свой состав системы управления правами доступа пользователей. Обычно применения этой функции не так критично, так как эта СУБД используется в небольших приложениях.
отсутствие возможности увеличения производительности - опять, исходя из проектирования, довольно сложно выжать что-то более производительное из этой СУБД.
Когда следует использовать SQLite:
встроенные приложения - если необходима возможность легкого переноса приложения и не важна масштабируемость. Например, однопользовательские приложения, мобильные приложения или игры
прямой доступ к диску - при необходимости напрямую обращаться к диску можно выиграть при переходе на эту СУБД в функционале и простоте использования SQL языка
Тестирование - использование дополнительных процессов при тестировании функционала, очень замедляет приложение.
Когда следует отказаться от SQLite:
Многопользовательские приложения - если есть необходимость обеспечить доступ к данным для нескольких пользователей, да и к тому же различать их по правам доступа, то полноценная СУБД (например, MySQL) будет более логичным выбором
Запись больших объемов данных - одно из ограничений SQLite это операции записи. Разрешен только один процесс записи в промежуток времени, что сильно ограничивает производительность.
MySQL
Преимущества MySQL:
Простота в работе - установить MySQL довольно просто. Дополнительные приложения, например, GUI, позволяет довольно легко работать с БД
Богатый функционал - MySQL поддерживает большинство функционала SQL.
Безопасность - большое количество функций, обеспечивающих безопасность, которые поддерживается по умолчанию
Масштабируемость - MySQL легко работает с большими объемами данных и легко масштабируется
Скорость - упрощение некоторых стандартов позволяет MySQL значительно увеличить производительность.
Недостатки MySQL:
Известные ограничения - по задумке в MySQL заложены некоторые ограничения функционала, которые иногда необходимы в особо требовательных приложениях.
Проблемы с надежностью - из-за некоторых способов обработки данных MySQL (связи, транзакции, аудиты) иногда уступает другим СУБД по надежности.
Медленная разработка - Хотя MySQL технически открытое ПО, существуют жалобы на процесс разработки. Стоит заметить, что существуют другие довольно успешные СУБД, созданные на базе MySQL, например, MariaDB.
Когда следует использовать MySQL:
распределённые операции - если функционала SQLite не хватает, то стоит рассмотреть MySQL. Так как эта СУБД сочетает в себе продвинутый функционал и свободный доступ к исходному коду.
высокий уровень безопасности - система безопасности MySQL включает в себе простые и в то же время достойные способы защиты доступа к данным
веб-сайты и веб приложения - большинство сайтов и онлайн приложений спокойно работают с MySQL несмотря на некоторые ограничения. Будучи легкой в настройке и масштабируемой системой - MySQL проверена временем.
индивидуальные решения - если необходимо разработать какой-либо специфический проект, MySQL легко сможет помочь благодаря широким возможностям в настройке и функционалом.
Когда следует отказаться MySQL:
Соответствие стандартам -Так как MySQL не ставит для себя целью - полностью соответстввать стандртам SQL, то эта СУБД не полностью поддерживает SQL. Если в будущем вы планируете перейти на подобную систему, то MySQL - не лучший выбор.
Многопоточность - хотя некоторые движки БД довольно легко выполняют параллельное чтение, параллельные операции чтения-записи могут создать проблемы
Недостаток функционала - некоторые движки MySQL, например, не поддерживают полнотекстовый поиск.
PostgreSQL
Достоинства PostreSQL:
Открытое ПО соответствующее стандарту SQL - PostgreSQL - бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной системой.
Большое количество дополнений - несмотря на огромное количество встроенных функций, существует очень много дополнений, позволяющих разрабатывать данные для этой СУБД и управлять ими.
Объектность - PostrgreSQL это не только реляционная СУБД, но также и объектно-ориентированная с поддержкой наследования и много другого
Недостатки PostreSQL:
Производительность - при простых операциях чтения PostgreSQL может значительно замедлить сервер и быть медленнее своих конкурентов, таких как MySQL
Популярность - по своей природе, популярностью эта СУБД похвастаться не может, хотя и присутствует довольно большое сообщество.
Хостинг - в силу выше перечисленных факторов иногда довольно сложно найти хостинг с поддержкой этой СУБД.
Когда следует использовать PostreSQL
Целостность данных - когда надежность и целостность данных - ваши требования, PostgreSQL будет, пожалуй, лучшим выбором
Сложные пользовательские процедуры - если вам необходимо использовать пользовательские процедуры, то PostgreSQL имеет встроенную поддержку для них
Интеграция - если в будущем вы планируете переход на платные СУБД, например, Oracle, то сделать это с PostgreSQL будет довольно просто по сравнению с другими бесплатными СУБД
Сложная структура данных - по сравнению с другими открытыми СУБД PostgreSQL предоставляет больше возможностей для создания сложных структур данных без необходимости жертвовать какими-либо аспектами.
Когда следует отказаться от PostreSQL:
Скорость - если быстрое чтение единственный фактор, то стоит присмотреться к другим СУБД
Проанализировав все достоинства и недостатки СУБД, в качестве системы управления базами данных будет использоваться MySQL. Данный выбор был сделан по нескольким причинам:
SQLite не может обеспечить многопользовательность.
MySQL хорошо защищена, проста в освоении и работе с ней, а так же имеет высокую производительность.
PostreSQL хоть и имеет более богатый функционал, но более сложна в использовании, нежели чем MySQL. Производительность PostreSQL на порядок ниже чем у MySQL.
