Databases

Databases

DB

  • DataBase (DB - БД - База Данных).

  • DB хранит данные.

  • Управляется с помощью DBMS.

  • DBMS (DataBase Management System - системой управления базами данных).

Типы баз данных

  • Простые

  • SQL

  • NoSQL

Simple DB

Типы простых DB

  • Простые структуры данных

  • Иерархические базы данных

  • Сетевые базы данных

Простые структуры данных

  • Текстовые файлы

  • Для разделения полей используется специальный символ

    • запятая или точка с запятой в csv-файлах датасетов

    • двоеточие или пробел в *nix-подобных системах

  • Примеры:

    • /etc/passwd и /etc/fstab в *nix-системах

    • csv-файлы

Иерархические базы данных

  • Существуют связи между объектами.

  • Имеют одного родителя.

  • Имеют древовидную структуру.

  • Примеры:

    • файловые системы

    • DNS - Domain Name System

    • LDAP - Lightweight Directory Access Protocol

Сетевые базы данных

  • Расширяют функциональность иерархических БД

  • Записи могут иметь более одного родителя

  • Примеры:

    • IDMS - Integrated Database Management System

NoSQL DB

Типы NoSQL баз данных

  • Ключ-значение базы данных

  • Документоориентированные базы данных

  • Колоночные/столбцовые базы данных

  • Графовые базы данных

  • Базы данных временных рядов

  • Многомодельные базы данных

Ключ-значение базы данных

  • Хранилище типа ключ-значение

  • Применение:

    • хранение изображений

    • создание специализированных файловых систем

    • кэши для объектов

  • Преимущества:

    • высокая скорость

    • высокая масштабируемость

  • 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

Relational DB

Relational DB

  • Реляционные базы данных – старейший тип до сих пор широко используемых БД общего назначения.

  • Используется SQL для работы с информацией в БД.

  • Данные и связи между данными организованы с помощью таблиц.

  • Каждый столбец в таблице имеет имя и тип.

  • Каждая строка представляет отдельную запись или элемент данных в таблице, который содержит значения для каждого из столбцов.

RDBMS

  • 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)

RDBMS