MySQL

MySQL

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


Вначале коротенькое вступление.

Любой мало-мальский web-проект, требует хранения каких-либо данных, например информация о пользователе — имя, пароль, email, подсчёт посетителей, хранение сообщений в форуме, статей в блоге и т.д.

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

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

В результате — большие нагрузки на сервер, неповоротливость и нарушение элементарной безопасности.

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

Существует несколько разновидностей баз данных:

Иерархические, реляционные, объектно-ориентированные, гибридные.

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

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

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

Известная всем с детства таблица )



В Web-приложениях, как правило, используются реляционные базы данных, поэтому будут рассматриваться именно они.



Итак, что же такое MySQL?


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

Поддержка MySQL автоматически включается в поставку PHP, что избавляет web-программиста от лишних хлопот.

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


Для наглядности простая схема работы.

Запись в БД:
Php-скрипт отправляет данные в БДБД структурирует их, присваивает адреса и помещает на жёсткий диск.

Чтение из БД:
Php-скрипт запрашивает данные у БДБД очень быстро находит их на жёстком диске, забирает, формирует и отдаёт.


Или на примере странички которую Вы сейчас читаете:

Вы запросили страницу у Web-сервера ⇨ Web-сервер обратился к движку сайта ⇨ Движок запросил данные у БДБД быстро нашла нужный текст и отадала движку, тот сформировал из него html-страничку и отдал Web-серверу и наконец Web-сервер отдал её Вам.

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



Помимо удобства, важнейшим фактором является скорость работы — выборка информации из базы происходит очень быстро. Связано это с тем, что БД написана на языке C++ и соответственно работает с жёстким диском гораздо быстрее чем программы (взаимодействующие с БД) написаные на PHP. Другими словами, вне зависимости от того, с какой скоростью Ваши php-скрипты работают с БД, работа БД с жёстким диском будет происходить быстрее. Тем самым исключаются всякие коллизии.

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

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

Необходимо отметить тот факт, что при всей сложности, веб-программисту ничего делать не нужно, так как обо всём уже позаботились разработчики MySQL.


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


Сервер


Предполагается, что у Вас уже установлен Web-сервер, PHP, MySQL и phpMyadmin. Если это не так, то, пользователи могут прочитать подробную инструкцию по установке всего выше перечисленного вот здесь (nginx ставить не нужно), а поклонники найдут всё необходимое вот тут.




Создание БД


Вначале, все операции по созданию и управлению базами, будем делать с помощью phpMyadmin, а позже, всё то же самое из своей web-странички с помощью SQL-запросов.

Заходим в браузере по адресу — ваш_комп/phpMyadmin (для Win — localhost/tools/phpmyadmin/)



Вводим логин root и пароль, нажимаем ОК

Видим что-то вроде этого:



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



Теперь давайте создадим БД, например, Вашей домашней библиотеки. Шкаф — это у нас будет база данных, а полки будут таблицами.








Нажимаем вверху на вкладку «Базы данных», в поле «Новая база данных» пишем название homelib и нажимаем кнопку «Создать».

Обратите внимание на графу «Сравнение», здесь нужно указать кодировку. Она должна быть та же, что и указаная при установке.
Самый разумный выбор — это UTF-8, поэтому указывайте utf8_general_ci.




В списке появиться только что созданая база.




Теперь создадим пользователя. Нажмите на название базы и увидите это:



Здесь можно создать таблицу в новой базе, но мы это сделаем чуть позже, сейчас нужно создать пользователя для базы homelib.
Стоит заметить, что владельцем новой базы, можно сделать существующего пользователя (например root).


Нажмите вкладку «Привилегии»:



И «Добавить нового пользователя»:



Имя пользователя можно сделать по названию базы — homelib.

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

Пароль — например 12345.

Больше ничего трогать не надо.
Нажать внизу кнопку «ОК». (для Win — «Добавить пользователя»)

Обратите внимание на нижний блок «База данных для пользователя». Можно не создавать отдельно базу и пользователя, а сразу же создать пользователя и выбрать пункт «Создать базу данных с именем пользователя в названии и предоставить на нее полные привилегии», будет создан пользователь с одноимённой базой.

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





Всё готово, есть база homelib, её пользователь homelib и пароль, это понадобится в дальнейшем, при обращении к базе из своей html-странички.


Перейдём к созданию таблицы.

Нажмите в левой колонке на homelib и увидите предложение создать таблицу.



Поскольку БД homelib — это у нас шкаф, то предположим, что в нём две полки. То есть в базе будет две таблицы — polka1, polka2.




Имя — polka1, количество столбцов — 4.

В столбцах будут следующие значения:

1. Порядковый номер книги.
2. Автор.
3. Название.
4. И сам текст книги.



Нажимаем «ОК».


Появится форма, в которой надо присвоить значения столбцам:



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

Схема нашей будущей таблицы:


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




Давайте настроим таблицу:

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


Заполняем:

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

Номер книги — это целочисленное значение, поэтому тип оставляем int.

Длину не указываем, система сама с этим разберётся.

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

A_I — это авто-инкремент, ставим галочку.
Авто-инкремент — означает, что с добавлением каждой новой записи (книги), её прядковый номер будет автоматически увеличиваться на единицу.

Получится вот так:



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



author — автор книги.

title — название книги.

ТипVARCHAR, это строка переменной длины от 1 до 255 символов. В нашем случае пятидести символов будет вполне достаточно, вряд ли фамилия или название будет длиннее.
Выбор переменных определяет количиство занимаемой памяти. В «двух словах» их значения не объяснить, поэтому рекомендуется изучить вот этот материал.


В последнем поле, будет храниться непосредственно текст книги:



ТипLONGTEXT может хранить до 4294967295 символов. Этого хватит для любой книги.

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

Нажмите внизу кнопку «Сохранить».


Всё готово, таблица polka1 создана, а таблицу polka2 Вы создадите сами, по той же схеме.


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




Откроется структура таблицы:



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


Первое поле мы не заполняли, так как это происходит автоматически (авто-инкремент).

Нажимаем кнопку «ОК».



Система сообщает о выполненых действиях.


Нажмите вверху на название таблицы (polka1) или на вкладку «Обзор».


Здесь можно изменить или удалить строку.


Добавим в библиотеку других авторов, тем же способом. Получится вот так:




Теперь наша таблица (полка) стала выглядеть как мы и задумывали:



На этом первая часть окончена.



Дальнейшая работа с БД, описана в следующей части.



  • +247
  • 12942
Поддержать автора


Telegram-чат istarik

Задать вопрос по статье
Telegram-канал istarik

Известит Вас о новых публикациях






Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.