Опубликовано

Новинка: “Основы проектирования баз данных. 2-е издание”

Основы проектирования баз данных. 2-е издание

Книга о проектировании и поддержке широкого спектра реляционных и нереляционных баз данных на любой аппаратной платформе и в кроссплатформенных окружениях. Описано, как развёртывать и использовать базы данных на корпоративных серверах и в облаке. Изложены базовые принципы масштабирования, репликации, обеспечения согласованности данных, надёжности и безопасности облачных, корпоративных и гибридных решений. Для прочтения книги не требуются знания конкретных баз данных, книга может применяться как для проектирования базы данных с нуля, так и для доработки унаследованного продукта.

Для разработчиков, администраторов, специалистов по поддержке баз данных

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

Вы изучите, как лучше всего проектировать надёжные и безопасные базы данных безотносительно той платформы, на которой предполагается работать. Рассказано, как встраивать в систему  возможности масштабирования, репликации данных, как добиваться согласованности, надёжности, простоты, гибкости и безопасности новой или унаследованной базы данных.

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

Книга не требует знаний или опыта работы с какой-либо конкретной базой данных, предлагает ясную и полную информацию по следующим темам:

  • Цели и движущие факторы эффективного проектирования баз данных
  • Основы устройства реляционных баз данных
  • Важность трактовки любой базы данных с точки зрения пользователя, понимание его потребностей
  • Эффективное моделирование данных
  • Понимание бизнес-правил и умение их конкретизировать

Книгу “Основы проектирования баз данных. 2-е издание” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Краткое оглавление…………………………………………………………………………………. 5

Об авторе……………………………………………………………………………………………….. 27

О техническом редакторе английского издания…………………………………….. 28

Благодарности……………………………………………………………………………………….. 28

Предисловие…………………………………………………………………………………………… 29

Для кого эта книга?……………………………………………………………………………………………………………………. 30

О чем рассказывается в книге?…………………………………………………………………………………………………. 30

Что вам потребуется для работы с книгой?…………………………………………………………………………….. 31

Структура книги………………………………………………………………………………………………………………………… 31

Часть I. Введение в базы данных и их проектирование……………………………………………… 32

Часть II. Процесс и методы проектирования баз данных…………………………………………… 32

Часть III. Подробный анализ конкретного примера…………………………………………………… 34

Часть IV. Примеры программ………………………………………………………………………………………… 34

Часть V. Расширенные темы………………………………………………………………………………………….. 35

Приложения…………………………………………………………………………………………………………………….. 36

Как работать с книгой?……………………………………………………………………………………………………………… 36

Примечание для преподавателей…………………………………………………………………………………………….. 38

Примечание для студентов……………………………………………………………………………………………………….. 39

Условные обозначения……………………………………………………………………………………………………………… 39

Исходный код…………………………………………………………………………………………………………………………….. 40

Как связаться с автором?………………………………………………………………………………………………………….. 40

Пояснение…………………………………………………………………………………………………………………………………… 40

ЧАСТЬ I. Введение в базы данных и их проектирование….. 41

Глава 1. Цели проектирования баз данных……………………………………………. 43

Важность проектирования………………………………………………………………………………………………………… 44

Информационные контейнеры………………………………………………………………………………………………….. 46

Достоинства и недостатки информационных контейнеров…………………………………………………… 48

Желательные функции базы данных……………………………………………………………………………………….. 51

CRUD……………………………………………………………………………………………………………………………….. 51

Извлечение………………………………………………………………………………………………………………. 52

Согласованность……………………………………………………………………………………………………. 52

Валидность……………………………………………………………………………………………………………… 53

Простое исправление ошибок……………………………………………………………………………….. 54

Скорость………………………………………………………………………………………………………………….. 55

Атомарные транзакции………………………………………………………………………………………….. 55

ACID………………………………………………………………………………………………………………………………… 56

BASE………………………………………………………………………………………………………………………………… 58

NewSQL……………………………………………………………………………………………………………………………. 59

Постоянство и резервное копирование…………………………………………………………………………. 59

Низкая стоимость и расширяемость……………………………………………………………………………… 61

Простота использования……………………………………………………………………………………………….. 62

Переносимость………………………………………………………………………………………………………………… 62

Безопасность…………………………………………………………………………………………………………………… 63

Совместное использование……………………………………………………………………………………………. 64

Способность выполнять сложные расчеты………………………………………………………………….. 65

Теорема CAP…………………………………………………………………………………………………………………… 65

Несколько мыслей про облачные технологии…………………………………………………………….. 66

Правовые аспекты и вопросы безопасности………………………………………………………………… 67

Последствия качественного и некачественного проектирования………………………………. 69

Резюме…………………………………………………………………………………………………………………………………………. 71

Упражнения………………………………………………………………………………………………………………………….. 71

Глава 2. Обзор реляционных баз данных……………………………………………….. 73

Выбор базы данных…………………………………………………………………………………………………………………… 74

Точки зрения на реляционные базы данных…………………………………………………………………………… 75

Таблица, строки и столбцы………………………………………………………………………………………………………. 76

Отношения, атрибуты и кортежи……………………………………………………………………………………………… 78

Ключи…………………………………………………………………………………………………………………………………………. 79

Индексы………………………………………………………………………………………………………………………………………. 82

Ограничения……………………………………………………………………………………………………………………………….. 82

Доменные ограничения………………………………………………………………………………………………….. 82

Проверочные ограничения…………………………………………………………………………………………….. 83

Ограничения первичного ключа……………………………………………………………………………………. 83

Ограничение уникальности…………………………………………………………………………………………… 84

Ограничения внешних ключей………………………………………………………………………………………. 84

Операции с базами данных………………………………………………………………………………………………………. 86

Популярные реляционные базы данных…………………………………………………………………………………. 88

Электронные таблицы………………………………………………………………………………………………………………. 90

Резюме…………………………………………………………………………………………………………………………………………. 91

Упражнения………………………………………………………………………………………………………………………….. 91

Глава 3. Обзор NoSQL……………………………………………………………………………. 94

Облачная среда………………………………………………………………………………………………………………………….. 94

Выбор базы данных…………………………………………………………………………………………………………………… 97

Философия NoSQL………………………………………………………………………………………………………….. 97

Базы данных NoSQL………………………………………………………………………………………………………. 98

Документные базы данных……………………………………………………………………………………. 98

База данных ключей и значений………………………………………………………………………… 100

Столбцово-ориентированные базы данных………………………………………………………. 100

Графовые базы данных……………………………………………………………………………………….. 102

Уличные сети………………………………………………………………………………………………….. 102

Сети связи………………………………………………………………………………………………………… 103

Приложения для социальных сетей………………………………………………………………. 103

Программы электронной коммерции……………………………………………………………. 104

Алгоритмы………………………………………………………………………………………………………. 104

Иерархические базы данных………………………………………………………………………………. 104

Менее экзотические варианты……………………………………………………………………………………………….. 108

Неструктурированные файлы…………………………………………………………………………………….. 108

XML-файлы…………………………………………………………………………………………………………………… 109

Основы XML…………………………………………………………………………………………………………. 110

Практика работы с XML……………………………………………………………………………………… 114

Выводы об XML…………………………………………………………………………………………………… 116

JSON-файлы…………………………………………………………………………………………………………………… 117

Электронные таблицы…………………………………………………………………………………………………. 119

Более экзотические варианты………………………………………………………………………………………………… 120

Объектные……………………………………………………………………………………………………………………… 120

Дедуктивные…………………………………………………………………………………………………………………. 120

Размерные……………………………………………………………………………………………………………………… 121

Временне…………………………………………………………………………………………………………………….. 121

Плюсы и минусы баз данных………………………………………………………………………………………………….. 122

Реляционные…………………………………………………………………………………………………………………. 123

Общие свойства баз данных NoSQL…………………………………………………………………………… 124

Краткие рекомендации………………………………………………………………………………………………… 126

Резюме………………………………………………………………………………………………………………………………………. 128

Упражнения………………………………………………………………………………………………………………………… 129

ЧАСТЬ II. Процесс и методы проектирования баз данных 131

Глава 4. Понимание потребностей пользователей………………………………… 133

Составьте план………………………………………………………………………………………………………………………… 134

Возьмите с собой список вопросов………………………………………………………………………………………… 135

Функциональные возможности…………………………………………………………………………………… 135

Потребности в данных…………………………………………………………………………………………………. 136

Целостность данных…………………………………………………………………………………………………….. 136

Безопасность…………………………………………………………………………………………………………………. 137

Окружение…………………………………………………………………………………………………………………….. 138

Встретьтесь с клиентами…………………………………………………………………………………………………………. 139

Узнайте, кто есть кто……………………………………………………………………………………………………………….. 140

Определите участников……………………………………………………………………………………………….. 143

Как это сделать?…………………………………………………………………………………………………… 143

Постарайтесь понять, как мыслят клиенты…………………………………………………………………………… 144

Представьте себя на месте клиентов……………………………………………………………………………………… 144

Изучите текущие операции…………………………………………………………………………………………………….. 145

Устройте мозговой штурм………………………………………………………………………………………………………. 146

Думайте о будущем…………………………………………………………………………………………………………………. 147

Поймите логику клиентов……………………………………………………………………………………………………….. 147

Узнайте, что на самом деле нужно клиентам……………………………………………………………………….. 149

Расставьте приоритеты…………………………………………………………………………………………………………… 150

Проверьте свое понимание……………………………………………………………………………………………………… 151

Составьте техническое задание……………………………………………………………………………………………… 153

Подготовьте сценарии использования…………………………………………………………………………………… 154

Примите решение о целесообразности………………………………………………………………………………….. 158

Резюме………………………………………………………………………………………………………………………………………. 159

Упражнения………………………………………………………………………………………………………………………… 160

Глава 5. Перевод потребностей пользователей в модели данных………….. 163

Что такое модели данных?……………………………………………………………………………………………………… 164

Модели пользовательского интерфейса………………………………………………………………………………… 167

Построение модели пользовательского интерфейса…………………………………………………. 170

Как это сделать?…………………………………………………………………………………………………… 171

Семантические объектные модели…………………………………………………………………………………………. 172

Классы и объекты…………………………………………………………………………………………………………. 172

Кардинальность……………………………………………………………………………………………………………. 173

Идентификаторы…………………………………………………………………………………………………………… 174

Соберем все вместе………………………………………………………………………………………………………. 174

Построение семантической объектной модели…………………………………………………………. 176

Как это сделать?…………………………………………………………………………………………………… 176

Семантические представления……………………………………………………………………………………. 176

Типы классов………………………………………………………………………………………………………………… 178

Простые объекты………………………………………………………………………………………………….. 178

Композитные объекты…………………………………………………………………………………………. 178

Составные объекты……………………………………………………………………………………………… 179

Гибридный объект……………………………………………………………………………………………….. 179

Ассоциативные объекты……………………………………………………………………………………… 180

Хитроумные ассоциации…………………………………………………………………………………….. 182

Как это сделать?…………………………………………………………………………………………….. 182

Наследуемые объекты…………………………………………………………………………………………. 182

Комментарии и примечания………………………………………………………………………………………… 184

Модели «сущность-связь»……………………………………………………………………………………………………….. 185

Сущности, атрибуты и идентификаторы……………………………………………………………………. 185

Связи………………………………………………………………………………………………………………………………. 186

Кардинальность……………………………………………………………………………………………………………. 187

Наследование……………………………………………………………………………………………………………….. 189

Построение ER-диаграммы…………………………………………………………………………………………. 190

Как это сделать?…………………………………………………………………………………………………… 190

Дополнительные условные обозначения…………………………………………………………………… 191

Комментарии и примечания………………………………………………………………………………………… 192

Реляционные модели……………………………………………………………………………………………………………….. 193

Преобразование семантических объектных моделей……………………………………………….. 193

Преобразование ER-диаграмм……………………………………………………………………………………. 196

Резюме………………………………………………………………………………………………………………………………………. 197

Упражнения………………………………………………………………………………………………………………………… 198

Глава 6. Извлечение бизнес-правил……………………………………………………… 200

Что такое бизнес-правила?……………………………………………………………………………………………………… 200

Определение ключевых бизнес-правил…………………………………………………………………………………. 202

Поиск бизнес-правил……………………………………………………………………………………………………. 206

Как это сделать?…………………………………………………………………………………………………… 207

Извлечение ключевых бизнес-правил……………………………………………………………………………………. 209

Многоуровневые приложения………………………………………………………………………………………………… 211

Пример реализации многоуровневого приложения………………………………………………….. 214

Как это сделать?…………………………………………………………………………………………………… 214

Резюме………………………………………………………………………………………………………………………………………. 217

Упражнения………………………………………………………………………………………………………………………… 217

Глава 7. Нормализация данных……………………………………………………………. 221

Что такое нормализация?……………………………………………………………………………………………………….. 221

Первая нормальная форма (1НФ)…………………………………………………………………………………………… 223

Организация данных в первой нормальной форме……………………………………………………. 226

Как это сделать?…………………………………………………………………………………………………… 227

Вторая нормальная форма (2НФ)………………………………………………………………………………………….. 232

Организация данных во второй нормальной форме…………………………………………………. 235

Как это сделать?…………………………………………………………………………………………………… 235

Третья нормальная форма (3НФ)…………………………………………………………………………………………… 236

Организация данных в третьей нормальной форме………………………………………………….. 238

Как это сделать?…………………………………………………………………………………………………… 239

Остановка на третьей нормальной форме………………………………………………………………….. 240

Нормальная форма Бойса — Кодда (НФБК)………………………………………………………………………… 241

Организация данных в НФБК……………………………………………………………………………………… 244

Как это сделать?…………………………………………………………………………………………………… 244

Четвертая нормальная форма (4НФ)……………………………………………………………………………………… 245

Организация данных в четвертой нормальной форме………………………………………………. 248

Как это сделать?…………………………………………………………………………………………………… 248

Пятая нормальная форма (5НФ)…………………………………………………………………………………………….. 250

Работа с пятой нормальной формой…………………………………………………………………………… 252

Как это сделать?…………………………………………………………………………………………………… 252

Доменно-ключевая нормальная форма (ДКНФ)…………………………………………………………………… 253

Организация данных в доменно-ключевой нормальной форме……………………………….. 254

Как это сделать?…………………………………………………………………………………………………… 255

Ценная избыточность………………………………………………………………………………………………………………. 255

Оптимальный уровень нормализации……………………………………………………………………………………. 257

Нормализация NoSQL……………………………………………………………………………………………………………… 258

Резюме………………………………………………………………………………………………………………………………………. 259

Упражнения………………………………………………………………………………………………………………………… 260

Глава 8. Проектирование баз данных для поддержки
программного обеспечения…………………………………………………………………… 263

Планируйте наперед……………………………………………………………………………………………………………….. 264

Документируйте всё………………………………………………………………………………………………………………… 264

Учитывайте многоуровневую архитектуру………………………………………………………………………….. 265

Преобразуйте домены в таблицы…………………………………………………………………………………………… 265

Использование справочных таблиц……………………………………………………………………………. 266

Как это сделать?…………………………………………………………………………………………………… 267

Следите, чтобы таблицы оставались специализированными…………………………………………….. 267

Используйте три вида таблиц…………………………………………………………………………………………………. 267

Четко специализированные таблицы…………………………………………………………………………. 268

Как это сделать?…………………………………………………………………………………………………… 269

Придерживайтесь соглашений об именовании…………………………………………………………………….. 270

Допускайте определенную избыточность данных………………………………………………………………. 271

Не втискивайте всё подряд……………………………………………………………………………………………………… 272

Первая нормальная форма…………………………………………………………………………………………… 273

Как это сделать?…………………………………………………………………………………………………… 273

Резюме………………………………………………………………………………………………………………………………………. 273

Упражнения………………………………………………………………………………………………………………………… 274

Глава 9. Использование общих шаблонов проектирования…………………. 276

Ассоциации………………………………………………………………………………………………………………………………. 277

Ассоциации «многие ко многим»…………………………………………………………………………………. 277

Множественные ассоциации «многие ко многим»…………………………………………………….. 277

Построение связей «многие-ко-многим»…………………………………………………………….. 278

Как это сделать?…………………………………………………………………………………………….. 279

Многообъектные ассоциации……………………………………………………………………………………… 279

Построение многообъектных ассоциаций…………………………………………………………. 281

Как это сделать?…………………………………………………………………………………………….. 281

Повторяющиеся ассоциации атрибутов…………………………………………………………………….. 282

Рефлексивные ассоциации…………………………………………………………………………………………… 284

Рефлексивные ассоциации «один к одному»……………………………………………………… 284

Рефлексивные ассоциации «один ко многим»……………………………………………………. 285

Иерархические данные……………………………………………………………………………………………………………. 286

Работа с иерархическими данными……………………………………………………………………………. 287

Как это сделать?…………………………………………………………………………………………………… 288

Иерархические данные с NoSQL…………………………………………………………………………………. 289

Сетевые данные……………………………………………………………………………………………………………………….. 290

Сетевые данные с NoSQL…………………………………………………………………………………………….. 292

Временные данные………………………………………………………………………………………………………………….. 293

Срок действия……………………………………………………………………………………………………………….. 293

Удаленные объекты……………………………………………………………………………………………………… 294

Решаем, какие данные сделать временными……………………………………………………………… 295

Протоколирование и блокировка…………………………………………………………………………………………… 297

Журналы контроля………………………………………………………………………………………………………. 297

Записи под ключ…………………………………………………………………………………………………………… 298

Резюме………………………………………………………………………………………………………………………………………. 299

Упражнения………………………………………………………………………………………………………………………… 300

Глава 10. Предотвращение распространенных ошибок проектирования 302

Низкий уровень подготовки……………………………………………………………………………………………………. 302

Некачественная документация………………………………………………………………………………………………. 303

Неудачные стандарты именования……………………………………………………………………………………….. 303

Недостаточно масштабное мышление………………………………………………………………………………….. 305

Неумение предусматривать изменения…………………………………………………………………………………. 307

Чрезмерная нормализация………………………………………………………………………………………………………. 310

Недостаточная нормализация……………………………………………………………………………………………….. 310

Недостаточно тщательное тестирование……………………………………………………………………………… 311

Тревога из-за производительности………………………………………………………………………………………… 312

Разносортные таблицы……………………………………………………………………………………………………………. 312

Несоблюдение ограничений…………………………………………………………………………………………………… 315

Одержимость идентификацией……………………………………………………………………………………………….. 315

Отмененные идентификаторы……………………………………………………………………………………… 316

Как это сделать?…………………………………………………………………………………………………… 317

Отсутствие заданных естественных ключей…………………………………………………………………………. 319

Резюме………………………………………………………………………………………………………………………………………. 320

Упражнения………………………………………………………………………………………………………………………… 320

ЧАСТЬ III. Подробный анализ конкретного примера………. 323

Глава 11. Определение потребностей и требований пользователей………. 325

Встретьтесь с клиентами…………………………………………………………………………………………………………. 325

Мыслите как заказчики…………………………………………………………………………………………………………… 327

Определите, что должна делать система…………………………………………………………………… 328

Определите, как должен выглядеть проект………………………………………………………………… 330

Выясните, какие данные необходимы для пользовательского интерфейса……………. 331

Определите источник данных……………………………………………………………………………………… 332

Определите взаимосвязи между частями данных……………………………………………………… 333

Где искать данные?……………………………………………………………………………………………… 334

Как это сделать?…………………………………………………………………………………………….. 334

Определите потребности в производительности………………………………………………………. 335

Определите потребности в безопасности…………………………………………………………………… 336

Определите потребности в целостности данных………………………………………………………. 336

Инвентаризация……………………………………………………………………………………………………. 338

Как это сделать?…………………………………………………………………………………………….. 338

Напишите сценарии использования………………………………………………………………………………………. 339

Пример описания для сценария использования………………………………………………… 341

Как это сделать?…………………………………………………………………………………………….. 342

Составьте техническое задание……………………………………………………………………………………………… 343

Затребуйте обратную связь……………………………………………………………………………………………………. 344

Резюме………………………………………………………………………………………………………………………………………. 345

Упражнения………………………………………………………………………………………………………………………… 346

Глава 12. Построение модели данных………………………………………………….. 347

Построение семантических объектных моделей………………………………………………………………….. 347

Построение исходной семантической объектной модели………………………………………… 348

Пример определения класса……………………………………………………………………………….. 349

Как это сделать?…………………………………………………………………………………………….. 349

Совершенствование семантической объектной модели…………………………………………… 350

Моделирование сущностей и связей……………………………………………………………………………………… 353

Построение ER-диаграммы…………………………………………………………………………………………. 353

Сущность Course имеет значение……………………………………………………………………….. 354

Как это сделать?…………………………………………………………………………………………….. 354

Построение комбинированной ER-диаграммы………………………………………………………….. 355

Усовершенствование диаграммы «сущность-связь»…………………………………………………. 356

Разрываем связи……………………………………………………………………………………………………. 357

Как это сделать?…………………………………………………………………………………………….. 358

Построение реляционной модели…………………………………………………………………………………………… 359

Идентификация идентификаторов………………………………………………………………………………. 361

Как это сделать?…………………………………………………………………………………………………… 361

Объединим все вместе……………………………………………………………………………………………………………… 362

Резюме………………………………………………………………………………………………………………………………………. 363

Упражнения………………………………………………………………………………………………………………………… 364

Глава 13. Извлечение бизнес-правил……………………………………………………. 366

Определение бизнес-правил……………………………………………………………………………………………………. 366

Таблица Courses……………………………………………………………………………………………………………. 367

Ограничения адресов…………………………………………………………………………………………… 369

Как это сделать?…………………………………………………………………………………………….. 369

Таблица CustomerCourses……………………………………………………………………………………………. 370

Таблица Customers……………………………………………………………………………………………………….. 370

Таблица Pets………………………………………………………………………………………………………………….. 370

Таблица Employees………………………………………………………………………………………………………. 371

Таблица Orders……………………………………………………………………………………………………………… 371

Таблица OrderItems………………………………………………………………………………………………………. 371

Таблица InventoryItems……………………………………………………………………………………………….. 372

Таблица TimeEntries…………………………………………………………………………………………………….. 372

Таблица Shifts……………………………………………………………………………………………………………….. 373

Таблица Persons……………………………………………………………………………………………………………. 373

Таблица Phones…………………………………………………………………………………………………………….. 373

Таблица Vendors…………………………………………………………………………………………………………… 374

Построение новой реляционной модели……………………………………………………………………………….. 374

Резюме………………………………………………………………………………………………………………………………………. 375

Упражнения………………………………………………………………………………………………………………………… 375

Глава 14. Нормализация и уточнение…………………………………………………… 377

Повышение гибкости……………………………………………………………………………………………………………….. 377

Проверка первой нормальной формы……………………………………………………………………………………. 379

Приведение к первой нормальной форме…………………………………………………………………… 381

Как это сделать?…………………………………………………………………………………………………… 382

Проверка второй нормальной формы……………………………………………………………………………………. 383

Таблица Pets………………………………………………………………………………………………………………….. 383

Таблица OrderItems………………………………………………………………………………………………………. 384

Как это сделать?…………………………………………………………………………………………………… 384

Таблица TimeEntries…………………………………………………………………………………………………….. 385

Проверка третьей нормальной формы…………………………………………………………………………………… 386

Резюме………………………………………………………………………………………………………………………………………. 388

Упражнения………………………………………………………………………………………………………………………… 389

ЧАСТЬ IV. Примеры программ……………………………………………………. 391

Глава 15. Обзор примеров…………………………………………………………………….. 393

Выбор инструментов……………………………………………………………………………………………………………….. 393

Jupyter Notebook………………………………………………………………………………………………………………………. 395

Visual Studio……………………………………………………………………………………………………………………………… 397

Адаптеры баз данных……………………………………………………………………………………………………………… 398

Пакеты в Jupyter Notebook…………………………………………………………………………………………… 399

Пакеты в Visual Studio………………………………………………………………………………………………….. 401

Пароли программ…………………………………………………………………………………………………………………….. 403

Резюме………………………………………………………………………………………………………………………………………. 404

Упражнения………………………………………………………………………………………………………………………… 404

Глава 16. MariaDB на Python………………………………………………………………… 405

Установите MariaDB……………………………………………………………………………………………………………….. 406

Запустите HeidiSQL…………………………………………………………………………………………………………………. 407

Напишите программу……………………………………………………………………………………………………………… 410

Установите модуль pymysql………………………………………………………………………………………… 410

Создайте базу данных…………………………………………………………………………………………………. 410

Определите таблицы……………………………………………………………………………………………………. 413

Добавьте данные………………………………………………………………………………………………………….. 415

Получите данные………………………………………………………………………………………………………….. 417

Резюме………………………………………………………………………………………………………………………………………. 419

Упражнения………………………………………………………………………………………………………………………… 420

Глава 17. MariaDB на C#……………………………………………………………………… 421

Напишите программу……………………………………………………………………………………………………………… 421

Установите MySqlConnector……………………………………………………………………………………….. 422

Создайте базу данных…………………………………………………………………………………………………. 423

Определите таблицы……………………………………………………………………………………………………. 425

Создайте данные………………………………………………………………………………………………………….. 427

Получите данные………………………………………………………………………………………………………….. 431

Резюме………………………………………………………………………………………………………………………………………. 433

Упражнения………………………………………………………………………………………………………………………… 433

Глава 18. PostgreSQL на Python……………………………………………………………. 435

Установите PostgreSQL……………………………………………………………………………………………………………. 436

Запустите pgAdmin………………………………………………………………………………………………………………….. 437

Спроектируйте базу данных……………………………………………………………………………………….. 437

Создайте пользователя………………………………………………………………………………………………… 437

Создайте базу данных…………………………………………………………………………………………………. 439

Определите таблицы……………………………………………………………………………………………………. 440

Определите таблицу customers……………………………………………………………………………. 440

Определите таблицу orders…………………………………………………………………………………. 443

Определите таблицу order_items………………………………………………………………………… 444

Напишите программу……………………………………………………………………………………………………………… 445

Установите Psycopg……………………………………………………………………………………………………… 445

Подключитесь к базе данных………………………………………………………………………………………. 446

Удалите старые данные………………………………………………………………………………………………. 446

Создайте данные о клиентах………………………………………………………………………………………. 447

Создайте данные заказа………………………………………………………………………………………………. 448

Создайте данные элементов заказа……………………………………………………………………………. 450

Закройте соединение……………………………………………………………………………………………………. 451

Выполните запросы……………………………………………………………………………………………………… 451

Резюме………………………………………………………………………………………………………………………………………. 453

Упражнения………………………………………………………………………………………………………………………… 454

Глава 19. PostgreSQL на C#………………………………………………………………….. 456

Напишите программу……………………………………………………………………………………………………………… 456

Установите Npgsql………………………………………………………………………………………………………… 456

Подключитесь к базе данных………………………………………………………………………………………. 457

Удалите старые данные………………………………………………………………………………………………. 458

Создайте данные о клиентах………………………………………………………………………………………. 459

Создайте данные заказа………………………………………………………………………………………………. 460

Создайте данные позиций заказа……………………………………………………………………………….. 462

Отобразите заказы……………………………………………………………………………………………………….. 464

Резюме………………………………………………………………………………………………………………………………………. 467

Упражнения………………………………………………………………………………………………………………………… 467

Глава 20. Neo4j auraDB на Python………………………………………………………… 470

Установите neo4j auraDB……………………………………………………………………………………………………….. 471

Узлы и связи……………………………………………………………………………………………………………………………… 473

Cypher……………………………………………………………………………………………………………………………………….. 473

Напишите программу……………………………………………………………………………………………………………… 474

Установите адаптер базы данных Neo4j……………………………………………………………………. 474

Методы действий………………………………………………………………………………………………………….. 475

Метод delete_all_nodes……………………………………………………………………………………….. 475

Метод make_node…………………………………………………………………………………………………. 476

Метод make_link…………………………………………………………………………………………………… 477

Метод execute_node_query………………………………………………………………………………….. 477

Метод find_path……………………………………………………………………………………………………. 478

Методы схемы организации………………………………………………………………………………………… 479

Метод build_org_chart………………………………………………………………………………………… 479

Метод query_org_chart………………………………………………………………………………………… 480

Основная программа……………………………………………………………………………………………………. 481

Резюме………………………………………………………………………………………………………………………………………. 483

Упражнения………………………………………………………………………………………………………………………… 484

Глава 21. Neo4j auraDB на C#………………………………………………………………. 486

Напишите программу……………………………………………………………………………………………………………… 487

Установите драйвер Neo4j…………………………………………………………………………………………… 487

Методы действий………………………………………………………………………………………………………….. 488

Метод DeleteAllNodes………………………………………………………………………………………….. 489

Метод MakeNode………………………………………………………………………………………………….. 489

Метод MakeLink……………………………………………………………………………………………………. 490

Метод ExecuteNodeQuery…………………………………………………………………………………….. 491

Метод FindPath……………………………………………………………………………………………………. 492

Методы схемы организации………………………………………………………………………………………… 493

Метод BuildOrgChart…………………………………………………………………………………………… 493

Метод QueryOrgChart………………………………………………………………………………………….. 494

Основная программа……………………………………………………………………………………………………. 495

Резюме………………………………………………………………………………………………………………………………………. 497

Упражнения………………………………………………………………………………………………………………………… 498

Глава 22. MongoDB Atlas на Python………………………………………………………. 499

Не нормальная, но и не аномальная………………………………………………………………………………………. 499

XML, JSON и BSON………………………………………………………………………………………………………………….. 500

Установите MongoDB Atlas…………………………………………………………………………………………………….. 502

Найдите код подключения……………………………………………………………………………………………………… 504

Напишите программу……………………………………………………………………………………………………………… 507

Установите адаптер базы данных PyMongo……………………………………………………………… 507

Вспомогательные методы……………………………………………………………………………………………. 508

Метод person_string…………………………………………………………………………………………….. 508

Метод connect_to_db…………………………………………………………………………………………… 509

Метод delete_old_data…………………………………………………………………………………………. 510

Метод create_data………………………………………………………………………………………………… 510

Метод query_data…………………………………………………………………………………………………. 512

Основная программа……………………………………………………………………………………………………. 518

Резюме………………………………………………………………………………………………………………………………………. 518

Упражнения………………………………………………………………………………………………………………………… 519

Глава 23. MongoDB Atlas на C#…………………………………………………………….. 521

Напишите программу……………………………………………………………………………………………………………… 522

Установите адаптер базы данных MongoDB…………………………………………………………….. 522

Вспомогательные методы……………………………………………………………………………………………. 522

Метод PersonString………………………………………………………………………………………………. 523

Метод DeleteOldData…………………………………………………………………………………………… 524

Метод CreateData………………………………………………………………………………………………… 525

Метод QueryData………………………………………………………………………………………………….. 527

Основная программа……………………………………………………………………………………………………. 531

Резюме………………………………………………………………………………………………………………………………………. 534

Упражнения………………………………………………………………………………………………………………………… 534

Глава 24. Apache Ignite на Python…………………………………………………………. 536

Установите Apache Ignite………………………………………………………………………………………………………… 537

Запустите узел…………………………………………………………………………………………………………………………. 537

Без сохранения……………………………………………………………………………………………………………… 538

С сохранением………………………………………………………………………………………………………………. 539

Напишите программу……………………………………………………………………………………………………………… 540

Установите адаптер базы данных pyignite………………………………………………………………… 540

Определите класс Building………………………………………………………………………………………….. 540

Сохраните данные……………………………………………………………………………………………………….. 541

Считайте данные………………………………………………………………………………………………………….. 542

Продемонстрируйте энергозависимые данные…………………………………………………………. 543

Продемонстрируйте энергонезависмые данные……………………………………………………….. 543

Резюме………………………………………………………………………………………………………………………………………. 544

Упражнения………………………………………………………………………………………………………………………… 544

Глава 25. Apache Ignite на C#……………………………………………………………….. 546

Напишите программу……………………………………………………………………………………………………………… 547

Установите адаптер базы данных Ignite……………………………………………………………………. 547

Метод main программы……………………………………………………………………………………………….. 548

Класс Building………………………………………………………………………………………………………………. 549

Метод WriteData…………………………………………………………………………………………………………… 549

Метод ReadData……………………………………………………………………………………………………………. 551

Продемонстрируйте энергозависимые данные…………………………………………………………. 552

Продемонстрируйте энергонезависимые данные……………………………………………………… 553

Резюме………………………………………………………………………………………………………………………………………. 553

Упражнения………………………………………………………………………………………………………………………… 554

ЧАСТЬ V. Темы для углубленного изучения………………………. 555

Глава 26. Введение в SQL…………………………………………………………………….. 557

История…………………………………………………………………………………………………………………………………….. 559

Поиск дополнительной информации……………………………………………………………………………………… 559

Стандарты………………………………………………………………………………………………………………………………… 560

Составные команды………………………………………………………………………………………………………………… 561

Базовый синтаксис…………………………………………………………………………………………………………………… 563

Обзор команд……………………………………………………………………………………………………………………………. 564

Оператор CREATE TABLE……………………………………………………………………………………………………….. 567

Постройте таблицу………………………………………………………………………………………………………. 569

Как это сделать?…………………………………………………………………………………………………… 570

Оператор CREATE INDEX……………………………………………………………………………………………………….. 572

Оператор DROP……………………………………………………………………………………………………………………….. 573

Оператор INSERT…………………………………………………………………………………………………………………….. 573

Оператор SELECT……………………………………………………………………………………………………………………. 575

Выражение SELECT……………………………………………………………………………………………………… 575

Выражение FROM………………………………………………………………………………………………………… 576

Выражение WHERE………………………………………………………………………………………………………. 580

Выражение GROUP BY…………………………………………………………………………………………………. 580

Выражение ORDER BY…………………………………………………………………………………………………. 580

Сделайте свой выбор…………………………………………………………………………………………… 581

Как это сделать?…………………………………………………………………………………………….. 581

Оператор UPDATE…………………………………………………………………………………………………………………… 582

Пробуем обновления на вкус………………………………………………………………………………………. 583

Как это сделать?…………………………………………………………………………………………………… 583

Оператор DELETE……………………………………………………………………………………………………………………. 584

Резюме………………………………………………………………………………………………………………………………………. 584

Упражнения………………………………………………………………………………………………………………………… 584

Глава 27. Создание баз данных с помощью сценариев SQL…………………. 588

Зачем тратить время на сценарии?………………………………………………………………………………………… 588

Категории сценариев………………………………………………………………………………………………………………. 589

Сценарии создания базы данных……………………………………………………………………………….. 589

Основные сценарии инициализации…………………………………………………………………………… 589

Сценарии инициализации данных……………………………………………………………………………… 589

Сценарии очистки………………………………………………………………………………………………………… 590

Сохраняйте сценарии……………………………………………………………………………………………………………… 590

Упорядочивание команд SQL…………………………………………………………………………………………………. 591

Упорядочьте таблицы………………………………………………………………………………………………….. 594

Как это сделать?…………………………………………………………………………………………………… 594

Резюме………………………………………………………………………………………………………………………………………. 600

Упражнения………………………………………………………………………………………………………………………… 601

Глава 28. Обслуживание базы данных…………………………………………………. 602

Резервное копирование……………………………………………………………………………………………………………. 603

Составьте план резервного копирования…………………………………………………………………… 605

Как это сделать?…………………………………………………………………………………………………… 605

Хранение данных…………………………………………………………………………………………………………………….. 607

Восстановление базы данных………………………………………………………………………………………………… 607

Уплотнение базы данных……………………………………………………………………………………………………….. 608

Управление производительностью………………………………………………………………………………………… 608

Ключи к успеху…………………………………………………………………………………………………………….. 610

Как это сделать?…………………………………………………………………………………………………… 610

Резюме………………………………………………………………………………………………………………………………………. 612

Упражнения………………………………………………………………………………………………………………………… 613

Глава 29. Безопасность баз данных……………………………………………………… 614

Необходимый уровень безопасности…………………………………………………………………………………….. 614

Пароли………………………………………………………………………………………………………………………………………. 615

Базы данных с единым паролем…………………………………………………………………………………. 615

Индивидуальные пароли……………………………………………………………………………………………… 616

Пароли операционной системы………………………………………………………………………………….. 616

Надежные пароли………………………………………………………………………………………………………… 616

Привилегии……………………………………………………………………………………………………………………………….. 618

Минимум привилегированных……………………………………………………………………………………. 622

Как это сделать?…………………………………………………………………………………………………… 623

Исходная конфигурация и привилегии………………………………………………………………………………….. 623

Чрезмерная безопасность……………………………………………………………………………………………………….. 624

Физическая безопасность……………………………………………………………………………………………………….. 625

Резюме………………………………………………………………………………………………………………………………………. 627

Упражнения………………………………………………………………………………………………………………………… 627

ПРИЛОЖЕНИЯ…………………………………………………………………………………… 629

Приложение 1. Ответы к упражнениям………………………………………………… 631

Глава 1. Цели проектирования баз данных…………………………………………………………………………… 631

Упражнение 1……………………………………………………………………………………………………………….. 631

Упражнение 2……………………………………………………………………………………………………………….. 633

Упражнение 3……………………………………………………………………………………………………………….. 633

Упражнение 4……………………………………………………………………………………………………………….. 633

Упражнение 5……………………………………………………………………………………………………………….. 635

Упражнение 6……………………………………………………………………………………………………………….. 636

Упражнение 7……………………………………………………………………………………………………………….. 636

Упражнение 8……………………………………………………………………………………………………………….. 637

Упражнение 9……………………………………………………………………………………………………………….. 637

Упражнение 10……………………………………………………………………………………………………………… 638

Глава 2. Обзор реляционных баз данных……………………………………………………………………………… 638

Упражнение 1……………………………………………………………………………………………………………….. 638

Упражнение 2……………………………………………………………………………………………………………….. 638

Упражнение 3……………………………………………………………………………………………………………….. 638

Упражнение 4……………………………………………………………………………………………………………….. 639

Упражнение 5……………………………………………………………………………………………………………….. 639

Упражнение 6……………………………………………………………………………………………………………….. 639

Упражнение 7……………………………………………………………………………………………………………….. 639

Упражнение 8……………………………………………………………………………………………………………….. 640

Упражнение 9……………………………………………………………………………………………………………….. 640

Упражнение 10……………………………………………………………………………………………………………… 640

Глава 3. Обзор NOSQL…………………………………………………………………………………………………………….. 640

Упражнение 1……………………………………………………………………………………………………………….. 640

Упражнение 2……………………………………………………………………………………………………………….. 641

Упражнение 3……………………………………………………………………………………………………………….. 641

Упражнение 4……………………………………………………………………………………………………………….. 642

Упражнение 5……………………………………………………………………………………………………………….. 642

Упражнение 6……………………………………………………………………………………………………………….. 642

Упражнение 7……………………………………………………………………………………………………………….. 642

Упражнение 8……………………………………………………………………………………………………………….. 642

Упражнение 9……………………………………………………………………………………………………………….. 642

Упражнение 10……………………………………………………………………………………………………………… 643

Упражнение 11……………………………………………………………………………………………………………… 643

Упражнение 12……………………………………………………………………………………………………………… 643

Упражнение 13……………………………………………………………………………………………………………… 644

Упражнение 14……………………………………………………………………………………………………………… 644

Глава 4. Понимание потребностей пользователей………………………………………………………………. 645

Упражнение 1……………………………………………………………………………………………………………….. 645

Упражнение 2……………………………………………………………………………………………………………….. 645

Упражнение 3……………………………………………………………………………………………………………….. 646

Упражнение 4……………………………………………………………………………………………………………….. 646

Упражнение 5……………………………………………………………………………………………………………….. 646

Упражнение 6……………………………………………………………………………………………………………….. 646

Упражнение 7……………………………………………………………………………………………………………….. 647

Упражнение 8……………………………………………………………………………………………………………….. 647

Упражнение 9……………………………………………………………………………………………………………….. 648

Упражнение 10……………………………………………………………………………………………………………… 648

Упражнение 11……………………………………………………………………………………………………………… 650

Глава 5. Перевод потребностей пользователей в модели данных……………………………………… 650

Упражнение 1……………………………………………………………………………………………………………….. 650

Упражнение 2……………………………………………………………………………………………………………….. 650

Упражнение 3……………………………………………………………………………………………………………….. 653

Упражнение 4……………………………………………………………………………………………………………….. 654

Упражнение 5……………………………………………………………………………………………………………….. 655

Упражнение 6……………………………………………………………………………………………………………….. 656

Упражнение 7……………………………………………………………………………………………………………….. 657

Упражнение 8……………………………………………………………………………………………………………….. 657

Глава 6. Извлечение бизнес-правил……………………………………………………………………………………….. 658

Упражнение 1……………………………………………………………………………………………………………….. 658

Упражнение 2……………………………………………………………………………………………………………….. 661

Упражнение 3……………………………………………………………………………………………………………….. 663

Упражнение 4……………………………………………………………………………………………………………….. 664

Глава 7. Нормализация данных…………………………………………………………………………………………….. 665

Упражнение 1……………………………………………………………………………………………………………….. 665

Упражнение 2……………………………………………………………………………………………………………….. 667

Упражнение 3……………………………………………………………………………………………………………….. 667

Упражнение 4……………………………………………………………………………………………………………….. 668

Упражнение 5……………………………………………………………………………………………………………….. 669

Упражнение 6……………………………………………………………………………………………………………….. 669

Глава 8. Проектирование баз данных для поддержки программного обеспечения………….. 670

Упражнение 1……………………………………………………………………………………………………………….. 670

Упражнение 2……………………………………………………………………………………………………………….. 671

Упражнение 3……………………………………………………………………………………………………………….. 671

Упражнение 4……………………………………………………………………………………………………………….. 671

Глава 9. Использование общих шаблонов проектирования……………………………………………….. 672

Упражнение 1……………………………………………………………………………………………………………….. 672

Упражнение 2……………………………………………………………………………………………………………….. 672

Упражнение 3……………………………………………………………………………………………………………….. 672

Упражнение 4……………………………………………………………………………………………………………….. 673

Упражнение 5……………………………………………………………………………………………………………….. 673

Упражнение 6……………………………………………………………………………………………………………….. 674

Упражнение 7……………………………………………………………………………………………………………….. 675

Упражнение 8……………………………………………………………………………………………………………….. 675

Упражнение 9……………………………………………………………………………………………………………….. 676

Глава 10. Предотвращение распространенных ошибок проектирования…………………………. 676

Упражнение 1……………………………………………………………………………………………………………….. 676

Упражнение 2……………………………………………………………………………………………………………….. 677

Упражнение 3……………………………………………………………………………………………………………….. 677

Упражнение 4……………………………………………………………………………………………………………….. 678

Глава 11. Определение потребностей и требований пользователей………………………………….. 679

Упражнение 1……………………………………………………………………………………………………………….. 679

Упражнение 2……………………………………………………………………………………………………………….. 680

Упражнение 3……………………………………………………………………………………………………………….. 680

Упражнение 4……………………………………………………………………………………………………………….. 681

Упражнение 5……………………………………………………………………………………………………………….. 682

Упражнение 6……………………………………………………………………………………………………………….. 682

Глава 12. Построение модели данных…………………………………………………………………………………… 683

Упражнение 1……………………………………………………………………………………………………………….. 683

Упражнение 2……………………………………………………………………………………………………………….. 683

Упражнение 3……………………………………………………………………………………………………………….. 683

Упражнение 4……………………………………………………………………………………………………………….. 684

Упражнение 5……………………………………………………………………………………………………………….. 684

Упражнение 6……………………………………………………………………………………………………………….. 684

Упражнение 7……………………………………………………………………………………………………………….. 684

Упражнение 8……………………………………………………………………………………………………………….. 685

Упражнение 9……………………………………………………………………………………………………………….. 685

Упражнение 10……………………………………………………………………………………………………………… 685

Упражнение 11……………………………………………………………………………………………………………… 685

Упражнение 12……………………………………………………………………………………………………………… 686

Глава 13. Извлечение бизнес-правил…………………………………………………………………………………….. 686

Упражнение 1……………………………………………………………………………………………………………….. 686

Упражнение 2……………………………………………………………………………………………………………….. 687

Упражнение 3……………………………………………………………………………………………………………….. 687

Упражнение 4……………………………………………………………………………………………………………….. 688

Упражнение 5……………………………………………………………………………………………………………….. 689

Глава 14. Нормализация и уточнение…………………………………………………………………………………… 689

Упражнение 1……………………………………………………………………………………………………………….. 689

Упражнение 2……………………………………………………………………………………………………………….. 690

Упражнение 3……………………………………………………………………………………………………………….. 691

Упражнение 4……………………………………………………………………………………………………………….. 691

Глава 15. Обзор примеров………………………………………………………………………………………………………. 692

Упражнение 1……………………………………………………………………………………………………………….. 692

Упражнение 2……………………………………………………………………………………………………………….. 692

Упражнение 3……………………………………………………………………………………………………………….. 693

Упражнение 4……………………………………………………………………………………………………………….. 693

Упражнение 5……………………………………………………………………………………………………………….. 693

Упражнение 6……………………………………………………………………………………………………………….. 694

Глава 16. MariaDB на Python…………………………………………………………………………………………………. 694

Упражнение 1……………………………………………………………………………………………………………….. 694

Упражнение 2……………………………………………………………………………………………………………….. 694

Упражнение 3……………………………………………………………………………………………………………….. 694

Упражнение 4……………………………………………………………………………………………………………….. 694

Упражнение 5……………………………………………………………………………………………………………….. 695

Упражнение 6……………………………………………………………………………………………………………….. 696

Глава 17. MariaDB на C#………………………………………………………………………………………………………… 696

Упражнение 1……………………………………………………………………………………………………………….. 696

Упражнение 2……………………………………………………………………………………………………………….. 696

Упражнение 3……………………………………………………………………………………………………………….. 697

Упражнение 4……………………………………………………………………………………………………………….. 697

Упражнение 5……………………………………………………………………………………………………………….. 697

Упражнение 6……………………………………………………………………………………………………………….. 699

Глава 18. PostgreSQL на Python……………………………………………………………………………………………… 699

Упражнение 1……………………………………………………………………………………………………………….. 699

Упражнение 2……………………………………………………………………………………………………………….. 699

Упражнение 3……………………………………………………………………………………………………………….. 700

Упражнение 4……………………………………………………………………………………………………………….. 700

Упражнение 5……………………………………………………………………………………………………………….. 701

Упражнение 6……………………………………………………………………………………………………………….. 701

Упражнение 7……………………………………………………………………………………………………………….. 702

Глава 19. PostgreSQL на C#…………………………………………………………………………………………………….. 702

Упражнение 1……………………………………………………………………………………………………………….. 702

Упражнение 2……………………………………………………………………………………………………………….. 702

Упражнение 3……………………………………………………………………………………………………………….. 705

Упражнение 4……………………………………………………………………………………………………………….. 705

Упражнение 5……………………………………………………………………………………………………………….. 705

Упражнение 6……………………………………………………………………………………………………………….. 706

Упражнение 7……………………………………………………………………………………………………………….. 706

Глава 20. Neo4J AuraDB на Python………………………………………………………………………………………… 707

Упражнение 1……………………………………………………………………………………………………………….. 707

Упражнение 2……………………………………………………………………………………………………………….. 707

Упражнение 3……………………………………………………………………………………………………………….. 707

Упражнение 4……………………………………………………………………………………………………………….. 707

Упражнение 5……………………………………………………………………………………………………………….. 707

Глава 21. Neo4J AuraDB на С#……………………………………………………………………………………………….. 708

Упражнение 1……………………………………………………………………………………………………………….. 708

Упражнение 2……………………………………………………………………………………………………………….. 708

Упражнение 3……………………………………………………………………………………………………………….. 708

Упражнение 4……………………………………………………………………………………………………………….. 708

Упражнение 5……………………………………………………………………………………………………………….. 708

Упражнение 6……………………………………………………………………………………………………………….. 708

Упражнение 7……………………………………………………………………………………………………………….. 708

Глава 22. MongoDB Atlas на Python………………………………………………………………………………………. 709

Упражнение 1……………………………………………………………………………………………………………….. 709

Упражнение 2……………………………………………………………………………………………………………….. 709

Упражнение 3……………………………………………………………………………………………………………….. 709

Упражнение 4……………………………………………………………………………………………………………….. 710

Глава 23. MongoDB Atlas на C#……………………………………………………………………………………………… 710

Упражнение 1……………………………………………………………………………………………………………….. 710

Упражнение 2……………………………………………………………………………………………………………….. 710

Упражнение 3……………………………………………………………………………………………………………….. 710

Упражнение 4……………………………………………………………………………………………………………….. 711

Глава 24. Apache Ignite на Python………………………………………………………………………………………….. 711

Упражнение 1……………………………………………………………………………………………………………….. 711

Упражнение 2……………………………………………………………………………………………………………….. 711

Упражнение 3……………………………………………………………………………………………………………….. 712

Упражнение 4……………………………………………………………………………………………………………….. 712

Глава 25. Apache Ignite на C#…………………………………………………………………………………………………. 713

Упражнение 1……………………………………………………………………………………………………………….. 713

Упражнение 2……………………………………………………………………………………………………………….. 714

Упражнение 3……………………………………………………………………………………………………………….. 714

Упражнение 4……………………………………………………………………………………………………………….. 715

Глава 26. Введение в SQL……………………………………………………………………………………………………….. 715

Упражнение 1……………………………………………………………………………………………………………….. 715

Упражнение 2……………………………………………………………………………………………………………….. 716

Упражнение 3……………………………………………………………………………………………………………….. 717

Упражнение 4……………………………………………………………………………………………………………….. 717

Упражнение 5……………………………………………………………………………………………………………….. 718

Глава 27. Создание баз данных с помощью сценариев SQL……………………………………………….. 718

Упражнение 1……………………………………………………………………………………………………………….. 718

Упражнение 2……………………………………………………………………………………………………………….. 718

Глава 28. Обслуживание базы данных………………………………………………………………………………….. 721

Упражнение 1……………………………………………………………………………………………………………….. 721

Упражнение 2……………………………………………………………………………………………………………….. 721

Упражнение 3……………………………………………………………………………………………………………….. 722

Глава 29. Безопасность баз данных………………………………………………………………………………………. 722

Упражнение 1……………………………………………………………………………………………………………….. 722

Упражнение 2……………………………………………………………………………………………………………….. 724

Упражнение 3……………………………………………………………………………………………………………….. 725

Приложение 2. Примеры реляционных проектных решений……………….. 727

Книги…………………………………………………………………………………………………………………………………………. 729

Фильмы……………………………………………………………………………………………………………………………………… 731

Музыка……………………………………………………………………………………………………………………………………… 732

Управление документами……………………………………………………………………………………………………….. 734

Заказы клиентов………………………………………………………………………………………………………………………. 735

Смены и табели учета рабочего времени……………………………………………………………………………… 735

Сотрудники, проекты и отделы………………………………………………………………………………………………. 736

Навыки и квалификация сотрудников……………………………………………………………………………………. 737

Аренда одинаковых объектов………………………………………………………………………………………………… 738

Аренда уникальных объектов………………………………………………………………………………………………… 739

Студенты, учебные курсы и оценки……………………………………………………………………………………….. 740

Команды…………………………………………………………………………………………………………………………………… 742

Индивидуальные виды спорта……………………………………………………………………………………………….. 743

Автопарки…………………………………………………………………………………………………………………………………. 743

Контакты………………………………………………………………………………………………………………………………….. 746

Пассажиры……………………………………………………………………………………………………………………………….. 747

Рецепты…………………………………………………………………………………………………………………………………….. 749

Приложение 3. Описание файлового архива………………………………………… 751

Глоссарий…………………………………………………………………………………………….. 752

Предметный указатель…………………………………………………………………………. 766

Род Стивенс

Род Стивенс (Rod Stephens)— программист и преподаватель, широко известный автор 37 технических книг и более 250 статей о языках программирования C#, Java и других. Его читательская аудитория насчитывает миллионы человек, постоянно пользующихся предложенными им решениями, приёмами и образцами кода.

Добавить комментарий