DataBase (DB - БД - База Данных).
DB хранит данные.
Управляется с помощью DBMS.
DBMS (DataBase Management System - системой управления базами данных).
Простые
SQL
NoSQL
Простые структуры данных
Иерархические базы данных
Сетевые базы данных
Текстовые файлы
Для разделения полей используется специальный символ
запятая или точка с запятой в csv-файлах датасетов
двоеточие или пробел в *nix-подобных системах
Примеры:
/etc/passwd
и /etc/fstab
в *nix-системах
csv-файлы
Существуют связи между объектами.
Имеют одного родителя.
Имеют древовидную структуру.
Примеры:
файловые системы
DNS - Domain Name System
LDAP - Lightweight Directory Access Protocol
Расширяют функциональность иерархических БД
Записи могут иметь более одного родителя
Примеры:
IDMS - Integrated Database Management System
Ключ-значение базы данных
Документоориентированные базы данных
Колоночные/столбцовые базы данных
Графовые базы данных
Базы данных временных рядов
Многомодельные базы данных
Хранилище типа ключ-значение
Применение:
хранение изображений
создание специализированных файловых систем
кэши для объектов
Преимущества:
высокая скорость
высокая масштабируемость
DBMS: Redis, Memcached, etcd, Amazon DynamoDB, Riak, LevelDB
Единица хранения - документ (json, bson, xml)
Применение:
Управление контентом
Каталоги
Преимущества:
высокая скорость
высокая гибкость данных
DBMS: MongoDB, CouchDB, Amazon DocumentDB
Инверсия хранения для быстрого доступа
Применение:
Большой объем данных
Аналитика
Преимущества:
высокая скорость поиска по большим данным
высокая гибкость данных
DBMS: Apache HBase, Apache Cassandra, ClickHouse, ScyllaDB
Наглядность связей
Применение:
Большой объем связанных данных
Соцсети
Преимущества:
высокая скорость поиска по большим данным
высокая гибкость данных
DBMS: Neo4j, OrientDB
Реляционные базы данных – старейший тип до сих пор широко используемых БД общего назначения.
Используется SQL для работы с информацией в БД.
Данные и связи между данными организованы с помощью таблиц.
Каждый столбец в таблице имеет имя и тип.
Каждая строка представляет отдельную запись или элемент данных в таблице, который содержит значения для каждого из столбцов.
PostgreSQL (free and open-source)
MariaDB (free and open-source)
SQLite (public, Dwayne Richard Hipp)
MySQL (open-source or proprietary, Oracle Corporation)
SQL Server (proprietary, Microsoft)
Oracle® Database (proprietary, Oracle Corporation)