БУДК 004.6
Т15
БК 32.972.34
Т15
Такахаси, Мана.
Занимательное программирование. Базы данных. Манга / Мана Такахаси
2 (автор), Сёко Адзума (худож.) ; пер. Сенниковой Т. И. — М. : ДМК Пресс,
IS014. — 238 с. : ил. — (Серия «Образовательная манга»). — Доп. тит. л. яп. —
BN 978-5-97060-044-3.
У принцессы Руруны и Кейна возникла проблема: в их торгующей фруктами имюперии
царит неразбериха из-за противоречивых данных, и поэтому дыни подменяд
тся яблоками и клубникой, что вызывает большие трудности в работе. И что же им
Телать? Конечно же, построить реляционную базу данных, и поможет им в этом
ико, чудесная фея баз данных. Она покажет Руруне и Кейну, как создать базу данных,
которая поможет управлять продажами, реализацией товара и его экспортом.
Вы узнаете, как работает база данных, и поймёте значение таких терминов, как схемы,
ключи, нормализация и транзакции.
Если у вас голова идёт кругом, когда речь заходит о базах данных, или же вы
в просто заплутали в лабиринте чисел и данных, которые, как вам кажется, неподУДК
004.6
ластны контролю, присоединяйтесь к Руруне и Кейну.
ББК 32.972.34
B Manga de Wakaru Database (Manga Guide: Databases)
Original Japanese edition
y Mana Takahashi (Author), Shoko Azuma (Illustrator) and
Trend-Pro Co., Ltd. (Producer)
Published by Ohmsha, Ltd.
Russian language edition copyright © 2014 by DMK Press
Translation rights arranged with Ohmsha, Ltd.
3-1 Kanda Nishikicho, Chiyodaku, Tokyo, Japan
Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой
к форме или любыми средствами, электронными или механическими, включая фотографирование,
азрешения издательства.
ISBN 978-4-274-06631-3 (яп.)
ISBN 978-5-94120-263-8 (Додэка)
ISBN 978-5-97060-044-3 (ДМК Пресс) © Редактура, издание, ДМК Пресс, 2014
Copyright © 2005 by Mana Takahashi and Trend-Pro Co., Ltd.
© Перевод, Издательский дом «Додэка-XXI», 2013
рсерокопирование или иные средства копирования или сохранения информации, без письменного
Стр.5
содержание
1. ЧТО ТАКОЕ БАЗА ДАННЫХ ................... 1
Зачем нам базы данных? ...............................2
Что случилось в королевстве? ....................... 16
Данные дублируются .................................. 16
Данные могут противоречить друг другу ........... 17
Данные трудно обновлять ............................. 18
Наш ответ — база данных! ............................ 19
Как пользоваться базой данных?..................... 19
Итоги .................................................... 21
Использование программного обеспечения
для управления базами данных ...................... 21
2. ЧТО ТАКОЕ РЕЛЯЦИОННАЯ БАЗА
ДАННЫХ ........................................... 23
Термины, используемые в базах данных ........... 24
Реляционные базы данных ........................... 34
Какие бывают модели данных ....................... 39
Операции извлечения данных ........................ 39
Теоретико-множественные операции ................................. 39
Специальные реляционные операции ............................... 43
Вопросы и задания .................................... 46
Да здравствует реляционная база данных! .......... 48
Итоги .................................................... 48
Ответы .................................................. 48
3. ДАВАЙТЕ СПРОЕКТИРУЕМ БАЗУ ДАННЫХ! 49
Модель сущность-связь (E-R-модель) ............. 50
vi
Содержание
Стр.7
Нормализация таблицы ............................... 56
Что такое модель сущность-связь (E-R-модель) .. 74
Как анализировать модель сущность -связь ......... 74
Пример 1. Связь «один к одному» ........................................75
Пример 2. Связь «один ко многим» .....................................75
Пример 3. Связь «многие ко многим» ................................76
Вопросы и задания .................................................................... 76
Нормализация таблицы ............................... 78
Вопросы и задания .................................................................... 79
Стадии разработки базы данных ..................... 81
Итоги .................................................... 82
Ответы .................................................. 82
Проектирование базы данных ........................ 84
4. ДАВАЙТЕ ИЗУЧАТЬ SQL! ...................... 85
Применение SQL ...................................... 86
Поиск данных с помощью команды SELECT ....... 93
Применение агрегатных функций ................... 98
Соединение таблиц ...................................101
Создание таблиц ......................................103
Обзор языка SQL .....................................106
Поиск данных с помощью команды SELECT ......106
Создание условий ....................................107
Операторы сравнения ..............................................................107
Логические операторы ...............................107
Шаблоны ...............................................108
Поиск ..................................................109
Вопросы и задания ...................................109
Агрегатные функции .................................110
Агрегирование данных. Группирование ............................111
Вопросы и задания ...................................112
Поиск данных .........................................113
Содержание
vii
Стр.8
Использование подзапроса ................................................... 114
Коррелированный подзапрос ............................................... 115
Вопросы и задания ................................................................... 116
Соединение таблиц ...................................116
Создание таблиц ......................................117
Вставка, обновление и удаление строк ............118
Представление ........................................119
Вопросы и задания ...................................................................120
Использование SQL из прикладного ПО ..........121
Перемещение по записям
с использованием курсора ...........................124
Итоги ...................................................124
Ответы .................................................125
Стандартизация SQL ..................................128
5. ДАВАЙТЕ УПРАВЛЯТЬ БАЗОЙ ДАННЫХ! ..129
Что такое транзакция? ................................130
Что такое блокировка (lock)? ........................135
Защита базы данных .................................142
Как всё ускорить с помощью индексирования .....147
Аварийное восстановление ..........................152
Свойства транзакций .................................157
Атомарность (Atomicity) ..............................158
Вопросы и задания ...................................................................159
Согласованность (Consistency) .......................159
Изоляция (isolation) ...................................160
Вопросы и задания ................................................................... 161
Двухфазное блокирование (two-phase locking) ...161
Детализация блокировок .............................162
Вопросы и задания ...................................................................163
Другие виды управления параллелизмом
(параллельным доступом) ...........................163
viii
Содержание
Стр.9
управление меткой времени (Timestamp control) ..........163
Оптимистическое управление параллелизмом
(Optimistic control) ...................................................................163
Уровни изоляции .....................................164
Устойчивость ..........................................165
Вопросы и задания ...................................................................166
Индексы (Index) ......................................167
Вопросы и задания ...................................................................169
Оптимизация запроса ................................169
Соединение вложенных циклов (Nested Loop Join) .... 171
Соединение сортировка-слияние (Sort Merge Join) ... 171
Хэш-соединение (Hash Join) ................................................172
Оптимизатор (optimizer) ........................................................172
На базе правил (rule based) ..................................................172
По стоимости выполнения (cost based) ..........................172
Когда наступает катастрофа ........................172
Виды сбоев ..................................................................................173
Контрольные точки (Checkpoints) ....................173
Вопросы и задания ...................................................................174
Итоги ...................................................174
Ответы .................................................174
6. КРУГОМ БАЗЫ ДАННЫХ ....................177
Применение баз данных ..............................183
Базы данных и "Всемирная паутина" ...............185
Распределённые базы данных ......................191
Хранимые процедуры и триггеры ..................193
Базы данных в Интернете ............................202
Использование хранимых процедур ................205
Вопросы и задания ..................................................................206
Что такое распределённая база данных
(Distributed Database)? ..............................206
Содержание
ix
Стр.10
Горизонтальное распределение (Horizontal
Distribution) ...............................................................................206
Вертикальное распределение (Vertical Distribution) ...207
Декомпозиция данных (Data partitioning) ..........208
Горизонтальная декомпозиция (Horizontal Partition) ..208
Вертикальная декомпозиция (Vertical Partition) ...........209
Предотвращение несогласованности
при двухфазной фиксации транзакций .............209
Вопросы и задания ................................................................... 211
Связанные таблицы в распределённых БД .........211
Вложенные циклы (nested loop) .........................................212
Сортировка слиянием (sort merge) .....................................212
Полуслияние (semi join) .........................................................213
Хэш-полуслияние (hash semi join) ................................ 214
Репликация баз данных (Database replication) .....215
Только чтение (read-only) ......................................................215
Репликация, доступная для всех серверов .......................216
Дальнейшее применение баз данных ..............217
XML ................................................................................................217
Объектно-ориентированные базы данных (OODB) .......217
Итоги ...................................................219
Ответы .................................................219
Подведение итогов ...................................220
ЧАСТО ИСПОЛЬЗУЕМЫЕ SQL-КОМАНДЫ ....221
СПРАВОЧНАЯ ЛИТЕРАТУРА .....................222
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ .......................223
x
Содержание
Стр.11