🦒
System Analyst | Knowledge base
  • Введение
  • Soft skills
    • 📍Продукт
      • Роли в IT продукте
        • Системный аналитик (SA)
        • Бизнес-аналитик (BA)
        • SA vs BA
        • 📎Другие аналитики
      • Жизненный цикл продукта
      • Методологии разработки
        • Waterfall
        • Agile
          • Scrum
          • Kanban
      • 📎Целеполагание
        • SMART
        • Матрица Эйзенхауэра
        • RICE
        • 🔒HADI
    • 📍Требования
      • Классификация требований
        • Уровень: Бизнес
        • Уровень: Пользователь
          • Use case
          • User story
          • 📎Job story
        • Уровень: Продукт
          • Функциональные требования
          • Нефункциональные требования
      • Качества требований
      • Методы сбора требований
      • Техническое задание (ТЗ)
  • Hard skills
    • 📍Базы данных
      • Реляционные
        • Транзакции
          • 🔒CAP
        • Нормальные формы
        • SQL
          • DML
          • DDL/DCL/TCL
          • 📎Представления VIEW
        • Констрейты
        • 📎Типы данных
        • 🔒Middle+
          • Особенности работы с конкертными реляционными БД
      • Нереляционные
        • Примеры использования
        • 🔒Middle+
          • Колоночные
            • Сlickhouse
          • Ключ-значение
          • Матричные
          • Документо-ориентированные
          • Графовые
            • JanusGraph | Neo4j etc
      • Масштабирование БД
      • Оптимизация БД
        • 📎Типы индексов
        • 📎Уникальные индексы
        • 🔒Анатомия плана запроса
      • 📎Какую СУБД выбрать
      • 📎Хранение и анализ данных
        • ETL
        • DWH
          • DWH vs Data Lake vs Data Mart
        • OLAP
          • OLAP vs OLTP
        • BI-аналитика
    • 📍Интеграции
      • Форматы данных
        • JSON + JSON Schema
          • 🔒AVRO
        • JSON vs XML
      • Виды интеграций
        • Синхронное взаимодействие
          • REST
            • RESTful принципы
              • Отсутствие состояния (Авторизация)
                • 🔒OAuth / OpenID Connect
              • Кеширование
              • Единообразие интерфейса (CRUD)
                • Запрос/ответ
              • 🔒Cтепень зрелости REST API
            • Проектирование API
            • 📎Асинхронный REST
          • SOAP
            • XSD
            • WSDL
          • REST vs SOAP
        • Асинхронное взаимодействие
          • Kafka
          • RabbitMQ
          • Kafka vs RabbitMQ
          • ESB
          • gRPC
            • Правила proto-контракта
            • Protobuf vs JSON
            • Сравнительная таблица
          • Другое
          • 🔒WebSocket API
        • Sync vs Async
      • 🔒Middle+
        • Stateful vs Stateless
        • Apache Flink
        • оркестрация и хореография
    • 📍Проектирование
      • Архитектура
        • Монолит
        • Микросервисы
          • Паттерны реализации
        • Монолит vs Микросервисы
        • 🔒Middle+
          • Бессерверная
          • Сервис-ориентированная (SOA)
          • Другое
      • Нотации и диаграммы
        • UML
          • Диаграмма классов
          • Диаграмма последовательности
            • Фреймы
          • Диаграмма прецедентов (use case)
          • 🔒Middle+
            • Диаграмма деятельности/активности
            • Диаграмма состояний
        • BPMN
          • Основные элементы
        • BPMN vs UML
        • ERD
        • 📎IDEF0
      • Прототипирование
        • Figma vs Axure
      • Мониторинг
        • Логирование
        • Метрики
        • Алерты
        • 🔒Инструменты
          • Grafana
          • Prometheus
          • ELK
            • Elasticsearch
            • Logstash
            • Kibana
      • 🔐Системный дизайн
    • 📎DevOps for SA
      • Основы сетей
        • OSI
        • TCP/IP
        • HTTP
        • DNS
      • Git (VCS)
        • GitHub vs GitLab
      • Развертывание приложений
        • CI/CD
        • 🔒Middle+
          • Виртуализация/контеризация
            • ✍️Docker
            • Kubernetes
              • ✍️Openshift
      • Cloud Native
        • Сервисы облачных вычислений
        • Cloud-native app vs Traditional app
      • Командная строка
    • 📎QA for SA
      • Postman | Insomnia
      • Swagger
      • Верификация vs Валидация
      • Идентификация/Аутентификация/Авторизация
    • 📎PM for SA
      • Метрики
        • Метрики привлечения
        • Метрики вовлечённости
          • ARPU
          • LTV
          • NPV
          • ROI
          • NPS
      • Прокси метрики
      • Дерево метрик
      • Фреймворки
      • Юнит-экономика
      • Модель Кано
  • Другое
    • Литература
    • Советы по составлению резюме
    • Общие вопросы на собеседовании
    • Вопросы которые надо задать интервьюеру
  • Контакты
Powered by GitBook
On this page
  • Особенности NoSQL
  • Виды NoSQL-баз данных
  • Преимущества NoSQL
  • Недостатки NoSQL
  • Примеры нереляционных СУБД

Was this helpful?

  1. Hard skills
  2. Базы данных

Нереляционные

Нереляционная база данных — это база данных, в которой в отличие от большинства традиционных систем баз данных не используется табличная схема строк и столбцов. В этих базах данных применяется модель хранения, оптимизированная под конкретные требования типа хранимых данных. Например, данные могут храниться как простые пары "ключ — значение", документы JSON или граф, состоящий из ребер и вершин.

Особенности NoSQL

Термин объединяет множество СУБД, имеющих различную архитектуру и характеристики. Однако, можно выделить несколько присущих им всем особенностей:

  • Неструктурированность. В NoSQL-базах структура данных не регламентирована вообще или лишь в малой степени. Если нужно внести изменения в поля отдельного документа, для этого не потребуется декларативно менять всю структуру таблицы. При необходимости поменять модель данных потребуется просто указать изменения в коде приложения.

  • Использование альтернатив SQL. В нереляционных базах данных не применяется классический SQL, а используются различные SQL-диалекты.

  • Агрегация данных. В то время как реляционные БД сохраняют данные в виде таблиц, в нереляционных они представляют собой целостные объекты.

  • Распределенность. В нереляционных базах данных реализована горизонтальная масштабируемость. Она достигается за счет соединения быстрым подключением нескольких независимых друг от друга серверов, каждый из которых обрабатывает только часть данных, а не весь массив. Соответственно, нет необходимости наращивать мощность каждого сервера (тем более что есть физический предел) — достаточно просто добавить в систему новый.

Виды NoSQL-баз данных

  • Ключ-значение. В таких БД для доступа к значению используется ключ. Они применяются в качестве хранилищ изображений, специализированных файловых систем, кэшей, информационных платформ для онлайн-игр и т.д. — везде, где главными требованиями являются высокая масштабируемость и минимальная задержка обработки запроса.

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

  • Документо-ориентированные. В базах данных этого типа данные записываются в специальный документ в формате JSON или близком к нему. Таким БД свойственны одновременно иерархичность и гибкость. Чаще всего они применяются в системах управления контентом, каталогах, специализированных поисковых системах (например, в электронных архивах).

  • Графовые. Такие БД сохраняют информацию в виде сложно связанных друг с другом графов. Связанность данных упрощает их хранение, навигацию и поиск. Типичными примерами использования графовых БД являются социальные сети, системы выявления мошенничества.

Преимущества NoSQL

  • Горизонтальная масштабируемость — для увеличения производительности достаточно добавить новый сервер в систему, а не наращивать мощности уже имеющихся.

  • Высокая устойчивость — так как NoSQL-БД размещаются на независимых серверах, выход одного из них из строя не обрушит всю базу данных и, следовательно, не приведет к полному отказу приложения.

  • Производительность — с одной стороны, каждый сервер обрабатывает только свои запросы, не растрачивая свои мощности на все; с другой — информационные модели таких СУБД адаптируются под специфику каждого приложения.

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

Недостатки NoSQL

  • Ограниченность языка — встроенные языковые возможности нереляционных баз данных, из-за чего в работе с ними часто приходится использовать сторонние инструменты для трансляции стандартных SQL-команд.

  • Недостаточная надежность транзакций — из-за того, что NoSQL-БД заточены под высокую производительность и масштабируемость, в них страдает согласованность данных (ACID), критически важная для таких сфер, как денежные переводы.

Примеры нереляционных СУБД

  1. MongoDB. Данная система хранения информации основана на формате документа. Она применяет документ вида JSON для того, чтобы сохранять информацию. С ее помощью можно легко и быстро масштабировать информацию и поддержать гибкую модель информации.

  2. Cassandra. Данная система хранения информации основана на колонках. Ее используют для обработки огромного количества информации. С ее помощью можно получить высокую доступность, она отлично масштабируется, к тому же поддерживает гибкую модель информации.

  3. Redis. Данная система хранения информации основана на ключ-значениях. Ее используют для кэша информации и убыстрения получения доступа к ним. Ее применяют и для хранения данных иного типа вроде наборов и списков.

  4. Neo4j. Данная система хранения информации основана на графах. Ее используют для оценки связей между информацией. С ее помощью можно получить высокие показатели эффективности и создать гибкую модель информации, из-за чего она становится прекрасной для обработки данных, которые связаны между собой.

  5. Amazon DynamoDB. Фактически это услуга по регуляции баз данных от компании Amazon. Она применяет модель ключ-значение для того, чтобы хранить информацию. С ее помощью можно получить высокий уровень доступа и легко масштабировать данные, к тому же гарантируется низкая задержка в случае доступа к информации.

Источники:

Подробнее:

PreviousОсобенности работы с конкертными реляционными БДNextПримеры использования

Last updated 1 year ago

Was this helpful?

📍
https://blog.skillfactory.ru/glossary/nosql/
https://wiki.fenix.help/informatika/nerelyacionnye-bazy-dannyh
https://learn.microsoft.com/ru-ru/azure/architecture/data-guide/big-data/non-relational-data