В техническом задании был определен перечень решаемых задач, после решения которых будет достигнута цель – «Разработать портал для электронного обучения абитуриентов»:
1. Создать базу данных для информационного обеспечения веб-портала;
2. Разместить на сервере основные веб-страницы и организовать их взаимосвязь, посредством меню навигации и ссылок;
3. Разработать функции регистрации и авторизации;
4. Разработать календарь событий;
5. Разработать форум для пользователей.
К списку представленных выше задач следует подобрать совокупность методов её решения. Под методом следует понимать систематизированную совокупность шагов, действий, которые нацелены на решение определённой задачи.
Анализ и выбор базы данных
Для решения первой задачи – создания базы данных, необходимо воспользоваться системой управления базами данных (СУБД). Базы данных - это специально разработанное хранилище для различных типов данных. Каждая база данных, имеет определённую модель (реляционная, документно-ориентированная), которая обеспечивает удобный доступ к данным. Системы управления базами данных - специальные приложения (или библиотеки) для управления базами данных различных размеров и форм.
|
|
По версии веб-сайта devacademy[1]самыми популярными СУБД являются:
· 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.