
- •Интернет-программирование
- •ИП. Базы данных. Реляционная модель
- •ИП. Базы данных. Узкие места реляционной модели
- •ИП. Базы данных. Рост объема данных в мире
- •ИП. Базы данных. Пути решения проблемы Больших Данных
- •ИП. БД. Пути решения проблемы BD. Скорость вычислений
- •ИП. БД. Пути решения проблемы BD. Скорость вычислений
- •ИП. БД. Пути решения проблемы BD. Распределение вычислений МИЭТ, 2017
- •ИП. БД. Пути решения проблемы BD. Архитектура вычислителя
- •ИП. БД. Пути решения проблемы BD. Модель «хранителя»
- •ИП. БД. Временная диаграмма развития моделей хранения данных МИЭТ, 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 |
Лекция 15
Базы Данных
ИП. Базы данных. Реляционная модель |
МИЭТ, 2017 |
База данных (БД, DB от Data Dase )
— решение для долговременного хранения данных, реализующее специальные механизмы записи, извлечения и модификации данных, обусловленные структурой базы данных. Структура БД определяется задачей, решаемой приложением.
К 1970-м годам была получена достаточно универсальная модель описания БД,
обеспечивающая эффективную реализацию структур БД для большинства задач и приложений, которая получила название — Реляционная Модель.
Согласно этой модели данные размещались в двумерных таблицах, которые
позволяли получить путем манипуляции с ними все необходимое многообразие
представлений данных.
Представление данных это тот вид данных, который используется в приложении. При этом данные, из которых собирается конечное представление могут «лежать» в БД в десятках таблиц.
СУБД ( Система Управления Базой Данных )
— готовое приложение, обеспечивающее работу со стандартизированной БД по определенному в СУБД протоколу. Для взаимодействия приложения и СУБД, приложению, как правило, требуется драйвер СУБД
ИП. Базы данных. Узкие места реляционной модели |
МИЭТ, 2017 |
Представление данных — узкое место реляционной модели т.к. для сбор данных из десятков таблиц при чтении и такое-же обратное преобразование при записи требует
значительных ресурсов. Различие представления данных и их хранения называется —
потерей соответствия.
Это не было такой большой проблемой, пока соблюдался закон Мура для единичного процессора с точки зрения производительности, когда удвоение количества транзисторов на кристалле приводило к подобному уменьшению времени единичной операции в процессоре, а область сбора данных ограничивалась корпоративными системами на десятки тысяч пользователей.
Но развитие Интернета вызвало и мощный рост объема данных, обработка которых с учетом трансляций в представления и обратно в реляционных СУБД оказалось слишком медленным. Количество пользователей стало исчисляться миллионами и миллиардами, а благодаря простоте создания ими данных и публикации их в Интернет их объем начал расти еще быстрее, чем число пользователей.
В 2008 году появился термин Большие Данные (BigData)

ИП. Базы данных. Рост объема данных в мире |
МИЭТ, 2017 |
Рост пользователей интернет. Понятно, что со временем, когда все физические и юридические лица будут подключены, он замедлится и будет возможен за счет умножения устройств, подключенных к Интернет у этих лиц
Прогнозы роста данных в Интернет
Матт Макаи (автор книг по Python) http://www.mattmakai.com
ИП. Базы данных. Пути решения проблемы Больших Данных |
МИЭТ, 2017 |
Для того, чтобы обрабатывать много данных — можно идти многими путями:
1.Наращивать мощь одного вычислительного узла (процессора, компьютера)
2.Использовать много узлов (процессоров, компьютеров)
3.Улучшить архитектуру процессора (инструкции, стадии)
4.Оптимизировать принципы построения БД
ИП. БД. Пути решения проблемы BD. Скорость вычислений |
МИЭТ, 2017 |
Путь 1. Повышение скорости работы единичного ВУ
(ВУ - вычислительного устройства)
В 2005 году пропорциональность между плотностью и скоростью — нарушилась. Частота процессоров перестала расти пропорционально плотности транзисторов на кристалле и производительность стали наращивать путем увеличения количества ядер процессоров и быстрой кеш- памяти. В 2007 Мур заявил, что закон вскоре перестанет работать из-за достижения предельных размеров P-N перехода, сравнимых с размерами атомов.
ИП. БД. Пути решения проблемы BD. Скорость вычислений |
МИЭТ, 2017 |
Путь 1. Повышение скорости работы единичного вычислительного устройства
Размер атома кремния — 132 пн = 0,132 Нм.
Значит, минимальная толщина p-n перехода = 2 слоя атомов = 0,26 нм.
Сейчас уверенно реализован 14-нм процесс.
С 2011 года в Аризоне строится завод под 7 нм. Планировалось запустить в 2013, но так и не запущен. Планируется, что 7-нм процесс пойдет в серию в 2018 году.
К 2020 году планируется запустить 5-нм процесс. Единичный транзистор по 5- нм технологии был получен компанией NEC еще в 2003 году.
В 2016 г. Лаборатория Беркли заявила о реализации 1-нм транзистора на базе дисульфида молибдена MoS2. Для кремния это бы означало, что p-слой и n-слой p-n перехода содержат всего по 4 атома кремния. Итого весь p-n переход = 8 атомов
Если в 2020 году 5-нм процесс состоится, то по закону Мура 1-нм должен быть достигнут к 2025 году. Это поможет сделать более емкие диски, но не так сильно поможет увеличить скорость работы одного чипа.
ИП. БД. Пути решения проблемы BD. Распределение вычислений МИЭТ, 2017
Путь 2. Распределение вычислений
Реляционные СУБД по архитектуре не слишком хорошо подходят для такой работы т.к. должны соблюдать требования ACID: атомарность (atomicity), согласованность (consistency), изолированность (isolation), надёжность (durability).
Тогда как теорема САР говорит о том, что в распределенных вычислениях можно обеспечить только два из трёх свойств:
согласованность данных,
доступность (производительность)
устойчивость к разделению (горизонтальная масштабируемость)
Забегая вперед можно сказать, что NoSQL базы жертвуют
согласованностью для достижения производительности и горизонтальной масштабируемости.
ИП. БД. Пути решения проблемы BD. Архитектура вычислителя |
МИЭТ, 2017 |
Путь 3. Улучшить архитектуру процессора
На уровне основного «затыка» — конвейера вычислений это маловероятно, поэтому решения ищутся в виде кешей и прочих вспомогательных инструментов.
ИП. БД. Пути решения проблемы BD. Модель «хранителя» |
МИЭТ, 2017 |
Путь 4. Изменить модель БД
Например, не «распихивать» корзину заказа пользователя по реляционным таблицам в соответствии с третьей нормальной формой, а хранить ее единым документом.
Т.е. те действия и данные, в отношении которых можно пренебречь универсальностью (а значит и медлительностью) реляционной модели хранить и обрабатывать с помощью упрощенных моделей.