MySQL

Поль Дюбуа

MySQL
Paul DuBois
книга MySQL




Введение
Файлы к книге
Рецензии на книгу

О книгах по PHP и MySQL в блоге Виктора Штонда

В книге описана одна из самых популярных реляционных систем управления базами данных MySQL. Вместо простого обзора возможностей MySQL, автор показывает, как можно максимально эффективно использовать эту СУБД. На примере двух тестовых баз данных он приводит решения проблем, с которыми вы обязательно столкнетесь при практическом использовании MySQL. Вы научитесь интегрировать MySQL с программными средствами, разработанными сторонними компаниями, такими как компиляторы языков PHP и Perl, которые позволяют с помощью запросов к базе данных создавать динамические Web-страницы. Кроме того, здесь приведен обширный справочник по типам столбцов, операторам, функциям, синтаксическим конструкциям языка SQL, интерфейсам C API, Perl DBI и PHP API. В книге предоставлена уникальная информация, которую вряд ли можно получить где-нибудь еще. Книга рассчитана на пользователей и разработчиков систем клиент/сервер на основе MySQL.

832 стр., с ил.; ISBN 5-8459-0158-8, 0-7357-0921-1; формат 70x100/16; серия Landmark; 2001, 2 кв.; Вильямс.



Понравилась книга? Порекомендуйте её друзьям и коллегам:







Книги, рекомендуемые вместе с этой книгой:



Об авторе

Пол Дюбуа (Paul DuBois) последние 15 лет работал администратором сети и баз данных в Висконсинском университете (Wisconsin University, Madison). Он автор книг Software Portability With imake и Using csh & tcsh и соавтор справочного руководства по СУБД MySQL.

О рецензентах

Дэвид Оксмарк (David Axmark) уже более 15 лет работает в должности консультанта по программному обеспечению. В числе проектов, в которых он принимал участие, — система исследования рынка (CommonLISP+CLOS+MySQLs-ISAM), бизнес-графика (в ЗУПВ 32 Кбайт) и система формирования заказов для энергетической компании. Его перу принадлежат многие страницы программного кода на ассемблере для процессоров 6502 и Z80, языках программирования BASIC, C, CommonLisp, (Bourne)-Shell и Perl. Его увлечение СУБД MySQL началось несколько лет назад, еще до появления первой общедоступной версии. Дэвид живет в Упсале (Швеция) вместе со своими растениями и компьютерами.

Виджей Чогул (Vijay Chaugule) работает старшим системным администратором в Сан-Хосе (Калифорния) и поддерживает работу большой UNIX-сети. Он имеет восьмилетний опыт работы с сетями и системами, с коммерческими и GNU-средствами. Его коньком является создание сценариев на языке Perl, компиляция и инсталляция программного обеспечения GNU. Сейчас он использует СУБД MySQL при создании проекта на узле induscrafts.com.

Чэд Кэннингэм (Chad Cunningham) — разработчик систем на математическом факультете Университета штата Огайо. Здесь он трудится над переводом учебных инструкций из традиционной формы в форму Web-приложений.

Билл Джерард (Bill Gerrard) — вице-президент по технологическим вопросам компании Daze Networks, Inc. в Хантингтон Бич (Калифорния). Компания Daze Networks, Inc. специализируется на Internet-услугах, включая виртуальные Web-серверы на Web-узле DigitalDaze.com, позволяющие получить полное управление вашим сервером СУБД MySQL, и на узле DNSCentral.com, позволяющем регистрировать доменное имя, размещение и поддержку Web-разработок, электронной почты с помощью СУБД MySQL как информационной базы.

Джиджо Джордж Джон (Jijo George John) возглавляет отдел разработки программных систем, входящий в состав группы химического анализа компании Hewlett Packard. Он имеет богатый опыт разработки программных систем и прикладного программного обеспечения для химических приборов, хорошо знаком как с интерфейсом "прибор-устройство", так и с различными приложениями, работающими с базами данных. Сейчас он использует СУБД MySQL в процессе выполнения проекта Web-узла induscrafts.com.

Фрэд Рид (Fred Read) на протяжении 14 лет возглавляет собственную консалтинговую компанию ServaLan Systems Limited. Его фирма специализируется на проектировании Unix-систем в области телекоммуникаций, баз данных, финансовых приложений и Internet-приложений. В настоящее время ведется разработка телекоммуникационной коммутирующей системы. Последние три года он является Internet-провайдером (PremierISP) и ведет свой рекламный бизнес в Internet (PremierAds). Он уже 9 лет женат на Хелен и воспитывает троих детей (двух девочек и мальчика). Проживает в Англии.

Доктор Эгон Шмидт (Dr. Egon Schmid) работает в компании Six Offene Systeme в Лайнфелден-Эхтердинген (Германия) в отделе разработки программных систем. Там создаются отличные Web-решения на основе баз данных. Он также является членом группы документирования языка PHP. Он соавтор первой книги, посвященной PHP на немецком языке.

Яни Толонен (Jani Tolonen) — разработчик программного обеспечения с применением возможностей СУБД MySQL. Сейчас он учится в Хельсинкском Технологическом университете (Helsinki University of Technology), где фокусирует свои интересы на технологии и программировании во многих областях. Яни учился у Михаэля ("Монти") Видениуса, создателя СУБД MySQL, и глубоко предан делу его развития. Яни и Монти стали друзьями совершенно случайно. Они жили по соседству на протяжении десяти лет, Яни начал работу с СУБД MySQL немного позже, чем Монти начал разработку СУБД MySQL, в 1995 году.

Михаэль Видениус ("Монти") — финн, разговаривающий на шведском языке. Работает с базами данных с 1978 года. В 1981 году был сначала принят на работу, а потом стал и совладельцем компании TcX. Написал большую часть СУБД UNIREG ("предшественницы" СУБД MySQL) и большую часть MySQL-сервера. В Хельсинкском Технологическом университете изучал физику. Работал в основном с языками программирования Basic, Assembler, C, LISP, Perl, SQL, C++ (именно в порядке очередности их освоения), но всегда, когда у него есть время, предпочитает работать с новыми языками. Он женат и имеет двоих детей, двух черепах, одну собаку и двух змей. Сейчас большую часть своего времени он тратит на разборку почты.

Кроме того, издательство New Riders хотело бы отблагодарить за неоценимый вклад Томаса Карлссона (Tomas Karlsson), Колина МакКинона (Colin McKinnon), Сашу Пачева (Sasha Pachev), Эрика Сэвэджа (Eric Savage), Дерика Сидовэя (Derick H. Siddoway) и Боба Ворти (Bob Worthy).

Предисловие

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

Может я и имею малую толику таланта писать программный код, который потом работает, но, к счастью, есть такие люди, как Пол, которые могут объяснять доступным языком вещи, которые многие пользователи просто не понимают. Мы работали над тем, как сделать MySQL еще эффективнее и быстрее, но у MySQL есть такие возможности, которые можно изучить только на практике. Более года Пол работал над руководством по MySQL, изучая принципы работы СУБД MySQL. В этой книге он делится своим опытом и знаниями с вами. (При желании вы тоже можете подключиться к работе по созданию интерактивного справочного руководства по СУБД MySQL, даже если в данный момент вы не совсем понимаете принципы работы СУБД MySQL.)

Руководство по MySQL всегда рассматривалось в TcX как технический справочник по MySQL. Нам всегда не доставало руководства пользователя, в котором бы излагались технические концепции в более легкодоступной форме. Эта книга отлично восполняет этот пробел! Одной из самых важнейших задач СУБД MySQL является максимально возможная совместимость со старыми версиями. Поэтому есть уверенность, что, невзирая на очень высокие темпы развития MySQL, большая часть концепций, изложенных в этой книге, будет актуальна достаточно длительный период времени.

Не желая злоупотреблять вашим вниманием, я все же хотел бы поблагодарить свою жену Кэрол за ее невероятное долготерпение на протяжении всех трех лет моей работы над проектом MySQL; моих детей Макса и Ми за понимание того факта, что даже если их папа есть дома, то фактически он отсутствует. Также хочу поблагодарить Дэвида за его бесценный совет написать о MySQL и Аллана Ларсона (Allan Larson) за предоставленную мне возможность это сделать. Я всегда мог рассчитывать на помощь и поддержку со стороны действующей команды MySQL: Яни Толонена, Синиши Миливоевича (Sinisa Milivojevic), Анти Халонена (Antti Halonen) и Тону Самуэля (Tonu Samuel). Наконец, я бы хотел поблагодарить тех людей, которые работали над написанием программного интерфейса и клиентских программ, выпускали дополнения и прекрасные отчеты об ошибках, которые помогли нам создать СУБД MySQL в том виде, в котором она есть сегодня.

Михаэль Видениус

Гельсингфорс (Helsingfors), 1999 г.

Введение

В настоящее время реляционные системы управления базами данных (СУБД) являются важным инструментом во многих областях, начиная с таких традиционных областей применения, как бизнес, научные исследования, образование, и заканчивая разработкой поисковых серверов в 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 и быстро завоевывающий поклонников язык PHP. Все это находится в разительном контрасте с патентованными решениями за очень высокую цену, и при этом даже не сопровождаемых исходными текстами.

Программное обеспечение баз данных тоже стало более доступным. Достаточно вспомнить такие СУБД, как Postgres и mSQL, которые можно получить за невысокую плату или совсем бесплатно. Совсем недавно такие мощные коммерческие производители, как Informix и Oracle начали предлагать свое программное обеспечение совсем бесплатно для таких ОС, как Linux. (Однако эти продукты поставляются обычно в двоичном виде и без поддержки, что снижает их пользу.)

Одним из новейших явлений на "арене" недорогих или бесплатных баз данных является MySQL, реляционная СУБД, типа клиент/сервер, созданная в Скандинавии. СУБД MySQL включает в себя SQL-сервер и программы-клиенты, осуществляющие доступ к серверу, средства администрирования и программный интерфейс для программирования своих собственных программ.

СУБД MySQL "уходит своими корнями" в 1979 год и происходит от СУБД UNIREG, разработанной Михаэлем Видениусом по заказу шведской компании TcX. В 1994 году компания TcX начинает искать SQL-сервер для создания Web-приложений. Было опробовано несколько коммерческих серверов, но те оказались слишком медленными для больших таблиц данных, которые использовались в компании TcX. Они также обратили внимание на СУБД mSQL, но та не совсем удовлетворяла задачам компании TcX. Поэтому Монти начал работать над созданием нового сервера. Программный интерфейс был разработан как аналог mSQL, так как тогда в наличии было несколько бесплатных средств mSQL. Пользуясь аналогичным интерфейсом, эти же средства можно использовать для СУБД MySQL с минимальными затратами на перенос.

В 1995 году Дэвид Оксмарк, работающий в компании Detron HB, начал "давление" на TcX с тем, чтобы она начала распространять СУБД 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 и PHP, сервера Apache на ноутбуке G3 PowerBook, работающем под управлением ОС LinuxPPC. Это позволяет мне работать в любой точке земного шара. Полная стоимость такого проекта равна стоимости моего ноутбука.

Прошли те времена, когда многие организации могли только мечтать об использовании огромных возможностей мощных реляционных СУБД. Теперь это уже не проблема. Цены на СУБД снизились, поэтому использовать СУБД можно уже и индивидуальным пользователям. Люди, даже не мечтавшие об использовании баз данных, теперь могут широко их применять, например, для реализации задачи хранения и просмотра данных о генеалогических исследованиях, ведения собственных коллекций (бабочки, марки, бейсбольные карточки и т.д.), помощи в своем бизнесе на начальной стадии или обеспечения поисковых возможностей персональных Web-страниц.

Все-таки, почему MySQL?

Если вы действительно ищете бесплатную или недорогую СУБД, можно остановить свой выбор на одной из трех кандидатур: MySQL, mSQL и Postgres или на бесплатных, но неподдерживаемых СУБД от крупных производителей. Сравнивая СУБД MySQL с другими базами данных, всегда помните о том, какой фактор является для вас самым важным. Производительность, поддержка, возможности (соответствие стандартам языка SQL, возможность расширения и т.д.); условия лицензирования и ограничения и, наконец, цена. Принимая во внимание эти соображения, СУБД MySQL обладает многими преимуществами.

  • Быстродействие. MySQL — достаточно быстродействующая СУБД. Разработчики склоняются к мнению, что СУБД MySQL является одной из самых быстрых баз данных из имеющихся на современном рынке. В этом можно удостовериться, посетив Web-узел http://www.mysql.com/benchmark.html. Эта страница позволяет делать сравнительную проверку производительности на Web-узле MySQL.
  • Простота использования. СУБД MySQL является высокопроизводительной и относительно простой в использовании СУБД, которую значительно проще инсталлировать и администрировать, чем многие большие системы.
  • Цена. СУБД MySQL распространяется бесплатно для домашнего использования. (См. раздел "Можно ли получить MySQL бесплатно?".)
  • Поддержка языка запросов. MySQL "понимает" команды языка SQL (Structured Query Language — структурированный язык запросов). Этот язык применяется во всех современных СУБД. MySQL также поддерживает интерфейс ODBC (Open Database Connectivity), протокол интерфейса с базами данных, разработанный компанией Microsoft.
  • Возможности. Сервер позволяет одновременно подключаться неограниченному количеству пользователей. Доступ к серверу СУБД MySQL можно осуществить в интерактивном режиме с помощью различных интерфейсов, позволяющих вводить запросы и просматривать полученные результаты: это программы-клиенты, работающие с командной строкой, Web-броузеры или программы-клиенты, работающие в системе X Window. Кроме того, в наличии имеются программные интерфейсы для таких языков, как C, 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.htmy. После этого просмотрите главы, где описаны типы данных СУБД MySQL и диалект языка SQL. Вероятно, вы найдете, что диалекты языка SQL вашей СУБД и СУБД MySQL сильно отличаются, и перенос ваших приложений потребует больших затрат.

Частично процедура оценки должна включать несколько пробных переносов, потому что на практике это может оказаться значительно проще, чем кажется. Это может оказаться не настолько затруднительным, даже если ваша СУБД очень старая и не "понимает" команд SQL. Я недавно занимался преобразованием данных из формата СУБД, которую никак не назовешь СУБД SQL-типа. Типы данных не имели своих SQL-эквивалентов. Этот проект заключался в преобразовании методов доступа к сети, дюжины экранных программ и стандартных запросов. Переход потребовал полтора месяца напряженной работы. Получилось достаточно солидно.

Инструментарий, поставляемый с MySQL

Дистрибуция MySQL включает следующие программные продукты.

  • SQL-сервер. Эта программа обеспечивает доступ к базам данных.
  • Клиентские программы для доступа к серверу. Это интерактивная программа, позволяющая делать запросы и просматривать полученные результаты, и несколько административных и сервисных программ, помогающих работать с вашим Web-узлом. Одна сервисная программа позволяет управлять сервером. Другие позволяют импортировать или экспортировать данные, проверять права доступа и т. д.
  • Клиентская программа, позволяющая создавать свои собственные программы. Клиентские программы можно писать на C, так как сама библиотека написана на C, но библиотека также позволяет создавать шлюзы для написания программного обеспечения на других языках программирования.

В дополнение к программному обеспечению, которое собственно поставляется с 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.32a имеются в наличии на условиях лицензии GPL.

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

Несколько слов о лицензии для Windows

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

  • Для этой операционной системы имеется богатый выбор операционных систем, таких как Linux, или один из вариантов BSD, таких как FreeBSD, NetBSD и OpenBSD.
  • Что касается средств разработки, то все эти операционные системы поставляются укомплектованными текстовыми редакторами vi и emacs и компиляторами, такими как gcc и egcs.
  • При появлении новых модификаций операционных систем или средств разработки их можно загрузить прямо из Internet или купив недорогой компакт-диск. Это справедливо даже для значительных обновлений.Однако стоимость разработки ПО на ОС Windows достаточно высока.
  • Операционная система не поставляется бесплатно.
  • Такие средства разработки, как компиляторы не являются бесплатными.
  • Новые модификации операционной системы также не являются бесплатными, за исключением простых ошибок или минимальных модификаций.

Все это приводит к тому, что в то время как затраты на разработку под UNIX существенно малы, для Windows они уже будут значительны. Разработчики MySQL очень любят работать с СУБД MySQL, но не настолько, чтобы хотеть платить за эту привилегию. Затраты на разработку под Windows должны как-то компенсироваться, и плата за лицензию может служить компенсацией такого рода.Кроме того, разработчики обнаружили, что разработка под Windows занимает больше времени, чем разработка под UNIX. Так как время, необходимое для разработки, является постоянной составляющей капитала, то эта составляющая может быть компенсирована за счет стоимости ОС UNIX (которая, кроме всего прочего, является основной платформой СУБД MySQL). Плата за лицензию Windows обязывает затрачивать время и усилия на перенос ПО на платформу Windows.Если все же вы работаете с ОС Windows, но не хотите приобретать лицензию на сервер, в вашем распоряжении есть еще несколько вариантов.

  • Получить тестовую версию СУБД MySQL, которой можно воспользоваться для оценки. Это позволит вам поработать 30 дней с сервером, после чего вы можете принять решение, получать вам лицензию или нет.
  • Если вам нужен Windows-сервер для использования в учебных заведениях или в государственных исследовательских учреждениях, можно связаться с разработчиками и договориться с ними об отмене или снижении платы за лицензию.
  • Клиентские программы являются бесплатными в любом случае. Таким образом, если вам удастся найти кого-то, кто уже работает с сервером и кто может разрешить вам использовать свою версию программного обеспечения, то у вас в распоряжении может оказаться полный набор возможностей для работы с СУБД MySQL.

Для кого предназначена эта книга

В этой книге можно познакомиться с методами эффективной работы как c СУБД MySQL, так и с СУБД вообще. Это сделает вашу работу с MySQL более продуктивной. Вы познакомитесь с процессом наполнения базы данных информацией, узнаете, как формулировать запросы к базе данных, чтобы получить ответы, на вопросы, которые могут вас заинтересовать.

Совсем не надо быть программистом или уметь работать с языком запросов SQL. Эта книга рассказывает, как это делается. Книга больше посвящена проблеме правильной работы с СУБД, чем тонкостям синтаксиса языка SQL. Она акцентирует внимание на уникальных возможностях СУБД MySQL, показывая, как можно их использовать с максимальной эффективностью.

Читатель познакомится также с методами интеграции MySQL с другими средствами. В книге показаны приемы работы с MySQL с помощью языка PHP или Perl для создания динамических Web-страниц на основе запросов к базе данных. Читатель узнает, как можно написать свою несложную собственную программу, которая будет работать с базами данных СУБД MySQL. Все это расширяет возможности СУБД MySQL и позволяет с ее помощью решать задачи, поставленные перед вами.

Если вы несете ответственность за администрирование СУБД MySQL, эта книга разъяснит вам ваши обязанности и то, как с ними справиться. Читатель узнает, как устанавливаются учетные записи пользователей, как делается резервное копирование базы данных, как обеспечивается полная безопасность вашего Web-узла.

Как написана эта книга

Эта книга состоит из четырех частей.

Часть I. Использование СУБД MySQL

  • В главе 1, "Знакомство с СУБД MySQL и SQL", разъясняется, для чего используется СУБД MySQL, описывается процесс обучения работе с интерактивной клиентской программой MySQL и даются основные положения языка SQL.
  • В главе 2, "Работа с данными в MySQL", описаны типы столбцов СУБД MySQL, свойства и ограничения каждого типа, когда и как их можно использовать, как делать выбор между подобными типами данных, производить оценку выражения и преобразование типов.
  • В главе 3, "Синтаксис и использование языка SQL", описан специфический диалект языка SQL, применяемого в MySQL. В этой главе особый акцент делается на тех особенностях SQL, которые присущи диалекту MySQL. Тут также описаны особенности, присущие и другим базам данных, но отсутствующие в MySQL.
  • В главе 4, "Оптимизация запросов", затронуты проблемы повышения эффективности работы запросов.

Часть II. Программные интерфейсы СУБД MySQL

  • В главе 5, "Введение в программирование в СУБД MySQL", описаны программные интерфейсы, которые имеются в MySQL, и дается сравнение программных интерфейсов API, описанных детально в этой книге.
  • В главе 6, "Программный интерфейс MySQL C API", излагаются примеры создания программ на языке C с использованием интерфейса API из клиентской библиотеки, поставляемой с дистрибуцией MySQL.
  • В главе 7, "Программный интерфейс Perl API", показаны методы использования модуля DBI при создании сценариев Perl. Обсуждается как проблема автономных сценариев, так и CGI-сценариев, предназначенных для программирования Web-узлов.
  • В главе 8, "Интерфейс API для языка написания сценариев PHP", описано, как для создания динамических Web-страниц, осуществляющих доступ к MySQL, использовать язык написания сценариев PHP.

Часть III. Администрирование MySQL

  • В главе 9, "Введение в администрирование MySQL", показано, в чем состоят обязанности администратора базы данных и что ему нужно знать, чтобы Web-узел функционировал успешно.
  • В главе 10, "Каталог данных MySQL", приводится детальное изучение структуры и содержимого каталога данных, вы также узнаете, где СУБД MySQL сохраняет данные и файлы состояния.
  • В главе 11, "Общее администрирование MySQL", показано, как можно убедиться в том, что сервер запускается и останавливается правильно во время запуска и остановки вашей системы. Кроме того, эта глава содержит инструкции по установке учетных записей MySQL, описание процедур по обслуживанию файлов регистрации, настройке сервера, описание стратегии резервного копирования и восстановления.
  • В главе 12, "Безопасность", разъясняется, что надо сделать для того, чтобы обезопасить СУБД MySQL от несанкционированного доступа как пользователей на узле сервера, так и клиентов, подключающихся по сети.
  • В главе 13, "Безопасность", показано, как с помощью профилактического обслуживания можно уменьшить вероятность отказа сервера и как происходит восстановление после отказа, который все-таки произошел.

Часть IV. Приложения

  • В приложении А, "Получение и инсталляция программного обеспечения", объясняется, где можно приобрести и как установить программные средства, представленные в этой книге.
  • В приложении Б, "Типы столбцов", описаны типы данных СУБД MySQL.
  • В приложении B, "Операторы и функции", описаны операторы и функции диалекта SQL.
  • В приложении Г, "Синтаксис SQL", описаны все операторы SQL, соответствующие стандарту MySQL.
  • В приложении Д, "Программы MySQL", описаны программы, имеющиеся в дистрибуции MySQL.
  • В приложении Е, "Программный интерфейс приложений C", описаны все типы данных и функций клиентской библиотеки MySQL С.
  • В приложении Ж, "Программный интерфейс DBI языка написания сценариев Perl", описаны методы и атрибуты, поддерживаемые модулем DBI языка Perl.
  • В приложении З, "Программный интерфейс языка PHP", описаны функции, которые имеются в языке PHP для поддержки MySQL.
  • В приложении И, "Утилиты независимых разработчиков", дан краткий обзор имеющихся вспомогательных средств MySQL, таких как преобразование данных и утилиты администрирования.
  • В приложении К, "Провайдеры услуг Internet", перечислены факторы, которые принимаются во внимание при выборе провайдера для обеспечения доступа к MySQL (что нужно предусмотреть провайдеру, предоставляющему доступ к MySQL-серверу).

Как читать эту книгу

Какую часть книги вы бы не изучали, это лучше всего сопровождать выполнением примеров. Для этого нужно самостоятельно или с чьей-либо помощью установить СУБД MySQL, если она еще не установлена, а затем получить все необходимые файлы тестовой базы данных. Ссылка на эту базу данных будет делаться на протяжении всего нашего повествования. В приложении А есть указание, где можно получить все инструкции по установке.

Если вы совсем ничего не знаете о MySQL или о SQL, начните с главы 1. Там есть введение, в котором даются базовые знания о MySQL и языке SQL, что позволит упростить восприятие книги. После этого можно перейти к остальному материалу. Потом идут главы 2 и 3, в которых читатель узнает, как создается структура данных и как можно манипулировать ими.

Даже если читатель уже знаком с языком SQL, вам все-таки будет полезно ознакомиться с главами 2 и 3. Все диалекты языка SQL различаются, и нужно знать, в чем заключается отличие данного диалекта SQL от тех диалектов, с которыми вы уже знакомы.

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

Вы будете создавать программы, обрабатывающие данные из базы данных. В этом случае рекомендуется ознакомиться с главами, посвященными программным интерфейсам, начиная с главы 5. При необходимости создать Web-интерфейс для работы со своей СУБД MySQL или расширить возможности своего Web-узла, добавив динамические возможности СУБД, ознакомьтесь с содержанием глав 7 и 8.

Вы уже пользуетесь какой-то СУБД и хотите получить сравнительную характеристику этой СУБД с СУБД MySQL, в этом вам сможет помочь несколько глав данной книги. Для сравнения MySQL и SQL, которую вы сейчас используете в своей работе, прочтите главы, посвященные типам данных и синтаксису SQL (часть I). Если вас интересует проблема адаптации существующего прикладного программного обеспечения, ознакомьтесь с соответствующими главами из части II и главами, посвященными решению задач администрирования в части III, для получения руководства по административной поддержке, которая требуется для установки MySQL. Эта информация будет также полезна, если вы не используете базу данных, а делаете сравнительный анализ СУБД MySQL с другими СУБД с целью выбора одной из них.

Вам нужен доступ к MySQL и вы ищете подходящего провайдера (Internet Service Provider — ISP), который предоставляет такой сервис? Для этого обратитесь к приложению К, "Провайдеры услуг Internet". Кроме того, это приложение содержит советы для провайдеров, планирующих предоставлять услуги сервера MySQL.

Версии программного обеспечения, которые упоминаются в этой книге

На момент написания этой книги стабильно работающими версиями MySQL являются все версии серии 3.22 (ведется активная разработка серии 3.23). Эта книга опирается на обе серии. Описанные в этой книге возможности СУБД MySQL могут отсутствовать в ранних версиях (включая серию 3.21).

Для других основных пакетов, описанных здесь, все сказанное в книге справедливо для любой последней версии. Текущими версиями других описанных в этой книге программных продуктов являются следующие.

Пакет

Версия

PerlDBI

1.13

Драйвер Perl MySQL DBI

1.22.xx (стабильно), 1.23.xx (бета)

PHP

3.0.12 (4.0 в ближайшем будущем)

Apache

1.3.9

CGI.pm

2.56

Все программное обеспечение, описанное в этой книге, можно получить непосредственно из Internet. Инструкции, каким образом можно получить MySQL, поддержку Perl DBI, PHP, Apache и CGI.pm вашей системы даны в приложении А, "Получение и инсталляция программного обеспечения". Это приложение также содержит руководство по получению тестовой базы данных, которая используется в примерах, приведенных в этой книге, и примеры программ, которые были разработаны в главах этой книги.


Copyright © 1992-2011 Издательская группа "Диалектика-Вильямс"

Rambler  Top100