базы данных NoSQLВведение в технологию.

Фаулер, Мартин, Садаладж, Прамодкумар Дж. «NoSQL: новая методология разработки нереляционных баз данных» Вильямс, 2013 год, 192 стр. (14,6 мб. pdf)

В книге рассказано о том , как работает база данных NoSQL, этим термином обозначаются нереляционные базы данных такие как: Cassandra, Mongo, Neo4J и Riak. С помощью технологии NoSQL могут создаваться высококачественные, легкомасштабируемые и легкопрограммируемые проекты. Причины по которым предпочтительно используется база данных NoSQL, это эффективность в работе веб-приложения и хранение больших объемов данных кластерным (физически на разных серверах) способом.

Книга разделена на две части. Первая знакомит с концепцией и возможностями баз данных NoSQL, а вторая часть показывает как это реализуется на практике. Книгу можно считать базовым ознакомительным руководством по работе с NoSQL. Но тем не менее, вы сможете получить достаточно информации по технологии нереляционных баз данных и использовать их в разработке собственных веб-проектов.

Оглавление книги

Чем интересны базы данных NoSQL 14
Часть I. Основы 21
Глава 1. Почему NoSQL?
1.1. Значение реляционных баз данных 23
1.1.1. Персистентные данные 23
1.1.2. Параллельность 24
1.1.3. Интеграция 24
1.1.4. (Почти) стандартная модель 25
1.2. Потеря соответствия 25
1.3. Интеграционные базы данных и базы данных приложения 26
1.4. Атака кластеров 28
1.5. Появление баз данных NoSQL 29
1.6. Резюме 33

Глава 2. Агрегированные модели данных
2.1. Агрегаты 36
2.1.1. Пример отношений и агрегатов 36
2.1.2. Последствия ориентации на агрегаты 40
2.2. Модель данных «ключ-значение» и документная модель 42
2.3. Хранилища типа «семейство столбцов» 43
2.4. Заключительные замечания об агрегатно-ориентированных базах данных 45
2.5. Рекомендации по дальнейшему чтению 46
2.6. Резюме 46

Глава 3. Более подробно о моделях данных
3.1. Отношения 47
3.2. Графовые базы данных 48
3.3. Несrруктурированные базы данных 50
3.4. Материализованные представления 52
3.5. Моделирование доступа к данным 54
3.6. Резюме 58

Глава 4. Модели распределения
4.1. Односерверная репликация 59
4.2. Фрагментация 60
4.3. Репликация «ведущий-ведомый» 62
4.4. Одноранrовая репликация 64
4.S. Сочетания фрагментации и репликации 65
4.6. Резюме 66

Глава 5. Согласованность
5.1. Согласованность обновлений 67
5.2. Согласованность чтения 69
5.3. Ослабление согласованности 73
5.3.1. Теорема САР 73
5.4. Ослабление долговечности 77
5.5. Кворумы 78
5.6. Рекомендации по дальнейшему чтению 79
5.7. Резюме 79

Глава 6. Штампы версий
6.1. Коммерческие и системные транзакции 81
6.2. Штампы версий на нескольких узлах 83
6.3. Резюме 85

Глава 7. Отображение-свертка
7.1. Основы шаблона Map-Reduce 88
7.2. Разделение и объединение 89
7.3. Составные вычисления в схеме «отображение-свертка» 91
7.3.1. Пример двухэтапной схемы «отображение-свертка» 93
7.3.2. Постепенное отображение-свертка 96
7.4. Рекомендации для дальнейшего чтения 96
7.5. Резюме 97

Часть II. Реализация 99

Глава 8. Базы данных типа «ключ-значение»
8.l. Что такое хранилище типа «ключ-значение» 101
8.2. Функциональные возможности хранилищ типа «ключ-значение» 103
8.2.1. Согласованностъ данных 103
8.2.2. Транзакции 104
8.2.3. Функциональные возможности запросов 105
8.2.4. Структура данных 106
8.2.5. Масштабирование 106
8.3. Примеры использования 107
8.3.1. Хранение информации о сессии 107
8.3.2. Профили пользователей, предпочтения 107
8.3.3. Корзины заказа 107
8.4. Когда хранилища типа «ключ-значение» использовать не следует 108
8.4.1. Отношенш между данными 108
8.4.2. Транзакции, состоящие из многих операций 108
8.4.3. Запрос по данным 108
8.4.4. Операции с множествами 108

Глава 9. Документные базы данных
9.1. Что такое документная база данных 109
9.2. Функциональные возможности 111
9.2.1. Согласованность данных 111
9.2.2. Транзакции 112
9.2.3. Доступность 113
9.2.4. Функциональные возможности запросов 114
9.2.5. Масштабирование 116
9.3. Примеры использования 117
9.3.1. Регистрация событий 117
9.3.2. Системы управления информационным наполнением блог-платформы 118
9.3.3. Веб-аналитика и аналитика в реальном времени 118
9.3.4. Приложения для электронной коммерции 118
9.4. Когда документные хранилища использовать не следует 118
9.4.1. Сложные транзакции, охватывающие разные операции 118
9.4.2. Запросы к изменяющейся агрегатной структуре 119

Глава 10. Семейство столбцов
10.1. Что такое семейство столбцов 121
10.2. Функциональные возможности 122
10.2.1. Согласованность данных 124
10.2.2. Транзакции 126
10.2.3. Доступность 126
10.2.4. Функциональные возможности запросов 127
10.2.5. Масштабирование 129
10.3. Примеры использования 129
10.3.1. Регистрация событий 129
10.3.2. Системы управления информационным наполнением, блог-платформы 130
10.3.3. Счетчики 130
10.3.4. Срок действия 130
10.4. Когда семейства столбцов использовать не следует 131

Глава 11. Графовые базы данных
11.1. Что такое графовая база данных 133
11.2. Функциональные возможности 135
11.2.1. Согласованность данных 136
11.2.2. Транзакции 136
11.2.3. Доступность 137
11.2.4. Функциональные возможности запросов 137
11.2.5. Масштабирование 141
11.3. Примеры использования 142
11.3.1. Связанные данные 142
11.3.2. Маршрутизация, диспетчеризация и геолокационные сервисы 143
11.3.3. Справочные базы данных 143
11.4. Когда не следует использовать графовые базы данных 143

Глава 12. Миграции схем
12.1. Изменения схемы 145
12.2. Изменение схем в базах данных RDBMS 145
12.2.1. Миграция в проектах, начинающихся с нуля 146
12.2.2. Миграция в унаследованных проектах 148
12.3. Изменение схем в хранилищах данных NoSQL 150
12.3.1. Постепенная миграция 151
12.3.2. Миграция в графовых базах данных 153
12.3.3. Изменение агрегатной структуры 153
12.4. Рекомендации для дальнейшего чтения 154
12.5. Резюме 154

Глава 13. Многовариантная персистентность
13.1. Разброс требований к хранилищам данных 155
13.2. Использование многовариантного хранилища данных 156
13.3. Использование сервисов при работе с хранилищем данных 158
13.4. Расширение функциональных возможностей 159
13.5. Выбор правильной технологии 160
13.6. Многовариантная персистентность в масштабе предприятия 160
13.7. Сложность развертывания 161
13.8. Резюме 162

Глава 14. За рамками технологии NoSQL
14.1. Файловые системы 163
14.2. Порождение событий 164
14.3. Образ памяти 167
14.4. Контроль версий 167
14.5. Базы данных ХМL 168
14.6. Объектные базы данных 168
14.7. Резюме 169

Глава 15. Выбор базы данных
15.1. Производительность работы программиста 171
15.2. Эффективность доступа к данным 173
15.3. Продолжение традиций 174
15.4. Подстраховка 175
15.5. Резюме 175
15.6. Заключительные мысли 176
Библиография 177
Предметный указатель 181

Скачать техническую литературу бесплатно14,6 мб. pdf

Похожая литература