СУБД
Системы управления базами данных (СУБД)
Системы управления базами данных (СУБД) — это программные комплексы, обеспечивающие создание, хранение, управление и доступ к структурированным данным. Они различаются по архитектуре (встраиваемые, клиент-серверные, распределённые), лицензированию (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-утилита на официальном сайте
- Linux (Debian/Ubuntu):
- Сайт: https://www.sqlite.org
2. PostgreSQL
- Тип: Клиент-серверная, реляционная, объектно-реляционная, open-source.
- Особенности: Поддержка JSON, полнотекстового поиска, расширений (PostGIS, TimescaleDB), строгой типизации, MVCC. Соответствует стандарту SQL.
- Языковая поддержка: Python (PsycoPG2, SQLAlchemy), Java (JDBC), C#, Node.js и др.
- Установка:
- Linux (Debian/Ubuntu):
sudo apt install postgresql postgresql-contrib - macOS:
brew install postgresql - Windows: установщик с официального сайта
- Linux (Debian/Ubuntu):
- Сайт: https://www.postgresql.org
3. MySQL
- Тип: Клиент-серверная, реляционная, open-source (с коммерческой лицензией Oracle).
- Особенности: Поддержка нескольких движков хранения (InnoDB, MyISAM и др.), репликации, кластеризации. Ориентирована на веб-приложения.
- Языковая поддержка: Python (PyMySQL, mysql-connector-python), Java (MySQL Connector/J), PHP, C# (MySql.Data).
- Установка:
- Linux (Debian/Ubuntu):
sudo apt install mysql-server - macOS:
brew install mysql - Windows: установщик с официального сайта
- Linux (Debian/Ubuntu):
- Сайт: https://www.mysql.com
4. MariaDB
- Тип: Клиент-серверная, реляционная, open-source (форк MySQL).
- Особенности: Полная совместимость с MySQL, новые движки (Aria, ColumnStore), улучшенная производительность и безопасность. Используется как drop-in замена MySQL.
- Языковая поддержка: Идентична MySQL.
- Установка:
- Linux (Debian/Ubuntu):
sudo apt install mariadb-server - macOS:
brew install mariadb - Windows: установщик с официального сайта
- Linux (Debian/Ubuntu):
- Сайт: 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).
- Установка:
- Oracle Database Express Edition (XE): бесплатная версия для разработки — официальный сайт
- Docker: доступен образ на Docker Hub
- Сайт: https://www.oracle.com/database/
7. MongoDB
- Тип: Документо-ориентированная NoSQL.
- Особенности: Хранение данных в BSON/JSON, горизонтальное масштабирование (шардинг), агрегационный фреймворк, гибкая схема.
- Языковая поддержка: Python (PyMongo), JavaScript (Node.js driver), Java, C#, Rust и др.
- Установка:
- Linux/macOS/Windows: через установщик или пакетный менеджер — официальная документация
- Docker:
docker run --name mongodb -d -p 27017:27017 mongo
- Сайт: 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
- Linux (Debian/Ubuntu):
- Сайт: 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
- Linux/macOS: через Apache-архивы или
- Сайт: https://cassandra.apache.org
10. Neo4j
- Тип: Графовая СУБД.
- Особенности: Хранение узлов и связей, язык запросов Cypher, ACID-транзакции, поддержка RDF/SPARQL через расширения.
- Языковая поддержка: Python (neo4j), JavaScript, Java, C#.
- Установка:
- Универсальный архив или установщик с официального сайта
- Docker:
docker run --name neo4j -d -p 7474:7474 -p 7687:7687 neo4j
- Сайт: https://neo4j.com
11. DuckDB
- Тип: Встраиваемая аналитическая СУБД.
- Особенности: Колоночная архитектура, высокая скорость OLAP-запросов, совместимость с SQLite (файловый формат), поддержка Parquet.
- Языковая поддержка: Python (
duckdb), R, C++, Node.js. - Установка:
- Python:
pip install duckdb - CLI: официальный сайт
- Python:
- Сайт: 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
- Linux:
- Сайт: https://clickhouse.com