Почему MySQL? Почему субд mysql стала главной во всемирной паутине

При разработке сложных проектов неизбежно возникает необходимость использования базы данных, но на какой из существующих СУБД остановить свой выбор? Выбор не так уж и мал: mSQL, PostgreSQL, Oracle, MS SQL и другие, но практически любой приемлемый хостинг, который предоставляет стандартные услуги, включает в них несколько баз данных MySQL. Основанием для этого служит ряд немаловажных причин, и одной из них является то, что MySQL является продуктом класса Open Source (открытые исходные тексты), который можно получить бесплатно (для платформы Windows есть некоторые оговорки). Как правило, сервер и клиент MySQL входят в любой дистрибутив операционных систем семейства BSD (FreeBSD, NetBSD, OpenBSD) и Linux, которые используются на большинстве веб-серверов, но, при необходимости, последнюю версию MySQL для всех поддерживаемых систем (в том числе и для Windows) также можно найти на сайте компании MySQL AB - разработчиков MySQL.

PHP + MySQL = скоростьДругая немаловажная причина популярности MySQL заключается в том, что ее создатели с самого начала разработки этой СУБД поставили во главу угла ее быстродействие, пожертвовав при этом некоторыми удобствами для разработчиков. Связка PHP + MySQL или Perl + MySQL обеспечивают очень высокое быстродействие, которого очень трудно достичь другими средствами. Очень хорошая связь MySQL с PHP стала еще одной причиной популярности этой СУБД. Поддержка MySQL входит в стандартную сборку PHP, и можно быть уверенным, что проблем обращения к серверу MySQL из PHP-скриптов не будет. Для обеспечения взаимодействия PHP с другими СУБД (PostgreSQL, Oracle и так далее) приходится компилировать его самостоятельно из исходных кодов с дополнительными опциями. Таким образом, можно считать, что дешевизна, легкодоступность, производительность и тесная взаимосвязь с PHP и обеспечивают такую популярность MySQL.

MySQL 3.23 - самая распространенная версия
Однако считать MySQL идеальной СУБД было бы большой ошибкой. Как известно, наши достоинства - продолжение наших же недостатков, и высокая скорость работы MySQL достигается за счет принесения в жертву удобства разработки, лишая разработчиков многих инструментов и команд, привычных в других СУБД. В MySQL мы не можем пользоваться вложенными подзапросами, процедурами, триггерами, видами и, с некоторыми оговорками, каскадными обновлениями. В версии 4.1 ожидается добавление вложенных подзапросов, а в версии 5 - и другие дополнительные средства, но сможем ли мы ими воспользоваться? На сайте компании MySQL AB доступна версия 4.0, а большинство провайдеров предоставляет нам возможность работы с версией 3.23, поэтому использование нововведений будет в ближайшее время под большим вопросом, если мы хотим, чтобы наши скрипты продолжали работать корректно при смене провайдера.

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

SQL - язык общения с базами данных
Как и в большинстве современных СУБД, для создания запросов серверу MySQL применяется язык SQL (Structured Query Language - язык структуированных запросов). Можно считать, что в настоящее время SQL является стандартом работы с базами данных. Но необходимо помнить, что несмотря на существующие стандарты SQL, в разных СУБД его реализации могут отличаться, то есть существуют так называемые "диалекты" SQL. Язык запросов в MySQL придерживается стандарта ANSI SQL92, но включает в себя специфические ключевые слова, которых нет в этом стандарте. Например, практически во всех таблицах будет присутствовать в столбцах, обеспечивающих уникальность записей, свойство "AUTO_INCREMENT", которое не поймут другие СУБД, если вы попытаетесь там выполнить команды SQL, созданные вами для MySQL. Если вы планируете в дальнейшем перенос ваших программ на другие СУБД, то следует уделить больше внимания этому вопросу совместимости диалектов, тем более что MySQL позволяет использовать многие дополнительные ключевые слова в командах SQL в целях совместимости, игнорируя их во время выполнения. Расширение в будущем возможностей MySQL также связано с переходом к другому диалекту SQL, соответсвующему стандарту ANSI SQL99, в котором реализовано больше возможностей для СУБД.

В опытных руках MySQL обеспечит хорошую безопасность данным

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

Курс предназначен для базовой подготовки администраторов сайтов, созданных на "1С-Битрикс: Управление сайтом" . Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер .

Если вы добросовестно изучите курс, то научитесь:

  • управлять доступом к системе, сайтами, пользователями, группами пользователей;
  • работать с инструментами системы;
  • использовать возможности интерфейса по управлению системой;
  • работать с модулями "1С-Битрикс: Управление сайтом", связанными с оптимизацией и безопасностью работы сайта;
  • выполнять работу по конфигурированию веб-системы для оптимальной работы.

Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих "1С-Битрикс: Управление сайтом" или "Битрикс24 в коробке".

Как проходить учебный курс?

Для начало мне бы хотелось познакомить читателя с принципами работы СУБД, которые используют SQL в качестве командного языка. SQL - (Structured Query Language, язык структурированных запросов) сердце любой современной СУБД. Он используется для создания/удаления баз данных, таблиц, для пополнения таблиц данными, для осуществления выборки данных. Эта тема заслуживает отдельной статьи, но тем, кому это действительно необходимо, я бы посоветовал прочесть книгу Мартина Грубера "Понимание SQL". Исходя из этого, любая СУБД представляет собой программу-сервер, которая сидит в памяти компьютера и обслуживает TCP порт. В случае с MySQL, номером порта будет являться число 3306. А клиентская программа, будь то CGI-приложение на Perl либо полноценный программный продукт для предприятия на C, соединяется с СУБД по этому порту и посылает ему строчки на SQL. Тот в свою очередь их интерпретирует, выполняя необходимые действия, и отсылает результаты запроса обратно клиенту. Таким не хитрым способом происходит общение сервера баз данных с клиентскими программами. Теперь, имея некоторое понятие о том, каким образом работают серверы баз данных, перейдем непосредственно к установке MySQL.

Установка

MySQL написан под десятки видов операционных систем. Это и FreeBSD, OpenBSD, MacOS, OS/2, SunOS, Win9x/00/NT и Linux. Мною использовался дистрибутив Red Hat Linux 7.0. В силу своей простоты, данный дистрибутив не заставил мучаться с установкой и произвел ее самостоятельно на этапе установки самой ОС. Если вам аналогично повезло, то на этом этап установки для вас завершен, и вы можете смело переходить к настройке. Для многих встает вопрос, где взять дистрибутив MySQL. Он может находиться на диске с Linux в виде установочного модуля RPM либо в виде архива tgz(tar.gz). Если его там нет, то дистрибутив можно совершенно бесплатно скачать с официального сайта www.mysql.org . Для установки необходима версия ядра не ниже 2.0. Если вы скопировали архив *.tar.gz, то для установки скопируйте его в директорию, где вы хотите установить MySQL, и выполните следующие действия:

1) Распакуйте архив, выполнив следующую команду

gunzip < mysql-VERSION.tar.gz | tar xvf -

где, вместо VERSION, будет версия вашего дистрибутива (к примеру, у меня 3.23.22-beta). В результате будет создана директория mysql-3.23.22-beta, где находятся файлы дистрибутива.

2) Перейдите в эту директорию.

cd mysql-3.23.22-beta

3) Подготовка к установке.

./configure --prefix=/usr/local/ mysql make

В данном случае MySQL будет установлен в директорию /usr/local/mysql. В случае фатального завершения следующих команд необходимо внимательно ознакомиться с выведенными ошибками. В случае чего можно обратиться к документации.

4) Непосредственно установка.

make install

5) Теперь необходимо создать так называемые grant таблицы. Для этого необходимо выполнить следующий скрипт:

scripts/mysql_install_db

Теперь можно удалить директорию, в которую вы распаковывали архив дистрибутива, после чего можете удостовериться, что MySQL был проинсталлирован в указанную директорию (в нашем случае - это /usr/local/mysql). Для того чтобы запустить сервер СУБД MySQL, следует выполнить скрип_f2 safe_mysqld, который находится в директории /usr/ local/mysql/bin.

На этом процесс инсталляции из архива tgz(tar.gz) можно считать выполненным.

В случае если вы устанавливаете MySQL из установочного пакета RPM, то процесс инсталляции оказывается намного проще. Для установки пакетов RPM существует утилита rpm. Чтобы установить пакет, вам достаточно набрать следующую команду:

rpm -i mysql-3.23.22-beta.rpm

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

После того, как мы установили непосредственно MySQL, необходимо установить также модули Perl, чтобы Perl мог работать с базами данных посредством технологии DBI/DBD. Об этой технологии будет рассказано чуть позже. Вам лишь необходимо скачать установочный пакет DBI с сайта www.cpan.org , а также установочный пакет драйвера DBD с сайта www.mysql.org и установить их таким же образом, как мы устанавливали MySQL.

После установки всех вышеперечисленных пакетов смело можно переходить к настройке.

Настройка

Если установка была произведена корректно, то на данном этапе вы уже можете использовать MySQL в своих целях. На пятом этапе, когда вы запускали скрипт scripts/mysql_install_db, у вас появилась новая база данных "mysql". В ней скрипт создал шесть таблиц: "user", "db", "host", "tables_priv", "columns_priv" и "func". Эта база данных необходима для установления привилегий пользователям. По умолчанию сервер MySQL использует номер порта 3306. Если данный порт у вас чем-то занят, то необходимо переопределить переменную MYSQL_TCP_PORT. Например, вот так:

MYSQL_TCP_PORT=3307 export MYSQL_TCP_PORT

Также можно поменять и другие параметры. В этом может помочь скрипт mysql_config. С его помощью можно менять, к примеру, директорию, где хранятся файлы баз данных, имя UNIX сокета, директорию временных файлов и пр. Чтобы проверить, правильно ли вы все сделали, запустите MySQL, перейдя в директорию, где находятся исполняемые файлы, и выполните команду:

./safe_mysqld &

Теперь наберите "./mysqlshow mysql". Вы должны увидеть что-то похожее:

Database: mysql Tables columns_priv db func host tables_priv user

Если не было выдано никаких ошибок, то можете смело набирать "./mysql" и по полученному приглашению набирать команды SQL и не забывать ставить ";" после каждой команды.

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

CREATE DATABASE GRYADKA; CREATE TABLE MAIN(a00 INTEGER, a01 CHAR(10)); INSERT INTO MAIN VALUES(1,"Hello world!"); SELECT * FROM MAIN;

После ввода последней строки вы должны увидеть таблицу:

a00 a01 1 Hello world!

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

Программирование

В этом разделе хотелось бы рассмотреть возможности языка Perl для работы с MySQL. Может быть, не честно обходить вниманием возможности языка C и его интерфейс взаимодействия с СУБД, однако сегодня MySQL более широкое распространение получил на Web-серверах. А Perl как нельзя лучше других языков подходит для написания CGI-приложений. Многие могут возразить, что приложения на C работают намного быстрее. И это факт. Но у Perl есть мощность, простота и кое-какая платформонезависимость. Ну, а его регулярные выражения и прочие синтаксические особенности несоизмеримо превозносят его над другими языками программирования.

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

Прикладные программы–>DBI –>DBD–>СУБД

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

use DBI; use DBD::mysql;

Для того чтобы мы могли выполнять SQL запросы к нашей базе данных, нам нужно установить логическое соединение с MySQL. Это мы выполняем при помощи метода объекта DBI. При этом он возвращает объект (дескриптор) соединения, который мы будем использовать для непосредственного общения с базой данных.

$dbh = DBI->connect("dbi: mysql:dbname=GRYADKA;host=127.0.0.1;port=3306","","",0);

Вызывая метод connect, мы передаем ему некоторые параметры. Первый параметр определяет свойства соединения. Эта строка имеет следующую структуру:

"dbi:<имя DBD>:dbname= <имя базы данных>;host=<имя хоста>;port=<номер порта>"

Далее в методе connect определяются имя пользователя, пароль и флаги соединения. В нашем случае имя пользователя и пароль указывать нет необходимости, т.к. мы не создавали пользователей. Флаги передаются анонимным хэшем и в целом необходимости в них нет. Чтобы получить более подробную информацию, смотрите "man DBI". Существует два способа работы с базами данных MySQL. Первый - так называемый механизм курсоров, а второй, соответственно, без использования таковых. Для начала рассмотрим механизм курсоров. Курсоры - это объекты Perl, которые обеспечивают последовательный доступ к результатам запросов. Каждый курсор отвечает за закрепленный за ним запрос.

$cur = $dbh->prepare("select * from MAIN;");

$cur - это курсор, который для начала следует выполнить, используя метод execute:

$cur->execute;

Теперь, после выполнения запроса, чтобы получить результат запроса, используем метод fetchrow_array. Он поочередно возвращает массив полей результативной виртуальной таблицы. К примеру, чтобы вывести на экран все данные, воспользуемся циклом while:

while (($a00, $a01) = $cur->fetchrow_array) { $i++; print "Record #$i: a00 = $a00, a01 = $a01. n"; }

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

$cur = $dbh->prepare("insert into MAIN values(?,?)")

где вопросительные знаки следует заменить на значения переменных, переданных в качестве параметров метода execute:

$a00 = 2; $a01 = "second record"; $cur->execute($a00, $a01);

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

$cur->finish;

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

  • selectrow_array - возвращает одну строку запроса в виде массива;
  • selectall_arrayref - возвращает весь ответ сервера в виде массива, ссылка на массивы;
  • do - выполняет запрос, ничего не возвращая (очень удобно при работе с insert, update и пр.)

Например:

($a01) = $dbh->selectrow_ar-ray("select a01 from MAIN where a00=1;"); # получаем значение $a01 равное "Hello world!" $dbh->do("update set a01 = "hello world" where a00 = 1;"); # изменяем значения поля a01 на "hello world", там где a00=1

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

$dbh->disconnect;

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

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

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

База данных

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

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

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

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

Система управления базами данных

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

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

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

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

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

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

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

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

Реляционные СУБД и язык SQL

Реляционные и объектно-реляционные СУБД являются одними из самых распространенных систем. Они представляют собой таблицы, у которых каждый столбец (который называется “field” или «поле») упорядочен и имеет определенное уникальное название. Последовательность строк (их называют “records” или «записи») определяется последовательностью ввода информации в таблицу. При этом обрабатывание столбцов и строк может происходить в любом порядке. Таблицы с данными связаны между собой специальными отношениями, благодаря чему с данными из разных таблиц можно работать - к примеру, объединять их - при помощи одного запроса.

Для управления реляционными базами данных применяется особый язык программирования - SQL. Сокращение расшифровывается как “Structured query language”, в переводе на русский «язык структурированных запросов».

Команды, которые используются в SQL, делятся на те, которые манипулируют данными, те, которые определяют данные, и те, которые управляют данными.

Схема работы с базой данных выглядит следующим образом:


MySQL

MySQL является одной из самых популярных и распространенных СУБД, которая используется во многих компаниях (например, Facebook, Wikipedia, Twitter, LinkedIn, Alibaba и других). MySQL представляет собой реляционную СУБД, которая относится к свободному программному обеспечению: она распространяется на условиях GNU Public License. Как правило, эту систему управления базами данных определяют как хорошую, быструю и гибкую систему, рекомендованную к применению в небольших или средних проектах. У MySQL есть множество различных преимуществ. Например, она поддерживает различные типы таблиц: как известные MyISAM и InnoDB, так и более экзотичные HEAP и MERGE; кроме того, количество поддерживаемых типов постоянно растет. MySQL выполняет все команды быстро - возможно, сейчас это самая быстрая СУБД из всех существующих. С этой системой управления базами данных может одновременно работать неограниченное количество пользователей, а число строк в таблицах может быть равно 50 миллионам.

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

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

Для работы с MySQL используется не только текстовый, но и графический режим. Это возможно благодаря приложению phpMyAdmin: для работы в приложении вам даже не нужно будет знать SQL-команды, а администрировать свою базу данных можно прямо через браузер.

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


PostgreSQL

Эта свободно распространяемая система управления базами данных относится к объектно-реляционному типу СУБД. Как и в случае с MySQL, работа с PostgreSQL основывается на языке SQL, однако, в отличие от MySQL, PostgreSQL поддерживает стандарт SQL-2011. Эта СУБД не имеет ограничений ни по максимальному размеру базы данных, ни по максимуму записей или индексов в таблице.

Если говорить о преимуществах PostgreSQL, то, безусловно, это надежность транзакций и репликаций, возможность наследования и легкая расширяемость. PostgreSQL поддерживает различные расширения и варианты языков программирования, такие как PL/Perl, PL/Python и PL/Java. Также есть возможность загружать C-совместимые модули.

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

О том, что это более масштабная, чем MySQL, СУБД, говорит и тот факт, что PostgreSQL периодически сравнивают с такой мощной системой управления данных, как Oracle.

Все это позволяет говорить о PostgreSQL как об одной из самых продвинутых СУБД на данный момент.


SQLite

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

Из недостатков можно отметить отсутствие системы пользователей и возможности увеличения производительности.

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


Oracle

Эта СУБД относится к объектно-реляционному типу. Название произошло от названия разработавшей эту систему фирмы Oracle. Наравне с SQL СУБД использует процедурное расширение под названием PL/SQL, а также язык Java.

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

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



MongoDB

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

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

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

Вместо заключения

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

Понравилась статья? Поделиться с друзьями: