su13@pochta.ru

| Первый | Второй | Третий | Четвёртый | Пятый | Шестой | Седьмой |


Предисловие

В мире программирования 1990-е годы можно по праву назвать десятилетием программного обеспечения с открытым кодом (Open Source software). Движение Open Source оставило свой след практически в каждом уголке технологий - от Linux до Perl и от карманных компьютеров до мэйнфреймов. Это влияние особенно сильно в области серверных приложений среднего масштаба, в которых часто нуждаются некоммерческие организации и малые предприятия и которыми пренебрегают нацеленные на коммерческий успех производители.

В первые два десятилетия компьютерного века серверы среднего масштаба встречались достаточно редко. Компьютеры были дорогими изделиями, имевшимися в больших учреждениях, таких как банки и университеты. Громадные серверы, работавшие в режиме разделения времени, обеспечивали вычислительными мощностями целые корпорации. Большая часть использовавшегося на этих системах программного обеспечения была такой же грандиозной, как сами серверы. Поскольку единственный компьютер обслуживал нужды нескольких подразделений, если не всей организации, ему приходилось удовлетворять запросы всех пользователей.

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

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

В первой половине 1990-х «жалкий» персональный компьютер достиг такого уровня, когда фактически оказался мощнее мэйнфреймов прежних лет. И если аппаратная часть более не была препятствием для вычислений среднего уровня, то таковым служило отсутствие доступного по цене программного обеспечения. Чтобы удовлетворить потребности некоммерческих организаций и малых предприятий в хранении данных, требовались доступные по цене операционная система и система управления базами данных. Одна половина этой задачи была решена с появлением таких дешевых и мощных операционных систем для серверов, как FreeBSD и Linux.

Решение той части задачи, которая относится к управлению базами данных, дают MySQL и mSQL. Они обладают мощью и гибкостью, сохраняя в то же время компактность и эффективность. В особенности MySQL удалось уместить большой набор возможностей в очень маленьком и быстром ядре. Хотя то и другое ядро далеко не обладают полным набором функций, имеющихся в дорогих корпоративных базах данных, они обладают вполне достаточными характеристиками, чтобы удовлетворить потребности управления базами данных среднего масштаба.

Кому предназначен этот диск

В основном книга предназначена для двух групп читателей. Прежде всего это те, кто заинтересован в использовании MySQL и mSQL с точки зрения администратора баз данных или программиста баз данных. С другой стороны, для каждого, желающего узнать об администрировании реляционных баз данных и программировании, не раскошеливаясь при этом на лицензию, приобретаемую у кого-нибудь из «больших парней», MySQL или mSQL окажется отличной отправной точкой. Если вы начинаете с MySQL или mSQL, то эта книга для вас.

С точки зрения администратора баз данных, книга охватывает основные методы создания и управления базами данных и таблицами в MySQL и mSQL. Мы не ограничиваемся простейшими вещами и даем советы по настройке производительности и устранению неполадок, чтобы позволить вам наиболее эффективно использовать свои приложения для MySQL или mSQL. Наконец, подробно описываются все инструментальные средства, поставляемые с MySQL и mSQL. Предварительного знакомства с SQL и реляционными базами данных не предполагается.

Для программистов баз данных описаны все основные программные интерфейсы наиболее популярных языков программирования систем клиент/сервер и приложений Интернет. При описании интерфейсов для отдельных языков программирования предполагается наличие у читателя основных навыков работы с рассматриваемым языком. К. примеру, в главе, посвященной Java™, предполагается, что читатель умеет писать простые приложения на Java и хочет теперь узнать, как заставить свои приложения общаться с базами данных MySQL или mSQL.

Ввиду огромной популярности MySQL и mSQL в Интернет естественно остановиться на создании CGI-приложений для MySQL и mSQL. Поэтому разработчики приложений для Интернет найдут в этой книге полезное описание того, как управлять своими сайтами с помощью MySQL или mSQL. В этих главах требуется самое незначительное знание CGI, но все же предполагается знакомство читателя с основами используемого языка программирования.

Цель книги на даном диске

На первый взгляд, цель книги очевидна: MySQL и mSQL принадлежат к числу наиболее популярных приложений, исходный код которых открыт. Они предоставляют практические преимущества программного обеспечения Open Source, несмотря даже на то, что их лицензии несколько более ограниченны, чем полагается для категории Open Source. Однако для каждого, достаточно долго изучавшего MySQL и mSQL, ответ не так прост.

Наиболее часто жалобы, касающиеся проектов Open Source, связаны с тем, что, как правило, отсутствует подробная и понятная документация. Однако в отношении MySQL и mSQL проблема едва ли состоит в отсутствии документации в сети.

Для MySQL есть великолепное бесплатное руководство, доступное на http://www.mysql.com. В нем полностью освещены синтаксис MySQL, инсталляция и API на языке С, а также администрирование базы данных и настройка производительности. Аналогично, по mSQL существует хорошее, хотя, возможно, менее подробное руководство по адресу: http://www.hughes.com.au.

Еще более осложняет дело то, что MySQL и mSQL не стоят на месте, они быстро развиваются. MySQL не просто не стоит на месте: благодаря усилиям, в основном, Майкла Видениуса (Michaelle «Monty» Wide-nius) MySQL движется вперед со скоростью курьерского поезда. Поэтому будьте готовы к тому, что некоторые данные в этой книге опережают старые версии или отстают от новых.

Но погодите ставить эту книгу обратно на полку! Обо всех этих проблемах мы знали до того, как взялись за работу над ней. Есть существенная причина, по которой написание книги на данную тему не только оправданно, но и важно. Мир MySQL и mSQL не ограничивается лишь двумя базами данных. Огромная распространенность в сообществе Open Source вызвала появление массы инструментальных средств для администрирования и разработки приложений, которые входят в комплекты MySQL и mSQL. Поэтому задачей данной книги является создание единого и цельного руководства по ядру этих баз данных, а также интерфейсам программирования и инструментальным средствам, используемым для создания конечных решений, связанных с ба-

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

Как пользоваться этой книгой

Мы разделили книгу на три части. В первой части описываются начальный этап и управление базами данных MySQL и mSQL. Она служит основой для второй части, в которой показано, как создавать приложения, использующие базы данных MySQL или mSQL. Наконец, третья часть служит полным справочником для получения быстрой подсказки по всем API и инструментальным средствам, описанным в первых двух частях.

Если вы принадлежите к отмеченной выше аудитории, то попадаете в одну из трех категорий:

Мы предназначили первую часть книги администраторам баз данных. Вначале рассматривается общий вопрос о том, что же такое база данных. Возможно, у вас уже есть опыт работы с базами данных и тогда, конечно, изложение слишком элементарно для вас. Все же посмотрите в конце Главы 1 «Введение в реляционные базы данных» краткое введение в MySQL и mSQL. Особый интерес оно представляет для тех, кто еще не решил, какую базу данных ему использовать, и хочет кратко ознакомиться с обеими.

Глава 2 «Проектирование баз данных» может вначале показаться не представляющей ценности, но на самом деле это одна из важнейших глав в книге. Правильное проектирование базы данных важно как для администраторов, так и для программистов, если ставится задача создания приложений для работы с базами данных, которые достаточно легко масштабировать в случае необходимости внесения изменений. Правильное проектирование базы данных необходимо также для обеспечения высокой производительности ее работы.

Глава 3 «Установка» описывает процесс инсталляции ядра для обеих баз данных.

Если вы выбрали конкретное ядро базы данных, то можете пропустить либо главу 4 «MySQL», либо главу 5 «mSQL». Каждая глава посвящена ядру одной из баз данных и не имеет никакого отношения к пользователям другого ядра. Однако если вы еще не сделали свой выбор, то чтение этих двух глав может быть решающим для вас.

Мы завершаем часть, предназначенную администраторам, обсуждением вариантов SQL, представленных в MySQL и mSQL. Хотя во многих случаях первая глава не представляет интереса для программистов, у них может возникнуть необходимость время от времени обращаться к ней, даже если они имеют опыт работы с SQL. Тем же, кто раньше не работал с SQL, явно необходимо прочесть эту главу.

Вторая часть начинается с обзора модели программирования клиент/ сервер. Изложение ведется на самом общем уровне, но закладывает основу понимания взаимодействия между базами данных и программированием приложений, ведущего к созданию крепких приложений, работающих с базами данных. Конечно, если у вас есть опыт разработки клиент-серверных приложений в других средах, то это обсуждение архитектуры может быть для вас повторением давно пройденного. Остальные главы этой части посвящены программированию на отдельных языках или с помощью отдельных инструментальных средств. Особый интерес для Web-программистов представляют главы по Perl, Java, Python и PHP.

Завершает книгу справочный раздел по всем инструментальным средствам и API, рассмотренным в книге.

О MySQL и mSQL

Мы попытались в этой книге одинаково полно осветить MySQL и mSQL. Написание одной книги, описывающей обе СУБД, оправданно, поскольку они весьма схожи. Они не имеют общего кода, но сходство является преднамеренным. Для единообразия мы всегда используем выражения «MySQL и mSQL» или «MySQL или mSQL», если какой-либо факт справедлив для обеих СУБД. Первым указывается MySQL, поскольку мы произвольно решили, что наиболее популярный продукт будет идти первым. Если упоминается лишь одно из названий MySQL или mSQL, то это значит, что фраза особо отмечает факт, связанный с этим конкретным ядром. За исключением глав, посвященных исключительно одному из продуктов, вы можете считать, что наличие в предложении лишь одного из названий MySQL или mSQL означает его справедливость только для одной базы данных.

Обозначения, используемые в книге

Моноширинный шрифт

Используется для всего, что находится внутри программы, включая ключевые слова, команды SQL и имена переменных. Этот шрифт используется также для программных примеров, результатов выполнения команд и файлов конфигурации системы.

Жирный моноширинный шрифт

Обозначает данные, вводимые пользователем.

Моноширинный курсив

Обозначает передаваемый вами элемент, например, имя файла или переменную.

Курсив

Используется для обозначения имен каталогов, файлов, программ, команд Unix и URL. Этот шрифт используется также для введения новых терминов и для выразительности.

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

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

Оглавление

GNU OCXE GNU LINUX
Сайт управляется системой uCoz