Кортежное реляционное исчисление


Исчисление кортежей — это исчисление , которое было создано и представлено Эдгаром Ф. Коддом как часть реляционной модели , чтобы предоставить декларативный язык запросов к базе данных для манипулирования данными в этой модели данных . Он послужил источником вдохновения для языков запросов к базе данных QUEL и SQL , из которых последний, хотя и гораздо менее верен исходной реляционной модели и исчислению, теперь является де-факто стандартным языком запросов к базе данных; диалект SQL используется почти во всех системах управления реляционными базами данных . Мишель Лакруа и Ален Пиротт предложили исчисление доменов, который ближе к логике первого порядка и вместе с Коддом показал, что оба этих исчисления (а также реляционная алгебра ) эквивалентны по выразительной силе. Впоследствии языки запросов для реляционной модели стали называть реляционно полными , если они могли выражать хотя бы все эти запросы.

Поскольку исчисление — это язык запросов для реляционных баз данных , мы сначала должны определить реляционную базу данных. Основным реляционным строительным блоком является домен (несколько похожий, но не равный типу данных ). Кортеж — это конечная последовательность атрибутов , представляющая собой упорядоченные пары доменов и значений. Отношение это набор (совместимых) кортежей. Хотя эти реляционные концепции определены математически, эти определения слабо соотносятся с традиционными концепциями баз данных. Таблица — это общепринятое визуальное представление отношения; кортеж аналогичен понятию строки .

Сначала мы предполагаем существование набора C имен столбцов, примерами которых являются «имя», «автор», «адрес» и так далее. Мы определяем заголовки как конечные подмножества C . Схема реляционной базы данных определяется как кортеж S = ( D , R , h ), где D — домен атомарных значений ( дополнительные сведения о понятиях домена и атомарного значения см. в реляционной модели ), R — конечный набор имен отношений , а также

функция , которая связывает заголовок с каждым именем отношения в R . (Обратите внимание, что это упрощение полной реляционной модели, в которой существует более одного домена, а заголовок — это не просто набор имен столбцов, но также сопоставление этих имен столбцов с доменом.) Учитывая домен D , мы определяем кортеж над D как частичная функция , которая отображает некоторые имена столбцов в атомарное значение в D . Примером может быть (имя: «Гарри», возраст: 25).

Множество всех кортежей над D обозначается как T D . Подмножество C , для которого определен кортеж t , называется доменом t ( не путать с доменом в схеме) и обозначается как dom ( t ).

который отображает имена отношений в R в конечные подмножества TD , так что для каждого имени отношения r в R и кортежа t в db ( r ) выполняется, что