От автора: недавно в мой монитор прилетел «очередной» булыжник. Один «умник» все допытывал меня, почему я пишу о СУБД MySQL? Мол, есть много других стоящих систем управления базами, также построенных на реляционной теории, имеющие архитектуру «клиент-сервер»… Я ему ответил, что все они «стоящие», а MySQL бесплатна. Но потом стало обидно «за державу»! Неужели это единственное достоинство любимой СУБД?
Немного нужной теории
Перед тем, как начать доказывать, что MySQL на самом деле заслуживает звания «всея интернетной» СУБД, давайте немного покопаем за пределами своей песочницы. Рассмотрим, как система управления БД работает с другими компонентами Сети и ОС на клиентской стороне. Это знание даст нам более четкое понимание ее особенностей во время сравнения MySQL с другими СУБД.
Любая современная реляционная система управления базами представляет собой серверное приложение, которое работает в операционной системе. Это значит, что СУБД построена на основе модели «клиент-сервер».
MySQL (или другая система управления) инсталлирована в ОС компьютера как приложение, но «общается» со всеми как сервер. В том числе и с программным обеспечением, установленным на этой же машине.
Для получения данных сервер БД использует TCP порт под номером 3306. Этот параметр требуется указывать при установке соединения и работе с MySQL через различные программные оболочки. Например, MySQL Administrator.
Через этот порт СУБД MySQL сервер ведет диалог со всеми клиентскими приложениями. Например, с phpMyAdmin, созданной вами на PHP программой и другими. Тут стоит немножко «притормозить» и объяснить, что такое порт TCP. Немного не в тему, но полезно для лучшего восприятия общей картины.
Любой порт нумеруется целым числом (1- 65535). Его номер указывается в заголовке каждого пакета, пересылаемого через Сеть (в том числе и локальную). Номер порта устанавливается клиентской стороной, и в дальнейшем используется для принятия и отправки всех данных между клиентом и сервером.
TCP является надстройкой над IP. Транспортный протокол TCP (transmission control protocol) работает на IP, и в отличие от него обеспечивает бесперебойный обмен данных. В случае отсутствия подтверждения от клиента об успешном получении информации (на этапе соединения с СУБД MySQL) пересылает пакет еще раз. Проще говоря, TCP управляет распределением полученных данных между приложениями (на клиенте) и отвечает за доставку отправленных пакетов. Все это я рассказываю к тому, чтобы вы лучше понимали принципы работы любой из современных СУБД.
Как я уже отметил, особенностью СУБД MySQL является то, что по умолчанию она использует порт 3306. Через него экземпляр сервера получает всю информацию от приложений. При этом «общение» происходит на языке структурированных запросов (SQL). После получения запроса сервер БД обрабатывает его (интерпретирует), и пересылает результаты выполнения клиентскому приложению.
Почему MySQL
Немного теории мы с вами почерпнули. Теперь докажем обоснованность выбора СУБД MySQL как главной во всемирной паутине. То есть, какие ее особенности поспособствовали тому, что она получила глобальное распространение в интернете.
Бесплатность – СУБД распространяется ее владельцем (корпорацией Oracle) под «Универсальной общественной лицензией» или «General Public License» (GNU), которой «снабжаются» все open-source ПО.
Благодаря этому она дала начало многим другим бесплатным популярным продуктам. Получается, что в возможности СУБД MySQL можно смело добавить «содействие» в развитии других интернет-платформ.
Высокая скорость обработки данных – мало кто знает, но первоначально СУБД создавалась для обработки огромных массивов информации в промышленных масштабах. И лишь потом из-за ее доступности и быстродействия MySQL «оккупировала» всемирную паутину.
Понятно, что существуют другие системы управления БД, и тоже бесплатные. Взять хотя бы PostgreSql. Но в отличие от MySQL эта платформа не отличается высокой скоростью обработки данных. Именно эта характеристика позволила «дельфину» заполонить весь интернет. И без указания данного факта СУБД MySQL описание было бы неполным.
Поддержка SQL – является еще одной важной «чертой» системы. Это обеспечивает высокий уровень кроссплатформенности данных и кода, созданных с помощью MySQL. Благодаря чему вы можете спокойно перенести БД в любую другую современную СУБД, также поддерживающую язык структурированных запросов. А весь сохраненный код (хранимые процедуры, триггеры и запросы) можно применять на любой из этих платформ. Теперь можно смело сказать о СУБД MySQL, что это удобно.
Входит в состав другого ПО – чаще всего «дельфин» применяется не в качестве самостоятельной платформы, а как составляющая других программных продуктов. Например, такие CMS, как WordPress, Joomla и другие.
Используется в связке с PHP – вместе с этим серверным языком программирования СУБД стала главным строительным материалом для всемирной паутины. Большая часть всех ресурсов интернета построена на основе PHP и MySQL.
Система привилегий – позволяет наделять каждую учетную запись сервера правами на осуществление определенных действий с данными. Причем не только на уровне сервера, БД, но и на уровне отдельных таблиц.
Хэширование паролей – обеспечивает высокий уровень «противовзломности». Именно поэтому в MySQL восстановить пароль root очень сложно. Так что лучше не забывать его.
Я намеренно не стал сильно залазить в «дебри» технических описаний MySQL. Для этого нам бы потребовалось еще десять таких статей :). Надеюсь, я убедил вас, что данная СУБД является пока самым оптимальным вариантом. Главным доказательством этого является факт использования СУБД MySQL в качестве главного стройматериала Сети. И с этим не поспоришь!