MySQL (введение)
Марк Ильин
Как только мы задумываемся о каком-либо упорядоченном архивировании информации, мы неизбежно приходим к мысли о создании базы данных. Создав её, напрмер, в Microsoft Access, мы, облегчённо вздыхаем и на какое-то время успокаиваемся. Но это спокойствие длится не долго. И вот на нашем горизонте уже маячит следующая задача, продиктованная жизненной необходимостью, - нужно обеспечить доступ к этим данным через internet с рабочих станций, на которых, вполне возможно установлены, различные ОС. Естественно не мы первые, кому необходимо разрешить задачу подобного рода. Опыта других людей и средств для разрешению этой проблемы довольно много. Но хватит лирических отступлений. Мы воспользуемся языком , который позволяет пользователям, знающим один набор команд, использовать их, чтобы создавать, отыскивать, изменять, и передавать информацию, независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.
SQL ( Обычно произносимая как "СЭКВЭЛ") символизирует собой Структурированный Язык Запросов. Это - язык, который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах.
Что такое - реляционная база данных?
Реляционная база данных - это тело связанной информации, сохраняемой в
двухмерных таблицах. Напоминает адресную или телефонную книгу.
В книге
имеется большое количество входов, каждый из которых соответствует определенной
особенности. Для каждой такой особенности, может быть несколько независимых
фрагментов данных, например имя, телефонный номер, и адрес. Предположим, что мы
должны сформатировать эту адресную книгу в виде таблицы со строками и столбцами.
Каждая строка (называемая также записью) будет соответствовать определенной
особенности; каждый столбец будет содержать значение для каждого типа данных -
имени, телефонного номера, и адреса представляемого в каждой строке. Адресная
книга могла бы выглядеть следующим образом:
Имя |
Телефон |
Адрес |
Petrov |
3232323 |
Address1 |
Ivanov |
3636666 |
Address2 |
Sidoroff |
3434342 |
Address3 |
То, что вы получили, является основой реляционной базы данных, как
и было определено в начале этого обсуждения - а именно, двухмерной (строка и
столбец) таблицей информации.
Однако реляционные базы данных редко
состоят из одной таблицы. Такая таблица меньше, чем файловая система. Создав
несколько таблиц взаимосвязанной информации, вы сможете выполнить более сложные
и мощные операции с вашими данными. Мощность базы данных зависит от связи,
которую вы можете создать между фрагментами информации, а не от самого фрагмента
информации.
Связывание одной таблицы с другой
Предположим, что персонажи в нашей первой таблице ( адресной книги ) - это пациенты больницы. В другой таблице, мы могли бы запомнить дополнительную информацию об этих пациентах. Столбцы второй таблицы могли бы быть помечены как Пациент, Доктор, Страховка, и Баланс.
Пациент |
Доктор |
Страховка |
Баланс |
Ivanov |
Vostrikovr |
B.C./B.S. |
$272.99 |
Petrov |
Vostrikovr |
None |
$44.76 |
Brock |
Perepelkin |
Health,Inc |
$977.47 |
Много мощных функций можно выполнить, извлекая информацию из этих
таблиц согласно указанным параметрам, особенно когда эти параметры включают в
себя фрагменты информации связанные в различных таблицах друг с другом.
Например, возьмем - докторов. Предположим, доктор Perepelkin захотел получить
номера телефонов всех своих пациентов. Чтобы извлечь эту информацию, он мог бы
связать таблицу с номерами телефонов пациентов (по адресной книге) с таблицей
которая бы указывала, какой из пациентов - его. Хотя, в этом простом примере, он
мог бы держать это в голове и сразу получать номера телефонов пациентов, эти
таблицы могут быть слишком большими и слишком сложными. Программы реляционной
базы данных разрабатывались для того чтобы обрабатывать большие и сложные
совокупности данных такого типа, что, очевидно, является более универсальным
методом в деловом мире. Даже если бы база данных больницы содержала сотни или
тысячи имен - как это вероятно и бывает на практике - одна команда SQL могла бы
выдать доктору информацию, в которой он нуждался, почти немедленно.
Язык SQL
достаточно сложен и многогранен. При работе же небольшой фирмы, или базы данных
в сети internet круг задач ограничен. Поэтому была создана небольшая, но очень
быстрая и функциональная реляционная СУБД MySQL. Тоесть, как вы уже догадались в
MySQL задействован не весь язык SQL, а только необходимая его часть. Но не нужно
переживать относительно урезанности.
Перечислю основные приятные стороны
пакета MySQL -это многопоточность, поддержка нескольких одновременных запросов,
оптимизация связей с присоединением многих данных за один проход, записи
фиксированной и переменной длины, ODBC драйвер в комплекте с исходником, гибкая
система привилегий и паролей, до 16 ключей в таблице, каждый ключ может иметь до
15 полей. Также есть поддержка ключевых полей и специальных полей в операторе
CREATE, поддержка чисел длинной от 1 до 4, строк переменной длины и меток
времени, интерфейс с языками C и perl. Основанная на потоках, быстрая система
памяти, утилита проверки и ремонта таблицы, все данные хранятся в формате
ISO8859_1. Все операции работы со строками не обращают внимания на регистр
символов в обрабатываемых строках, псевдонимы применимы как к таблицам, так и к
отдельным колонкам в таблице, все поля имеют значение по умолчанию. INSERT можно
использовать на любом подмножестве полей. Легкость управления таблицей, включая
добавление и удаление ключей и полей.
Можно выполнять команды SQL
непосредственно из командной строки системы unix или из интерактивного режима
MySQL. СУБД MySQL имеет библиотеку C API. Ее можно использовать для запросов к
базе данных, вставки данных, создания таблиц и т.п.
C API поддерживает все
функции MySQL. Язык perl поддерживается сразу двумя способами:
-
Портирован интерфейс с perl из mini-SQL, разработанный Андреасом
Коенигом.
- Есть модуль perl DBD
Также доступен 32-битный ODBC
драйвер для MySQL. Он позволяет запрашивать и получать данные из других
источников с поддержкой ODBC.
Кроме технических подробностей можно добавить,
что MySQL работает как на Unix, так и на платформе Windows 95/98, он очень прост
и удобен в работе.
Но понять насколько проста и удобна работа с MySQL
на PHP можно только увидев воочию практику. Вот очень интересный, на мой взгляд,
пример найденный мною.
http://www.nvkz.kuzbass.net/cyber-book/arhiv/first_in_PHP_and_MySQL.zip
Тем
же кто пойдёт дальше предлагаю прочитать очень подробную инструкцию по установке
и запуску MySQL.
http://www.nvkz.kuzbass.net/cyber-book/php+mysql/mysql_php.htm
И
чтобы подвести итог, хотелось бы рассказать одну историю. Одной небольшой фирме
потребовалось сделать на сайте базу данных по товарам. Человек, которому
поручили сделать базу данных, создал её на Delphi. Так вот, когда пришло время
размещать базу в сети, обнаружился очень неприятный факт. Все ISP работают на
Unix, соответственно для размещения подобной базы нужно ставить у провайдера
свой компьютер и платить, в среднем, около 50 у.е. за хостинг. В случае же если
СУБД сделана под MySQL, то платить придется лишь за мегабайты:
MySQL - это
удобно и практично. А скорость работы просто завораживает. Так что не теряйте
время зря, за этой технологией - будущее.