Мужские правила. Отношения, секс, психология Non-Bullshit Innovation Этой кнопке нужен текст
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• NoSQL: методология разработки нереляционных баз данных, Мартин Фаулер, Прамодкумар Дж. Садаладж


NoSQL: методология разработки нереляционных баз данных
NoSQL: методология разработки нереляционных баз данных
рекомендуем
Мартин Фаулер, Прамодкумар Дж. Садаладж
Год выпуска: 2019
Изд-во: Диалектика-Вильямс
ISBN: 978-5-907144-91-0
Переплёт: мягкий
192 страниц
Цена: 880.00 грн.
Есть в наличии
в корзину

Instant Purshare На 1 книгу
Отправка: "Новой Почтой" по понедельникам, средам и пятницам*
                Доставка курьером "Новой Почты" по Киеву - на день позже*

Необходимость обрабатывать все более крупные объемы данных является одним из факторов, влияющих на внедрение нового класса нереляционных баз данных NoSQL. Сторонники баз NoSQL утверждают, что их можно использовать для создания более производительных, легче масштабируемых и проще программируемых систем.

В книге "NoSQL: методология разработки нереляционных баз данных" описано краткое, но полное введение в эту быстро развивающуюся технологию. Авторы объясняют, как работают базы данных NoSQL и демонстрируют, в каких ситуациях они могут стать более успешной альтернативой традиционным системам RDMBS. Авторы излагают материал в быстром темпе, знакомя читателей с критериями, которые необходимо применять, чтобы принять правильное решение, стоит ли использовать базы NoSQL, и какие технологии следует при этом выбирать.

Первая часть книги посвящена основным концепциям, включая неструктурированные модели данных, агрегаты, новые модели распределения, теорему САР и отображение-свертку. Во второй части авторы исследуют архитектурные и проектные вопросы, связанные с реализацией баз данных NoSQL. Они также описывают реалистичные сценарии использования, демонстрирующие работу баз данных NoSQL и возможности баз Riak, MongoDB, Cassandra и Neo4j.

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

Книга "NoSQL: методология разработки нереляционных баз данных" завершается описанием новой эры многовариантной персистентности, открытой благодаря технологии NoSQL. В этом мире сосуществуют разнообразные базы данных, и архитектор может выбирать технологию, наилучшим образом подходящую для обеспечения любого вида доступа к данным.

Изложенные темы:

- Оценка применимости корпоративных приложений NoSQL
- Архитектурные компромиссы, связанные с развертыванием баз данных NoSQL
- Использование технологии NoSQL для упрощения разработки и предотвращения проблем, связанных с отображением данных между структурами в памяти и системами RDBMS
- Сравнение современных возможностей баз данных NoSQL
- Исследование языков запросов: CQL и Cypher
- Эффективность управления, надежность, доступность и способность восстанавливаться
- Использование технологии NoSQL для гибкой разработки программного обеспечения
- Применение технологии NoSQL для управления поиском и извлечением метаданных, анализа текстов, организации социальных сетей, проведения бизнес-анализа и выполнения финансовых операций
- Кластеризация баз данных NoSQL для более дешевого решения проблем, связанных с обработкой крупных объемов данных
- Применение теоремы САР для анализа согласованности, доступности и времени ожидания
- Анализ возможностей, которые метод отображения-свертки открывает для параллельных вычислений на кластере
- Почему термин NoSQL не имеет четко определенного содержания

Об авторах книги "NoSQL: методология разработки нереляционных баз данных":
Прамодкумар Дж. Садаладж
, главный консультант компании ThoughtWorks, занимается редким делом - наведением мостов между специалистами в области баз данных и разработчиками приложений. Он регулярно консультирует клиентов, испытывающих особенно большие сложности при обработке данных и нуждающихся в новых технологиях и методах. Садаладж разработал новаторский метод, позволяющий разрабатывать реляционные базы данных эволюционным путем с помощью контролируемой миграции схем, сопровождающейся контролем версий. Вместе со Скоттом Эмблером (Scott Ambler) он написал книгу Рефакторинг баз данных (Addison-Wesley, 2006).
Мартин Фаулер, главный научный сотрудник компании ThoughtWorks, занимается исследованием оптимальных способов разработки программного обеспечения и повышения производительности разработчиков. Он - автор книг Шаблоны корпоративных приложений; UML. Основы, Третье издание; Предметно-ориентированные языки программирования (в соавторстве с Ребеккой Парсонс); Рефакторинг. Улучшение существующего кода (в соавторстве с Кентом Беком, Джоном Брантом и Уильямом Апдайком). Все они изданы компанией Addison-Wesley и переведены на русский язык.




Содержание книги "NoSQL: методология разработки нереляционных баз данных"






Предисловие
Чем интересны базы данных NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Краткое содержание книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Для кого предназначена книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Что такое базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Часть 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. Неструктурированные базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4. Материализованные представления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5. Моделирование доступа к данным. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Глава 4. Модели распределения
4.1. Односерверная репликация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2. Фрагментация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3. Репликация "ведущий-ведомый". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4. Одноранговая репликация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.5. Сочетания фрагментации и репликации . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Глава 5. Согласованность
5.1. Согласованность обновлений. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.2. Согласованность чтения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3. Ослабление согласованности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.1. Теорема CAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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.1. Что такое хранилище типа "ключ-значение" . . . . . . . . . . . . . . . . . . . . . 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. Базы данных XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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


С этой книгой чаще всего покупают:
Большие данные: принципы и практика построения масштабируемых систем обработки данных в реальном времени

Большие данные: принципы и практика построения масштабируемых систем обработки данных в реальном времени

рекомендуем
Натан Марц, Джеймс Уоррен
Год выпуска: 2018
Изд-во: Диалектика-Вильямс
в корзину
На 1 книгу
 
Основы Data Science и Big Data. Python и наука о данных

Основы Data Science и Big Data. Python и наука о данных

Дэви Силен, Арно Мейсман, Мохамед Али
Год выпуска: 2016
Изд-во: Питер
в корзину
На 1 книгу
Цена: 650.00 грн. 
 
Цена: 709.00 грн. 

Хотите оставить отзыв? У Вас возникли вопросы о книге "NoSQL: методология разработки нереляционных баз данных, Мартин Фаулер, Прамодкумар Дж. Садаладж" ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

Наші партнери:

Купить лодку РИБ  |  купить мотор Тохатсу  |  купить снаряжение JOBE Джоби  |  купить гидрокостюм  |  стеклопластик B2B  |  купить гребную лодку  |  ремонт катера  |  купить катер РИБ  |  купить лодку из стеклопластика  |  купить спасательный жилет  |  купить мотор Tohatsu  |  купить JOBE Джоби  |  купить лодочный мотор  | 

 * Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 10 до 18 по будним дням: Водафон (050) 809-56-66, Киевстар (067) 408-26-36 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov