СУБД MySQL – обоснование выбора и ее особенности


Содержание материала:

Основы создания баз данных MySQL

Дельфины всегда вызывали доверие у людей. Они ассоциируются у нас с добротой и радостью. Хоть дельфин и является символом MySQL , но это никак не объясняет той популярности, которой она пользуется во всем мире:

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

Особенности MySQL

Процедура создания базы данных MySQL ничем не отличается от других СУБД . Да и ее бесплатность тоже едва ли является основной причиной популярности данной системы. Например, SQL Server от Microsoft . В каждой версии данного продукта выходит его бесплатная редакция, и с довольно неплохими техническими характеристиками.

Особенности СУБД MySQL :

  • Чаще всего используется в качестве удаленного сервера;
  • Включает в себя большое количество типов таблиц;
  • Поставляется со специальным типом EXAMPLE , показывающим принцип создания новых таблиц;
  • Высокая степень масштабируемости за счет поддержки большинства популярных платформ;
  • Открытый исходный код – благодаря этому данная СУБД постоянно совершенствуется и модернизируется множеством разработчиков по всему миру;
  • Создано большое количество API , обеспечивающих взаимосвязь MySQL c основной частью всех программных языков;
  • Максимальный размер файла таблицы базы данных ограничивается лишь возможностями используемой операционной системы.

У ближайшего конкурента MySQL системы MS SQL Server в бесплатной редакции Express ограничение на размер базы данных составляет 10 ГБ.

  • Последняя версия СУБД 5.7.5m15 ( тестовая ) вышла в сентябре 2014.

Создание базы данных MySQL

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

Среда PHPMyAdmin является одной из самых популярных оболочек для работы с MySQL . Ее интерфейс во многом облегчает администрирование баз данных.

Для создания базы данных MySQL через PHPMyAdmin делаем следующее:

  • Заходим в оболочку;
  • Переходим на вкладку « Базы данных »;
  • В первое поле вводим название создаваемой базы данных, а из выпадающего списка выбираем нужную кодировку. В нашем случае это utf8_genegal_ci .

Длина имени базы данных не должна превышать 64 символа.

  • Затем нажимаем на кнопку « Создать »:
  • После этого имя созданной БД MySQL должно появиться в списках слева и внизу:

Теперь создадим в нашей базе данных первую таблицу. Делаем следующее:

  • В списке слева находим имя нашей базы данных и нажимаем на него:
  • В следующем окне вводим название таблицы и задаем количество столбцов;
  • Затем нажимаем на кнопку « Ok ».

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

  • Следующим шагом задаем структуру нашей таблицы. Прописываем имена и типы данных, которые будут храниться в столбцах таблицы;
  • После этого нажимаем на кнопку « Сохранить »:
  • Таблица нашей БД MySQL создана и готова для заполнения данными:

Но это не единственный способ, как можно создать базу данных в PHPMyAdmin . Аналогичный эффект можно получить, если воспользоваться SQL запросом. Для этого применяется команда CREATE . Ее синтаксис:

  • IF NOT EXISTS – служит для отслеживания уникальности имени базы данных. Если не указывать этот параметр, то в случае создания базы с одинаковым названием может возникнуть ошибка выполнения запроса;
  • db_name – указывается имя создаваемой базы данных;
  • CHARACTER SET charset – устанавливается кодировка базы данных. Если не указано, то используется значение по умолчанию;
  • COLLATE collation – задается порядок сортировки данных. Необязательный параметр.

Теперь создадим базу данных с помощью SQL запроса через оболочку PHPMyAdmin :

  • Переходим на вкладку « SQL »;
  • В появившемся окне редактора вводим запрос на создание базы данных;
  • Или жмем на иконку « Окно запроса ». Она находится слева над списком баз данных:
  • Внизу нажимаем на « Ok »:
  • После этого название нашей базы данных отобразится в списке слева:

Для удаления sql базы данных используйте команду DROP DATABASE «my_db» .

  • Запрос для создания базы данных с указанием необязательных параметров будет выглядеть следующим образом:

Настройка резервного копирования базы данных

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

Настраиваем резервное копирование базы данных в PHPMyAdmin . Порядок действий:

  • В списке слева выбираем нужную нам базу данных;
  • Жмем на вкладку « Экспорт »;
  • Нажимаем « Ок ».

Если в разделе « Способ экспорта » выбрать значение « Обычный », то перед вами раскроется большое окно с множеством параметров для настройки:

Теперь попытаемся восстановить сохраненную копию базы. Но для начала удалим уже существующий экземпляр. Переходим во вкладку « Операции » и нажимаем ссылку « Удалить базу данных »:

Для восстановления базы MySQL в PHPMyAdmin переходим на вкладку « Импорт ». В разделе « Импортируемый файл » в зависимости от места, где вы сохраняли копию базы данных, выбираем источник. После этого жмем на кнопку « ОК », расположенную в нижней части экрана:

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

Сжатие баз данных в MySQL

К сожалению, в MySQL изменение или ограничение размера баз данных не поддерживается. Из средств, встроенных в PHPMyAdmin для этого можно использовать лишь оптимизацию таблиц. Данная операция является еще одним параметром из выпадающего списка, изображенного выше.

Также для уменьшения размеров базы данных рекомендуется сохранять ее резервные копии в виде архивов. Сжатие ( компрессия ) резервных копий настраивается в одноименном пункте на вкладке « Экспорт » в разделе « Вывод »:

Еще одним способом уменьшения размера БД MySQL является следующий набор действий:

  • Создание дампа ( копии ) через командную строку с использованием команды mysqldump ;
  • Удаление всех баз данных;
  • Остановка всех службы MySQL ;
  • Последующее восстановление удаленных баз данных из дампа:

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

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

Как видите, MySQL является оптимальной СУБД для построения движков на основе php. А PHPMyAdmin – основным средством администрирования баз данных MySQL в интернете.

Основные преимущества СУБД MySQL

Читайте также:

  1. I. Основные подходы к управлению реализаций стратегических изменений.
  2. I.3. Основные принципы психологии.
  3. IV. Основные направления современной социологии.
  4. Microsoft Office 2007. Основные принципы интерфейса
  5. Mysql_num_rows(результат)
  6. N.B! Основные виды научения.
  7. VI Мартовские статьи. Основные результаты войны.
  8. VII.2. Основные особенности восприятия.
  9. Административно-контрольные методы УООС. Виды экологического лицензирования. Экологический контроль. Основные формы государственного экологического контроля.
  10. Банковский аудит и его основные направления
  11. Бихевиоризм и его основные черты.
  12. В каждом суставе различают основные элементы и добавочные образования.

Состав дистрибутива СУБД MySQL

Тема 1. Введение в СУБД MySQL

Дистрибутив MySQL включает следующие программные продукты:

Дата добавления: 2013-12-13 ; Просмотров: 6941 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Vladimir Drach. Official Web-Site. — Личный сайт Владимира Драча

Сравнение современных СУБД

Вторник, 30 Май 2020 15:13

Информацией, хранящейся в базе данных (БД), может быть всё что угодно: каталог продукции, информация о клиентах, контент веб-сайта и др. Для обеспечения доступа к информации, хранящейся в базе данных, а также для управления ею, применяют систему управления базами данных (СУБД). СУБД — это комплекс языко­вых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных. Так, СУБД, базирующиеся на использовании реляционной модели данных, называют ре­ляционными СУБД. Системы управления базами данных помогают отсортировать информацию, а также связать базы данных между собой, при этом предоставив отчет об изменениях и зарегистрированных событиях.

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

На что стоит обращать внимание

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

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

Если речь идёт о выборе СУБД для предприятия, то следует принять во внимание возможность СУБД «расти» вместе с развитием организации. Малому бизнесу могут потребоваться только базовые функции и возможности, а также небольшое количество информации, размещаемой в БД. Но требования могут существенно расти с течением времени, а переход на другую СУБД может стать проблемой.

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

1. Oracle 12c

Неудивительно, что корпорация Oracle предлагает одноимённый продукт, с которого обычно начинается рассмотрение вариантов популярных СУБД. Первая версия Oracle была создана в конце 70-х годов, имея на данный момент блестящую репутацию. Кроме того, существует несколько версий этого продукта для удовлетворения потребностей конкретной организации.

Актуальная версия Oracle на момент написания настоящей статьи — 12с — предназначена для облачных сред и может быть размещена на одном или нескольких серверах, это позволяет управлять базами данных, которые содержат миллиарды записей. Некоторые из функций новейшей версии Oracle включают в себя grid framework и использования как физических, так и логических структур.

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

Достоинства

  • Самые свежие инновации и впечатляющий функционал уже внедрены в этом продукте, поскольку компания Oracle стремится держать планку даже на фоне других разработчиков СУБД.
  • СУБД от Оракул является крайне надёжной, фактически это эталон надёжности среди подобных систем.

Недостатки

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

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

2. MySQL

MySQL — одна из самых популярных баз данных для веб-приложений. Фактически, является стандартом de facto для веб-серверов, которые работают под управлением операционной системы Linx. MySQL — это бесплатный пакет программ, однако новые версии выходят постоянно, расширяя функционал и улучшая безопасность. Существуют специальные платные версии, предназначенные для коммерческого использования. В бесплатной версии наибольший упор делается на скорость и надежность, а не на полноту функционала, который может стать и достоинством и недостатком — в зависимости от области внедрения.

Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

Эта СУБД позволяет выбирать различные движки для системы хранения, которые позволяют менять функционал инструмента и выполнять обработку данных, хранящихся в различных типах таблиц. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц. Она также имеет простой в использовании интерфейс, и пакетные команды, которые позволяют удобно обрабатывать огромные объемы данных. Система невероятно надежна и не стремится подчинить себе все доступные аппаратные ресурсы.

Достоинства

  • Распространяется бесплатно
  • Прекрасно документирована
  • Предлагает много функций, даже в бесплатной версии
  • Пакет MySQL включен в стандартные репозитории наиболее распространённых дистрибутивов операционной системы Linux, что позволяет устанавливать её элементарно
  • Поддерживает набор пользовательских интерфейсов
  • Может работать с другими базами данных, включая DB2 и Oracle.

Недостатки

  • Придётся потратить много времени и усилий, чтобы заставить MySQL выполнять несложные задачи, хотя другие системы делают это автоматически, например: создавать инкрементные резервные копии.
  • Отсутствует встроенная поддержка XML или OLAP.
  • Для бесплатной версии доступна только платная поддержка.

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

3. Microsoft SQL сервер

Ещё одной из популярных СУБД является программный продукт Microsoft SQL-сервер. Это система управления базами данных, движок которой работает на облачных серверах, а также локальных серверах, причем можно комбинировать типы применяемых серверов одновременно. Вскоре после выпуска Microsoft SQL сервер 2020, Microsoft адаптировала продукт для операционной системы Linux, а на Windows-платформе он работал изначально.

Одной из уникальных особенностей версии 2020 года является temporal data support (временная поддержка данных), которая позволяет отслеживать изменения данных с течением времени. Последняя версия Microsoft SQL-сервер поддерживает dynamic data masking (динамическую маскировку данных), которая гарантирует, что только авторизованные пользователи будут видеть конфиденциальные данные.

Достоинства

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

Недостатки

  • Цена для юридических лиц оказывается неприемлемой для большей части организаций.
  • Даже при тщательной настройке производительности корпорация SQL Server способен занять все доступные ресурсы.
  • Сообщается о проблемах с использованием службы интеграции для импорта файлов.

Идеально подходит для: крупных организаций, которые уже используют ряд продуктов Microsoft.

4. PostgreSQL

PostgreSQL является одним из нескольких бесплатных популярных вариантов СУБД, часто используется для ведения баз данных веб-сайтов. Это была одна из первых разработанных систем управления базами данных, поэтому в настоящее время она хорошо развита, и позволяет пользователям управлять как структурированными, так и неструктурированными данными. Может быть использован на большинстве основных платформ, включая Linux. Прекрасно справляется с задачами импорта информации из других типов баз данных с помощью собственного инструментария.

Движок БД может быть размещен в ряде сред, в том числе виртуальных, физических и облачных. Самая свежая версия, PostgreSQL 9.5, предлагает обработку больших объемов данных и увеличение числа одновременно работающих пользователей. Безопасность была улучшена благодаря поддержке DBMS_SESSION.

Достоинства

  • Является масштабируемым и способен обрабатывать терабайты данных.
  • Поддерживает формат json.
  • Существует множество предопределенных функций.
  • Доступен ряд интерфейсов.

Недостатки

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

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

5. MongoDB

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

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

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

Достоинства

  • Скорость и простота в использовании
  • Движок поддерживает json и другие традиционные документы NoSQL.
  • Данные любой структуры могут быть сохранены/прочитаны быстро и легко.

Недостатки

  • SQL не используется в качестве языка запросов.
  • Инструменты для перевода SQL-запросов в MongoDB доступны, но их следует рассматривать именно как дополнение.
  • Программа установки может занять много времени.

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

6. MariaDB

Эта СУБД является бесплатной, но как и многие другие бесплатные приложения, предлагает платные версии. Есть множество доступных плагинов расширений, пожалуй, это самая быстро-развивающаяся СУБД на данный момент.

MariaDB фактически — это ответвление от СУБД MySQL, разрабатываемое сообществом под лицензией GNU GPL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation. Толчком к созданию стала необходимость обеспечения свободного статуса СУБД, в противовес политике лицензирования MySQL компанией Oracle. Система лицензирования MariaDB обязывает участников, желающих добавить свой код в основную ветку СУБД, обмениваться своими авторскими правами с MariaDB Foundation для охраны лицензии и возможности создавать критические исправления для MySQL.

Ведущий разработчик — Майкл Видениус, автор оригинальной версии MySQL и основатель компании Monty Program AB.

Ядро базы данных позволяет делать выбор из нескольких систем хранения, и это делает использование ресурсов более оптимизированным, что повышает производительность запросов и обработки. В состав MariaDB включена подсистемы хранения данных XtraDB для возможности замены InnoDB, как основной подсистемы хранения. Также включены подсистемы Aria, PBXT и FederateX. Она полностью совместима с MySQL, и прекрасно подходит в качестве замены, т.к. полностью соответствует как набор команд, так и API. Многие разработчики MySQL были вовлечены в процесс разработки, а сейчас принимают участие в развитии.

Достоинства

  • Система работает быстро
  • Индикаторы дадут вам знать, как обрабатывается запрос.
  • Расширяемая архитектура и плагины позволяют настраивать инструмент в соответствии с вашими потребностями.
  • Шифрование доступно в сети, сервере и уровне приложения.

Недостатки

  • На данный момент стабильность ниже, чем у MySQL, поэтому даже на новых проектах можно рекомендовать устанавливать mysql.
  • Движок довольно новый, поэтому пока нет никаких гарантий дальнейших обновлений.
  • Как и во многих других бесплатных базах данных, вам придется платить за поддержку.

Идеальна как альтернатива MySQL, если MySQL не устраивает по каким-то причинам.

7. DB2

Созданная компанией IBM, DB2 представляет собой СУБД, которая имеет возможности NoSQL, и может читать JSON и XML-файлы. Ввиду того, что система разрабатывалась для серверов компании IBM модельного ряда iSeries, логично, что система работает на Windows, Linux и Unix.

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

Оптимизатор DB2 широко использует статистику распределения данных в таблицах (если процесс её сбора был выполнен администратором базы данных), поэтому один и тот же запрос на языке SQL может быть оттранслирован в совершенно различные планы выполнения в зависимости от статистических характеристик данных, которые он обрабатывает.

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

DB2 является единственной реляционной СУБД общего назначения, имеющей реализации на аппаратно-программном уровне (система IBM i; также в оборудовании мэйнфреймов IBM System z реализуются средства поддержки DB2).

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

Текущая версия DB2 — это LUW 11.1, которая предлагает разнообразные улучшения и доработки. Одно из них, ускорение Blu , которое предназначено, для того чтобы сделать эту базу данных быстрее. Пропуск данных предназначен для повышения быстродействия системы с большим количеством данных, чем может она может вместить в себя. Последняя версия DB2 также обеспечивает усовершенствованные функции аварийного восстановления, совместимости и аналитики.

Достоинства

  • Blu Acceleration позволяет грамотно задействовать ресурсы для объёмных баз данных.
  • Может быть размещена в облачном хранилище, на физическом сервере, или же и там, и там одновременно.
  • Несколько задач могут выполняться одновременно с помощью планировщика задач.
  • Коды ошибок и коды завершения позволяют легко отследить, какие задания выполняются или выполнились с помощью планировщика задач.

Недостатки

  • Цена за пределами бюджета многих физических лиц и небольших организаций.
  • Сторонние приложения или дополнительное программное обеспечение требуется, для того чтобы заставить функционировать кластеры или несколько вторичных узлов.
  • Базовая поддержка доступна только в течение трех лет; после этого, вы должны заплатить за это.

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

8. SAP HANA

Разработанная компанией SAP SE, SAP HANA — это СУБД, с движком ориентированным на работу со столбцами, работающая с родными данными SAP и чужими данными. Ядро предназначена для сохранения и извлечения данных из приложений и других источников на нескольких уровнях хранения. Может быть размещен на физических серверах, и в облаке.

Достоинства

  • Она поддерживает SQL, OLTP и OLAP.
  • Ядро снижает требования к ресурсам за счет использования сжатия.
  • Данные хранятся в памяти, сокращая время доступа, в некоторых случаях, значительно.
  • Отчеты формируются в реальном времени.
  • Может взаимодействовать с рядом других приложений.

Недостатки

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

Идеально подходит для: организаций, которые захватывают данные из приложений и при этом неограниченны в бюджете.

9. ЛИНТЕР

«Линтер» — российская СУБД, реализующая стандарт SQL:2003 (за исключением нескалярных типов данных и объектно-ориентированных возможностей) и поддерживающая большинство операционных систем, в том числе семейство Windows, различные версии UNIX, ОС реального времени (включая QNX).

К особенностям можно отнести защиту данных: 2 класс защиты данных от несанкционированного доступа и 2 уровень контроля отсутствия недекларированных возможностей. Мандатный контроль доступа к данным на уровне таблиц, столбцов записей и отдельных полей записей. Управление доступом к рабочим станциям и устройствам хранения информации. Контроль доступа к СУБД по расписанию. Управление протоколированием операций над БД (аудит). Аутентификация пользователей через LDAP, Kerberos, средствами операционной системы. Хеширование паролей по алгоритму FIPS 180-2 SHA-224.

18 марта 2020 года по решению Экспертного совета по российскому программному обеспечению при Минкомсвязи России СУБД ЛИНТЕР включена в единый реестр российских программ для электронных вычислительных машин и баз данных (реестр российского ПО).

Репликация асинхронная (в том числе и двунаправленная), возможна репликация с другими БД через ODBC.

Имеет утилиты конвертации, работающие через ODBC и ADO.NET. Конвертор из DBF-формата. Конвертор модели данных (из ERwin в ЛИНТЕР).

Достоинства

  • Российская разработка
  • Она поддерживает SQL:2003.
  • Облегчается конвертация при переходе с других СБУД
  • Рекомендована «Единым реестром российских программ».
Топ-пост этого месяца:  Настраиваем рекламу в myTarget метод Click.ru

Недостатки

  • Падение эффективности в случае высокой динамики изменений.

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

9. РЕД База Данных

«РЕД База Данных» — российская СУБД, работает на всех основных платформах и ОС (Windows, Linux, BSD Unix, IBM AIX, HP-UX, Sun Solaris и т.д.). Система модульная. Имеет открытый исходный код.

Возможность «горячего» резервного копирования и инкрементного резервного копирования. Сертифицирована ФСТЭК России. Соответствует отечественным требованиям по защите информации.
Может использоваться при создании информационных систем до класса защищенности 1Г включительно и при создании информационных систем персональных данных до 1 класса включительно. Полное соответствие принципам атомарности, непротиворечивости, изоляции, долговечности (ACID).

Имеются модули сопряжения практически для всех используемых сред разработки (драйверы ODBC, JDBC, C/C++, C#, Java, Delphi, PHP, Python, Perl, VB, и т.д.), результатов тестов этих модулей и гарантия стабильной работы.

Возможность работы во «встроенном» в ПО (embedded) локальном режиме в виде библиотеки DLL без отдельной установки и настройки СУБД, в т.ч. поддержка встраивания в виртуальную машину Java.

Достоинства

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

Недостатки

Идеально подходит для: отечественных организаций (включая оборонные), которые работают с конфиденциальными и персональными данными.

Обсуждение

Если сравнивать популярность современных СУБД с точки зрения их распространенности, то можно увидеть следующую картину по состоянию на 2013 год (рис. 1).

Рис. 1. Распространенность современных СУБД по состоянию на 2013 г.

C течением времени картина распространенности СУБД изменилась и в 2020 году приняла следующий вид (рис. 2).

Рис. 2. Распространенность современных СУБД по состоянию на 2020 г.

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

Таблица 1. Сравнительный анализ параметров СУБД

Обзор PHP и MySQL

В этой статье содержится вводное описание системы PHP и СУБД MySQL (система управления базами данных), а также описано взаимодействие этих программных продуктов. В ней приведены самые общие сведения об указанных инструментальных средствах, в частности, речь идет о том, для чего они предназначены и какое место занимают по сравнению с аналогичными программными средствами.

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

Компоненты PHP-приложения

Для создания и развития динамических веб-страниц вам потребуется понимать и использовать различные технологии. Разработка динамических веб-страниц включает три основных компонента: веб-сервер, язык программирования сценариев, исполняемых на стороне сервера, и базу данных. Разрабатывая веб-приложения с применением PHP, надо понимать все три компонента. Мы начнем с элементарных сведений об истории и назначении Apache (веб-сервер), PHP (язык программирования сценариев, исполняемых на стороне сервера) и MySQL (база данных). Это поможет вам осознать, как они вписываются в общую картину разработки веб-приложений.

Язык PHP родился из потребности разрабатывать и поддерживать веб-сайты, обладающие динамической клиент-серверной функциональностью. В 1994 году Расмус Лердорф (Rasmus Lerdorf) разработал набор сценариев с открытым исходным кодом на языке Perl, которые впоследствии были переписаны на языке C и превратились в то, чем является современный язык PHP.

Язык PHP широко распространен и совместим со всеми основными операционными системами. Он прост в изучении, что делает его идеальным инструментом для начинающих веб-программистов.

Apache

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

Apache – не единственный доступный веб-сервер. Другой популярный веб-сервер – Internet Information Services (IIS) компании Microsoft, поставляемый с операционной системой Windows 2000 и ее последующими версиями. Различия между Apache и IIS сводятся, главным образом, к личным предпочтениям, хотя Apache имеет бесспорные преимущества, будучи свободно распространяемым с открытым исходным кодом и неограниченной лицензией.

Мы будем работать с текущей версией – Apache 2.x, хотя версия 1.3 тоже достаточно часто используется. Веб-сервер IIS проще интегрируется с Active Directory – новейшей системой аутентификации компании Microsoft, – но применяется, в основном, для организации внутренних веб-сайтов компаний.

Такие веб-серверы, как Apache и IIS, разрабатывались для поддержки HTML-файлов, поэтому для обработки PHP-кода им нужно знать, как это делается. Веб-сервер Apache использует систему управления модулями, которая позволяет наращивать функциональность путем подгружения расширений. Веб-сервер IIS использует аналогичную концепцию, которая называется . Обе они позволяют обрабатывать PHP-код быстрее, чем это делалось раньше, когда веб-сервер при каждом запросе страницы с PHP-кодом запускал отдельный процесс для обращения к PHP.

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

Преимущество Apache – и его способность работать в операционных системах, отличных от Windows, что подводит нас к разговору о совместимости. Но перед этим мы также вкратце рассмотрим реляционные базы данных и язык SQL.

SQL и реляционные базы данных

– самый распространенный язык, предназначенный для записи, извлечения, обновления и удаления информации в системах управления реляционными базами данных. Реляционная означает, что база данных соответствует реляционной модели, и относится к схеме и принципам хранения данных. Схема описывает структуру хранимых данных.

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

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

MySQL поддерживает несколько различных . Механизмы базы данных определяют, как MySQL в данный момент обрабатывает хранение и извлечение данных. Как следствие, каждый механизм хранения обладает собственным набором возможностей и преимуществ. Со временем имеющиеся механизмы базы данных становятся все более мощными и быстрыми.

В таблице ниже указано, когда в MySQL добавлялись разные функциональные возможности:

Основные версии MySQL

В качестве механизма по умолчанию добавлен механизм базы данных MyISAM. Эффективно обрабатывает большие объемы данных. Дебютировал механизм базы данных InnoDB для безопасного выполнения транзакций и поддержки внешних ключей (foreign keys). Внешние ключи позволяют организовать однозначные взаимоотношения между таблицами базы данных

Появилась поддержка объединений (union) в запросах. Объединения позволяют совместить результаты двух запросов. Стало возможным изменять конфигурацию (настройки) без перезапуска базы данных

Появилась новая команда help для клиентов базы данных. Добавлена поддержка неименованных обзоров (unnamed views), также называемых подзапросами (subquery). Неименованные обзоры позволяют рассматривать запрос как отдельную таблицу внутри другого запроса. Появилась поддержка наборов символов Юникода

Добавлены триггеры (triggers), хранимые процедуры (stored procedures), механизмы обеспечения ссылочной целостности (constraints) и курсоры (cursors).

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

Добавлены механизмы секционирования (partitioning) и планирования (scheduling), интерфейс модулей расширения (Plug-in API) и механизм построчной репликации (row-based replication).

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

Интерфейс модулей расширения предоставляет возможность расширять или сужать функциональность сервера MySQL без его перезапуска. Механизм построчной репликации позволяет копировать данные между серверами с применением низкоуровневых операций.

Действующей версией MySQL считается последняя доступная версия 5.x. MySQL 5.x по производительности сопоставима с любой из гораздо более дорогих баз данных уровня предприятия, например Oracle, Informix, DB2 (IBM) или SQL Server (Microsoft). Такое повышение производительности стало возможным благодаря усилиям многих талантливых разработчиков открытого исходного кода, а также тестированию в сообществе. Механизм базы данных по умолчанию MyISAM прекрасно справляется с основными задачами баз данных, связанных с веб-приложениями.

Совместимость

Такие веб-браузеры, как Safari, Firefox, Opera, Google Chrome и Internet Explorer, предназначены для обработки документов в формате HTML, и им все равно, под управлением какой операционной системы работает веб-сервер.

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

Запрос данных веб-страницы

Бывает непросто понять, как все эти составные части работают вместе. Если веб-сервер обнаруживает PHP-код, он пытается определить, не является ли данный файл файлом PHP-сценария. Если это так, файл передается для обработки интерпретатору PHP без какого-либо участия со стороны браузера. Но если в HTML-файле есть ссылка на внешний CSS-файл, то прежде чем отобразить страницу, браузер отдельно пошлет запрос, чтобы получить эту таблицу стилей.

Обработка PHP-кода сервером называется . Запрашивая веб-страницу, вы запускаете целую цепь событий. Это взаимодействие между вашим локальным компьютером и веб-сервером (находящимся на веб-хосте в Интернете) иллюстрируется на рисунке:

Пользователь только вводит URL и нажимает клавишу Enter, а обработка запроса выполняется «за кадром» в несколько шагов

Описание шагов, приведенных на рисунке:

Вы вводите в адресной строке браузера адрес веб-страницы.

Браузер разбивает адрес на составляющие и отправляет имя страницы веб-серверу. Например, после ввода адреса /index.html серверу www.addphp.ru будет отправлен запрос на получение страницы index.html.

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

Веб-сервер читает файл index.html с жесткого диска.

Веб-сервер возвращает браузеру содержимое файла index.html.

Браузер формирует внешний вид страницы на экране вашего компьютера в соответствии с разметкой HTML, полученной от веб-сервера.

HTML-файл с именем index.html (который запрашивается на рисунке) называется , потому что любой, кто запросит страницу index.html, получит точно такую же страницу.

Если веб-сервер должен настроить возвращаемую страницу, к набору добавляются PHP и MySQL. На рисунке ниже показаны добавочные шаги в последовательности событий на веб-сервере:

Совместные действия интерпретатора PHP, MySQL и веб-сервера по созданию страницы

Описание всех шагов последовательности:

Вы вводите адрес веб-страницы в адресной строке браузера.

Браузер разбивает адрес на составляющие и отправляет имя страницы веб-серверу.

Процесс веб-сервера на хосте принимает запрос на получение страницы index.php.

Веб-сервер считывает файл index.php с жесткого диска хоста.

Веб-сервер определяет, что это сценарий PHP, а не простой HTML-файл, и поэтому передает его на обработку другому процессу – .

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

Интерпретатор PHP запрашивает у процесса базы данных MySQL обработку обращений к базе данных.

Процесс базы данных MySQL возвращает результаты запроса к базе данных.

Интерпретатор PHP завершает исполнение PHP-кода, добавляя данные, полученные из базы данных, и возвращает результат процессу веб-сервера.

Веб-сервер возвращает результат браузеру в виде HTML-текста.

Веб-браузер формирует внешний вид веб-страницы на экране вашего компьютера в соответствии с полученным HTML-текстом.

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

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

Преимущества использования PHP и СУБД MySQL

Количество различных базовых систем, на которых могут быть сформированы веб-приложения, довольно велико. В настоящем разделе приведено сравнение PHP с некоторыми другими базовыми системами и отмечены сильные стороны системы PHP и СУБД MySQL.

Стоимость

PHP — один из языков, обозначенных буквой «P» в аббревиатуре LAMP, которая представляет широко применяемый стек программ. В стек LAMP входят такие распространенные программные продукты, как Linux, Apache, MySQL и PHP/Perl/Python, которые эксплуатируются на многих веб-сайтах и поддерживают много веб-приложений.

Значительная часть компонентов стека LAMP предоставляется бесплатно, и система PHP не составляет исключения. Под бесплатным предоставлением системы PHP подразумевается, что не нужно платить за предоставляемую возможность проводить разработку на языке PHP и эксплуатировать программы, разработанные на этом языке.

Разумеется, лицензия на СУБД MySQL предоставляется на других условиях, которые не всегда допускают отсутствие платы, но в любом случае остается возможность получить выпуск Community Server бесплатно. Разработчики СУБД MySQL предлагают несколько уровней контрактов поддержки на свой сервер базы данных. Более подробные сведения можно получить по адресу www.mysql.com.

И система PHP, и СУБД MySQL могут эксплуатироваться на многих разновидностях базовых систем, включая различные варианты Linux, Microsoft Windows и др. Использование этого программного обеспечения в такой операционной системе, как Linux, позволяет получить в свое распоряжение полностью бесплатную базовую систему эксплуатации веб-приложений, для приобретения которой не требуется никаких предварительных расходов.

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

Удобство в использовании

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

Язык PHP является легким для изучения, а программы на этом языке могут быть легко созданы, особенно теми разработчиками, которые имеют хотя бы небольшой опыт работы на языке программирования с синтаксисом, подобным языку C. В связи с этим язык PHP осваивать ненамного сложнее, чем язык HTML. Начинающие программисты получают возможность приступать к продуктивной работе, не пройдя достаточно полного обучения и не накопив опыта, поэтому иногда допускают ошибки, которые в дальнейшем вырастают в крупные проблемы защиты. В этом и состоит проклятие PHP.

А что касается СУБД MySQL, то для программистов, не имеющих опыта работы с реляционными базами данных или знакомых лишь с такой средой, как Microsoft Access, интерфейс командной строки этой СУБД, а также отсутствие готовых структурных решений могут на первый взгляд показаться довольно обескураживающими. В СУБД MySQL предусмотрено несколько инструментов с графическим интерфейсом пользователя, позволяющих упростить работу с базами данных. Однако какие бы то ни было графические инструментальные средства не заменят изучения теории и не подскажут, в чем заключаются методы качественного проектирования.

Использование кода PHP, встроенного в код HTML

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

После того как клиент запрашивает эту страницу, веб-сервер выполняет ее предварительную обработку. Это означает, что сервер просматривает страницу от начала и до конца, отыскивает фрагменты кода PHP и предпринимает попытки обработать эти фрагменты.

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

Результат вывода кода HTML, полученного после предварительной обработки кода PHP

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

Исходный код страницы в браузере пользователя

Этот код полностью совпадает с тем, который бы отобразился в браузере, если бы эта страница была написан в коде HTML вручную. Поэтому все — очень просто!

Возможность внедрения кода PHP в код HTML влечет за собой целый ряд описанных ниже важных последствий:

Код PHP может быть быстро добавлен к коду, сформированному с помощью программы редактирования с интерфейсом непосредственного отображения (WYSIWYG).

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

Код HTML можно применять непосредственно, а не перезаписывать его для вывода с помощью какого-либо языка программирования.

Язык PHP позволяет сократить трудозатраты и повысить эффективность труда, поскольку способствует ускоренному обучению и является простым в использовании.

Межплатформенная совместимость

Система PHP и СУБД MySQL могут эксплуатироваться в непосредственном виде во всех широко применяемых разновидностях операционной системы Linux/Unix (включая Mac OS X) и Windows. Под управлением операционных систем этих двух классов функционирует подавляющее большинство серверов, работающих по протоколу , которые применяются во всем мире.

Система PHP совместима с двумя ведущими веб-серверами: HTTP-сервер Apache для Linux/Unix и Windows, а также сервер IIS (Internet Information Server) корпорации Microsoft для Windows. Кроме того, система PHP применяется с несколькими менее известными серверами. Что же касается СУБД MySQL, то при ее эксплуатации не требуется обеспечивать совместимость с каким-то конкретным веб-сервером, поскольку всю необходимую для этого работу выполняет интерпретатор PHP.

Стабильность

В данном контексте под словом «стабильность» подразумеваются две описанные ниже особенности системы:

Отсутствует необходимость часто выполнять перезагрузку или перезапуск сервера.

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

К счастью, оба эти аспекта определения понятия стабильности относятся и к СУБД MySQL, и к системе PHP.

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

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

Основная часть усилий разработчиков PHP направлена на постепенное наращивание производительности, обеспечение взаимодействия со все более крупными базами данных и введение лучших средств поддержки сеансов. А что касается MySQL, то разработчики этой СУБД в последнее время дополнительно ввели хорошо продуманные и долгожданные новые средства, достигнув существенного расширения возможностей указанного программного продукта. Но все эти усовершенствования применительно и к системе PHP, и к СУБД MySQL практически никогда не приводят к нарушению их совместимости.

Большое количество расширений

Система PHP позволяет легко решить задачу обеспечения взаимодействия с другими программами и протоколами. Создается впечатление, что группа разработчиков PHP добровольно взяла на себя обязанности предоставить максимальные возможности наибольшему количеству пользователей.

Особенно впечатляющими являются средства доступа к базам данных, поскольку в системе PHP предусмотрена поддержка на уровне собственных драйверов примерно для пятнадцати наиболее широко применяемых баз данных, не считая поддержки на основе интерфейса ODBC (Open DataBase Connectivity — открытый интерфейс взаимодействия с базами данных).

Кроме того, система PHP обеспечивает взаимодействие с помощью большого количества таких важных протоколов, как POP3, IMAP и LDAP. В выпущенных ранее версиях PHP введена поддержка для Java и распределенных объектных архитектур, таких как COM (Component Object Model — модель компонентных объектов Microsoft) и CORBA (Common Object Request Broker Architecture — общая архитектура брокера запросов к объектам), благодаря чему впервые появилась возможность разработки n-уровневых систем; включена полная графическая библиотека GD и обновлена поддержка XML (Extensible Markup Language — расширяемый язык разметки) наряду с технологиями DOM и simpleXML.

Быстрая реализация новых средств

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

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

Например, изящное расширение xmlrpc-epi, предложенное Дэном Либби (Dan Libby), было принято в состав дистрибутива PHP в версии 4.1 через несколько месяцев после того, как было впервые выпущено в виде независимого пакета.

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

VIII Международная студенческая научная конференция Студенческий научный форум — 2020

РАЗРАБОТКА WEB-ПРИЛОЖЕНИЯ «БРАЧНОЕ АГЕНТСТВО» С ИСПОЛЬЗОВАНИЕМ JAVASCRIPT, PHP И MYSQL

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

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

Преимуществом данного подхода можно назвать:

— отсутствие дублирования кода программы-сервера программами-клиентами;

— так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, минимальны;

— все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов.

Однако в данном подходе имеется существенный недостаток: при выходе из строя сервера, вся вычислительная сеть становится неработоспособной.

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

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

Целью является разработка web-приложения «Брачное агентство» с использованием JavaScript, PHP и СУБД MySQL.

Исходя из цели, были поставлены следующие задачи:

— анализ предметной области;

— построение логической и физической моделей БД;

— реализация спроектированной БД;

— проектирование и разработка web-приложения.

1. Анализ предметной области и выбор инструментальных средств разработки Web-приложения

Системный анализ предметной области

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

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

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

Интернет-магазин, пожалуй, один из самых популярных сегодня типов интернет-ресурсов, создаётся с целью облегчения процессов покупки. Основной упор при его разработке делается на функциональность: коммерческий сайт должен располагать удобным и эффективным интерфейсом. Интернет-магазины (торговые системы класса «business to customer») предоставляют возможность продаж через Интернет конечному покупателю, рядовому потребителю товаров и услуг.

Информационные порталы отличаются, в первую очередь, объемом и характером информации. На портале размещается не только информация о товарах и услугах конкретной компании, но и теоретическая, отраслевая, аналитическая информация в области бизнеса компании. Порталы снабжены системами публикаций и управления информационным наполнением. Функциональность ресурса высокая, информационные возможности портала дополняются интерактивными составляющими, системами поиска и классификации информации. Эта категория сайтов ориентирована на большие «on-line» проекты, которые переносят значительную часть бизнеса компании в интернет.

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

— вывод списка всех клиентов и всех видов услуг;

— поиск клиентов по заданным параметрам;

— также реализовано создание и удаление записей в удобной форме.

Выбор программного обеспечения

Обоснование выбора HTML, CSS, JS, PHP

HTML (от англ. HyperText Markup Language — «язык гипертекстовой разметки») — стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц содержат описание разметки на языке HTML. Язык HTML интерпретируется браузерами и отображается в виде документа в удобной для человека форме.

Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1986—1991 годах в стенах Европейского Центра ядерных исследований в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки.

С помощью HTML можно легко создать относительно простой, но красиво оформленный документ. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже.

CSS (англ. Cascading Style Sheetsкаскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML.

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

JavaScript — прототипно-ориентированный сценарный язык программирования.

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

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

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста) — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений.

В области программирования для сети Интернет, PHP — один из популярных сценарных языков благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

— автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

— взаимодействие с большим количеством различных систем управления базами данных (в том числе MySQL);

— обработка файлов, загружаемых на сервер;

— работа с cookies и сессиями.

Обоснование выбора СУБД MySQL

Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

Все современные СУБД имеют:

— визуальные средства создание таблиц, форм, отчетов;

— доступ к данным серверных СУБД;

— создание приложений выполняющих функции WEB – браузеров и размещение данных в Internet;

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

MySQL портирована на большое количество платформ: Linux, Mac OS X, Windows 95, Windows 98, Windows NT, Windows 2000,Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7.

MySQL имеет API для языков Delphi, C, C++, Java, Perl, PHP, Python, библиотеки для языков платформы .NET.

2.Проектирование Web-приложения

Проектирование информационного обеспечения

Логическое и физическое проектирование БД

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

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

На этапе логического проектирования учитывается специфика конкретной модели данных, но может не учитываться специфика конкретной СУБД.

Логическая схема представлена на рисунке 1.

Рисунок 1 — Логическая схема базы данных

Физическое проектирование — создание схемы базы данных для конкретной СУБД. Специфика конкретной СУБД может включать в себя ограничения на именование объектов базы данных, ограничения на поддерживаемые типы данных и т.п. Кроме того, специфика конкретной СУБД при физическом проектировании включает выбор решений, связанных с физической средой хранения данных (выбор методов управления дисковой памятью, разделение БД по файлам и устройствам, методов доступа к данным), создание индексов и т.д.

На этом этапе составляются проекты таблиц. Каждая таблица должна получить свой уникальный идентификатор (название). Этот идентификатор должен соответствовать синтаксису языка выбранной СУБД.

Определяется имя, тип и размер поля. Определяется первичный ключ, внешние ключи и поля индексирования (для быстрого поиска) в каждой из таблиц.

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

Физическая схема представлена на рисунке 2.

Рисунок 2 – Физическая схема базы данных

Создание базы данных

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

Для удобства реализации БД создаются инструменты для их проектирования.

В данной курсовой работе использовался phpMyAdmin.

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

Интерфейс данного инструментария представлен на рисунке 3.

Рисунок 3 – Интерфейс инструментария

Проектирование и разработка Web – приложения

При разработке сайта для формирования страниц использовались HTML и PHP технологии.

В качестве инструментального средства для разработки клиентского Web-приложения будет использовался текстовый редактор Notepad++.

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

Главная страница сайта, содержит навигацию по сайту.

Содержит информации о брачном агентстве.

Страница для работы с БД.

Содержит информацию о клиентах.

Содержит информацию о тренингах, служит для работы с БД.

Содержит контактную информацию.

Содержит скрипт добавления данных в БД.

Содержит скрипт для просмотра всех БД.

Содержит скрипт для поиска информации

Содержит скрипт для удаления информации из БД

Сожержат скрипты для оформления html страниц.

Содержат стили для оформления html страниц.

Таб.1. Функции модулей

3.Разработка Web-приложения

Реализация доступа к БД

Доступ к БД осуществляется по средством вызова функции mysql_pconnect().

mysql_pconnect — Устанавливает постоянное соединение с сервером MySQL[8].

mysql_pconnect() работает аналогично mysql_connect() с двумя важными отличиями.

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

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

Соединения такого типа называют ‘постоянными’.Для выбора БД используется функция mysql_select_db()[8].

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

Реализация добавления данных

Добавление данных в БД осуществляется по следующему алгоритму:

Заполняется форма с данными;

По средствам глобально массива POST создаются переменные содержащие значения введенных данных;

Формируется запрос с последующем вызовом функции mysql_query() которая пересылает его на сервер для выполнения.

Фрагмент кода содержащий запросы к БД:

if($_POST[‘name’]!=» && $_POST[‘city’]!=» && $_POST[‘age’]!=» && $_POST[‘tell_about_yourself’]!=» && $_POST[‘ ) <

$result=mysql_query(«INSERT INTO Clients (`name`, `age`, `city`, `tell_about_yourself`, `id_club`) VALUES (‘».$name.»‘,'».$age.»‘,'».$city.»‘,'».$tellaboutyourself.»‘,'».$club.»‘)»);

echo «Запись внесена в таблицу!»;

echo «Вы ввели не все данные»;

Реализация поиска данных

Поиск данных в БД осуществляется по следующему алгоритму:

Заполняется форма с данными;

По средствам глобально массива POST создаются переменные содержащие значения введенных данных;

Формируется запрос с последующем вызовом функции mysql_query() которая пересылает его на сервер для выполнения;

Выполняется вывод посредством цикла while и передачей ему в качестве параметра функции mysql_fetch_array которая возвращает ассоциативный или числовой массив или оба сразу.

Фрагмент кода содержащий реализацию данного алгоритма:

if($result=mysql_query(«select * from Clients where «.$searchtype.» like ‘%».$searchterm.»%'»))<

MySQL: выбор подходящей подсистемы хранения (InnoDB, MyISAM и др.)

Какую же подсистему хранения выбрать? InnoDB редко подводит, и мы очень рады, что компания Oracle сделала ее подсистемой по умолчанию в версии MySQL 5.5. Принятие решения о том, какую подсистему хранения применять, можно свести к фразе: «Используйте InnoDB, пока вам не понадобится какая-то функция, которую она не предоставляет и для которой нет хорошего альтернативного решения». Напри­мер, когда нужен полнотекстовый поиск, мы обычно используем InnoDB в сочетании со Sphinx, вместо того чтобы выбрать MyISAM с ее возможностью полнотекстового индексирования.

Мы задействуем что-то отличное от InnoDB, когда нам не нужны функции InnoDB, а другая подсистема хранения обеспечивает существенные преиму­щества при отсутствии недостатков. Например, мы можем использовать MyISAM, когда нам не мешают ее ограниченная масштабируемость, слабая поддержка кон­курентного доступа и отсутствие устойчивости к сбоям, а настоящей проблемой становится значительное потребление пространства подсистемой InnoDB.

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

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

  • Транзакции. Если приложение нуждается в транзакциях, то наиболее стабильной, хорошо интегрированной, проверенной подсистемой хранения для него станет InnoDB (или XtraDB). MyISAM может стать хорошим вариантом, если задача не требует транзакций и в основном предъявляет запросы типа SELECT или INSERT . Иногда в эту категорию попадают отдельные компоненты приложения, например ведение журнала.
  • Резервное копирование. Необходимость регулярно выполнять резервное копиро­вание также может повлиять на ваш выбор. Если есть возможность периодически останавливать работу сервера для выполнения этой процедуры, то подойдет лю­бая подсистема хранения данных. Однако если требуется осуществлять резервное копирование без остановки сервера, то нужна InnoDB.
  • Восстановление после сбоя. Если объем данных велик, то вы должны серьезно оценить количество времени, которое займет восстановление базы после сбоя. Таблицы MyISAM легче получают повреждения и требуют значительно больше времени для восстановления, чем таблицы InnoDB. Это одна из самых важных причин, по которой многие используют подсистему InnoDB, даже не нуждаясь в транзакциях.
  • Специальные возможности. Наконец, может оказаться, что приложению требуют­ся конкретные возможности или оптимизации, которые могут обеспечить лишь отдельные подсистемы хранения MySQL. Например, многие приложения ис­пользуют оптимизацию кластерных индексов. В то же время только MyISAM под­держивает геопространственный поиск. Если подсистема хранения соответствует одному или нескольким важнейшим требованиям, но не соответствует другим, то нужно либо найти компромисс, либо выбрать разумное проектное решение. Часто вы можете получить то, что нужно, от подсистемы хранения, которая на первый взгляд не соответствует вашим требованиям.

Нет необходимости принимать решение прямо сейчас. Далее в моем блоге вы найдете множество материалов, касающихся сильных и слабых сторон каждой подсистемы хранения, а также немало советов по архитектуре и проектированию. В общем, возможностей, вероятно, значительно больше, чем вы пока способны представить, а дальнейшее чтение поможет вам сделать оптимальный выбор. Если вы сомневае­тесь, просто смотрите в сторону InnoDB. Она безопасна по умолчанию, и нет причин выбирать что-то иное, если вы еще четко не знаете, что вам нужно.

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

Журналирование

Предположим, вы хотите использовать MySQL для ведения в режиме реального времени журнала всех телефонных звонков, поступивших с центрального телефонного коммутатора. Или, возможно, вы установили утилиту modlogsql для Apache и теперь можете хранить сведения обо всех посещениях сайта прямо в таблице. В та­ких приложениях, вероятно, самым важным является обеспечение быстродействия.

Вы же не хотите, чтобы база данных оказалась узким местом. Подсистемы хранения данных MyISAM и Archive будут очень хорошо работать, поскольку характеризуют­ся небольшими издержками, и вы сможете осуществлять тысячи операций записи в секунду.

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

Например, можно использовать встроенную функцию репликации MySQL для дублирования данных на второй сервер, где затем будут запущены запросы, активно потребляющие ресурсы центрального процессора (ЦП). Таким образом, главный сервер останется свободным для вставки записей и вы сможете делать любые за­просы, не беспокоясь о том, как создание отчета повлияет на ведение журнала в реальном времени.

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

Другой вариант — вести журнал в таблице, имя которой составлено из года и на­звания или номера месяца, например web_logs_2008_01 или web_logs_2008_jan . Если вы будете адресовать запросы к таблицам, в которые уже не производится запись, то приложение сможет непрерывно сохранять новые данные журнала в текущую таблицу.

Таблицы только для чтения или преимущественно для чтения

Таблицы с данными, которые используются для создания каталога или списка (вакансии, аукционы, недвижимость и т. п.), обычно характеризуются тем, что считывание из них происходит значительно чаще, чем запись в них. С такими таблицами хорошо применять MyISAM — если не думать о том, что происходит при ее сбое. Но не стоит недооценивать важность этого фактора. Многие пользователи не понимают, как рискованно применять подсистему хранения, которая даже не пытается извлечь данные, записанные на диск. (MyISAM просто записывает данные в память и пред­полагает, что операционная система сбросит их на диск позже.)

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

Не стоит слепо доверять народной мудрости сообщества, которая гласит: «MyISAM быстрее, чем InnoDB». Категоричность этого утверждения спорна. Мы можем пере­числить десятки ситуаций, когда InnoDB на голову опережает MyISAM, особенно в приложениях, где применяются кластерные индексы или данные целиком разме­щаются в памяти. По мере дальнейшего чтения вы начнете понимать, какие факторы влияют на производительность подсистемы хранения (размер данных, требуемое количество операций ввода/вывода, первичные ключи и вторичные индексы и т. п.) и какие из них более значимы в вашем приложении.

Проектируя подобные системы, мы используем InnoDB. Сначала MyISAM может произвести впечатление хорошо работающей подсистемы, но при большой нагруз­ке она просто рухнет. Все будет заблокировано, и при сбое сервера вы потеряете данные.

Обработка заказов

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

Доски объявлений и дискуссионные форумы

Тематические дискуссии являются интересной задачей для пользователей MySQL. Существуют сотни бесплатных систем на основе языков РНР и Perl, которые позволяют организовывать тематические дискуссии. Многие из них не умеют эффек­тивно использовать базу данных, в результате чего для каждого обслуживаемого обращения в них запускается множество запросов. Некоторые из них разработаны, чтобы обеспечить независимость от используемой базы данных, поэтому их запросы не извлекают должной выгоды из возможностей конкретной СУБД. Подобные системы также зачастую обновляют счетчики и собирают статистику по различным дискуссиям. Большинство из них использует для хранения всего объема данных лишь несколько монолитных таблиц. В результате несколько основных таблиц оказываются перегруженными операциями записи и чтения, и возникает значи­тельная конкуренция блокировок, необходимых для обеспечения целостности данных.

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

Эти пользователи не учитывают, что приложение запускает довольно специфические запросы, например, вот такого вида:

Проблема заключается в том, что не все подсистемы хранения могут быстро выпол­нить подобные запросы: MyISAM на это способна, а другие — не всегда.

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

Приложения на CD

Если вам когда-нибудь потребуется распространять приложения, использующие файлы данных MySQL, на CD или DVD, подумайте о применении таблиц типа MyISAM или сжатых таблиц MyISAM, которые можно легко изолировать и скопи­ровать на другой носитель. Сжатые таблицы MyISAM занимают значительно меньше места, чем несжатые, но они предназначены только для чтения. В некоторых прило­жениях это может стать проблемой, но, поскольку данные все равно предназначены для записи на носитель, поддерживающий только чтение, нет оснований избегать использования сжатых таблиц для этой конкретной задачи.

Большие объемы данных

Слишком много — это сколько? Мы проектировали (и управляли) — или помогали проектировать (и управлять) — множество баз данных размером от 3 до 5 Тбайт или даже больше, работавших с подсистемой InnoDB. И это на одном сервере, без сегментирования. Это вполне осуществимо, но нужно с умом подойти к выбору обо­рудования, а также запланировать для сервера возможность справляться с большим объемом операций ввода/вывода. При таких размерах крах MyISAM становится настоящей катастрофой.

Если вы предусматриваете значительный размер базы данных, например десятки терабайт, то, вероятно, проектируете хранилище данных. В этом случае подсистема хранения Infobright будет лучшим выбором. Очень большие базы данных, для которых не подходит Infobright, вероятно, могут использовать TokuDB.

База данных сайта MySQL: что это такое, преимущества перед другими СУБД

База данных сайта MySQL – это система, предназначенная для хранения и обработки информации. Комплекс таблиц, взаимосвязанных между собой, для доступа к которым применяется система управления базами данных (СУБД) MySQL. По сути, MySQL – это специальная программа с открытым кодом, которая используется на сервере SQL. Данная программа не способна обрабатывать большое количество информации, однако она идеальна для небольших и крупных веб-ресурсов.

Зачем нужна база данных?

Представьте, что вы ведете свой сайт. Если у вас небольшой статический проект, в котором содержится всего несколько html страниц, то применение базы данных(БД) вам вовсе и не нужно. Но это редкие случаи, когда создаваемые web-мастерами проекты остаются практически незаполненными. Как правило, сайты продолжают наполняться контентом, они становятся более загруженными. Такие проекты уже являются динамичными, и без базы данных вести их очень сложно.

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

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

Какими преимуществами обладает MySQL?

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

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

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

На заметку! В интернет-пространстве MySQL еще известна как «мускул». Такое название ей придумали веб-мастера. К примеру, когда говорят фразу «CMS на мускуле», это значит, что система управления контентом сайта (движок) применяет СУБД MySQL.

Как информация хранится в реляционных БД?

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

Все значения в БД делятся на два типа:

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

Отличия MySQL от других СУБД

От других программ MySQL отличается тем, что он без проблем работает с интерфейсом API. С помощью данного программного обеспечения, юзер легко получает доступ из пользовательской программы к системе управления БД, даже если она написана на C, Perl и прочих языках программирования.

Для администрирования веб-сайтами, чаще всего используется сочетание MySQL с PHP. Большое количество движков (CMS) написаны именно на базе этой «связки». Один из таких движков известен любому начинающему web-мастеру – это система управления контентом для блогов и сайтов WordPress, получившая огромную популярность во всем мире. В вордпрессе присутствует огромное количество функций, на основе которых обеспечивается взаимодействие с MySQL, к примеру, «mysql_connect».

Так выглядят mysql таблицы у wordpress

Заключение

Кроме MySQL, сегодня на просторах Интернета вы можете найти огромное количество других систем управления БД, таких как PostgreSQL, mSQL и т.д. Все они обладают рядом преимуществ и недостатков, однако именно программа MySQL является самой универсальной, удобной и гибкой среди всех остальных.

Пожалуйста, оцените эту статью. Чтобы мы могли делать лучший контент! Напишите в комментариях, что вам понравилось и не понравилось!

Обоснование и выбор программного обеспечения

2.2.1. CMS OpenCart

В качестве CMS для проектирования Интернет-магазина был выбран CMS OpenCart.

CMS OpenCart распространяется бесплатно по лицензии GNU GPL. Родом данная CMS из Гонконга, функционирует посредством PHP + MySQL, автор Daniel Kerr (Даниэль Керр), используется с целью самостоятельного и профессионального создания интернет-магазина.

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

Российское сообщество разработчиков насчитывает несколько тысяч человек, поэтому в случае нужды в доработке исходного кода, не будет проблем с поиском специалиста. Ещё одним преимуществом OpenCart является множество разработанных под неё модулей, расширений и готовых сборок.

Из функционала рассматриваемая CMS OpenCart имеет большинство необходимых функций для проектирования современного интернет-магазина. Оформление витрины современное, также как каталога и карточек товаров. Чтобы управлять магазином навыков программирования не требуется. Встроенных шаблонов нет и в базовой версии доступен лишь один вариант дизайна.

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

Преимуществами OpenCart выступают:

ü лёгкость управления;

ü оригинальная структура сайта (каталога, карточек товара, формы заказа);

ü удобная встроенная форма заказа товара и корзина. Вся процедура заказа разбита на этапы, потеряться клиенту будет просто невозможно;

ü магазин интегрирован с платёжными системами (PayPal и другими). Можно дополнительно приобрести модули для популярных платёжных систем, к примеру как WebMoney, Яндекс.Деньги, QIWI и иные;

ü огромное количество дополнительных дешевых и бесплатных доработок, расширений и шаблонов. Посредством их возможно расширить и без того широкие возможности магазина;

ü в администрировании CMS предусмотрено резервное копирование базы данных [22].

В качестве недостатков OpenCart вытсупают:

ü так как система бесплатная, то проблемы есть как в самой системе, так и в модулях, которые к ней разрабатываются;

ü одна и та же страница может отражаться по различным адресам, особенно если каталог имеет многоуровневую вложенность, то есть возникают дубли страниц;

ü потому как платформа зарубежная, все входящие в стандартный комплект модули рассчитаны на иностранные системы оплаты и доставки;

ü неудобная установка дополнительных модулей и шаблонов;

ü отсутствие загрузки из Excel и 1С. Потому как многие пользователи привыкли к Excel и 1С бухгалтерии, особенно владельцы магазинов (прайс-листы, ведение бухгалтерии и так далее), то это может считаться серьёзным недостатком;

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

ü нет возможности, без знания программирования, менять форму заказа товара.

Основными характеристиками CMS OpenCart рассматриваются:

ü неограниченное количество категорий;

ü неограниченное число товаров;

ü неограниченное число производителей;

ü открытый исходный код;

ü бесплатная документация;

ü изменяемые шаблоны;

ü поддержка мультивалютности и мультиязычности;

ü автоматический изменение размеров загружаемых картинок;

ü обзор товаров;

ü 20 способов оплаты (2Checkout, LiqPay, PayPal, eWay и так далее);

ü 8 способов доставки (среди известных и используемых в России только UPS);

ü ЧПУ и метатеги.

В качестве технических требований к хостингу при использовании CMS OpenCart выступают следующие:

– Apache or Windows IIS;

– PHP 5.X.X или выше;

– MySQL 4 или выше;

– Register Globals: Off;

– Magic Quotes GPC: Off File Uploads: On

– Session Auto Start: Off [22]

2.2.2 Выбор системы управления баз данных (СУБД).

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

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

Проектирование базы данных для сайта считается одним из основных моментов ранней стадии проектирования.

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

Интернет-сервер, где будет реализован такой этап, к сожалению, ограничен в выборе как программного обеспечения, так и в выборе СУБД. Потому, в качестве целевой СУБД с целью проектирования Интернет-магазина будет применен MySQL.

MySQL представляет собой свободную систему управления базами данных (СУБД). MySQL выступает собственностью компании Oracle Corporation, которая получила её совместно с поглощённой Sun Microsystems, реализующей проектирование и поддержку приложения. Распространяется под GNU General Public License либо под собственной коммерческой лицензией. Кроме того, разработчики формируют функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации [8].

Гибкость СУБД MySQL формируется поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, которые поддерживают полнотекстовый поиск, так и таблицы InnoDB, которые поддерживают транзакции на уровне отдельных записей.

Помимо этого, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, который демонстрирует принципы формирования новых типов таблиц. Посредством открытой архитектуры и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

MySQL ориентирована на большое количество платформ: AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003, WinCE, Windows Vista и Windows 7. Имеется кроме того MySQL к OpenVMS.

Необходимо заметить, что на официальном сайте СУБД с целью свободной загрузки предоставляются не только исходные коды, но и откомпилированные и оптимизированные под определенные операционные системы готовые исполняемые модули СУБД MySQL.

Рассмотрим достоинства выбранной СУБД:

– быстродействие. MySQL – достаточно быстродействующая СУБД. Разработчики склоняются к мнению, что СУБД MySQL выступает в качестве одной из самых быстрых баз данных из существующих на современном рынке;

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

– поддержка языка запросов. MySQL «понимает» команды языка SQL. MySQL кроме того поддерживает интерфейс ODBC (Open Database Connectivity), протокол интерфейса с базами данных, который был разработан компанией Microsoft;

– возможности. Сервер позволяет одновременно подключаться неограниченному количеству пользователей. Доступ к серверу можно реализовать в интерактивном режиме посредством разных интерфейсов, которые позволяют вводить запросы и просматривать полученные результаты: это программы-клиенты, которые работают с командной строкой, Web-браузеры [8].

Помимо этого, в наличии имеются программные интерфейсы для таких языков, как C, Perl, Java, PHP и Python;

– взаимодействие и безопасность. MySQL используется с целью функционирования в сети и может быть доступна для работы через сеть Интернет, отсюда, с данными можно работать в любой точке земного шара. Однако при этом СУБД MySQL имеет развитую систему защиты от несанкционированного доступа;

– переносимость. СУБД MySQL отлично функционирует как под управлением самых разных версий UNIX, так и под управлением систем, которые не применяют UNIX, таких как Windows и OS/2. СУБД MySQL функционирует как на домашних ПК, так и на мощных серверах.

Доступ на создание базы данных и таблиц в ней будет осуществляться через командную строку [14].

PHP представляет собой распространённый Открытый ресурс – язык скриптинга (сценариев) общего назначения, который спроектирован специально для Web и который можно внедрять в HTML.

PHP отличается от иных схожих языков, типа клиентского JavaScript, тем, что выполнение кода осуществляется напрямую на сервере. Когда существует скрипт, который аналогичен вышеприведённому на сервере, то клиент получит результат деятельности такого скрипта, не имея возможности установить, каков был исходный код.

Наилучшим качеством PHP выступает то, что он предельно прост для новичка в программировании, но предлагает много продвинутых возможностей для программиста-профессионала.

Имеется три главных области использования PHP [13].

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

– формирование скриптов с целью выполнения в командной строке. Можно сформировать PHP-скрипт, который способен запускаться без сервера либо браузера. Все, что потребуется — парсер PHP. Подобный способ применения PHP идеально подходит для скриптов, которые должны выполняться регулярно, к примеру, с помощью cron (на платформах *nix либо Linux) либо посредством планировщика задач (Task Scheduler) на платформах Windows. Такие скрипты также могут быть применены в задачах простой обработки текстов;

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

PHP доступен для большинства операционных систем, в том числе Linux, многие модификации Unix (к примеру как HP-UX, Solaris и OpenBSD), Microsoft Windows, Mac OS X, RISC OS, и многие иные. Кроме того, в PHP существует поддержка большей части современных веб-серверов, к примеру как Apache, IIS и многих иных. PHP может функционировать либо в качестве модуля либо функционировать как процессор CGI [19].

PHP может генерировать не только HTML. Доступно формирование изображений, файлов PDF и даже роликов Flash (с применением libswf и Ming), создаваемых «на лету». PHP также может генерировать всякие текстовые данные, к примеру, как XHTML и иные XML-файлы.

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

В качестве одного из существенных преимуществ PHP выступает поддержка широкого круга баз данных. Создать скрипт, который применяет базы данных, — существенно просто. Можно использовать расширение, которое специфично для отдельной базы данных (к примеру, как mysql) либо применять уровень абстракции от базы данных, к примеру, как PDO, либо подключиться к любой базе данных, которая поддерживает Открытый Стандарт Соединения Баз Данных (ODBC), посредством одноименного расширения ODBC. Для иных баз данных, к примеру, как CouchDB, можно воспользоваться cURL либо сокетами.

Кроме того, PHP поддерживает «общение» с иными сервисами посредством таких протоколов, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих иных. Помимо этого, имеется возможность работать с сетевыми сокетами напрямую. PHP поддерживает стандарт обмена сложными структурами данных WDDX практически между всеми языками веб-программирования. Обращая внимание на взаимодействие между различными языками, необходимо сказать о поддержке объектов Java и возможности их применения в качестве объектов PHP [13].

PHP имеет много возможностей по обработке текста, в том числе регулярные выражения Perl (PCRE) и много иных расширений и инструментов для обработки и доступа к XML документам.

В PHP обработка XML-документов стандартизирована и происходит на мощной базе библиотеки libxml2, расширив возможности обработки XML добавлением новых расширений SimpleXML, XMLReader иXMLWriter.

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

Программы PHP могут выполняться двумя способами: как Web-приложение HTTP-сервером либо как консольные программы.

PHP, как правило, применяется лишь для программирования приложений, которые связаны с Интернетом. Однако PHP можно еще применять в качестве интерпретатора командной строки, в основном в *nix-системах. Последнее возможно при помощи CORBA и COM интерфейсов, а также при помощи расширения PHP-GTK.

При таком применении PHP возможно решение следующих задач:

– формирование приложений интерактивной командной строки.

– формирование кросс-платформенных GUI приложений посредством библиотек PHP-GTK, PHP-Qt или WinBinder.

– автоматизация отельных задач под Windows и Linux [19].

Обоснование выбора СУБД

На сегодняшний день на рынке информационных технологий существует большое количество различных СУБД, ниже рассмотрим основные из них.

MS SQL Server 2000 EnterpriseEdition получила очень широкое распространение как в нашей стране, так и за рубежом, а связано это с тем набором удобств, который она предлагает администратору и разработчику, сохраняя при этом свои богатые возможности. Эта СУБД легко масштабируется, что позволяет использовать её как в информационных системах для среднего бизнеса, так и для больших КИС (в этом случае обычно используется кластер). Следует обратить особое внимание на основное средство разработки и администрирования, включенное в состав дистрибутива, это EnterpriseManager, который позволяет решать практически все задачи администрирования MS SQL Server и, кроме того, удобен для разработчика. Возможно, именно благодаря ему, а также SQL QueryAnalyzer, данная СУБД снискала себе популярность как у начинающих разработчиков, так и у профессионалов. Но главное преимущество данной СУБД, даже не в удобном визуальном инструментарии, входящем в состав дистрибутива, а в тесной интеграции ее с другими программными продуктами от Microsoft. MS SQL Server 2000 активно использует решения на базе СОМ технологии, в частности источники данных OLEDB, и, конечно же, ActiveX компоненты. Кроме того, существенным преимуществом этой СУБД перед другими является возможность экспорта и импорта в большинство распространенных форматов данных, что включает как клиент-серверные и файл-серверные, так и XML-формат. В качестве источников и приемников данных там выступают драйверы OLEDB. Эта возможность позволяет использовать MS SQL Server 2000 в качестве централизованного хранилища данных как в OLTP, так и в OLAP-системах. К недостаткам можно отнести то, что он работает только с Windows.

MS Access предназначена для решения локальных офисных задач, характеризуемых ограниченным объемом данных, а также выдача отчетов по результатам работы. Большинство пользователей, а тем более разработчиков и системных администраторов, знают Access как компонент MicrosoftOffice, предназначенный для работы с базами данных. Access одновременно является и CASE-средством, и средой разработки на двух языках программирования (VisualBasic и сильно усеченный диалект SQL), и очень мощным визуальным средством создания отчетности, ядром СУБД и средой исполнения.

Таким образом, используя только MS Access, можно производить полный цикл работ над проектом от проектирования до внедрения готовой программы. Только MS Access позволяет создавать программы, состоящие из одного файла, который содержит как текст программы, так и реляционную базу данных, имеющую сложную структуру. Он вмещает в себе, реализованное средствами VBA клиентское приложение, содержащее необходимую логику и формирующее необходимые документы, как в электронном виде (экранные формы, webcontent),так и в печатном. Кроме того, MS Access легко интегрируется с другими решениями от Microsoft.

BorlandInterbase 6.0. Сочетает в себё все, что требуется от СУБД, предназначенной для нужд малого и среднего бизнеса, а главное, начиная с версии 6.0, данная СУБД является бесплатной, что тоже существенно. Требования к аппаратуре минимальны: Pentium 100,32 Мбайт RAM, объем дисковой памяти, необходимый для хранения базы данных, должен быть не менее 50 Мбайт. Набор поддерживаемых платформ тоже заслуживает внимания: Windows 95/98/ME/NT/2000 и Linux-системы. Диалект языка SQL позволяет реализовать большинство пользовательских запросов, требующихся в небольших информационных системах. К сожалению, средство разработки и администрирования, поставляемое в составе дистрибутива (InterbaseConsole),недостаточно удобно, хотя и обладает необходимой функциональностью.

СУБД Oracle 8.1.7 EnterpriseEdition+Web предназначена для реализации баз данных уровня корпорации и предъявляет серьезные требования к аппаратной части сервера, на котором установлена. Oracle может работать в большинстве современных операционных систем: Windows NT/2000, Linux, FreeBSD, NetBSD, UNIX, AIX, NowellNetware. А это, в свою очередь, позволяет разработчикам корпоративных сервисов выбирать наиболее удобную для себя платформу. Например, если организация предпочитает использовать для разработок операционные системы не от Microsoft, она легко может себе это позволить. Некоторые учебные заведения могут ориентироваться на решения на базе UNIX-систем, которые славятся надежностью и устойчивостью в качестве серверной платформы, при этом продолжая успешно использовать Windows на клиентских компьютерах. Но ни одна СУБД, сколь бы мощной она ни была, не найдет признания у разработчиков, если у неё не будет удобных графических средств администрирования, разработки и отладки. Разумеется, Oracle не является исключением. C его помощью можно легко производить как локальное, так и удалённое администрирование не только одного сервера, а группы серверов, разбросанных по всему миру. Для такого удаленного администрирования используется EnterpriseManager. В качестве основных средств разработки, поставляемых в составе дистрибутива можно рассматривать Designer/2000 и SQL*Plus. Кроме того, существует великое множество средств разработки под Oracle, созданных сторонними фирмами, например PL/SQL Developer.

Преимущества СУБД Oracle можно перечислять бесконечно, но основные все-таки следует отметить отдельно: поддержка баз данных очень большого объема (до 64 Тбайт), поддержка многопроцессорности, мощные средства разработки и администрирования, поддержка 2-х языковых сред – PL/SQL и Java, кроссплатформенность, интеграция с web. Серьезных недостатков всего два: высокие аппаратные требования (для EnterpriseEdition) и высокая цена.

Для разработки информационной системы для учета индивидуальных предпринимателей необходимо выбрать оптимально подходящие в соответствии с поставленными целями СУБД. В таблице 3 представлена сравнительная характеристика СУБД MSAccess, MSSQL, Interbase, Oracle.

Таблица 3 – Сравнительные характеристики некоторых СУБД

Версия Возможности
3.23
Параметр СУБД
Oracle SQLServer Interbase Access
Название, версия, фирма производитель. Oracle 8.1.7 Enterprise Edition+Web. MS SQL Server 2000 Enterprise Edition. Borland Interbase 6.0 Microsoft Access 2000.
Поддерживаемые операционные системы. Windows NT/2000, Linux, FreeBSD, NetBSD, AIX, UNIX, Nowell Netware 5. Серверные редакции Windows 98/ME/NT/ 2000/XP. Windows NT/2000, Linux, FreeBSD, NetBSD, UNIX. Только платформа Windows.
Требования к аппаратному обеспечению. Pentium 200, 128 Мбайт RAM (256 Мбайт для сервера), 295 Мбайт свободного места на жёстком диске. Pentium 166, 64 Мбайт RAM (рекомендуется 128 Мбайт), от 95 до 270 Мбайт свободного места на диске. Pentium 100, 32 Мбайт RAM, объем дисковой памяти должен быть не меньше 50 Мбайт. Pentium 75, 32 Мбайт RAM (рекомендуется 40 Мбайт), 85 Мбайт свободного места на диске.
Направление разработки. Продукты корпоративного направления. Продукты корпоративного направления. Продукты под нужды небольших компаний. Продукты под нужды небольших компаний.
Поддерживаемая модель данных. Реляционная модель. Реляционная модель. Реляционная модель. Реляционная модель.
Формат файлаБД. .dbf .mdf .gdb .mdb
Поддерживаемые объекты БД. Таблицы, индексы, хранимые процедуры, функции, представления, триггеры, роли, последовательности, синонимы. Таблицы, индексы, правила, пользовательские типы, ограничения целостности, хранимые процедуры, функции. Таблицы, хранимые процедуры, функции, представления, триггеры, домены. Таблица, индекс, представления (запросы), формы, отчёты, макросы, схема БД.
Оптимальный размер БД. 64 Тбайт 100 Гбайт 1 Гбайт 100 Мбайт
Реализация прав доступа. Права на доступ к объектам, права на выполнение команд. Гибкие права на доступ к объектам, права на выполнение команд, неявные права. Права на доступ к объектам, права на выполнение команд. Защита файла БД паролем.

Продолжение таблицы 3

Наличие встроенных средств создания резервной копии БД и восстановления БД. Предусмотрена система резервного купирования и восстановления из копии. Широкие возможности по работе с резервными копиями и восстановления данных. Предусмотрена система резервного копирования и восстановления из копии. Создание резервной копии БД и восстановление БД из резервной копии.
Наличие средств формирования отчетов из БД. + +
Возможность создания локальной БД. + + + +
Технология создания БД и объектов БД. Визуальная и командная технология. Визуальная и командная технология. Визуальная и командная технология. Визуальная технология.
Поддержка сервера БД. + + +
Поддержка языковых сред. PL/SQL и Java. TSQL. Диалект языка SQL. VBScript и урезанный диалект языка SQL.
Средства поддержки ограничения целостности БД. Первичные ключи, внешние ключи, уникальность поля, условия корректности поля. Первичные ключи, внешние ключи, уникальность поля, условия корректности поля, ограничение на значение Первичные ключи, внешние ключи, уникальность поля. Первичные ключи, внешние ключи, условия корректности поля.
Удобство разработки и администрирования. Очень мощные, но и сложные средства администрирования. Оптимальное соотношение мощности и удобства администрирования. Очень слабые средства администрирования. Развитые средства администрирования.
Поддержка многопроцессорности. + +
Поддержка экспорта и импорта данных других форматов. Экспорт и импорт данных в текстовые файлы. Экспорт и импорт в любой источник OLEDB или ODBC. Экспорт и импорт данных в текстовые файлы. Экспорт и импорт в любой источник ODBC.

Продолжение таблицы 3

Поддержка работы в кластере. +
Сложность или простота работы с СУБД. Сложность в освоении и использовании. Просто реализуется администрирование, интерфейс частично русифицирован. Сложность в освоении и использовании. СУБД проста в освоении за счёт русифицированного интерфейса.

Выбор системы управления баз данных представляет собой сложную многопараметрическую задачу и является одним из важных этапов при разработке приложений баз данных. Выбранный программный продукт должен удовлетворять как текущим, так и будущим потребностям предприятия, при этом следует учитывать финансовые затраты на приобретение необходимого оборудования, самой системы, разработку необходимого программного обеспечения на ее основе, а также обучение персонала. Кроме того, необходимо убедиться, что новая СУБД способна принести предприятию реальные выгоды.

В соответствии с поставленной задачей выбор был остановлен на СУБД MSAccess по следующим причинам:

− стоимость СУБД MSAccess мала;

− СУБД не требовательна к ресурсам;

− интеграция MSAccess на уровне ядра операционной системы;

− возможность обеспечения безопасности данных на уровне операционной системы;

− визуально понятный и простой интерфейс пользователя для разработки и администрирования БД;

− MSAccess позволяет использовать визуальную технологию проектирования (в отличие от InterBase 6.0), которая значительно упрощает разработку;

− обладает приемлемой производительностью;

− сочетает в себе простоту (в отличие от Oracle) и эффективность разработки;

Дата добавления: 2015-06-15 ; просмотров: 2852 . Нарушение авторских прав

SQL против NoSQL на примере MySQL и MongoDB

Когда необходимо выбрать СУБД, главный вопрос обычно заключается в выборе реляционной (SQL) или нереляционной (NoSQL) структуры. У обоих вариантов есть свои преимущества, а также несколько ключевых особенностей, которые стоит иметь в виду при выборе.

Основные различия

Представьте себе город — пусть он называется Город А, где все говорят на одном языке. Все дела ведутся на нём, он используется в любой форме коммуникации — в целом это единственное средство взаимодействия и взаимопонимания для обитателей города. Изменение языка в любой из сфер деятельности собьёт всех с толку.

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

Эти два примера наглядно демонстрируют различия между реляционными и нереляционными базами данных, и за этими различиями скрываются ключевые особенности обеих СУБД.

Реляционные базы данных используют структурированный язык запросов (Structured Query Language, SQL) для определения и обработки данных. С одной стороны, это открывает большие возможности для разработки: SQL один из наиболее гибких и распространённых языков запросов, так что его выбор позволяет минимизировать ряд рисков, и будет особенно кстати, если предстоит работа с комплексными запросами. С другой стороны, в SQL есть ряд ограничений. Построение запросов на этом языке обязывает предопределять структуру данных и, как в случае с Городом А, последующее изменение структуры данных может быть губительным для всей системы.

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

  • Вы можете создавать документы, не задавая их структуру заранее;
  • Каждый документ может обладать собственной структурой;
  • У каждой базы данных может быть собственный синтаксис;
  • Вы можете добавлять поля прямо во время работы с данными.

Масштабируемость

В большинстве случаев SQL базы данных вертикально масштабируемые, то есть вы можете увеличивать нагрузку на отдельно взятый сервер, наращивая мощность центральных процессоров, объёмы ОЗУ или системы хранения данных. А NoSQL базы данных горизонтально масштабируемы. Это означает, что вы можете увеличивать трафик, распределяя его или добавляя больше серверов к вашей СУБД. Всё равно, что добавлять больше этажей к вашему зданию, либо добавлять больше зданий на улицу. Во втором случае, система может стать куда больше и мощнее, делая выбор NoSQL базы данных предпочитаемым для больших или постоянно меняющихся структур данных.

Структура

В реляционных СУБД данные представлены в виде таблиц, в то время как в нереляционных — в виде документов, пар «ключ-значение», графов или wide-column хранилищ. Это делает SQL базы данных лучшим выбором для приложений, которые предполагают транзакции с несколькими записями — как, например, система учётных записей — или для устаревших систем, которые были построены для реляционных структур.

«Росбанк», Москва, до 60 000 ₽ (до налогов)

В число СУБД для SQL баз данных входят MySQL, Oracle, PostgreSQL и Microsoft SQL Server. Для работы с NoSQL подойдут MongoDB, BigTable, Redis, RavenDB Cassandra, HBase, Neo4j и CouchDB.

SQL vs. NoSQL: MySQL или MongoDB

Разобравшись с ключевыми структурными различиями SQL и NoSQL баз данных, стоит внимательно рассмотреть их функциональные особенности на примере MySQL и MongoDB.

MySQL: реляционная СУБД

  • Проверено временем: MySQL — крайне развитая СУБД, что означает наличие большого сообщества вокруг неё, множество примеров и высокую надёжность;
  • Совместимость: MySQL доступна на всех основных платформах, включая Linux, Windows, Mac, BSD и Solaris. Также у неё есть библиотеки для языков вроде Node.js, Ruby, C#, C++, Java, Perl, Python и PHP;
  • Окупаемость: Это СУБД с открытым исходным кодом, находящаяся в свободном доступе;
  • Реплицируемость: Базу данных MySQL можно распределять между несколькими узлами, таким образом уменьшая нагрузку и улучшая масштабируемость и доступность приложения;
  • Шардинг: В то время как шардинг невозможен на большинстве SQL баз данных, MySQL является исключением.

MongoDB: нереляционная СУБД

  • Динамическая схема: Как упоминалось выше, эта СУБД позволяет гибко работать со схемой данных без необходимости изменять сами данные;
  • Масштабируемость: MongoDB горизонтально масштабируема, что позволяет легко уменьшить нагрузку на сервера при больших объёмах данных;
  • Удобство в управлении: СУБД не нуждается в отдельном администраторе базы данных. Благодаря достаточному удобству в использовании, ей легко могут пользоваться как разработчики, так и системные администраторы;
  • Скорость: Высокая производительность при выполнении простых запросов;
  • Гибкость: В MongoDB можно без вреда для существующих данных, их структуры и производительности СУБД добавлять поля или колонки.

Какую СУБД выбрать?

MySQL — верный выбор для любого проекта, который может положиться на предопределённую структуру и заданные схемы. С другой стороны, MongoDB — отличный вариант для быстрорастущих проектов без определённой схемы данных. В особенности если вы не можете определить схему для своей базы данных, вам не подходит ни одна из предлагаемых другими СУБД или в вашем проекте она постоянно меняется, как, например, в случае с мобильными приложениями, системами аналитики в реальном времени или контент-менеджмента.

Топ-пост этого месяца:  В YouTube появятся трансляции американских телеканалов
Добавить комментарий