Теоретический конспект: Основные понятия теории баз данных

Учебная дисциплина: «ОП.08 Основы проектирования баз данных» | Тема 1 (§2.2 с.7)

1. Понятийный базис: Данные, Информация, База данных, СУБД

Данные (Data)

Сведения, зафиксированные на материальном носителе в формализованном виде, обеспечивающем возможность их сохранения, передачи и автоматической обработки вычислительной техникой. Сами по себе данные лишены смысловой интерпретации (например, массив чисел [24, 760, 4]).

Информация (Information)

Результат смысловой интерпретации данных в контексте решаемой прикладной задачи, уменьшающий степень неопределенности знаний об окружающем мире (например: «Температура 24 °C, атмосферное давление 760 мм рт. ст., скорость ветра 4 м/с — метеорологическая норма для взлета самолета»).

База данных (БД / Database)

Организованная в соответствии с определенными правилами, поименованная совокупность взаимосвязанных данных, отображающая состояние объектов предметной области и их отношений, хранящаяся на машинных носителях независимо от прикладных программ.

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

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

Ключевые функции современной СУБД:

  1. Управление постоянным хранением данных: Размещение страниц данных на дисковых накопителях (HDD/SSD/NVMe), кэширование «горячих» блоков в оперативной памяти (Shared Buffers), эффективная организация пространства.
  2. Управление транзакциями (ACID): Обеспечение неделимости (Atomicity), согласованности (Consistency), изолированности (Isolation) и долговечности (Durability) операций модификации через журнал опережающей записи (WAL / Write-Ahead Logging).
  3. Управление параллельным доступом (Concurrency Control): Предотвращение конфликтов при одновременной работе тысяч пользователей за счет механизмов блокировок (Row Locks, Table Locks) и версионности (MVCC).
  4. Поддержание ссылочной и логической целостности: Автоматическая проверка ограничений (Primary Key, Foreign Key, Check, Not Null, Unique).
  5. Обеспечение безопасности и аутентификации: Разграничение прав доступа на уровне таблиц, строк (Row-Level Security) и столбцов; шифрование при передаче и хранении.
  6. Резервное копирование и аварийное восстановление: Возможность отката к любой точке во времени (Point-in-Time Recovery).

2. Сравнительный анализ: Файловые системы vs Промышленные СУБД

На заре вычислительной техники данные хранились в обычных текстовых или бинарных файлах операционной системы (и сегодня неопытные разработчики часто пытаются использовать Excel или CSV в качестве хранилища). Рассмотрим фундаментальные различия подходов:

Критерий сравнения Файловая система (Файлы / Таблицы Excel) Промышленная СУБД (PostgreSQL / Oracle)
Избыточность и дублирование Высокая. Каждая программа хранит копии нужных полей. При изменении адреса клиента данные обновляются в одном файле и «забываются» в другом. Минимальная. За счет нормализации данные хранятся строго в одном месте, исключая аномалии рассогласования.
Зависимость данных от программ Абсолютная (сильная сцепленность). Изменение формата бинарного файла требует перекомпиляции всех приложений, работающих с ним. Независимость. Приложения обращаются через декларативный язык запросов (SQL). Физическая структура скрыта от клиентского кода.
Многопользовательский доступ Примитивный. Блокируется весь файл целиком («Файл заблокирован для редактирования другим пользователем»), либо возникает потеря чужих правок (Lost Update). Высокопроизводительный конкурентный доступ. Блокировки на уровне отдельных строк, чтение никогда не блокирует запись благодаря MVCC.
Контроль целостности Отсутствует. Программист обязан в коде каждого приложения проверять корректность связей. При ошибке в одном скрипте файл разрушается. Декларативный на уровне СУБД. База физически отвергнет операцию, нарушающую внешний ключ (Foreign Key) или формат поля.
Отказоустойчивость и сбои питания Низкая. При аварийном отключении питания во время записи файл часто оказывается поврежденным и не подлежит восстановлению. Гарантированная (ACID). Журнал транзакций (WAL) позволяет накатить зафиксированные изменения и откатить незавершенные при перезагрузке.
Безопасность и аудит Файл можно целиком скопировать на флешку или удалить, если есть доступ к папке. Централизованный серверный контроль. Пользователь не имеет доступа к файлу на диске; доступ дается только к разрешенным строкам и колонкам.

3. Трехуровневая архитектура ANSI/SPARC

В 1975 году Комитет по планированию стандартов и требований Американского национального института стандартов (ANSI/X3/SPARC) предложил трехуровневую архитектуру СУБД, ставшую классической основой теории баз данных. Главная цель архитектуры — обеспечение независимости данных.

1. Внешний уровень (External Level / Пользовательские представления) Пользовательский интерфейс

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

Представление врача:
Диагнозы, история болезни, назначения. Скрыты финансовые счета.
Представление регистратора:
ФИО, полис ОМС, талоны к врачам. Скрыты врачебные диагнозы.
Личный кабинет пациента:
Только собственные записи и рекомендации. Доступ к чужим картам закрыт.
↕ Логическая независимость данных (Logical Data Independence) ↕
2. Концептуальный уровень (Conceptual Level / Логическая схема) Бизнес-логика и сущности

Обобщенное логическое представление ВСЕЙ базы данных администратором и разработчиком. Описывает сущности, атрибуты, связи между ними и ограничения целостности, абстрагируясь от того, как байты лежат на физических дисках.

Таблицы: Patients, Doctors, Appointments, Diagnoses | Связи: 1:M, M:M | Ограничения: PK, FK, CHECK

↕ Физическая независимость данных (Physical Data Independence) ↕
3. Внутренний уровень (Internal / Physical Level / Физическое хранение) Диск, страницы, индексы

Определяет непосредственное размещение данных на физических носителях: разметку дисковых страниц (по 8 КБ), распределение табличных пространств (Tablespaces), алгоритмы сжатия данных, физическую структуру индексов (B-Tree, Hash, GiST, GIN).

Файлы: /var/lib/postgresql/data/base/16384/* | Индексы: btree(snils_idx) | Сжатие: pglz/lz4

Два вида независимости данных:

4. Классификация моделей данных современных СУБД

В зависимости от структуры хранения и способа моделирования взаимосвязей выделяют четыре фундаментальных класса систем:

1. Реляционные (RDBMS)

Основаны на реляционной алгебре Эдгара Кодда (1970 г.). Данные представлены в виде двумерных таблиц (отношений), связанных через первичные и внешние ключи. Строгая схема (Schema-on-write), поддержка языка SQL, соблюдение принципов ACID.

Примеры: PostgreSQL, MySQL, MariaDB, Oracle Database, MS SQL Server, SQLite.

2. Документные (Document NoSQL)

Данные хранятся в виде структурированных текстовых или бинарных документов (JSON, BSON, XML). Каждый документ может иметь уникальный набор полей (Schema-on-read). Отлично подходят для каталогов с вариативными атрибутами и быстро меняющихся структур.

Примеры: MongoDB, CouchDB, RavenDB, Amazon DocumentDB.

3. Ключ-значение (Key-Value)

Простейшая модель: хранение пар «ключ — значение». Чрезвычайно высокая скорость операций по чтению и записи, часто хранят данные прямо в ОЗУ. Используются для кэширования, хранения сессий, списков онлайн-пользователей.

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

4. Графовые (Graph DBMS)

Представляют данные в виде узлов (вершин) и направленных связей (ребер). Оптимизированы для запросов по обходу графов любой глубины без тяжелых реляционных JOIN-операций. Идеальны для соцсетей, борьбы с мошенничеством, логистики.

Примеры: Neo4j, Amazon Neptune, Memgraph, ArangoDB.

5. Роль и задачи администратора базы данных (DBA)

Database Administrator (DBA) — специалист, несущий персональную ответственность за работоспособность, целостность, доступность и быстродействие баз данных предприятия.

Вопросы для самопроверки студентов:

1. В чем состоит принципиальная разница между понятием «база данных» и «СУБД»?
Ответ для самоконтроля: База данных — это сами упорядоченные данные на носителе; СУБД — это программный комплекс, управляющий этой базой и предоставляющий доступ к ней.
2. Какая аномалия возникает при одновременной несогласованной записи в файл двумя пользователями?
Ответ для самоконтроля: Аномалия потерянного обновления (Lost Update), при которой изменения первого пользователя безвозвратно затираются сохранением второго пользователя.
3. Приведите пример обеспечения физической независимости данных в архитектуре ANSI/SPARC.
Ответ для самоконтроля: Перенос таблицы на более быстрый SSD накопитель или создание B-Tree индекса для ускорения поиска не требует переписывания текста SQL-запросов в пользовательских программах.