- •Интернет-программирование
- •ИП. БД. Пути решения проблемы BD. Модель «хранителя»
- •ИП. Базы данных. Реляционная модель
- •ИП. Базы данных. Узкие места реляционной модели
- •ИП. Базы данных. Рост объема данных в мире
- •ИП. Базы данных. Пути решения проблемы Больших Данных
- •ИП. БД. Пути решения проблемы BD. Скорость вычислений
- •ИП. БД. Пути решения проблемы BD. Скорость вычислений
- •ИП. БД. Пути решения проблемы BD. Распределение вычислений МИЭТ, 2017
- •ИП. БД. Пути решения проблемы BD. Архитектура вычислителяМИЭТ, 2017
- •ИП. БД. Временная диаграмма развития моделей хранения данных МИЭТ, 2017
- •ИП. Базы данных. Модели и представители
- •ИП. БД. SQL и NoSQL
- •ИП. БД. Модель Ключ-Значение
- •ИП. БД. Модель Документо-ориентированная
- •ИП. БД. Модель семейство столбцов (колоночная)
- •ИП. БД. Модель семейство столбцов (колоночная)
- •ИП. БД. Модель Ключ-Значение
- •ИП. БД. SQL или NoSQL
- •ИП. БД. Распространенность моделей
- •ИП. БД. Распространенность моделей
- •ИП. БД. Подключение БД в приложении
- •ИП. БД. Работа с БД на примере MySQL в PHP
- •ИП. БД. Работа с БД на примере MySQL в Java
- •ИП. БД. Работа с БД на примере MySQL в Java
- •ИП. БД. Работа с БД в Java. JDBC
- •ИП. БД. Работа с БД в Java. Типы драйверов JDBC
- •ИП. БД. Работа с БД в Java. Подключение
- •ИП. БД. Работа с БД в Java. URL соединения
- •ИП. БД. Работа с БД в Java. Обработка ошибок
- •ИП. БД. Работа с БД в Java. Категоризация исключений
- •ИП. БД. Работа с БД в Java. ResultSet
- •ИП. БД. Работа с БД в Java. ResultSet. Получение данных
- •ИП. БД. Работа с БД в Java. ResultSet. Автокоммит
- •ИП. БД. Работа с БД в Java. Пакетные операции
- •ИП. БД. Работа с БД в Java. Подготовленные выражения
- •ИП. БД. Работа с БД в Java. Пакетные подготовленные выражения МИЭТ, 2017
- •ИП. БД. Работа с БД в Java. Подготовленные выражения
- •ИП. БД. Работа с БД в Java. Транзакции
- •ИП. БД. Работа с БД в Java. Точки сохранения (savepoint)
- •ИП. БД. Работа с БД в Java. Освобождение точек сохранения
- •ИП. БД. Работа с БД в Java. Параллельное использование БД
- •ИП. БД. Работа с БД в Java. Уровни изоляции транзакций
ИП. БД. Временная диаграмма развития моделей хранения данных МИЭТ, 2017
BigData
Прекращение роста частоты
Реляционные SQL
Не реляционные SQL
2005 2008
1970 |
2000 |
2010 |
ИП. Базы данных. Модели и представители |
МИЭТ, 2017 |
ИП. БД. SQL и NoSQL |
МИЭТ, 2017 |
Базы данных
Реляционные |
Не реляционные |
SQL |
NoSQL |
Oracle, MySQL,
SQLLite, MSSQL,
Posgress
Ключ |
Семейство |
Документо |
Графовая |
|
-значение |
колонок |
-ориентированная |
||
|
Riak |
MongoDB |
Cassandra |
Neo4j |
ИП. БД. Модель Ключ-Значение |
МИЭТ, 2017 |
ключ
значение
Особенности СУБД модели ключ-значение
СУБД не знает о структуре значения. Поэтому, допустимые операции со значением:
поиск слова внутри значения
СУБД может работать со сложными ключами. Допустимые операции с ключами:
выборку по ключу (точное совпадение)
фильтрация по значению ключа (например, выбрать все ключи, начинающиеся с f)
Сложные ключи позволяют осуществлять сегментацию данных по узлам. Например, первые n символов ключа можно определить как номер узла хранения распределенной БД.
Преимущества: |
Недостатки: |
|
|
Наивысшая скорость |
Не подходит, когда нужно получать |
|
Наивысшая масштабируемость |
выборки по содержимому/структуре |
|
Отсутствие структуры значений |
значения |
Применение: хранение данных сессий, корзин, профилей
Представители: Riak, Redis
ИП. БД. Модель Документо-ориентированная |
МИЭТ, 2017 |
Значение,
ключ 

это документ имеющий
структуру
Особенности СУБД документо-ориентированной модели
Значение это документ имеющий структуру (XML, JSON), при этом ограничений на единообразность структур не накладывается
СУБД может работать со значением. Поэтому, кроме операций допустимых с моделью ключ-значение допустимые дополнительные операции со значением:
выборки по значению и иерархии узлов документа
сериализия/десиарилизия (например в/из JSON)
Преимущества: |
Недостатки: |
СУБД может работать с ключами также как и в модели ключ-значение |
|
Хорошая скорость |
Плохо подходит, когда требуются операции |
Хорошая масштабируемость |
подразумевающие совместное зависимое |
Возможность работать со |
использование документов, а также при необходимости |
структурой значений |
централизованных изменений структур документов |
Применение: быстрая запись того, что возможно исследовать потом в «более спокойной» обстановке: регистрация событий (в том числе с изменяющейся
структурой) для последующего анализа, а также анализа в реальном времени (в этом случае идет обновление соответствующих документов)
Представители: MongoDB, CouchDB
ИП. БД. Модель семейство столбцов (колоночная)
Ключ
строки
Ключ
строки
Ключ
строки
Есть ограничения на структуру документов
Семейство столбцов
Ключ столбца 1 |
Ключ столбца 2 |
|
Значение |
Значение |
Не заполнено |
Метка времени |
Метка времени |
|
Ключ столбца 1 |
|
Ключ столбца 3 |
Значение |
Не заполнено |
Значение |
Метка времени |
|
Метка времени |
Не заполнено |
Не заполнено |
Не заполнено |
МИЭТ, 2017
Не заполнено
Не заполнено
Ключ столбца 4 
Значение = массив столбцов 

Ключ столбца 4.1 |
Ключ столбца 4.2 |
Значение |
Значение |
Метка времени |
Метка времени |
Метка времени
ИП. БД. Модель семейство столбцов (колоночная) |
МИЭТ, 2017 |
Особенности СУБД документо-ориентированной модели
Значение это это семейство столбцов, каждый из которых имеет ключ и значение
Значение столбца может быть простым или ассоциативным массивом столбцов
СУБД может работать со значением. Поэтому, кроме операций допустимых с
моделью ключ-значение допустимые дополнительные операции со значением:выборки по ключам столбцов
СУБД может работать с ключами также как и в модели ключ-значение
Преимущества:
Приемлемая скорость
Хорошая масштабируемость
Работа со значениями
Ограниченная модификация
структуры (add colum)
Недостатки:
Ограничения на структуру значений
Избыточное извлечение данных
Трудности изменения шаблонов запросов (при изменении семейства
колонок)
Применение: хранения взаимосвязанных данных (документов) т.е. имеющих полные или частичные общие данные. Например: события, записи и комментарии блогов.
Представители: Cassandra, HBase
ИП. БД. Модель Ключ-Значение
узел |
|
(ключ) |
узел |
|
|
|
(ключ) |
ключ
Особенности СУБД графовой модели
Узлы и ребра могут иметь различные типы.
Ребра могут иметь несколько свойств (вектор)
Ребра не вычисляются, а хранятся готовыми
МИЭТ, 2017
узел
(ключ)
ключ
ключ
Преимущества:
Наибольшая скорость обхода графа
Недостатки:
Не подходит, когда нужно получать выборки по содержимому/структуре значения
ние: хранение связей в социальных сетях, маршрутизация, диспетчеризация, ия, справочники (типа: вашим друзьям также нравится...)
Представители: Neo4j, OrientDB
ИП. БД. SQL или NoSQL |
МИЭТ, 2017 |
Как видно из предыдущего рассмотрения NoSQL решений, все они в той или иной степени предназначены для решения вопросов быстрой работы с большими объемами данных, когда обеспечением требований ACID и формированием представлений можно разумно пренебречь.
Работа NoSQL решений строится на основе работы с ключами с различными ограниченными «вариациями на тему» возможностей работы с содержимым значений ключей (ключ-значение и документные) и ограниченными индивидуальными для БД SQL-подобными языками запросов (колоночные, например, Cassandra).
При этом NoSQL решения (из-за ориентацию на работу с ключами и распределенность БД) не поддерживают транзакционность в том смысле, в котором это принято для решений БД по реляционной модели: назначать множество операций, а затем решать закреплять их результат в БД или нет. Есть определение успешности или не успешности записи в БД только для одной операции (которое часто зависит и от количества узлов).
Очевидно, что скорость NoSQL-решений достигается за счет упрощения структуры БД и ориентацию на быструю выборку готовых данных по ключам.
Например данные из БД Riak можно извлечь напрямую по URL: http://mysite.ru/session/keys/trye643723
ИП. БД. Распространенность моделей |
МИЭТ, 2017 |
60
50
40
30
20
10
0
35
30
25
20
15
10
5
0
