Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

Пример реляционной базы

Представим базу данных университета:

Таблица "Студенты"

id (PK)

имя

группа

id_кафедры (FK)

1

Иван

ИС-21

101

2

Мария

ИС-21

101

3

Петр

БИ-22

102

Таблица "Кафедры"

id (PK)

название

101

Информационных систем

102

Биоинформатики

Таблица "Предметы"

id (PK)

название

1001

Базы данных

1002

Алгоритмы

Таблица "Оценки" (связь многие-ко-многим)

id_студента (FK)

id_предмета (FK)

оценка

1

1001

5

1

1002

4

2

1001

4

Популярные реляционные СУБД

  • MySQL (популярен в вебе)

  • PostgreSQL (очень мощная, продвинутая)

  • Oracle Database (корпоративный стандарт)

  • Microsoft SQL Server

  • SQLite (встраиваемая, для мобильных приложений)

3. Нереляционные базы данных (NoSQL)

Определение

NoSQL (Not Only SQL) — это широкий класс систем управления базами данных, которые отличаются от классических реляционных моделей. Они отказались от табличной структуры и SQL в пользу гибкости, масштабируемости и производительности под специфические задачи.

Термин "NoSQL" объединяет совершенно разные по устройству базы.

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

А) Документо-ориентированные (Document stores)

Хранят данные в виде документов (обычно JSON, BSON, XML). Каждый документ самодостаточен и может иметь свою структуру.

Пример документа (JSON):

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

  • Схема не фиксирована (в разных документах могут быть разные поля).

  • Данные, которые часто запрашиваются вместе, хранятся в одном документе (денормализация).

  • Удобно для каталогов товаров, блогов, пользовательских профилей.

Примеры: MongoDB, CouchDB, Firebase Firestore.

Б) Ключ-значение (Key-value stores)

Простейшие базы, хранящие пары "ключ — значение". Значение — это просто набор байт, структура которого базе неизвестна.

Пример:

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

  • Максимально быстрые (данные часто в оперативной памяти).

  • Нет возможности поиска по значению (только по ключу).

  • Идеальны для кэширования, сессий, счётчиков.

Примеры: Redis, Memcached, Amazon DynamoDB, Riak.

В) Колоночные (Column-family stores)

Хранят данные по колонкам, а не по строкам. Оптимизированы для запросов, которые затрагивают много строк, но только некоторые колонки (аналитика, агрегация).

Устройство: Вместо таблицы "студенты" со строками, данные организованы так:

  • Колонка "имя": [1→"Иван", 2→"Мария", 3→"Петр"]

  • Колонка "возраст": [1→20, 2→19, 3→21]

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

  • Очень высокая производительность при аналитических запросах (OLAP).

  • Хорошо сжимаются (одинаковые типы данных хранятся вместе).

  • Сложны в проектировании.

Примеры: Apache Cassandra, HBase, Google Bigtable.

Г) Графовые (Graph databases)

Оптимизированы для хранения связей между объектами. Данные представляются как узлы (вершины) и рёбра (связи).

Структура:

  • Узлы — сущности (люди, компании, страницы).

  • Рёбра — связи между ними (дружит, работает, купил).

  • У узлов и рёбер могут быть свойства.

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

  • Идеальны для социальных сетей, рекомендательных систем, маршрутизации, анализа мошенничества.

  • Запросы типа "найти друзей друзей" выполняются мгновенно (в SQL потребовалось бы множество JOIN'ов).

Примеры: Neo4j, Amazon Neptune, ArangoDB (мультимодельная).