УДК 004.6
ББК 32.972.34
Т15
Т15
Такахаси, Мана.
Занимательное программирование. Базы данных : манга / Мана Такахаси (автор), Сёко Адзума (худож.) ;
пер. с яп. Т. И. Сенниковой. — 2-е изд., эл. — 1 файл pdf : 240 с. — Москва : ДМК Пресс, 2023. — (Образовательная
манга). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". —
Текст : электронный.
ISBN 978-5-89818-536-7
У принцессы Руруны и Кейна возникла проблема: в их торгующей фруктами империи царит неразбериха из-за
противоречивых данных, и поэтому дыни подменяются яблоками и клубникой, что вызывает большие трудности
в работе. И что же им делать? Конечно же, построить реляционную базу данных, и поможет им в этом Тико, чудесная
фея баз данных. Она покажет Руруне и Кейну, как создать базу данных, которая поможет управлять продажами,
реализацией товара и его экспортом. Вы узнаете, как работает база данных, и поймёте значение таких
терминов, как схемы, ключи, нормализация и транзакции.
Если у вас голова идёт кругом, когда речь заходит о базах данных, или же вы просто заплутали в лабиринте
чисел и данных, которые, как вам кажется, неподвластны контролю, присоединяйтесь к Руруне и Кейну.
УДК 004.6
ББК 32.972.34
Электронное издание на основе печатного издания: Занимательное программирование. Базы данных : манга / Мана Такахаси
(автор), Сёко Адзума (худож.) ; пер. с яп. Т. И. Сенниковой. — Москва : ДМК Пресс, 2014. — 238 с. — (Образовательная
манга). — ISBN 978- 5-97060-044-3. — Текст : непосредственный.
Издательство выражает благодарность В. О. Панфилову
Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными
или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения информации, без
письменного разрешения издательства.
В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель
вправе требовать от нарушителя возмещения убытков или выплаты компенсации.
ISBN 978-5-89818-536-7
© 2005 by Mana Takahashi and Trend-Pro Co., Ltd.
© Перевод, Издательский дом «Додэка-XXI», 2013
© Редактура, издание, ДМК Пресс, 2014
Стр.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