MySQL. Библиотека профессионала - Аткинсон Л
..pdfСодержит примеры проектирования и систем корпоративного уровня и подробные объяснения к ним
главы по вопросам
хранения
распределенных баз и другим сложным темам
Леоном ведущим специалистом с кодом
Леон Аткинсон
MySQL
БИБЛИОТЕКА
ПРОФЕССИОНАЛА
ЛЕОН АТКИНСОН
Москва • Санкт Петербург • Киев 2002
ББК 32.973.26 018.2.75 А92
УДК 681.3.07
Издательский дом "Вильяме" Зав. редакцией С.Н. Тригуб
Перевод с английс кого и редакция В.Р. Гинзбурга
По общим вопросам обращайтесь в Издательский дом "Вильяме" по адресу: info@williamspublishing.com, http://www.williamspublishing.com
Аткинсон, Леон.
А92 MySQL. Библиотека профессионала.: Пер. с англ. — М.: Издательский дом "Вильяме", 2002. — 624 с.: ил. — Парал. тит. англ.
ISBN 5 8459 0291 6 (рус.)
В данной книге описана программа MySQL версии 3.23 — самый последний стабиль ный выпуск, доступный на момент написания книги. Сначала излагаются основы MySQL: запросы, модели баз данных, вопросы нормализации и организации много пользовательской работы, а также транзакции. Затем систематически анализируются все ключевые аспекты программы и демонстрируются эффективные методики взаимо действия с базами данных MySQL посредством языков С, Java, PHP, Perl, Python и др.
Внимательно проверенная ведущим разработчиком MySQL Микаэлем Видениу сом, данная книга дает профессионалам именно то, что они ищут: авторитетное, подробное, богатое примерами руководство по разработке приложений MySQL кор поративного уровня.
ББК 32.973.26 018.2.75
Все названия программных продуктов являются зарегистрированными торговыми марками со ответствующих фирм.
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни былосредствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разреше ния издательства Prentice Hall, Ptr.
ISBN 5 8459 0291 6 |
(рус.) |
© Издательский дом "Вильяме", 2002 |
ISBN 0 13 066190 2 |
(англ.) |
© Prentice Hall, Inc., 2001 |
Оглавление
ВВЕДЕНИЕ |
14 |
ЧАСТЬ I. MYSQL И РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ |
16 |
Глава1.Введениев MYSQL |
18 |
Глава2.ИнсталляцияMYSQL |
32 |
Глава3. ВзаимодействиесMYSQL |
40 |
Глава 4. Концепции баз данных |
48 |
Глава 5. Реляционная модель |
58 |
Глава 6. ЯзыкSQL |
70 |
Глава 7. Проектирование баз данных |
82 |
Глава8.Нормализация |
96 |
Глава 9. Транзакции и параллельные вычисления |
108 |
ЧАСТЬ II. СПРАВОЧНИКMYSQL |
118 |
Глава 10. Типы данных,переменные и выражения |
120 |
Глава 11. Типы столбцов и индексов |
136 |
Глава 12. Встроенные функции |
148 |
Глава 13. ИнструкцииSQL |
204 |
Глава 14.Утилиты командной строки |
260 |
Глава 15. Библиотека функций языкаС |
330 |
ЧАСТЬ III. СОЗДАНИЕ КЛИЕНТОВ MYSQL |
372 |
Глава 16. Использование библиотеки языкаС |
374 |
Глава 17.JDBC |
|
Глава 18. VBSCRIPT и ODBC |
392 |
Глава 19. РНР |
400 |
Глава 20. PERL |
408 |
Глава 21.PYTHON |
414 |
Глава 22. Библиотека MYSQL++ |
420 |
ЧАСТЬ IV. Сложные темы |
426 |
|
Глава 23. Администрирование баз данных |
428 |
|
Глава 24. |
Физическое хранение данных |
434 |
Глава25. |
Устранение последствийкатастроф |
452 |
6 |
Оглавление |
|
Глава 26. Оптимизация |
462 |
|
Глава27.Безопасность |
484 |
|
Глава 28. Перенос данных в разные СУБД |
496 |
|
Глава 29. Распределенные базыданных |
510 |
|
Глава30. Работасобъектами |
524 |
|
Глава 31. Расширение возможностей MYSQL |
540 |
|
Приложение А. Ресурсы в Internet |
554 |
|
Приложение Б. Правовые аспекты |
560 |
|
Приложение В. Зарезервированные слова |
572 |
|
Приложение Г. Коды ошибок MYSQL |
578 |
|
Приложение Д. Руководство по оформлению SQL сценариев |
594 |
|
Приложение E. Пример базы данных |
598 |
Содержание 7
Содержание
ВВЕДЕНИЕ |
14 |
ЧАСТЬ I. MYSQL И РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ |
16 |
Глава 1. Введение вMYSQL |
18 |
Принципы использования баз данных |
19 |
Преимущества баз данных |
26 |
Недостатки баз данных |
29 |
Зачем нужна программа MySQL |
29 |
История MySQL |
30 |
Глава 2. ИнсталляцияMYSQL |
32 |
Загрузка дистрибутива |
33 |
Инсталляция с помощью менеджера пакетов RedHat Linux |
34 |
Инсталляция в Windows |
35 |
Инсталляция вручную |
36 |
Компиляция программы |
37 |
Предоставление привилегий |
37 |
Глава 3. Взаимодействие сMYSQL |
40 |
Клиент серверное взаимодействие средствами TCP/IP |
41 |
Утилиты командной строки |
42 |
Графические клиенты |
43 |
ODBC |
45 |
Web интерфейсы |
46 |
Глава 4. Концепции баз данных |
48 |
История |
49 |
Терминология |
50 |
СУБД |
51 |
Системы управления файлами |
52 |
Иерархические базыданных |
52 |
Сетевые базы данных |
53 |
Реляционные базы данных |
54 |
Объектно ориентированные базы данных |
55 |
Объектно реляционные базы данных |
56 |
Глава 5. Реляционная модель |
58 |
Реляционная алгебра |
59 |
Таблицы, строки и столбцы |
59 |
Ключи |
61 |
Отношения |
63 |
8 |
Содержание |
|
|
Реляционные операции |
64 |
|
Является ли MySQL настоящей реляционнойСУБД |
69 |
Глава6. Язык SQL |
70 |
|
|
SQL — языкчетвертого поколения |
71 |
|
Определение данных |
72 |
|
Вставка записей |
74 |
|
Обновление записей |
74 |
|
Удаление записей |
75 |
|
Запросы |
75 |
|
Объединения |
77 |
|
Упорядочение результатов запроса |
79 |
|
Группировка результатов запроса |
80 |
|
Ограничение числа возвращаемых записей |
80 |
|
Изменение определения таблицы |
81 |
Глава 7. Проектирование баз данных |
82 |
|
|
Спецификация требований |
83 |
|
Спецификация проекта |
87 |
|
Составление схемы базы данных |
88 |
|
Реализация модели |
92 |
|
Тестирование |
94 |
|
Планированиежизненногоцикла |
95 |
Глава 8. Нормализация |
96 |
|
|
Зачем нужнанормализация |
98 |
|
Первая нормальная форма |
98 |
|
Вторая нормальная форма |
100 |
|
Третья нормальная форма |
102 |
|
Нормальная форма Бойса Кодда |
103 |
|
Четвертая нормальная форма |
104 |
|
Денормализация |
105 |
Глава 9. Транзакции и параллельные вычисления |
108 |
|
|
Параллельные запросы |
ПО |
|
Транзакции |
110 |
|
Блокировки |
114 |
|
Последовательности |
116 |
ЧАСТЬ П. СПРАВОЧНИКMYSQL |
118 |
|
Глава 10. Типы данных, переменные и выражения |
120 |
|
|
Типыданных |
121 |
|
Переменные |
124 |
|
Операторы |
125 |
|
Выражения |
133 |
|
Имена спробелами |
134 |
Содержание |
9 |
Глава 11. Типы столбцов и индексов |
136 |
Числа |
137 |
Строки |
140 |
Значения даты/времени |
143 |
Альтернативные типы данных |
145 |
Индексы |
145 |
Глава 12. Встроенные функции |
148 |
Отладка и конфигурирование |
150 |
Управляющие функции |
152 |
Статистические функции |
157 |
Математические функции |
160 |
Строки |
169 |
Функции работы с датой и временем |
187 |
Прочие функции |
201 |
Процедуры |
202 |
Глава 13. ИнструкцииSQL |
204 |
Комментарии |
205 |
Полный список инструкций |
206 |
Глава 14. Утилиты командной строки |
260 |
Переменные среды |
261 |
Конфигурационные файлы |
262 |
Полный список утилит |
263 |
Глава 15. Библиотека функций языкаС |
330 |
Типы данных |
331 |
Клиентские функции |
336 |
Функции работы с массивами |
360 |
Функции работы с наборами символов |
360 |
Функции работы с файлами |
362 |
Функции обработки ошибок |
364 |
Функции работы схэш таблицами |
365 |
Функции работы сосписками |
365 |
Функцииуправленияпамятью |
366 |
Функции работы с опциями |
367 |
Функции обработки паролей |
367 |
Функции обработки строк |
367 |
Функции работы с потоками |
370 |
ЧАСТЬ III. СОЗДАНИЕ КЛИЕНТОВMYSQL |
372 |
Глава 16. Использование библиотеки языкаС |
374 |
Подготовка программы |
375 |
Извлечение данных |
376 |
Изменение данных |
379 |
10 |
Содержание |
|
Глава17.JDBC |
|
|
|
Подготовка программы |
385 |
|
Извлечение данных |
387 |
|
Изменение данных |
389 |
Глава 18. VBSCRIPT иODBC |
392 |
|
|
Подготовкапрограммы |
393 |
|
Извлечение данных |
396 |
|
Изменение данных |
397 |
Глава 19. РНР |
400 |
|
|
Подготовка программы |
401 |
|
Извлечение данных |
402 |
|
Изменениеданных |
404 |
Глава 20. PERL |
408 |
|
|
Подготовка программы |
409 |
|
Извлечениеданных |
410 |
|
Изменение данных |
411 |
Глава 21. PYTHON |
414 |
|
|
Подготовка программы |
415 |
|
Извлечение данных |
416 |
|
Изменение данных |
418 |
Глава 22. Библиотека MYSQL++ |
420 |
|
|
Подготовка программы |
421 |
|
Извлечение данных |
422 |
|
Изменение данных |
424 |
ЧАСТЬ IV. Сложные темы |
426 |
|
Глава 23. Администрирование баз данных |
428 |
|
|
Ответственность |
429 |
|
Обеспечение доступности данных |
429 |
|
Поддержание целостности данных |
430 |
|
Подготовка к катастрофе |
432 |
|
Поддержка пользователей |
432 |
|
Разработка и внедрение стандартов |
433 |
Глава 24. Физическое хранение данных |
434 |
|
|
Способ хранения таблиц и базданных |
435 |
|
Выделенные разделы |
436 |
|
Типы таблиц |
436 |
|
Столбцы |
442 |
|
Блокировкитаблиц |
444 |
Индексы |
444 |
|
|
Дескрипторы файлов |
446 |
Содержание |
11 |
Системная память |
447 |
Журнальные файлы |
447 |
Глава 25. Устранениепоследствий катастроф |
452 |
Проверка и восстановление таблиц |
453 |
Резервное копирование и восстановление |
456 |
Глава 26. Оптимизация |
462 |
Предварительные действия |
463 |
Тесты производительности |
464 |
Оптимизация проекта |
468 |
Оптимизация приложений |
469 |
Оптимизация запросов |
470 |
Оптимизация инструкций |
473 |
Обслуживание таблиц |
475 |
Настройка конфигурации сервера |
475 |
Перекомпиляция MySQL |
477 |
Глава27. Безопасность |
484 |
Схема привилегий |
485 |
Задание привилегий |
491 |
Обеспечение безопасности |
493 |
Глава 28. Перенос данных в разныеСУБД |
496 |
Переключение между СУБД |
497 |
Устранение несовместимостей |
498 |
Использование режимаANSI |
504 |
Уникальные свойстваMySQL |
504 |
Глава 29. Распределенные базы данных |
510 |
Концепции распределенных баз данных |
511 |
Отложенная синхронизация |
514 |
Репликация в MySQL |
516 |
Запуск нескольких серверов |
521 |
Глава30. Работа с объектами |
524 |
Объектно ориентированная модель |
525 |
Сериализация объектов |
527 |
Объектно реляционные связи |
529 |
Глава31.Расширение возможностейMYSQL |
540 |
Библиотека функций отладки |
541 |
Создание наборов символов |
545 |
Создание функций |
549 |
Создание процедур |
553 |
Приложение А. Ресурсы в Internet |
554 |
Официальные списки рассылки |
555 |
Архивы списков рассылки |
556 |