Эволюция систем хранения данных
Зачем знать историю моделей
Понимание эволюции хранения данных объясняет, почему в SQL есть таблицы, ограничения целостности и декларативные запросы, а не только «как написать SELECT». Материал основан на учебном плане «Введение в системы хранения данных».
Эволюция моделей хранения
Файловые системы
Данные хранятся в отдельных файлах приложения. Типичные проблемы:
- дублирование одних и тех же сущностей в разных файлах;
- отсутствие централизованного контроля целостности;
- сложность совместного доступа и параллельной записи.
Иерархические и сетевые модели
Данные организованы как дерево (иерархия) или граф (сеть). Запросы привязаны к физической навигации по связям. Недостатки:
- жёсткая структура — изменение схемы дорого;
- сложные запросы «в обход» дерева трудоёмки.
Реляционная модель (Кодд, 1970)
Данные представлены отношениями (таблицами). Запросы декларативные: указывается, что нужно получить, а не путь обхода. Ключевые идеи:
- нормализация для устранения избыточности;
- независимость логической схемы от физического размещения;
- единый язык доступа — SQL.
Современный контекст
Реляционные СУБД (PostgreSQL, MySQL, Oracle) сосуществуют с документными, ключ-значение, графовыми и колоночными системами. Выбор модели зависит от нагрузки: операционные транзакции, аналитика, кэш, граф связей.
Базовая терминология
| Термин | Определение |
|---|---|
| Данные | Факты в формализованном виде, пригодные для обработки |
| Метаданные | Сведения о структуре: таблицы, типы, ограничения, права |
| Схема базы данных | Описание логической структуры на момент проектирования |
| Экземпляр базы данных | Фактическое состояние данных в конкретный момент времени |
Схема задаёт «каркас»; экземпляр — текущее наполнение таблиц.
Классификация СУБД
По модели данных: реляционные (PostgreSQL), документные (MongoDB), ключ-значение (Redis), графовые (Neo4j), колоночные (ClickHouse).
По архитектуре: встроенные (SQLite), клиент-серверные (PostgreSQL), распределённые кластеры.
По лицензированию: открытые (PostgreSQL), коммерческие (Oracle Database), гибридные (MySQL с коммерческой поддержкой).
Первое подключение к PostgreSQL
Проверка работоспособности сервера и клиента:
SELECT version();
Просмотр пользовательских баз на сервере:
SELECT datname
FROM pg_database
WHERE datistemplate = false
ORDER BY datname;
Список таблиц через стандартный каталог (подробнее — в статье Словарь данных и системные каталоги):
SELECT table_schema, table_name
FROM information_schema.tables
WHERE table_schema NOT IN ('pg_catalog', 'information_schema')
ORDER BY table_schema, table_name;
Контрольные вопросы
- В чём принципиальное отличие реляционной модели от файлового хранения?
- Как соотносятся понятия «схема» и «экземпляр» базы данных?
- Почему клиент-серверная архитектура стала стандартом для корпоративных СУБД?
- Какую роль играют метаданные в обеспечении целостности данных?
См. также
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Вот SQL как раз обеспечивает такую связь и это главное отличие реляционных БД - реляции (relations), что означает связи. Знакомимся с языком - ставим программы, запускаем, выполняем первые запросы. Домены, атрибуты, кортежи и отношения — свойства реляционных таблиц и ограничения целостности при проектировании схемы. Функциональные зависимости, нормальные формы 1НФ–3НФ, аномалии обновления и осознанная денормализация при проектировании схемы. Метаданные СУБД через information_schema и pg_catalog — запросы к структуре таблиц, ключей и индексов в PostgreSQL. Логическое и физическое резервное копирование, pg_dump, pg_restore, WAL и восстановление на точку во времени (PITR). Логический порядок выполнения SELECT, проекция, WHERE, DISTINCT, ORDER BY и правила читаемого форматирования запросов. Скалярные и коррелированные подзапросы, EXISTS против IN, особенности NULL и выбор между подзапросом и JOIN. AND, OR, NOT, приоритет операторов, NULL и UNKNOWN, IS NULL, NOT IN и IS DISTINCT FROM в PostgreSQL. MVCC, уровни блокировок таблиц, FOR UPDATE, SKIP LOCKED, взаимоблокировки и диагностика через pg_locks. Учебная схема интернет-магазина для PostgreSQL — DDL и примеры запросов по темам курса SQL. Принципы работы SQL-движка - подключение к СУБД, разбор и выполнение запроса и возврат результата клиенту.SQL - язык структурированных запросов
Первые шаги с SQL
Реляционная модель данных
Нормализация данных
Словарь данных и системные каталоги
Резервное копирование и восстановление PostgreSQL
Оператор SELECT — синтаксис и стиль
Подзапросы, EXISTS и IN
Фильтрация и трёхзначная логика
Блокировки и конкурентный доступ в PostgreSQL
Практикум shop_data
Принципы работы SQL-движка