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

Язык манипулирования данными SQL

Рассмотрим в качестве примера языка манипулирования данными некоторые команды языка SQL (от английских слов Structured Query Language), ставшего классическим языком реляционных баз данных.

Простейшая операция выборки представляется командой SELECT - FROM -WHERE (выбрать- из - где):

select <список атрибутов>

from <отношение>

where <условие>.

Помимо слов select, from, where в команде выборки можно использовать и другие служебные слова, к примеру:

order by< атрибут> asc - определяет сортировку результата выборки в порядке возрастания (asc) или убывания (desc) значения атрибута;

group by <атрибут1> - группирует данные по значениям атрибута;

having set <атрибут2>

minus - операция вычитания множеств (данных выборок).

Помимо команды выборки select, язык SQL имеет команды, позволяющие обновлять данные (update), вставлять (insert) и удалять (delete). К примеру, в случае если студенты переводятся со 2-го курса на третий, информацию можно обновить командой

update Студент

В случае если атрибут ʼʼСеменов С.С.ʼʼ сдал экзамен по информатике на ʼʼ5ʼʼ 15 января 1996 ᴦ. преподавателю Петрову П.П., то информация об этом должна быть добавлена в таблицу ʼʼУспеваемостьʼʼ командой

insert inio Успеваемость:

<ʼʼСеменов С.С.ʼʼ, ʼʼИнформатикаʼʼ, 5,15/01/96, Петров П.П.>.

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

delete Успеваемость

where Оценка=2

позволяет удалить информацию о студентах, получивших 2 (в случае их отчисления).

Существенно расширяют возможности языка библиотечные функции, такие как count (подсчет), sum (суммирование), avg (среднее), max и min.

4.5. СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ MICROSOFT ACCESS

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

Популярность СУБД Microsoft Access обусловлена следующими причинами:

‣‣‣ Access является одной из самых легкодоступных и понятных систем как для профессионалов, так и для начинающих пользователœей, позволяющая быстро освоить основные принципы работы с базами данных;

‣‣‣ система имеет полностью русифицированную версию;

‣‣‣ полная интегрированность с пакетами Microsoft Office: Word, Excel, Power Point, Mail;

‣‣‣ идеология Windows позволяет представлять информацию красочно и наглядно;

‣‣‣ возможность использования OLE технологии, что позволяет установить связь с объектами другого приложения или внедрить какие-либо объекты в базу данных Access;

‣‣‣ технология WYSIWIG позволяет пользователю постоянно видеть всœе результаты своих действий;

‣‣‣ широко и наглядно представлена справочная система;

‣‣‣ существует набор ʼʼмастеровʼʼ по разработке объектов, облегчающий создание таблиц, форм и отчетов.

К основным объектам Access относятся таблицы, запросы, формы, отчеты, макросы и модули.

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

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

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

Из режима конструктора перейти в режим таблицы можно, щелкнувпо кнопкетаблицы на панели инструментов.

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

Вследствие того, что в таблицах, как правило, содержится большое количество записей, размещение всœех их на экране невозможно. Поэтом) для перемещения по таблице используют полосы прокрутки, расположенные в нижней и правой части окна. Левее нижней полосы прокрутки выводится номер текущей записи и общее число записей таблицы. Для перехода к записям с нужным номером крайне важно активизировать поле Номера записи, щелкнув по нему, или нажать клавишу F5, после чего набрать на клавиатуре новый номер записи и затем нажать клавишу .

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

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

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

Форма - это объект, в основном, предназначенный для удобного ввода отображения данных. Надо отметить, что в отличие от таблиц, з формах не содержится информации баз данных (как это может показаться на первый взгляд). Форма - это всœего лишь формат (бланк) показа данных на экране компьютера. Формы могут строиться только на базе таблиц или запросов. Построение форм на базе запросов позволяет представлять в них информацию из нескольких таблиц.

В форму бывают внедрены рисунки, диаграммы, аудио (звук) и видео (изображение).

Режимы работы с формой:

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

‣‣‣режим конструктора форм необходим, в случае если крайне важно изменить определœение

формы (структуру или шаблон формы, а не представленные в ней данные), нужно открыть форму в режиме конструктора;

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

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

Режимы работы с отчетом:

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

‣‣‣ щелкнуть по вкладке Отчеты,

‣‣‣ кнопкой выбрать необходимый отчет в окне базы данных;

‣‣‣ щелкнуть по кнопке Просмотра.

Режим конструктора предназначен для изменения шаблона (структуры отчета).

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

Работа с формами и отчетами существенно облегчается за счёт использования макрокоманд. В MS Access имеется свыше 40 макрокоманд, которые можно включать в макросы. Макрокоманды выполняют такие действия, как открытие таблиц и форм, выполнение запросов, запуск других макросов, выбор опций из меню, изменение размеров открытых окон и т.п. Макрокоманды позволяют нажатием одной (или нескольких одновременно) кнопки выполнять комплекс действий, который часто приходится выполнять в течение работы. С их помощью можно даже осуществлять запуск приложений, поддерживающих динамический обмен данных (DDE), к примеру MS Excel, и производить обмен данными между вашей базой данных и этими приложениями. Один макрос может содержать несколько макрокоманд. Можно также задать условия выполнения отдельных макрокоманд или их набора.

Модуль - объект, содержащий программы на MS Access Basic, которые позволяют разбить процесс на более мелкие действия и обнаружить те ошибки, которые невозможно было бы найти с использованием макросов.

Язык манипулирования данными SQL - понятие и виды. Классификация и особенности категории "Язык манипулирования данными SQL" 2017, 2018.

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

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

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

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

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

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

База данных

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

В первую очередь это удобно тем, что информацию можно быстро заносить в базу данных и так же быстро ее извлекать при необходимости. Если на заре развития 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 следует использовать в случаях, когда нет необходимости в сложных и нетривиальных выборках.

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

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

От автора: недавно в мой монитор прилетел «очередной» булыжник. Один «умник» все допытывал меня, почему я пишу о СУБД 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 в качестве главного стройматериала Сети. И с этим не поспоришь!

При разработке сложных проектов неизбежно возникает необходимость использования базы данных, но на какой из существующих СУБД остановить свой выбор? Выбор не так уж и мал: 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 локальной машиной и дать доступ к базе данных только одному пользователю, от имени которого ваши скрипты будут соединяться с сервером. Естественно, в этом случае вопросы безопасности должны учитываться уже в ваших скриптах.