|
Главная Скачать (Download) Dreamweaver CS6 Dreamweaver CS5 Dreamweaver CS4 Dreamweaver 8 Dreamweaver MX 2004 - Рабочая область
Dreamweaver 4- Создание/ открытие документов - Настройка сайта - Компоновка страниц с CSS - Табличный контент - Шаблоны в MX 2004 - Работа с страницами - Настройка серверных приложений - Рабочая область для динамических страниц Уроки (Tutorials) Видеоуроки new!!! Fireworks ЧаВо Документация Статьи Программы и скрипты Бесплатные шаблоны Каталог сайтов Форум Карта сайта Контакты |
Азбука MySQL Причина возникновения названия MySQL остается неясной. С одной стороны, разработчики в процессе написания программ ко многим директориям и именам файлов традиционно добавляли префикс "my". С другой стороны, имя дочери одного из разработчиков - My. Какой из этих фактов стал причиной такого названия, остается загадкой даже для разработчиков, не говоря уже о нас, простых смертных Как только мы задумываемся об упорядоченном хранении информации, неизбежно приходим к мысли о создании базы данных. Создав ее, например, в Microsoft Access, мы облегченно вздыхаем и на какое-то время успокаиваемся. Но это "какое-то время" длится недолго - на горизонте уже маячит следующая, продиктованная жизненной необходимостью задача: нужно обеспечить доступ к данным через интернет с рабочих станций, на которых, вполне возможно, установлены различные ОС. И вот тут на помощь приходит быстрая и надежная СУБД MySQL. Эта СУБД ведет свое начало от mSQL. Разработчики нуждались в более быстрой, надежной и гибкой СУБД. В результате был создан новый SQL-интерфейс при почти не измененном API-интерфейс mSQL. Этот API был выбран, чтобы облегчить перенос программ других разработчиков. Вся мощь простоты SQL - это язык структурированных запросов (Structured Query Language), международный стандарт языка для доступа к базам данных. MySQL - это, если смотреть в общем, SQL-сервер; иначе говоря - программа, которая принимает запросы, написанные на SQL, и отсылает обратно определенные ответы. Ответами могут быть: данные, количество строк, задействованных в запросе, или просто строка (например, "Привет, Мир!"). СУБД MySQL предоставляет в ваше распоряжение подмножество языка SQL, соответствующее спецификации ANSI SQL 92. Конечно, нам нужно как-то обеспечить доступ к MySQL. Это можно сделать или через клиент (как текстовый, так и графический), или через какой-то язык программирования. Ядро, на котором сформирован MySQL, представляет собой набор подпрограмм, которые уже много лет использовались в высокотребовательном окружении. Это богатый и полезный функциональный набор, в то время как MySQL все еще находится в разработке. Основные цели MySQL: быстродействие и ошибкоустойчивость. Эта СУБД прекрасно справляется с обработкой очень значительных массивов данных (большое количество пользователей сообщают о работе с тысячами и даже миллионами записей). В листах рассылок нередки сообщения об базах данных в несколько гигабайт. Кроме того, MySQL в запросах к большим таблицам превосходит многие другие системы. Она очень стабильна и превосходно работает даже в случаях, когда несколько сотен пользователей нуждаются в доступе к одним и тем же данным. Исходя из вышесказанного легко понять, почему MySQL пользуется такой популярностью у разработчиков веб-приложений. MySQL также очень масштабируема, работает на всем - от персональных компьютеров до больших многопроцессорных систем. Одно из замечательных свойств MySQL заключается в том, что пользователь имеет доступ к MySQL-серверу независимо от операционной системы, языка программирования или клиента, которым пользуется. Находясь на UNIX-системе, пользователь может связываться с MySQL-сервером, работающим на OS/2- и Windows-платформах. Для взаимодействия с MySQL-сервером можно использовать множество языков программирования. Можно написать программы на C, C++, Java, PHP, Perl, TCL, Python - и они будут работать. В MySQL все организовано по схеме "ничего лишнего", поэтому и отсутствуют некоторые функции, которыми оснащены другие базы данных. MySQL не поддерживает вложенных запросов, тригерров; отсутствует также встроенная поддержка XML, OLAP и конструктов (constraits). Но зато есть новации (например, возможность кешировать запросы). Отсутствующие функции были принесены в жертву быстродействию, которое обеспечивает эта СУБД (хотя, если какие-то из этих функций все же понадобятся, можно использовать разработками сторонних производителей). Как поставил, так и держится Теперь, когда мы увидели, каким "навороченным" продуктом является MySQL, тем более хочется попробовать его в деле, поставить и пощупать все своими руками. Этим и займемся. В связи с возрастающим интересом к Linux-платформам, рассмотрим установку и работу с MySQL именно на такой платформе. Чтобы инсталляция MySQL проходила без особых затруднений, будем следовать рекомендациям, выложенным на сайте MySQL.
Приняв на вооружение эти рекомендации, запускаем на закачку файл "mysql-3.23.49a-pc-linux-gnu-i686.tar.gz" и спустя некоторое время получаем его. Перед началом установки создадим у себя группу и пользователя mysql: Shell>groupadd mysqlShell> useradd -g mysql mysql Далее распаковываем этот файл в каталог /usr/local: Shell> tar -zxf gunzip mysql-3.23.49a-pc-linux-gnu-i686.tar.gz Затем нужно сделать символическую ссылку mysql с каталога mysql-3.23.49a-pc-linux-gnu-i686: Shell> ln -s mysql-3.23.49a-pc-linux-gnu-i686 mysqlПричина этих действий заключается в том, что в скриптах прописаны именно эти каталоги. Теперь создадим каталог, в котором будут хранится базы. Для этого нужно всего лишь зайти в каталог mysql и запустить скрипт mysql_install_db, который находится в каталоге scripts: Shell>cd /usr/local/mysqlShell>scripts/mysql_install_db И последний штрих: с помощью команды safe_mysqld, которая находится в каталоге bin, запускаем сервер. Если очень хочется, чтобы запуск происходил при каждой загрузке системы, надо поместить запуск safe_mysql в один из файлов инициализации системы. В качестве примера: дописываем в /etc/rc.d/rc.local строчку /usr/local/mysql/bin/safe_mysqld &. Но, если просто записать эту строку в rc.local, mysql не захочет запускаться при загрузке системы. И вот, пошаманив немного над файлом safe_mysqld, я обнаружил, что в некоторых местах нужно заменить libexec на bin и var на data. Вот строки (начиная с 87), которые подверглись изменениям: MY_BASEDIR_VERSION=$MY_PWD # Where libexec, share and var
are После того как мы все поставили, нужно изменить владельца и группу созданных каталогов. Каталогу mysql и всем подкаталогам нужно назначить владельца root и группу mysql. Shell>chown -R root:mysql /usr/local/mysqlКаталогу баз данных назначаем владельца mysql и одноименную группу. Shell>chown -R mysql:mysql /usr/local/mysql/dataИ последний штрих в настройке - пропишем путь к исполняемым программам mysql в profile: PATH=$PATH:/usr/local/mysql/binНа сайте mysql можно скачать графические оболочки для работы с базами (mysqlgui и mycc). Только вот, установив эти оболочки, я пришел к выводу, что они не заменяют знание SQL и удобны только для отображения таблиц, находящихся в базе (кстати, для отображения мне больше понравился mycc - у него понятнее интерфейс, и с ним легче работать). Для связи с базой данных предназначена программа mysql. Это командный интерпретатор, который передает введенные команды СУБД. Что б такого сотворить В качестве примера работы с этой системой управления базами данных создадим базу аудиодисков. Думаю, найдется немало любителей музыки, владеющих такой массой музыкальных дисков, что в ней можно запутаться. Кроме того, еще одна проблема возникает, когда даешь кому-то послушать диск. Диск слушают, а возвращать забывают (да и сам нередко забываешь, кому что дал). Вот и получается: что диск у тебя был, помнишь, а где он сейчас - без понятия. Итак, мы поняли, что нужно сделать; приступим к исполнению. Для начала создадим базу данных. Запускаем командный интерпретатор и набираем: Mysql> create database audio_cd;Теперь самое время подумать, из чего же будет состоять наша база. Иначе говоря, какие таблицы она будет в себя включать.
Создадим таблицу дисков, которая будет включать в себя 3 поля:
Естественно, что на диске может быть больше одной песни,
и что одна песня может быть на разных компактах, поэтому это связь "многие
ко многим". Но, вместе с тем, конкретный диск одновременно может
находиться только у одного человека, и один человек может взять несколько
дисков - поэтому это связь "многие к одному". Теперь, когда мы разобрались с тем, какой должна быть структура нашей базы, можно набрать несколько команд, чтобы претворить задуманное в жизнь. Все команды будем выполнять в командном интерпретаторе mysql. Можно также набрать их в любом текстовом редакторе, записать в файл, а потом передать на командный вход интерпретатору - и он выполнит наши команды. Например, если мы сделаем текстовый файл db.txt, в котором запишем необходимые команды SQL, то выполнить этот файл можно с помощью команды: Shell>mysql <DB.TXT pre ><>Вот как выглядит этот файл: use audio_cd; У нас есть база, нужно заполнить ее полезной информацией.
Для начала добавим в нее несколько дисков с песнями. Для примера возьмем
диски "Pink Floyd". Mysql>insert into cd values (NULL, 'The Final Cut', 1983); Добавляем в этот альбом песни: mysql> insert into songs values Нужно присоединить эти песни к диску -для этого заполним таблицу songs_on_cd. Смотрим в соответствующих таблицах, под каким номером находятся песни, а под каким номером - диск. Это можно сделать с помощью команды select: Mysql>select * from cd; Mysql>select * from songs;Или просмотрев таблицы с помощью графической оболочки.
Из рисунка видно, что нужно добавить песни с номерами 1-12 к диску номер 1: Mysql>insert into songs_on_cd values(1,1), (1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10), (1,11), (1,12); Аналогично добавляем альбом 1999 года "Red Hot Chili Peppers" "Californication". Если возникнет необходимость посмотреть, какие песни на каком диске находятся, можно воспользоваться sql-командой select. Например, чтобы посмотреть, что находится на диске Californication (см. рис. 3), набираем следующую команду: mysql> select songs.song_name as song, songs.autor_name as autor
Если мы хотим на время отдать диск кому-то из друзей, то для начала нужно будет ввести координаты этого человека в базу, а потом зафиксировать передачу диска. Вот как это выглядит на языке sql: Mysql>insert into people values Передаем диск: Mysql> insert into take_disk values (1,1); И последний пример - посмотрим, у кого находится диск "The Final Cut" (см. рис. 4): mysql> select people.name as "Name", people.addr as "Address",
Хотя команда и получилась громоздкой, но она прекрасно работает даже в случае, если бы в базе было несколько тысяч записей. Напутствие в дорогу Mysql - быстрая и надежная система управления базами данных, хотя ее редко используют, набирая все команды вручную - так, как это сделали мы. Обычно она играет свою роль за кулисами, обслуживая разнообразнейшие веб-сайты. Мы также можем создать с помощью PHP или Perl собственный веб-сайт для учета музыкальных дисков. Но использование этих языков для доступа к mysql - это уже тема для отдельной статьи. Автор: Николай Шляхтун
Реклама |
|
|