Часть 3. Анализ поставленных задач и разработка на структурном уровне

В техническом задании был определен перечень решаемых задач, после решения которых будет достигнута цель – «Разработать портал для электронного обучения абитуриентов»:

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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: