Релвар в реляционной модели данных¶
Релвар (relvar, от англ. relation variable — «переменная отношения») — понятие реляционной теории баз данных, обозначающее переменную, значениями которой являются отношения (таблицы). Термин введён британским математиком и специалистом по базам данных Кристофером Дейтом в рамках его переработки классической реляционной модели Эдгара Кодда. Релвар отделяет логическое понятие «переменной» от конкретного значения-отношения в данный момент времени и служит теоретической основой для понимания того, чем является таблица в реляционной СУБД.
¶Происхождение понятия
Классическая реляционная модель Кодда (1970) оперировала понятием «отношение» (relation) — множеством кортежей, соответствующих одной схеме. Однако при описании баз данных возникла терминологическая путаница: слово «отношение» использовалось и для обозначения переменной, хранящей данные, и для обозначения её текущего значения.
Кристофер Дейт и Хью Дарвен в работах 1990-х — 2000-х годов предложили разграничивать эти сущности. По аналогии с программированием, где переменная x отличается от её текущего значения, было введено понятие релвара. Термин образован сокращением английского relation variable. В русскоязычной литературе встречаются также формы «релвар», «реляционная переменная» и калька «переменная отношения».
¶Определение и связь со значением
Релвар — это именованная переменная, объявленная с определённым заголовком (набором атрибутов с их типами) и в каждый момент времени содержащая конкретное отношение, совместимое с этим заголовком. Ключевые положения:
- Заголовок релвара фиксирован и задаётся при объявлении; он определяет имена и типы атрибутов.
- Тело (текущее значение) меняется во времени в результате операций обновления.
- Схема релвара — это заголовок плюс набор ограничений целостности, которым должны удовлетворять все допустимые значения.
Таким образом, релвар аналогичен переменной в языках программирования: он имеет тип (заголовок) и значение (отношение), которое может изменяться. В конкретный момент времени релвар «принимает» некоторое отношение, но сам релваром не является.
¶Место в терминологии реляционной модели
Дейт предложил стройную систему терминов, в которой релвар занимает центральное место:
| Термин Дейта | Обычное обозначение в СУБД |
|---|---|
| Релвар | Таблица (переменная) |
| Отношение | Значение таблицы в данный момент |
| Заголовок | Список столбцов со схемой |
| Кортеж | Строка |
| Атрибут | Столбец |
Такое разграничение позволяет точно формулировать утверждения теории: например, операция реляционного присваивания изменяет релвар, а реляционная алгебра оперирует отношениями (значениями), а не релварами напрямую.
¶Виды релваров
В терминологии Дейта различают несколько категорий:
- Базовые релвары (base relvars) — соответствуют реально хранимым таблицам базы данных.
- Производные релвары (derived relvars) — определяются через выражения над другими релварами; к ним относятся представления (views).
- Виртуальные релвары — не хранятся физически, а вычисляются по запросу.
- Мнимые релвары (dummy relvars) — теоретические конструкции, используемые в доказательствах.
Отдельно выделяют понятие реляционной переменной-указателя и связанные с ней механизмы, однако в практических СУБД эти идеи реализуются редко.
¶Релвары и представления
Наиболее практически значимое следствие концепции — трактовка представлений (views) как производных релваров. Представление задаётся выражением реляционной алгебры или исчисления над базовыми релварами. Поскольку представление тоже является переменной, к нему применимы операции обновления — при условии, что СУБД способна однозначно транслировать изменение в базовые релвары.
Дейт и Дарвен сформулировали теорию обновления представлений, основанную именно на понятии релвара. Это отличает их подход от многих коммерческих СУБД, где представления часто считаются лишь «окнами» только для чтения.
¶Практическое значение
Хотя термин «релвар» не прижился в повседневной практике разработчиков и документации большинства СУБД (там по-прежнему говорят «таблица»), концепция оказала влияние на теорию баз данных:
- Она уточняет различие между схемой и данными, между типом и значением.
- Лежит в основе учебников и курсов Дейта по реляционной теории.
- Используется в академических работах по реляционной алгебре и теории нормализации.
- Помогает корректно описывать семантику представлений, ограничений целостности и транзакций.
В СУБД, следующих принципам The Third Manifesto (манифеста Дейта и Дарвена), понятие релвара является базовым элементом модели данных. Примерами систем, в той или иной степени реализующих эти идеи, называют Dataphor и ряд исследовательских проектов.
¶Критика и ограничения
Основная претензия к терминологии Дейта — её оторванность от индустриальной практики. Разработчики и администраторы баз данных привыкли к словам «таблица», «строка», «столбец», и введение новых терминов воспринимается как избыточная академичность. Кроме того, не все положения теории релваров реализованы в распространённых СУБД: например, полноценное обновление произвольных представлений остаётся редкой возможностью.
Тем не менее концепция релвара считается теоретически строгой и полезной для понимания того, что именно хранит и обрабатывает реляционная база данных.
IRONLIVE — база данных и аналитика по компаниям России.
На главную IRONLIVE →