7 типов современных баз данных: предназначение, достоинства и недостатки
Содержание:
- Сравнение SQL и NoSQL
- Шифрование
- Иерархическая база данных, структура иерархических данных
- Azure Data Studio
- Организация информации в РБД
- Динамика организации данных
- Популярные системы управления реляционными базами данных
- Развитие базы данных
- База данных
- Строка
- Как работать с Реляционной БД
- Реляционные базы данных SQL
- Современная СУБД состоит из:
- Сетевые
- Использование пароля к БД
- Что такое база данных MySQL?
- Главное о базах данных
- Что такое система управления базами данных (СУБД)?
- Оригинальные способы сохранности БД
- Где их используют
- Создаем базу данных
- Виды нереляционных баз данных
Сравнение SQL и NoSQL
- Если SQL-системы основаны исключительно на строгом представлении данных, то NoSQL-системы предоставляют свободу и способны работать с любым типом данных.
- SQL-системы стандартизированы, за счёт чего запросы формируются с использованием языка SQL. В то же время NoSQL-системы базируются на специфической для каждой из них технологии, что является недостатком.
- Масштабируемость. Обе СУБД способны обеспечить вертикальное масштабирование, то есть увеличить объём системных ресурсов на обработку данных. При этом NoSQL, будучи более новой разновидностью баз данных, позволяет применять простые методы горизонтального масштабирования.
- В плане надёжности SQL обладает уверенным лидерством.
- У SQL-баз есть качественная техническая поддержка за счёт их продолжительной истории, в то время как NoSQL-системы весьма молоды и и решить какую-либо проблему сложнее.
- Хранение данных и доступ к их структурам в рамках реляционных систем лучше всего происходит в SQL-системах.
Таким образом, хоть NoSQL и является стремительно развивающейся разновидностью систем управления базами данных, однако на данном этапе рекомендуется остановить свой выбор на SQL.
Надёжность SQL-систем, особенно MySQL, подтверждается временем и массовостью. Сегодня любой уважающий себя ресурс использует для хранения данных именно систему MySQL.
@ivashkevich
04.04.2018 в 19:25
32464
+178
Шифрование
Шифрование применяют для искажения всех данных полностью или отдельного блока информации в процессе хранения и передачи. Даже если злоумышленник похитит важные сведения, прочитать их без ключа он не сможет.
Иногда для защиты ставят пароль на дешифровку. В этом случае работа с информацией происходит следующим образом: перед использованием производится ее расшифровка, а после данные снова «прячутся».
Основные способы шифрования:
- симметричное и ассиметричное;
- хеширование данных;
- шифрование на уровне хранилища;
- на уровне БД;
- на уровне приложений.
Шифрование используется для защиты от несанкционированных пользователей не только информации, но и алгоритмов, функций программ. Однако использование шифрования и дешифровки усложняет работу системы управления базами данных (СУБД), так как дает дополнительную нагрузку на сервер.
Иерархическая база данных, структура иерархических данных
Когда речь идёт о хранении иерархических данных, каждый объект хранит информацию в виде определенной сущности, и у каждой сущности могут быть родительские и дочерние элементы, а у дочерних, в свою очередь, тоже могут быть дочерние элементы. Таким образом, можно сказать, что это данные, которые подлежат строгой иерархии (представьте себе своеобразное дерево).
Простой пример иерархических данных — документ в формате XML либо файловая система компьютера.
Нельзя не упомянуть и то, что базы данных этого вида оптимизированы под чтение информации. При такой структуре данные можно быстро выбирать из нужной области, отдавая запрашиваемую информацию пользователям. Например, компьютер легко работает с конкретной папкой либо файлом, которые, по сути, можно назвать объектами структуры иерархических данных. Но когда нужно перебрать всю информацию, это может занять время (если вернуться к вышеописанному примеру, то проверка антивирусом всех уголков нашего компьютера выполняется не так быстро, как хотелось бы).
На рисунке представлена классическая структура иерархической базы данных. Вверху находится родитель (его ещё называют корневым элементом), ниже размещены дочерние элементы. Элементы с данными, находящиеся на одном уровне, можно назвать братьями либо соседними элементами. БД данной категории бывают с разным количеством уровней и разной степени вложенности.
Azure Data Studio
Azure Data Studio – это бесплатный, кроссплатформенный инструмент с открытым исходным кодом для работы с базами данных Microsoft SQL Server.
Azure Data Studio основана на Visual Studio Code и ориентирована на SQL разработчиков, так как основное назначение Azure Data Studio – это написание, редактирование и выполнение SQL запросов, иными словами, это редактор SQL кода.
Azure Data Studio позволяет работать с базами данных Microsoft SQL Server, SQL Azure, а также с другими СУБД, например, с PostgreSQL
Основные особенности
Инструмент бесплатный
Кроссплатформенность (поддержка Windows, Linux, macOS)
Ориентация на SQL разработчиков
Продвинутый SQL редактор (технология IntelliSense, фрагменты SQL кода)
Расширяемость (встроенная поддержка расширений)
Работа с другими СУБД
Встроенная возможность выгрузки данных в формат Excel, XML, JSON, CSV
Группировка подключений к серверам
Визуализация данных с помощью диаграмм и графиков
Поддержка нескольких цветовых тем
Встроенный терминал (Bash, PowerShell, sqlcmd)
Записные книжки
Недостатки
Отсутствует конструктор таблиц
Нет функционала для работы со свойствами объектов
Отсутствует возможность управления безопасностью
Отсутствует возможность импорта и экспорта DACPAC
Отсутствует функционал для большинства задач администрирования
Мне нравится4Не нравится
Организация информации в РБД
Таблицы часто включают первичный ключ, который предоставляет уникальный идентификатор для каждого типа структур в базе данных. Ключ может быть назначен столбцу (который требует уникального значения для каждой строки) или может состоять из нескольких столбцов, которые вместе образуют уникальную комбинацию значений. В любом случае первичный ключ обеспечивает эффективный способ индексирования значений, может применяться для совместного их использования между таблицами. Например, значение первичного ключа из одной таблицы может быть назначено полю в строке другой таблицы. А числа, импортированные из других таблиц, называются внешними ключами.
Стандартный способ доступа к информации из реляционной базы данных — это запрос SQL, или структурированный запрос. SQL-запросы могут использоваться для создания, изменения и удаления таблиц, а также для выбора, вставки и удаления значений из уже существующих.
Динамика организации данных
Жесткая модель данных существует до того момента, пока не изменились внешние обстоятельства. В начале 90-х никто не думал, что две цифры в поле даты, отведенные под год — достаточны. Сколько паники и проблем вызвал барьер 640 Кб памяти на заре компьютеростроения.
Насколько ужасно выглядит сегодня способ доступа к данным в dBase, Clarion, FoxPro, в то время как в начале 90-х всех все устраивало. Довольны были и разработчики, и пользователи. Но тогда информации было мало, да и алгоритмы были примитивные.
Что станет, если сегодня выйдет из строя хотя бы одна сверхбольшая база данных? Oracle и другие лидеры отрасли со знанием дела и ответственно подходят к проектированию организации данных. Это даже не уровень таблиц или отдельных баз, а реальные информационные потоки и системы, отражающие глобальные трансформации по широкому спектру задач.
Сегодня иерархическая база данных — это не только вариант реляционных отношений, учитывающий неравноправие данных, подчиненность одного другому или зависимость чего-либо от события, объекта или действия потребителя. Иерархия дополняет реляционную концепцию в том смысле, что разграничивает работу на уровне базы данных, таблицы, запросов и собственно информации.
Но не только иерархию можно применить в ее однозначном и естественном значении, но и сетевая база данных может существовать на одном компьютере, не отличаясь по функциональности и возможностям от себе подобной, работающей на сотне серверов по всему миру.
Популярные системы управления реляционными базами данных
Синтаксис SQL может немного отличаться в зависимости от того, какую СУБД вы используете.
MySQL
Основными преимуществами MySQL являются то, что он прост в использовании, недорого, надежен (существует с 1995 года) и имеет большое сообщество разработчиков, которые могут помочь ответить на вопросы.
Разработка с открытым исходным кодом задерживается с тех пор, как Oracle взяла под свой контроль MySQL, и он не включает некоторые дополнительные функции, к которым могут быть привыкли разработчики.
PostgreSQL
PostgreSQL имеет многие из преимуществ MySQL.
Он прост в использовании, недорог, надежен и имеет большое сообщество разработчиков. Он также предоставляет некоторые дополнительные функции, такие как поддержка внешнего ключа, не требуя сложной настройки.
БД Oracle
Большинство ведущих банков мира используют приложения Oracle, потому что Oracle предлагает мощное сочетание технологий и комплексных, предварительно интегрированных бизнес-приложений, включая основные функции, созданные специально для банков.
SQL Server
Microsoft владеет SQL Server. Как и в Oracle DB, исходный код кода очень близок.
Крупные корпоративные приложения в основном используют SQL Server.
Microsoft предлагает бесплатную версию начального уровня под названием Express, но она может стать очень дорогой при масштабировании приложения.
SQLite
Одним из наиболее значительных преимуществ этого является то, что все данные могут храниться локально без необходимости подключения вашей базы данных к серверу.
SQLite – популярный выбор для баз данных в мобильных телефонах, КПК, MP3-плеерах, телевизионных приставках и других электронных устройствах. Курсы SQL на Codecademy используют SQLite.
Развитие базы данных
Базы данных сильно изменились с момента их создания в начале 1960-х годов. Навигационные базы данных, такие как иерархическая база данных (которая основывалась на древовидной модели и допускала только отношения один-ко-многим) и сетевая база данных (более гибкая модель, допускающая множественные отношения), были исходными системами, используемыми для хранения и манипулировать данными. Несмотря на простоту, эти ранние системы были негибкими. В 1980-х годах стали популярными реляционные базы данных, а в 1990-х последовали объектно-ориентированные базы данных. Совсем недавно базы данных NoSQL появились как ответ на рост Интернета и потребность в более высокой скорости и обработке неструктурированных данных. Сегодня облачные базы данных и автономные базы данных открывают новые возможности, когда речь идет о том, как данные собираются, хранятся, управляются и используются.
База данных
Представляет собой структуру, в которой хранится организованная информация. Большинство ресурсов содержат несколько таблиц, каждая из которых включает разные поля. Например, база данных компании может включать таблицы для продуктов, сотрудников и финансовых записей. У каждой из них есть разные поля, относящиеся к информации, которая в них хранится.
Почти все сайты электронной коммерции используют различные типы данных в базе данных для хранения инвентаря продукции и информации о клиентах. Эти сайты используют систему управления базами (или СУБД), такую как Microsoft Access, FileMaker Pro или MySQL. Контент веб-сайта, сохраненный в ней, можно легко искать, сортировать и обновлять. Такая гибкость важна для ресурсов электронной коммерции и других динамических сайтов.
Строка
Строка представляет собой горизонтальную группу значений внутри таблицы. Поскольку они содержат информацию из нескольких столбцов, в базах данных каждая строка таблицы может считаться записью. Например, окно (или запись) из таблицы Employee может содержать имя, адрес, должность, заработную плату и другую информацию сотрудника. При запросе базы данных результаты обычно возвращаются как массив строк, который похож на группу записей. Доступ к отдельным значениям можно получить, выбрав конкретный столбец (или поле) в строке.
При отображении значений в формате таблицы верхнюю строку часто называют «Заголовок таблицы». Ячейки в строке обычно содержат имя каждого поля.
Основные типы данных в базе данных на News4Auto.ru.
Наша жизнь состоит из будничных мелочей, которые так или иначе влияют на наше самочувствие, настроение и продуктивность. Не выспался — болит голова; выпил кофе, чтобы поправить ситуацию и взбодриться — стал раздражительным. Предусмотреть всё очень хочется, но никак не получается. Да ещё и вокруг все, как заведённые, дают советы: глютен в хлебе — не подходи, убьёт; шоколадка в кармане — прямой путь к выпадению зубов. Мы собираем самые популярные вопросов о здоровье, питании, заболеваниях и даем на них ответы, которые позволят чуть лучше понимать, что полезно для здоровья.
Как работать с Реляционной БД
Для работы с реляционными базами данных придуман специальный структурированный язык запросов — Structured Query Language (сокращенно SQL). Иногда его называют Simple Query Language — «простой язык запросов».
Запросы SQL нужны для работы с БД, они формируют необходимые команды.
Например, в интернет магазине покупатель добавил товар в корзину, а потом оформил заказ. Все эти действия выполняются через запросы SQL, то же самое при чтении статей на сайте и других действиях.
Запрос — это текст, команда, которая отправляется к базе данных.
Пример:
Правила синтаксиса:
- Все запросы заканчиваются на ;
- Команды запросов пишут с большой буквы.
Пример:
– СОЗДАТЬ ТАБЛИЦУ с названием author
Эта команда создаёт новую таблицу author со столбцами id, name и birth_year. У id и birth_year тип допустимых значений — integer, целое число.
Операции с данным часто именуют сокращением CRUD
- Create — создать запись
- Read — прочитать данные
- Update — обновить запись
- Delete — удалить запись
Реляционные базы данных SQL
Если вы когда-либо работали с базами данных, скорее всего, вы начали с этого типа, потому что он самый популярный и распространенный. Такие БД позволяют хранить данные в реляционных таблицах с определенными столбцами определенного типа. Реляционные таблицы хороши для нормализации и объединения.
Достоинства:
- Поддержка SQL
- ACID-транзакции (атомарность, согласованность, изоляция и долговечность)
- Поддержка индексации и разделения
Недостатки:
- Плохая поддержка неструктурированных данных / сложных типов
- Плохая оптимизация обработки событий
- Сложное / дорогое масштабирование
Примеры: Oracle DB, MySQL, PostgreSQL.
Современная СУБД состоит из:
- ядра — части программ СУБД, отвечающих за управление данными в памяти и журнализацию
- Процессора языка базы данных, обеспечивающего оптимизацию запросов на извлечение и изменение данных, и создание БД
- Подсистемы поддержки времени исполнения, интерпретирующую программы манипуляции данными, которые создают интерфейс пользователя СУБД
- Сервисных программ (внешних утилит), которые обеспечивают прочие возможности по обслуживанию информационных систем.
Так как через СУБД осуществляют все процессы, применимые к базам данных, следовательно, лучше будет выделить только её основные возможности.
Сетевые
В отличие от реляционных баз, в сетевых между таблицами и записями может быть несколько разных связей, каждая из который отвечает за что-то своё.
Если мы возьмём базу данных с сайта Кинопоиска, то она может выглядеть так:
Особенность сетевой базы данных в том, что в ней запоминаются все связи и всё содержимое для каждой связи. Базе не нужно тратить время на поиск нужных данных, потому что вся информация об этом уже есть в специальных индексных файлах. Они показывают, какая запись с какой связана, и быстро выдают результат.
Например, вы посмотрели «Начало» Кристофера Нолана и вам понравился этот фильм. Когда вы перейдёте к списку фильмов, которые он ещё снял, база на сайте сделает так:
- возьмёт имя режиссёра;
- посмотрит, какие связи и с чем у него есть;
- выдаст список фильмов;
- к этим фильмам может сразу подгрузить список актёров, которые там играют;
- и сразу же показать постеры к каждому фильму.
А главное — база сделает это очень быстро, потому что ей не нужно просматривать всю базу в поисках нужных фильмов. Она сразу видит, какие фильмы с чем связаны, и выдаёт ответ.
Использование пароля к БД
Этот способ защиты информации предусматривает авторизацию пользователей для получения доступа к базе данных. Наличие пароля позволяет избежать несанкционированного доступа.
Защита с помощью пароля может использоваться в комплексе с разграничением доступа к БД. В этом случае сначала защищают информацию на уровне пользователя (когда с одной БД работают несколько человек с разными правами), а затем настраивают парольный доступ к ней.
Парольная защита – надежный метод охраны данных. Чем сложнее комбинация символов, тем тяжелее взломать базу данных. Пароли хранятся в базе, прямого доступа к ним нет.
Требования к надежному паролю:
- комбинирование разных знаков – заглавные и строчные буквы, цифры, специальные символы;
- количество знаков – не меньше 6;
- периодическое обновление;
- хранение в секрете от пользователей без доступа.
Во многих организациях практикуют периодическую смену паролей (каждый день, неделю, месяц). Чем чаще они будут меняться, тем ниже вероятность получения злоумышленниками доступа к секретной информации.
Установлением и изменением паролей к базам данных обычно занимается администратор, в некоторых организациях эта обязанность возлагается на конечного пользователя.
Что такое база данных MySQL?
MySQL — это система управления реляционными базами данных с открытым исходным кодом, основанная на SQL. Он был разработан и оптимизирован для веб-приложений и может работать на любой платформе. По мере появления в Интернете новых и различных требований MySQL стала предпочтительной платформой для веб-разработчиков и веб-приложений. Поскольку MySQL предназначен для обработки миллионов запросов и тысяч транзакций, он является популярным выбором для предприятий электронной коммерции, которым необходимо управлять несколькими денежными переводами. Гибкость по запросу — основная особенность MySQL.
MySQL — это СУБД, стоящая за некоторыми из ведущих веб-сайтов и веб-приложений в мире, включая Airbnb, Uber, LinkedIn, Facebook, Twitter и YouTube.
Главное о базах данных
- Чаще всего базы данных напоминают таблицы: в них одному параметру соответствует один набор данных. Например, один клиент — одно имя, один телефон, один адрес.
- Такие «табличные» базы данных называются реляционными.
- Чтобы строить сложные связи, разные таблицы в реляционных базах можно связывать между собой: ставить ссылки.
- Реляционная база — не единственный способ хранения данных. Есть ситуации, когда нам нужна большая гибкость в хранении.
- Бывают сетевые базы данных: когда нужно хранить много связей между множеством объектов. Например, каталог фильмов: в одном фильме может участвовать много человек, а каждый из них может участвовать во множестве фильмов.
- Бывают иерархические базы, или «деревья». Пример — наша файловая система.
- Какую выбрать базу — зависит от задачи. Одна база не лучше другой, но они могут быть более или менее подходящими для определённых задач.
Текст и иллюстрации:Миша Полянин
Редактор:Максим Ильяхов
Корректор:Ира Михеева
Иллюстратор:Даня Берковский
Вёрстка:Маша Дронова
Доставка:Олег Вешкурцев
Что-то делает руками:Паша Федоров
Во славу:Практикума
Что такое система управления базами данных (СУБД)?
База данных обычно требует комплексного программного обеспечения базы данных, известного как система управления базами данных (СУБД). СУБД служит интерфейсом между базой данных и ее конечными пользователями или программами, позволяя пользователям извлекать, обновлять и управлять организацией и оптимизацией информации. СУБД также облегчает надзор и контроль над базами данных, позволяя выполнять различные административные операции, такие как мониторинг производительности, настройка, резервное копирование и восстановление.
Некоторые примеры популярных программ для баз данных или СУБД включают MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, Oracle Database и dBASE.
Оригинальные способы сохранности БД
Существует несколько нестандартных способов сохранности ценных сведений:
- создание пароля с использованием непечатных символов (например, пробел);
- модификация файла – манипулирование с заголовками;
- изменение версии БД – проводим аналогию с модификацией файлов;
- использование электронных ключей для доступа к сведениям;
- автоматизированные системы – DAM и DBF.
При работе с DAM-системами перенастраивать СУБД не нужно. Они работают с копией трафика и не затрагивают бизнес-процессы.
Для отслеживания пользовательских операций в БД на профессиональном уровне рекомендуем использовать Database Monitor. Узнать больше.
В случае с DBF-системой охрана данных происходит путем блокировки сторонних запросов. Работать с копией трафика данная программа не будет. Необходима полная установка компонентов. При неправильной настройке ответственность за ложные блокировки ляжет на службу информационной безопасности.
***
Любой способ обеспечения безопасности конфиденциальной информации не дает стопроцентной гарантии ее защиты. Специалист сможет взломать практически любую СУБД, но его работу необходимо усложнить. Отслеживание новинок в сфере сохранности секретных данных и их применение повысит уровень безопасности информации.
Где их используют
Базы данных сейчас используются почти везде:
- На сайтах, чтобы хранить контент для страниц. Все статьи в «Коде» на самом деле хранятся в базе данных и извлекаются оттуда по вашему запросу.
- В смартфонах, чтобы хранить все ваши данные — фото, сообщения, заметки, контакты и музыку. Так как всего этого много, а доступ к этому должен быть молниеносный, используют разные виды СУБД.
- В почтовых сервисах, чтобы можно было найти нужное письмо. Там строятся сложные индексные массивы, по которым ваш почтовый клиент ищет данные.
- Везде, где есть личные кабинеты и регистрация, — чтобы запоминать пользователей и отличать их друг от друга.
- В соцсетях и блогах почти всё хранится в базах данных.
Если у вас в работе появляется много одинаковых или похожих данных, то самый надёжный способ не потерять ничего из них — поместить их в базу данных.
Создаем базу данных
Управление базами данных как объектами
Будем считать, что наша небольшая экскурсия по запросам и командам SQL со стороны «торгового зала» завершена. Заглянем теперь в его «служебные помещения» и познакомимся с тем, как создается сама база данных. Эта часть языка SQL не столь стандартизирована и сильно отличается в различных реализациях. Поэтому в дальнейших примерах я буду придерживаться синтаксиса, принятого в самой популярной на веб-серверах системе — MySQL.
MySQL — продукт шведской компании MySQL AB. Ее основатели — Дэвид Аксмарк, Аллан Ларсон и Майкл Видениус (последний больше известен по прозвищу — Монти). По одной из версий, первая часть названия продукта (My) — не что иное, как англизированная запись имени дочери М. Видениуса. Однако точно за происхождение названия сегодня не могут поручиться даже отцы-создатели. Существует версия, по которой «my» — это префикс, с которого начинались названия рабочих каталогов на их компьютерах.
Из всех команд чаще всего нам будут нужны три: CREATE (создать), ALTER (изменить) и DROP (уничтожить).
Чтобы создать новую базу данных с названием, ну скажем, OUR_SHOP, следует выполнить команду:
Еще лучше сразу при ее создании установить нужную кодировку (ведь по умолчанию в MySQL используется latin1). В итоге команда будет выглядеть так.
Если вы забыли сделать это сразу, не беда. Для того и существуют команды по изменению:
Когда, наигравшись вдоволь с пробной базой данных, вы захотите ее уничтожить, воспользуйтесь командой:
Управление таблицами
Чтобы создать таблицу GOODS, на которой мы отрабатывали манипуляции с данными, потребуется составить команду примерно такого вида:
Разберем эту команду подробнее. Тип INT устанавливается для столбцов с целочисленными данными, тип VARCHAR(100) обеспечивает хранение строк с длиной не более 100 символов, DECIMAL(10,2) соответствует действительным числам с не более чем десятью знаками и точностью в два знака после запятой.
Столбец ID объявлен первичным ключом (PRIMARY KEY).
Ключевое слово AUTO_INCREMENT означает, что при добавлении новых строк с неуказанным значением ID оно будет автоматически заполняться следующим значением. Это удобно, поскольку обычно нет нужды вручную указывать значения первичных ключей, а за тем, чтобы они были уникальными, пусть лучше следит база данных.
NOT NULL означает запрет на пустые значения в столбце, иными словами, гарантирует обязательность заполнения.
Команда DEFAULT задает значение по умолчанию — то, которое будет записываться в базу при добавлении новой строки, если не указано иное. В нашем случае она обеспечивает автоматическое объявление товара штучным (код = 1) в случае, если при добавлении новых строк не будет указан другой код.
Признак UNIQUE обеспечивает уникальность значений в колонке (в нашем случае — уникальность названий товаров).
Если в будущем вы захотите перенастроить объявленные командой CREATE столбцы таблицы, сделать это можно командой ALTER. Например, таблицу GOODS можно нарастить строчной колонкой REMARK (подкоманда ADD):
Поработав с ней немного и убедившись, что 50 символов для примечания явно недостаточно, увеличиваем максимальный размер строки до 250 (блок CHANGE):
Так как имя столбца мы не изменяли (новое совпадает со старым), то его просто повторяем в этой команде (как бы меняем само на себя).
И наконец, убедившись через какое-то время, что без примечания в товарном справочнике вполне можно обойтись, мы удаляем ставшую ненужной колонку (блок DROP):
Удалить таблицу целиком можно командой DROP:
Стоит ли говорить о том, что пользоваться командами с этим ключевым словом следует с особой осторожностью?
Виды нереляционных баз данных
Базы NoSQL делятся на четыре основные категории (в зависимости от решаемых с их помощью задач).
Ключ-значение
Такую базу можно представить как огромную таблицу. В каждой её ячейке хранятся данные произвольного типа, а каждому значению присвоен уникальный ключ, по которому это значение можно найти.
Такая СУБД не поддерживает связи между объектами, выполняет лишь операции поиска значений по ключу, добавления и удаления записи.
Например:
key | value |
---|---|
user1 | {Кузнецов В., отдел маркетинга} |
user2 | {name:Лена, position:секретарь} |
user3 | {ООО «Вектор»} |
user4 | {Трофимова Таня, отд.2, дизайнер} |
user5 | {Галина Николаевна, гл. бух.} |
user6 | {65,84,236} |
Базы «ключ-значение» часто используют для кэширования данных и организации очередей.
Их достоинства — быстрый поиск и простое масштабирование.
Их недостаток — нельзя производить операции со значениями. Например — сортировать их или анализировать.
Одна из самых популярных — Redis. Её используют Uber, Slack, Stack Overflow, сайты гостиниц и туристические, социальная сеть Twitter.
Документоориентированные СУБД
В таких данные хранятся в виде иерархических структур (документов) с произвольным набором полей и их значений. Документы объединяются в коллекции.
Если провести аналогию с реляционными СУБД, то коллекциям соответствуют таблицы, а документам — строки в них.
Например, фрагмент документа с информацией о фильмах:
Документоориентированные базы используют в системах управления содержимым (CMS) — для хранения каталогов и пользовательских профилей.
Одна из самых популярных — MongoDB (там можно создавать процедуры на JavaScript).
Колоночные
Эти базы отличаются от реляционных лишь способом хранения данных на накопителе.
Если реляционная база создаёт для каждой таблицы по файлу, то в колоночной отдельный файл создаётся для каждого столбца таблицы.
Например, если реляционная таблица выглядит так:
name | color | property |
---|---|---|
волк | серый | зубастый |
коза | белая | рогатая |
капуста | зелёная |
То те же записи колоночной базы будут выглядеть примерно так:
name | волк | коза | капуста |
color | серый | белая | зелёная |
property | зубастый | рогатая |
Что это даёт? Представьте, что вам нужны только названия объектов, а их свойства вас не интересуют.
При выполнении запроса в реляционной таблице просматривается каждая запись и из неё выбираются нужные данные. В колоночной базе с диска будет считана только одна колонка с названиями. Это сокращает время выполнения запроса, причём намного.
Колоночные базы применяются в различных каталогах и архивах данных, работа с которыми основана на подобных выборках.
Одна из самых популярных СУБД такого типа — Apache Cassandra.
Графовые
В некоторых предметных областях данные удобно представлять в виде графов. Для их хранения лучше всего подходят графовые базы.
Вершины (или узлы графа) — это объекты (сущности), а рёбра графа — взаимосвязи между ними.