СУБД для программиста. Базы данных изнутри

СУБД для программиста. Базы данных изнутри

СУБД для программиста. Базы данных изнутри

Автор: Сергей Витальевич Тарасов
Дата выхода: 2024
Издательство: ООО "Солон-пресс"
Количество страниц: 320
Размер файла: 40,9 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Введение ........................ ............. .................... ......................................... 7 

Основные понятия ........ ................................. ............................................. 9 

База данных и СУБД .............. ........ ............ ........ ....................................... 9 

Типы приложений: транзакционная и аналитическая обработка ...................... 11 

Клиент-серверные и встроенные СУБД ....................................... ................. 14 

Сноска. Firebird 2.5: состояние ............. ............................. ......................... 19 

Основные модели данных: иерархическая, сетевая, реляционная ................... 22 

Иерархическая модель ........................... ............................. ....... .............. 22 

Сетевая модель ...... ............. .................... .................................................. 28 

Реляционная модель ........... ........ ............ .................................................. 33 

Другие подходы и модели данных ............ ........ .......................................... 37 

Модель «Сущность-атрибут-значение» (EAV) ... ............................................ 37 

Неполно структурированные модели данных ............................................... .46 

Документ-ориентированная модель и NoSQL ................................................ 48 

Многомерные модели данных .............. .................................... .................. 53 

О применимости NoSQL ........................................................... .................. 56 

Множественная и навигационная обработка, менеджеры записей .................. 61 

Объектная модель и объектно-реляционная проекция ........ ......................... 65 

SQL как универсальный входной язык ........................................ ................ 75 

Проектирование ............ ................................. ......................................... 78 

Терминология уровней ...................................... ....................................... 78 

Первичные и прочие ключи .. .................................................................... 83 

Внешние ключи и связи ................. ............ ............................................. 87 

Нормализация и денормализация ............. ............................. .................. 89 

1НФ .......................................................... .............................................. 90 

2НФ ...................................... ................................................................. 91 

3НФ .............................................. ............ ........................................... 92 

Деморализуем ... то есть денормализуем: «звезда» и «снежинка» .............. 93 

Типовая архитектура данных аналитических приложений .......................... 98 

Переносимость между СУБД ........ ............................................................ 100 

Абстрагирование от СУБД ........ ............ .................................... ............ 101 

Абстрагирование от входного языка СУБД ................................................ 102 

Использование подмножества входного языка .......................................... 104 

Типовые структуры ... ..................... ............ ........ ................................. 104 

Моделирование связей разных типов ....................................................... 105 

Хронологические данные .. .................... ................................................ 109 

Иерархические данные и деревья в SQL ..... ............................................. 115 

Интернационализация/локализация данных и проброс контекста ............... 130 

Метаданные ........................................................ .................................. 138 

Реестр объектов и аудит ................. .................... .................................. 143

Безопасность и доступ к данным .. .......................................................... 145 

Проектирование физического хранения .................................................. 151 

Физическая организация памяти ............................................................. 152 

Оперативная и долговременная память ............................ ...................... 155 

Дисковые массивы ..................... ........................................................... 157 

Оперативная память ............................... ........ ...................................... 160 

Индексация данных ....................................... ........................................ 161 

Секционирование данных ......... ............................................................ 163 

Неполно структурированные данные и высокая нагрузка .......................... 165 

Относительность понятия высокой нагрузки ............................................ 165 

Особенности использования РСУБД и НСМД (NoSQL) ................................ 168 

Нужно ли моделировать? ........................................................................ 172 

Моделирование против ручного кодирования: пример ... .......................... 174 

Большие данные как состояние отрасли .................................................. 181 

Программирование с испытаниями .......................................................... 187 

Типы соединений в SQL на примерах ...................................................... 187

Исходники и синхронизация структур ............. ........................................ 190 

Некоторые особенности программирования .............................................. 200 

Параметризация запросов и SQL-инъекции ............................................... 200 

Сравнение с неопределёнными (пустыми) значениями ............................... 203 

Работа со строками .................... .................... ........................................ 204

Работа с датами ...................................................................................... 207 

Генерация идентификаторов записей ................................ ...................... 209 

Транзакции, изоляция и блокировки ........................................................ 214 

Уровни SQL-92 ............................................................ ........................... 215 

Блокировки ................................. ............................................................ 219 

Взаимные блокировки процессов (deadlock) ............................................... 222 

Версии данных ........................... .................... ........................................ 225 

Проявления эффектов изоляции ............................................................... 227 

Толстые транзакции ................................................................................. 232 

Загрузка данных ......................................... ............................................ 233 

Пакетная загрузка ....................... ............................................................ 234 

Вставка в толстой транзакции .. .................................................... .......... 240 

РСУБД и неполно структурированные данные ............................................ 241 

Поддержка ХМL ......................... .................... ........................................ 242 

Поддержка JSON .................................... ........ ........................................ 250 

Выводы .................................................................................................... 253 

Постраничные выборки ..... ........................................................................ 254 

Обзор способов постраничной выборки ........................................................ 256 

Тестирование способов постраничной выборки ............................................ 260 

Выводы ........................................ ............................................................ 271 

SQL и модульное тестирование .... .................... ........................................ 271 

Место модульного тестирования в системе испытаний .. .......................... 271 

Особенности разработки на процедурных расширениях SQL .................... 273 

Пример задачи для модульного теста ... ........ ........................................ 273 

Создаём специализированный макроязык .............................................. 276 

Остановиться и оглянуться ................................................................... 283 

Производительность SQL-запросов .................................... ................... 284 

Общие рекомендации ...................................................................... ..... 284 

Анализ плана выполнения запроса ................................... ..................... 286 

Поиск узких мест ........................... ....................................................... 291 

Основы нагрузочного тестирования ......................................................... 297 

Инструменты и методы ......................... ............................................. ... 297 

Учёт степени параллелизма ...... ......................................... ................... 301 

SQL Server и MongoDB на простом тесте .................................................. 304 

Тест вставки записей ................. ............................................................ 304 

Запросы и хронометраж ............ ............................................................ 308 

Выводы ........................................ .................... ................................... 315 

Тестовые и демонстрационные базы данных .. ......................................... 315 

Заключение ......................................... .................... ............................ 317 

Литература .......................................... ................................................. 318

 Книга охватывает различные этапы разработки и сопутствующие им ситуации из практики программистов приложений, работающих с системами управления базами данных. Даются рекомендации по выбору решений как в проектировании (архитектуре), так и в программировании автоматизированных информационных систем уровня предприятия. Приводятся примеры для различных СУБД и моделей: Microsoft SQL Server, PostgreSQL, Firebird, Oracle, XML, NoSQL.Для программистов, студентов и других специалистов в области информационных технологий, а также всех интересующихся темой разработки приложений баз данных. 


Похожее: