Технологии проектирования баз данных
Покупка
Тематика:
Проектирование баз и банков данных
Издательство:
ДМК Пресс
Автор:
Осипов Дмитрий Леонидович
Год издания: 2019
Кол-во страниц: 498
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-737-4
Артикул: 746802.02.99
Книга основана на материалах лекций и практических занятий, подготовленных автором и объединяет теоретические основы и практический аспект разработки современных баз данных (БД). Основная задача издания — предоставить читателю профессиональную методику проектирования БД. Страницы книги проведут читателя по всем этапам жизненного цикла проекта баз данных от момента возникновения идеи разработки программного обеспечения до этапа ввода готового продукта в эксплуатацию, подробно объясняя каждый шаг. Издание отличает глубина и ясность изложения материала, поэтому издание окажется полезным как для студентов и преподавателей ИТ-специальностей, так и для разработчиков баз данных и программистов, стремящихся самостоятельно освоить технологические приемы проектирования современных БД.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Осипов Д. Л. Технологии проектирования баз данных Москва, 2019
УДК 004.65 ББК 32.972.134 О74 О74 Осипов Д. Л. Технологии проектирования баз данных. – М.: ДМК Пресс, 2019. – 498 с.: ил. ISBN 978-5-97060-737-4 Книга основана на материалах лекций и практических занятий, подготовленных автором и объединяет теоретические основы и практический аспект разработки современных баз данных (БД). Основная задача издания — предоставить читателю профессиональную методику проектирования БД. Страницы книги проведут читателя по всем этапам жизненного цикла проекта баз данных от момента возникновения идеи разработки программного обеспечения до этапа ввода готового продукта в эксплуатацию, подробно объясняя каждый шаг. Издание отличает глубина и ясность изложения материала, поэтому издание окажется полезным как для студентов и преподавателей ИТ-специальностей, так и для разработчиков баз данных и программистов, стремящихся самостоятельно освоить технологические приемы проектирования современных БД. УДК 004.65 ББК 32.972.134 Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. © Осипов Д. Л., 2019 ISBN 978-5-97060-737-4 © Оформление, издание ДМК Пресс, 2019
Оглавление Введение ...............................................................................................................................12 Соглашения .........................................................................................................................................13 Глава 1. Эволюция баз данных ..........................................................................................14 Электронные картотеки .................................................................................................................16 Принцип построения систем файлов ..............................................................................................17 Недостатки систем файлов .................................................................................................................18 Пути устранения недостатков систем файлов .............................................................................22 Что такое база данных? .................................................................................................................23 Эволюция моделей БД ...................................................................................................................24 Необходимость моделирования .......................................................................................................26 Иерархическая модель .........................................................................................................................27 Сетевая модель .........................................................................................................................................30 Попытки разработки стандарта БД ..................................................................................................32 Реляционная модель ..............................................................................................................................34 Объектно-ориентированная модель ...............................................................................................36 Слабоструктурированные данные ...................................................................................................38 Документ-ориентированная модель ...............................................................................................38 Резюме ..................................................................................................................................................39 Вопросы для самопроверки ...............................................................................................................39 Глава 2. Система управления базами данных .................................................................41 Функционал СУБД ............................................................................................................................42 Компоненты СУБД ............................................................................................................................45 Системный каталог .................................................................................................................................48 Архитектурные решения доступа к БД ...................................................................................48 Файл-сервер ..............................................................................................................................................49 Клиент-сервер ..........................................................................................................................................50 Распределенная система ......................................................................................................................54 Резюме ..................................................................................................................................................55 Вопросы для самопроверки ...............................................................................................................56 Глава 3. Персонал и пользователи БД ..............................................................................57 Администратор данных .................................................................................................................59 Администратор базы данных ......................................................................................................60 Разработчики баз данных.............................................................................................................61 Прикладные программисты .........................................................................................................61
Оглавление Конечные пользователи ................................................................................................................62 Резюме ..................................................................................................................................................63 Вопросы для самопроверки ...............................................................................................................63 Глава 4. Реляционная модель ............................................................................................65 Сущность и атрибуты ......................................................................................................................66 Тип данных и домен ........................................................................................................................69 Связь ......................................................................................................................................................71 Отношение ..........................................................................................................................................73 Ключи ....................................................................................................................................................76 Целостность данных ........................................................................................................................77 Целостность доменов ............................................................................................................................78 Целостность сущностей .........................................................................................................................79 Ссылочная целостность .........................................................................................................................80 Корпоративная целостность ...............................................................................................................80 Реляционная алгебра .....................................................................................................................81 Резюме ..................................................................................................................................................87 Вопросы для самопроверки ...............................................................................................................88 Глава 5. Технология разработки БД ..................................................................................89 Роль БД на предприятии ...............................................................................................................90 Жизненный цикл базы данных ..................................................................................................94 Этап планирования разработки БД .................................................................................................96 Этап определения и анализа требований к системе ...............................................................96 Этап проектирования БД .................................................................................................................. 100 Этап выбора СУБД ............................................................................................................................... 104 Этап создания клиентского программного обеспечения .................................................... 105 Этап тестирования и отладки .......................................................................................................... 107 Этап реализации ................................................................................................................................... 109 Этап эксплуатации и сопровождения .......................................................................................... 110 Резюме ...............................................................................................................................................111 Вопросы для самопроверки ............................................................................................................ 111 Глава 6. Концептуальное проектирование и ER-модель .............................................112 Концептуальная модель БД ......................................................................................................113 ER-модель .........................................................................................................................................113 Типы сущностей и атрибуты............................................................................................................. 114 Связи в ER-модели ............................................................................................................................... 119 Вариации ER-моделей................................................................................................................. 127 Резюме ...............................................................................................................................................129 Вопросы для самопроверки ............................................................................................................ 130
Оглавление 5 Глава 7. Логическое проектирование и нормализация ...............................................131 Первая нормальная форма .......................................................................................................134 Функциональная зависимость атрибутов ........................................................................... 137 Порядок определения первичного ключа ..........................................................................139 Вторая нормальная форма ........................................................................................................141 Третья нормальная форма.........................................................................................................142 Нормальная форма Бойса-Кодда ...........................................................................................145 Четвертая нормальная форма .................................................................................................145 Пятая нормальная форма .......................................................................................................... 147 Финал «гонки» нормальных форм .........................................................................................149 Резюме ...............................................................................................................................................149 Вопросы для самопроверки ............................................................................................................ 150 Глава 8. Физическое представление данных ................................................................151 Двухуровневая модель хранения данных ..........................................................................151 Представление реляционных данных ..................................................................................153 Поля ......................................................................................................................................................... 154 Записи ....................................................................................................................................................... 156 Блоки ......................................................................................................................................................... 157 Файл ......................................................................................................................................................... 157 Модификация записей ................................................................................................................158 Особенности представления объектов ................................................................................158 Журнальная информация ..........................................................................................................159 Резюме ...............................................................................................................................................160 Вопросы для самопроверки ............................................................................................................ 160 Глава 9. Индексирование ..................................................................................................162 Индексы на основе хеширования ..........................................................................................164 Индексы на основе B-деревьев ..............................................................................................168 Битовые индексы ..........................................................................................................................171 Правила назначения пользовательских индексов ..........................................................172 Избирательность индекса ..........................................................................................................173 Резюме ...............................................................................................................................................175 Вопросы для самопроверки ............................................................................................................ 175 Глава 10. Безопасность данных .......................................................................................176 Откуда исходят угрозы? ..............................................................................................................178 Политика безопасности ..............................................................................................................181 Правила защиты БД .....................................................................................................................182
Оглавление Идентификация, аутентификация и авторизация ................................................................... 184 Криптографическая защита ............................................................................................................. 185 Резервное копирование и восстановление .............................................................................. 188 Аудит событий безопасности .......................................................................................................... 189 Модернизация программного обеспечения ............................................................................. 191 Безопасный доступ к данным ......................................................................................................... 191 Экономическая оправданность ...................................................................................................... 192 Резюме ...............................................................................................................................................192 Вопросы для самопроверки ............................................................................................................ 193 Глава 11. Знакомимся с SQL .............................................................................................194 Возможности SQL .......................................................................................................................... 197 Типы данных SQL ..........................................................................................................................198 Предопределенные типы .................................................................................................................. 199 Непредопределенные типы ............................................................................................................. 206 Константы .........................................................................................................................................209 Преобразование данных ...........................................................................................................210 Операторы .......................................................................................................................................212 Операция присваивания ................................................................................................................... 213 Арифметические операторы ........................................................................................................... 213 Логические операторы ...................................................................................................................... 214 Операторы сравнения ........................................................................................................................ 215 Проверка на неопределенность NULL ........................................................................................ 215 Конкатенация строк ............................................................................................................................ 216 Встроенные функции ...................................................................................................................216 Резюме ............................................................................................................................................... 217 Вопросы для самопроверки ............................................................................................................ 217 Глава 12. Манипулирование данными SQL ...................................................................219 Запрос, инструкция SELECT.......................................................................................................219 Псевдонимы имен столбцов и таблиц ......................................................................................... 222 Порядок сортировки, ORDER BY .................................................................................................... 223 Условие отбора данных, предложение WHERE ....................................................................... 224 Агрегирующие функции .................................................................................................................... 232 Группировка данных GROUP BY ..................................................................................................... 233 Соединение таблиц в запросе SELECT ........................................................................................ 234 Вставка, инструкция INSERT ......................................................................................................244 Модификация, инструкция UPDATE .......................................................................................246 Удаление, инструкция DELETE .................................................................................................248 Слияние данных, инструкция MERGE ....................................................................................249 Резюме ...............................................................................................................................................250 Вопросы для самопроверки ............................................................................................................ 251
Оглавление 7 Глава 13. Определение данных средствами SQL .........................................................252 Базы данных (схемы) ...................................................................................................................252 Домены ..............................................................................................................................................255 Таблицы .............................................................................................................................................256 Внешние ключи и связи между таблицами ............................................................................... 258 Ограничения на значения столбцов ............................................................................................. 260 Столбец-перечисление ...................................................................................................................... 261 Столбец-множество ............................................................................................................................. 262 Временные таблицы ........................................................................................................................... 263 Модификация таблицы ...................................................................................................................... 264 Клонирование и копирование таблиц ........................................................................................ 265 Индексы ............................................................................................................................................266 Изменение индекса............................................................................................................................. 267 Удаление индекса ................................................................................................................................ 268 Представления ...............................................................................................................................269 Изменение представления ............................................................................................................... 272 Удаление представления................................................................................................................... 273 Модифицируемые представления ................................................................................................ 273 Резюме ...............................................................................................................................................274 Вопросы для самопроверки ............................................................................................................ 275 Глава 14. Процедурный SQL .............................................................................................276 Элементы процедурного SQL ...................................................................................................278 Переменные ........................................................................................................................................... 278 Составной оператор BEGIN..END ................................................................................................... 281 Условные операторы .......................................................................................................................... 281 Циклы ........................................................................................................................................................ 284 Хранимые процедуры и функции ..........................................................................................288 Вызов хранимой процедуры ........................................................................................................... 291 Особенности работы с функциями ............................................................................................... 292 Изменение процедур и функций ................................................................................................... 294 Удаление процедур и функций ....................................................................................................... 294 Триггеры ............................................................................................................................................294 Контекстные переменные ................................................................................................................. 297 Примеры триггеров ............................................................................................................................. 297 Курсоры .............................................................................................................................................302 Примеры курсоров .............................................................................................................................. 305 Резюме ...............................................................................................................................................309 Вопросы для самопроверки ............................................................................................................ 310 Глава 15. Регулярные выражения в запросах ...............................................................311 Операторы для регулярных выражений .............................................................................311
Оглавление Основы синтаксиса .......................................................................................................................312 Регулярные выражения в запросах .......................................................................................319 Резюме ...............................................................................................................................................320 Вопросы для самопроверки ............................................................................................................ 320 Глава 16. Управление транзакциями ..............................................................................322 Требования к транзакции ..........................................................................................................323 Состояние транзакции .................................................................................................................324 Проблемы совместного доступа к данным ........................................................................325 Управление параллельными транзакциями .......................................................................326 Пессимистический подход ............................................................................................................... 327 Оптимистический подход ................................................................................................................. 330 Детализация уровня блокировок ...........................................................................................333 Требования стандарта SQL ........................................................................................................334 Явное управление транзакцией ..............................................................................................335 Точки сохранения ................................................................................................................................. 338 Резюме ...............................................................................................................................................338 Вопросы для самопроверки ............................................................................................................ 339 Глава 17. Определение прав пользователей .................................................................340 Идентификатор авторизации ...................................................................................................341 Объекты защиты ............................................................................................................................342 Управление наборами привилегий .......................................................................................343 Предоставление привилегий .......................................................................................................... 344 Лишение привилегий ......................................................................................................................... 347 Резюме ...............................................................................................................................................349 Вопросы для самопроверки ............................................................................................................ 349 Глава 18. Интерактивная аналитическая обработка OLAP .........................................350 Требования к OLAP-инструментам ........................................................................................351 Хранилище данных ......................................................................................................................353 OLAP-куб ...........................................................................................................................................355 Язык многомерных выражений MDX ....................................................................................356 Резюме ...............................................................................................................................................358 Вопросы для самопроверки ............................................................................................................ 358 Глава 19. Расширяемый язык разметки XML ................................................................360 Корректность документа XML ..................................................................................................361 Построение документа XML .....................................................................................................361 Элементы документа .......................................................................................................................... 362 Атрибуты .................................................................................................................................................. 363
Оглавление 9 Пространство имен.............................................................................................................................. 364 Определение типа документа DTD ........................................................................................ 367 XML Schemas ...................................................................................................................................373 Элементы схемы ................................................................................................................................... 376 Атрибуты схемы .................................................................................................................................... 385 Подключение XML-схемы к документу ....................................................................................... 386 Поддержка XML в СУБД .............................................................................................................386 Резюме ............................................................................................................................................... 387 Вопросы для самопроверки ............................................................................................................ 388 Глава 20. Клиент-серверные БД ......................................................................................389 Модель взаимодействия открытых систем .........................................................................389 Клиент-серверные СУБД ............................................................................................................393 Модели распределения функций ...........................................................................................393 Резюме ...............................................................................................................................................396 Вопросы для самопроверки ............................................................................................................ 397 Глава 21. Особенности разработки клиента БД ............................................................398 Выбор языка программирования ...........................................................................................398 Технология доступа к данным ODBC ............................................................................................ 399 Технология доступа к данным ADO .NET .................................................................................... 400 Технология доступа к данным FireDAC........................................................................................ 402 Технология JDBC ................................................................................................................................... 404 Интерфейс клиента ......................................................................................................................405 Сколько людей, столько и мнений ................................................................................................ 406 Пользовательские критерии качества интерфейса ............................................................... 407 Рекомендации по проектированию ......................................................................................408 Резюме ...............................................................................................................................................410 Вопросы для самопроверки ............................................................................................................ 411 Глава 22. Распределенные БД .........................................................................................412 Предпосылки децентрализации .............................................................................................412 Система управления распределенной базой данных ........................................................... 414 Правила распределенных БД от Криса Дейта ..................................................................415 Аспекты проектирования распределенных БД ................................................................416 Фрагментация ........................................................................................................................................ 417 Распределение ...................................................................................................................................... 419 Репликация ............................................................................................................................................. 419 Особенности управления системным каталогом .............................................................420 Распределенные транзакции ...................................................................................................420 Преимущества распределенных БД ......................................................................................421
Оглавление Недостатки распределенных БД .............................................................................................422 Резюме ...............................................................................................................................................423 Вопросы для самопроверки ............................................................................................................ 424 Глава 23. Объектно-ориентированная модель данных...............................................425 Предпосылки появления модели ...........................................................................................425 Преимущества ООБД ................................................................................................................... 427 Объектно-ориентированная терминология .......................................................................428 Абстрагирование .................................................................................................................................. 430 Инкапсуляция......................................................................................................................................... 430 Модульность ........................................................................................................................................... 431 Наследование ........................................................................................................................................ 432 Идентификатор объекта .................................................................................................................... 432 Манифест объектно-ориентированных СУБД ...................................................................433 Стандарт ODMG .............................................................................................................................. 437 Что было сделано на практике? .............................................................................................. 437 Postgres .................................................................................................................................................... 437 UniSQL ....................................................................................................................................................... 438 Cache ......................................................................................................................................................... 439 Versant Object Database ..................................................................................................................... 439 ObjectStore .............................................................................................................................................. 440 Что пошло не так? .........................................................................................................................440 Недостатки ООБД ................................................................................................................................. 441 Объектно-реляционные СУБД ..................................................................................................443 Резюме ...............................................................................................................................................444 Вопросы для самопроверки ............................................................................................................ 445 Глава 24. Документ-ориентированные БД ....................................................................446 Чем плоха нормализация? ........................................................................................................446 БД ключ-значение ........................................................................................................................ 447 Документ-ориентированные БД .............................................................................................448 NoSQL ........................................................................................................................................................ 449 Распределенная обработка MapReduce ..................................................................................... 452 Сегментирование ................................................................................................................................. 453 Репликация ............................................................................................................................................. 455 Когда следует использовать документ-ориентированную модель? ........................456 Резюме ...............................................................................................................................................456 Вопросы для самопроверки ............................................................................................................ 457 Глава 25. Большие данные ...............................................................................................458 Что такое «большие данные»?.................................................................................................459