Перейти к основному содержимому

СУБД

Системы управления базами данных (СУБД)

Системы управления базами данных (СУБД) — это программные комплексы, обеспечивающие создание, хранение, управление и доступ к структурированным данным. Они различаются по архитектуре (встраиваемые, клиент-серверные, распределённые), лицензированию (open-source, коммерческие), модели данных (реляционные, документные, графовые и др.) и уровню поддержки стандартов.

Ниже приведён перечень наиболее востребованных СУБД с указанием типичных сценариев использования, методов установки и ссылок.


1. SQLite

  • Тип: Встраиваемая, файловая, реляционная.
  • Особенности: Не требует сервера, вся БД хранится в одном файле. Поддерживает ACID, SQL-92. Подходит для прототипирования, мобильных приложений, встраиваемых систем.
  • Языковая поддержка: Встроена в Python (sqlite3), поддерживается в большинстве языков.
  • Установка:
    • Linux (Debian/Ubuntu): sudo apt install sqlite3 libsqlite3-dev
    • macOS: входит в состав ОС; обновление через Homebrew: brew install sqlite3
    • Windows: доступна как DLL/CLI-утилита на официальном сайте
  • Сайт: https://www.sqlite.org

2. PostgreSQL

  • Тип: Клиент-серверная, реляционная, объектно-реляционная, open-source.
  • Особенности: Поддержка JSON, полнотекстового поиска, расширений (PostGIS, TimescaleDB), строгой типизации, MVCC. Соответствует стандарту SQL.
  • Языковая поддержка: Python (PsycoPG2, SQLAlchemy), Java (JDBC), C#, Node.js и др.
  • Установка:
  • Сайт: https://www.postgresql.org

3. MySQL

  • Тип: Клиент-серверная, реляционная, open-source (с коммерческой лицензией Oracle).
  • Особенности: Поддержка нескольких движков хранения (InnoDB, MyISAM и др.), репликации, кластеризации. Ориентирована на веб-приложения.
  • Языковая поддержка: Python (PyMySQL, mysql-connector-python), Java (MySQL Connector/J), PHP, C# (MySql.Data).
  • Установка:
  • Сайт: https://www.mysql.com

4. MariaDB

  • Тип: Клиент-серверная, реляционная, open-source (форк MySQL).
  • Особенности: Полная совместимость с MySQL, новые движки (Aria, ColumnStore), улучшенная производительность и безопасность. Используется как drop-in замена MySQL.
  • Языковая поддержка: Идентична MySQL.
  • Установка:
  • Сайт: https://mariadb.org

5. Microsoft SQL Server

  • Тип: Клиент-серверная, реляционная, коммерческая (с бесплатной Developer и Express-версиями).
  • Особенности: Интеграция с .NET, T-SQL, мощные средства аналитики (SSAS, SSRS, SSIS), Always On, In-Memory OLTP.
  • Языковая поддержка: C# (.NET), Python (pyodbc, pymssql), Java (JDBC), Node.js.
  • Установка:
    • Windows: установщик с официального сайта
    • Linux (Debian/Ubuntu/RHEL): через пакетный менеджер — см. инструкцию
    • Docker: docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 mcr.microsoft.com/mssql/server:2022-latest
  • Сайт: https://www.microsoft.com/sql-server

6. Oracle Database

  • Тип: Клиент-серверная, реляционная, коммерческая (с Express Edition).
  • Особенности: PL/SQL, RAC (Real Application Clusters), поддержка хранения объектов, XML, JSON, расширенная безопасность и аудит.
  • Языковая поддержка: Java (JDBC Thin Driver), Python (cx_Oracle), C# (ODP.NET).
  • Установка:
  • Сайт: https://www.oracle.com/database/

7. MongoDB

  • Тип: Документо-ориентированная NoSQL.
  • Особенности: Хранение данных в BSON/JSON, горизонтальное масштабирование (шардинг), агрегационный фреймворк, гибкая схема.
  • Языковая поддержка: Python (PyMongo), JavaScript (Node.js driver), Java, C#, Rust и др.
  • Установка:
  • Сайт: https://www.mongodb.com

8. Redis

  • Тип: In-memory, key-value хранилище (часто классифицируется как NoSQL).
  • Особенности: Поддержка структур данных (строки, списки, хэши, множества), публикация/подписка, Lua-скрипты, персистентность через RDB/AOF.
  • Языковая поддержка: Python (redis-py), Node.js, Java (Jedis/Lettuce), C# (StackExchange.Redis).
  • Установка:
    • Linux (Debian/Ubuntu): sudo apt install redis-server
    • macOS: brew install redis
    • Windows: через WSL или официальный Docker-образ
    • Docker: docker run --name redis -d -p 6379:6379 redis
  • Сайт: https://redis.io

9. Cassandra

  • Тип: Распределённая колоночная NoSQL.
  • Особенности: Масштабируемость без единой точки отказа, eventual consistency, CQL (Cassandra Query Language).
  • Языковая поддержка: Python (cassandra-driver), Java (DataStax Java Driver), Go, C#.
  • Установка:
    • Linux/macOS: через Apache-архивы или cassandra в Homebrew
    • Docker: docker run --name cassandra -d -p 9042:9042 cassandra
  • Сайт: https://cassandra.apache.org

10. Neo4j

  • Тип: Графовая СУБД.
  • Особенности: Хранение узлов и связей, язык запросов Cypher, ACID-транзакции, поддержка RDF/SPARQL через расширения.
  • Языковая поддержка: Python (neo4j), JavaScript, Java, C#.
  • Установка:
  • Сайт: https://neo4j.com

11. DuckDB

  • Тип: Встраиваемая аналитическая СУБД.
  • Особенности: Колоночная архитектура, высокая скорость OLAP-запросов, совместимость с SQLite (файловый формат), поддержка Parquet.
  • Языковая поддержка: Python (duckdb), R, C++, Node.js.
  • Установка:
  • Сайт: https://duckdb.org

12. ClickHouse

  • Тип: Колоночная аналитическая СУБД.
  • Особенности: Высокая производительность при агрегациях, векторизованные вычисления, поддержка SQL, масштабируемость.
  • Языковая поддержка: Python, Go, Java, C#.
  • Установка:
    • Linux: curl https://clickhouse.com/ | sh
    • Docker: docker run -d --name clickhouse-server -p 8123:8123 -p 9000:9000 yandex/clickhouse-server
  • Сайт: https://clickhouse.com