Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
Введение
В настоящее время реляционные системы управления базами данных (СУБД) являются важным инструментом во многих областях, начиная с таких традиционных областей применения, как бизнес, научные исследования, образование, и заканчивая разработкой поисковых серверов в Internet. Однако, несмотря на важность наличия хорошей базы данных для введения и доступа к информационным ресурсам, многие организации не применяют их в своей работе. Исторически сложилось так, что СУБД стоили очень дорого, а продавцы устанавливали очень высокие цены как на программное обеспечение, так и на услуги по технической поддержке. Кроме того, механизмы СУБД требовали удовлетворения существенных требований по производительности от аппаратных платформ, что еще больше повышало стоимость таких решений.
В последние годы ситуация резко изменилась как с точки зрения программного обеспечения, так и с точки зрения аппаратуры. Компьютеры одновременно дешевеют и становятся мощнее. При этом обозначилась тенденция создания высокопроизводительных операционных систем, которые можно купить по цене дешевых лазерных дисков или даже получить бесплатно через Internet, таких как операционные системы, созданные на базе ОС BSD UNIX (FreeBSD, NetBSD, OpenBSD), а также различные версии ОС Linux (RedHat, Caldera, LinuxPPC).
Создание операционных систем, позволяющих максимально использовать возросшие возможности компьютеров, произошло прежде всего благодаря тому, что были разработаны и свободно распространялись такие средства разработки, как компилятор GNU С gcc. Эти попытки создания программного обеспечения, которое было бы доступно для каждого, кто хочет его получить, дало толчок движению, которое сейчас известно как Open Source movement, и дало жизнь многим важным и нужным программам. В качестве примера успешного применения идеологии Open Source movement можно привести самый загруженный узел FTP в мире - ftp.cdrom.com, работающий под управлением ОС FreeBSD. Сервер Apache является самым широко используемым сервером в Internet. Еще одним успешным проектом Open Source является язык написания сценариев Perl и быстро завоевывающий поклонников язык РНР. Все это находится в разительном контрасте с патентованными решениями за очень высокую цену, и при этом даже не сопровождаемых исходными текстами.
Программное обеспечение баз данных тоже стало более доступным. Достаточно вспомнить такие СУБД, как Postgres и mSQL, которые можно получить за невысокую плату или совсем бесплатно. Совсем недавно такие мощные коммерческие производители, как Informix и Oracle начали предлагать свое программное обеспечение совсем бесплатно для таких ОС, как Linux. (Однако эти продукты поставляются обычно в двоичном виде и без поддержки, что снижает их пользу.)
Одним из новейших явлений на "арене" недорогих или бесплатных баз данных является MySQL, реляционная СУБД, типа клиент/сервер, созданная в Скандинавии. СУБД MySQL включает в себя SQL-сервер и программы-клиенты, осуществляющие доступ к серверу, средства администрирования и программный интерфейс для программирования своих собственных программ.
СУБД MySQL "уходит своими корнями" в 1979 год и происходит от СУБД UNIREG, разработанной Михаэлем Видениусом по заказу шведской компании ТсХ. В 1994 году компания ТсХ начинает искать SQL-сервер для создания Web-приложений. Было опробовано несколько коммерческих серверов, но те оказались слишком медленными для больших таблиц данных, которые использовались в компании ТсХ. Они также обратили внимание на СУБД mSQL, но та не совсем удовлетворяла задачам компании ТсХ. Поэтому Монти начал работать над созданием нового сервера. Программный интерфейс был разработан как аналог mSQL, так как тогда в наличии было несколько бесплатных средств mSQL. Пользуясь аналогичным интерфейсом, эти же средства можно использовать для СУБД MySQL с минимальными затратами на перенос.
В 1995 году Дэвид Оксмарк, работающий в компании Detron HB, начал "давление" на ТсХ с тем, чтобы она начала распространять СУБД MySQL через Internet. Кроме того, Дэвид принял участие в работе над документацией. Версия 3.11.1 СУБД MySQL была выпущена в свет в 1996 году в виде двоичной дистрибуции для работы под управлением ОС Linux и Solaris. Сегодня MySQL работает на многих платформах и распространяется как в двоичных кодах, так и в исходных текстах.
СУБД MySQL нельзя причислить в полной мере к проектам Open Source, так как при определенных условиях покупка лицензии все же требуется. Тем не менее MySQL пользуется широкой популярностью среди сторонников движения Open Source, так как условия лицензирования здесь не очень строгие. (По сути, MySQL распространяется бесплатно за исключением тех случаев, когда вы намереваетесь ее продавать или продавать услуги, создаваемые с ее помощью.)
Но популярность СУБД MySQL не ограничивается только сообществом Open Source. Да, она работает на персональных компьютерах (при этом многие разработки, производящиеся на MySQL, создаются на недорогих Linux-системах). Но MySQL обладает отличной переносимостью и может с тем же успехом использоваться на дорогих коммерческих операционных системах (таких как Solaris, Irix или Windows) и на любой аппаратуре вплоть до мощных серверов. Более того, так же как и ее более "дорогие соперники", она позволяет обрабатывать большие базы данных, содержащие миллионы записей.
Теперь СУБД MySQL предстала перед нами во всей красе: бесплатные операционные системы, работающие на мощных, но не очень дорогих персональных компьютерах, предоставляющих в распоряжение пользователей значительную вычислительную мощность и более широкий выбор операционных систем, чем прежде. Снижение экономических барьеров позволяет получить доступ к базам данных большему количеству людей и организаций, чем когда бы то ни было. Я, например, общаюсь с СУБД MySQL с помощью языков Perl и РНР, сервера Apache на ноутбуке G3 PowerBook, работающем под управлением ОС LinuxPPC. Это позволяет мне работать в любой точке земного шара. Полная стоимость такого проекта равна стоимости моего ноутбука.
Прошли те времена, когда многие организации могли только мечтать об использовании огромных возможностей мощных реляционных СУБД. Теперь это уже не проблема. Цены на СУБД снизились, поэтому использовать СУБД можно уже и индивидуальным пользователям. Люди, даже не мечтавшие об использовании баз данных, теперь могут широко их применять, например, для реализации задачи хранения и просмотра данных о генеалогических исследованиях, ведения собственных коллекций (бабочки, марки, бейсбольные карточки и т.д.), помощи в своем бизнесе на начальной стадии или обеспечения поисковых возможностей персональных Web-страниц.
Все-таки, почему MySQL?
Если вы действительно ищете бесплатную или недорогую СУБД, можно остановить свой выбор на одной из трех кандидатур: MySQL, mSQL и Postgres или на бесплатных, но неподдерживаемых СУБД от крупных производителей. Сравнивая СУБД MySQL с другими базами данных, всегда помните о том, какой фактор является для вас самым важным. Производительность, поддержка, возможности (соответствие стандартам языка SQL, возможность расширения и т.д.); условия лицензирования и ограничения и, наконец, цена. Принимая во внимание эти соображения, СУБД MySQL обладает многими преимуществами.
- Быстродействие. MySQL - достаточно быстродействующая СУБД. Разработчики склоняются к мнению, что СУБД MySQL является одной из самых быстрых баз данных из имеющихся на современном рынке. В этом можно удостовериться, посетив Web-узел http://www.inysql.com/benchmark.html. Эта страница позволяет делать сравнительную проверку производительности на Web-узле MySQL.
- Простота использования. СУБД MySQL является высокопроизводительной и относительно простой в использовании СУБД, которую значительно проще инсталлировать и администрировать, чем многие большие системы.
- Цена.. СУБД MySQL распространяется бесплатно для домашнего использования. (См. раздел "Можно ли получить MySQL бесплатно?".)
- Поддержка языка запросов. MySQL "понимает" команды языка SQL (Structured Query Language - структурированный язык запросов). Этот язык применяется во всех современных СУБД. MySQL также поддерживает интерфейс ODBC (Open Database Connectivity), протокол интерфейса с базами данных, разработанный компанией Microsoft.
- Возможности. Сервер позволяет одновременно подключаться неограниченному количеству пользователей. Доступ к серверу СУБД MySQL можно осуществить в интерактивном режиме с помощью различных интерфейсов, позволяющих вводить запросы и просматривать полученные результаты: это программы-клиенты, работающие с командной строкой, Web-броузеры или программы-клиенты, работающие в системе Х Window. Кроме того, в наличии имеются программные интерфейсы для таких языков, как С, Perl, Java, PHP и Python. Таким образом, можно использовать как готовое клиентское программное обеспечение, так и создавать свое собственное.
- Взаимодействие и безопасность. MySQL предназначена для работы в сети и может быть доступна через Internet, таким образом, с данными можно работать в любой точке земного шара. Но при этом СУБД MySQL снабжена развитой системой защиты от несанкционированного доступа.
- Переносимость. СУБД MySQL отлично работает как под управлением самых различных версий UNIX, так и под управлением систем, не использующих UNIX, таких как Windows и OS/2. СУБД MySQL работает как на домашних ПК, так и на мощных серверах.
- Открытое распространение. Дистрибуция СУБД MySQL легкодоступна. Для этого достаточно воспользоваться Web-броузером. Если вы не понимаете как что-либо работает, просмотрите исходный код. Если вам что-то в работе не нравится, можно внести коррективы.
А как обстоят дела с поддержкой? Хороший вопрос, тем более, что от базы данных, которой нельзя пользоваться, польза невелика. Я не думаю, что эта книга сможет помочь вам во всем. Конечно, после прочтения этой книги у вас возникнут вопросы, о которых я сам никогда не задумывался или просто не хватало времени для описания такой проблемы.
Но ответы на вопросы можно найти и в других источниках. Кроме того, СУБД MySQL имеет хорошую поддержку.
- СУБД MySQL снабжена расширенным справочным руководством (450 страниц и постоянное дополнение).
- Можно заключить контракты на техническую поддержку с самими разработчиками MySQL.
- Есть список рассылки, на который может подписаться любой желающий. В нем принимает участие очень много грамотных пользователей, в том числе включая и самих разработчиков MySQL. Этого будет достаточно для большинства пользователей СУБД MySQL.
Ответы на вопросы, размещенные в списке рассылки, можно получить за считанные минуты. Обнаружив ошибку, разработчики исправят ее за считанные дни (иногда часы!), и исправления можно получить немедленно по Internet. Это резко контрастирует с нередко разочаровывающим опытом работы с бюрократическими отделами поддержки больших компаний, продающих СУБД. (Вы уже это знаете? Я тоже. Я сам знаю, что мне лучше делать, когда у меня возникает вопрос об использовании того или иного программного продукта. Ожидать момента, когда продавец соблаговолит, наконец, найти время для ответа, или разместить свой вопрос в списке рассылки и проверять полученные ответы в удобное для меня время.)
Если вы находитесь на этапе выбора, то СУБД MySQL является идеальным кандидатом для проведения оценки. Эту СУБД можно проверить в работе безо всякого риска и финансовых расходов. Если у вас возникают какие-либо проблемы, можно обратиться к списку рассылки. Оценка всегда требует определенного времени, но это не относится к рассматриваемой СУБД, ее инсталляция и установка требует гораздо меньше времени, чем многие другие современные СУБД.
Если вы уже работаете с другой СУБД
Если вы уже работаете с другой СУБД, нужно ли переходить на MySQL? Это совсем необязательно. Зачем что-то менять, если вас вполне удовлетворяет система, на которой вы работаете в данный момент? Но если вас стесняет то, что вы используете, вам определенно стоит рассмотреть MySQL как возможную альтернативу используемой СУБД. Вероятно, проблемой является производительность вашей системы или права собственности и вы не хотите ограничиваться ими. Возможно, вы планируете перейти на новое аппаратное обеспечение, которое не поддерживает работу с вашей системой, или ваше программное обеспечение поставляется только в двоичном виде, а вам хотелось бы иметь исходные тексты, а ваша СУБД слишком дорого стоит! Это все может быть причиной для того, чтобы обратить внимание на MySQL. С помощью этой книги можно получить достаточно полное представление о возможностях MySQL, кроме того, можно задавать вопросы, используя список рассылки, и, вероятно, вы сможете найти ответы на все свои вопросы.
Планируя переход с другой СУБД, работающей с SQL, обратитесь к сравнительной таблице на Web-узле MySQL по адресу http: //www.mysql.com/crash-me-choose.html. После этого просмотрите главы, где описаны типы данных СУБД MySQL и диалект языка SQL. Вероятно, вы найдете, что диалекты языка SQL вашей СУБД и СУБД MySQL сильно отличаются, и перенос ваших приложений потребует больших затрат.
Частично процедура оценки должна включать несколько пробных переносов, потому что на практике это может оказаться значительно проще, чем кажется. Это может оказаться не настолько затруднительным, даже если ваша СУБД очень старая и не "понимает" команд SQL. Я недавно занимался преобразованием данных из формата СУБД, которую никак не назовешь СУБД SQL-типа. Типы данных не имели своих SQL-эквивалентов. Этот проект заключался в преобразовании методов доступа к сети, дюжины экранных программ и стандартных запросов. Переход потребовал полтора месяца напряженной работы. Получилось достаточно солидно.
Инструментарий, поставляемый с MySQL
Дистрибуция MySQL включает следующие программные продукты.
- SQL-сервер. Эта программа обеспечивает доступ к базам данных.
- Клиентские программы для доступа к серверу. Это интерактивная программа, позволяющая делать запросы и просматривать полученные результаты, и несколько административных и сервисных программ, помогающих работать с вашим Web-узлом. Одна сервисная программа позволяет управлять сервером. Другие позволяют импортировать или экспортировать данные, проверять права доступа и т. д.
- Клиентская программа, позволяющая создавать свои собственные программы. Клиентские программы можно писать на С, так как сама библиотека написана на С, но библиотека также позволяет создавать шлюзы для написания программного обеспечения на других языках программирования.
В дополнение к программному обеспечению, которое собственно поставляется с MySQL, СУБД MySQL используется многими талантливыми и способными людьми, которые имеют обыкновение создавать программное обеспечение для повышения своей производительности и хотят, чтобы эти достижения были доступны всем желающим. В результате, если вы остановите свой выбор на СУБД MySQL, у вас в арсенале будет множество программных продуктов других производителей, которые значительно облегчат работу с MySQL.
Можно ли получить MySQL бесплатно?
СУБД MySQL является продуктом класса Open Source (Открытые исходные тексты), который можно получить бесплатно. Просмотреть детальное изложение основных принципов лицензионной политики можно в справочном руководстве по СУБД MySQL, но вкратце основные принципы лицензионной политики можно определить так.
- Клиентское ПО и библиотека программирования клиентов поставляются бесплатно для всех платформ.
- Сервер MySQL, работающий на ОС UNIX и других платформах, не использующих Windows, можно получить бесплатно за исключением случая, когда он нужен для продажи его самого или ПО и услуг, создаваемых с его помощью. В таком случае сервер необходимо лицензировать. Логика этой процедуры заключается в том, что если вы зарабатываете какие-то деньги на MySQL, то абсолютно резонно, что нужно поделиться и с разработчиками MySQL. (Ставка составляет 200 долларов в случае профессионального использования СУБД, плюс уйма бесплатного ПО, которое может повысить эффективность вашей работы.)
- Версия сервера MySQL, работающая под управлением ОС Windows, требует покупки лицензии.
- Старые версии MySQL доступны под GNU Public License (GPL) и могут использоваться бесплатно по любому назначению. СУБД MySQL версии 3.20.32а имеются в наличии на условиях лицензии GPL.
Независимо от того, нуждаетесь вы в лицензии или нет, формальная поддержка от разработчиков СУБД MySQL обеспечивается бесплатно, и я призываю вас принять это к сведению. (Особенно, если вы работаете в компании, руководство которой не поощряет использование нелицензионного программного обеспечения.) Имеется несколько уровней поддержки, но кроме того, что вы получаете первоклассную поддержку, вы еще сами своей работой помогаете становлению и развитию СУБД MySQL, развивая таким образом все сообщество MySQL.
Для кого предназначена эта книга
В этой книге можно познакомиться с методами эффективной работы как с СУБД MySQL, так и с СУБД вообще. Это сделает вашу работу с MySQL более продуктивной. Вы познакомитесь с процессом наполнения базы данных информацией, узнаете, как формулировать запросы к базе данных, чтобы получить ответы, на вопросы, которые могут вас заинтересовать.
Совсем не надо быть программистом или уметь работать с языком запросов SQL. Эта книга рассказывает, как это делается. Книга больше посвящена проблеме правильной работы с СУБД, чем тонкостям синтаксиса языка SQL. Она акцентирует внимание на уникальных возможностях СУБД MySQL, показывая, как можно их использовать с максимальной эффективностью.
Читатель познакомится также с методами интеграции MySQL с другими средствами. В книге показаны приемы работы с MySQL с помощью языка РНР или Perl для создания динамических Web-страниц на основе запросов к базе данных. Читатель узнает, как можно написать свою несложную собственную программу, которая будет работать с базами данных СУБД MySQL. Все это расширяет возможности СУБД MySQL и позволяет с ее помощью решать задачи, поставленные перед вами.
Если вы несете ответственность за администрирование СУБД MySQL, эта книга разъяснит вам ваши обязанности и то, как с ними справиться. Читатель узнает, как устанавливаются учетные записи пользователей, как делается резервное копирование базы данных, как обеспечивается полная безопасность вашего Web-узла.
Начало
Оглавление
Полное содержание
Предисловие
Структура книги
Об авторе
Заказать книгу в магазине "Мистраль"