Хранение данных
- Что такое «база данных»?
- Что такое «система управления базами данных»?
- Сравните реляционные и нереляционные СУБД
- Что такое шардинг?
- Что такое In-memory Data Grid?
Что такое «база данных»?
База данных — организованный и адаптированный для обработки вычислительной системой набор информации.
Что такое «система управления базами данных»?
Система управления базами данных (СУБД) - набор средств общего или специального назначения, обеспечивающий создание, доступ к материалам и управление базой данных.
Основные функции СУБД:
- управление данными
- журнализация изменений данных
- резервное копирование и восстановление данных;
- поддержка языка определения данных и манипулирования ими.
Сравните реляционные и нереляционные СУБД
Реляционные (RDBMS) | Нереляционные (NoSQL) | |
---|---|---|
Язык | SQL + диалекты | Разные, зависит от типа |
Структура | В виде таблиц | Хэш-таблицы, документы, графы, … |
Масштабирование | Вертикальное (чаще) | Горизонтальное (чаще) |
CAP-теорема | AP | CP или AC |
Традиционные СУБД ориентируются на требования ACID к транзакционной системе, тогда как в NoSQL (кроме графовых) вместо ACID может рассматриваться набор свойств BASE.
Что такое шардинг?
Шардинг (англ. sharding, иногда шардирование) — это другая техника масштабирования работы с данными. Суть его в разделении (партиционирование) базы данных на отдельные части так, чтобы каждую из них можно было вынести на отдельный сервер. Этот процесс зависит от структуры Вашей базы данных и выполняется прямо в приложении в отличие от репликации.
Вертикальный шардинг — это выделение таблицы или группы таблиц на отдельный сервер.
Горизонтальный шардинг — это разделение одной таблицы на разные сервера. Это необходимо использовать для огромных таблиц, которые не умещаются на одном сервере.
Что такое In-memory Data Grid?
Распределённое хранение данных в памяти - (англ. In-Memory Data Grid, IMDG) - это распределённое хранилище объектов, схожее по интерфейсу с обычной многопоточной хэш-таблицей. Вы храните объекты по ключам. Но, в отличие от традиционных систем, в которых ключи и значения ограничены типами данных «массив байт» и «строка», в IMDG Вы можете использовать любой объект из Вашей бизнес-модели в качестве ключа или значения. Это значительно повышает гибкость, позволяя Вам хранить в Data Grid в точности тот объект без дополнительной сериализации/де-сериализации, которую требуют альтернативные технологии. Это также упрощает использование Вашего Data Grid-а, поскольку в большинстве случаев Вы можете работать с распределённым хранилищем данных как с обычной хэш-таблицей.
Продукты класса IMDG
- Apache Ignite
- Hazelcast
- Infinispan
- GridGain
и другие.