View on GitHub

java-interview

Вопросы для собеседования на разработчика Java

Вопросы для собеседования

Хранение данных

Что такое «база данных»?

База данных — организованный и адаптированный для обработки вычислительной системой набор информации.

к оглавлению

Что такое «система управления базами данных»?

Система управления базами данных (СУБД) - набор средств общего или специального назначения, обеспечивающий создание, доступ к материалам и управление базой данных.

Основные функции СУБД:

к оглавлению

Сравните реляционные и нереляционные СУБД

  Реляционные (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

и другие.

к оглавлению

Вопросы для собеседования