В теории баз данных отношение , как первоначально определено Э. Ф. Коддом , [1] представляет собой набор кортежей ( d 1 , d 2 ,...,d n ), где каждый элемент d j является членом D j , домена данных . Несмотря на первоначальное определение Кодда и вопреки обычному определению в математике, нет никакого упорядочения элементов кортежей отношения. [2] [3] Вместо этого каждый элемент называется значением атрибута . Атрибут — это имя, сопряженное с доменом (в настоящее время чаще называемое типом или типом данных ). Значение атрибута — это имя атрибута, сопряженное с элементом домена этого атрибута, а кортеж — это набор значений атрибутов, в котором никакие два различных элемента не имеют одинакового имени. Таким образом, в некоторых отчетах кортеж описывается как функция , сопоставляющая имена со значениями.
Набор атрибутов, в котором нет двух различных элементов с одинаковыми именами, называется заголовком . Из приведенных выше определений следует, что каждому кортежу соответствует уникальный заголовок, представляющий собой набор имен из кортежа, сопряженных с доменами, из которых берутся домены элементов кортежа. Набор кортежей , которые все соответствуют одному и тому же заголовку, называется телом . Таким образом, отношение — это заголовок, сопряженный с телом, причем заголовок отношения также является заголовком каждого кортежа в его теле. Количество атрибутов, составляющих заголовок, называется степенью , этот термин также применяется к кортежам и отношениям. Термин n -кортеж относится к кортежу степени n ( n ≥ 0).
Э. Ф. Кодд использовал термин «отношение» в его математическом смысле конечного отношения , набора кортежей на некотором наборе из n множеств S1 , S2 ,...., Sn . [4] Таким образом, n -арное отношение интерпретируется в соответствии с предположением о замкнутости мира как расширение некоторого n -адического предиката : все и только те n -кортежи, значения которых, подставленные вместо соответствующих свободных переменных в предикате, дают истинные предложения, появляются в отношении.
Заголовок, сопряженный с набором ограничений, определенных в терминах этого заголовка, называется схемой отношения . Таким образом, отношение можно рассматривать как реализацию схемы отношения, если оно имеет заголовок этой схемы и удовлетворяет применимым ограничениям.
Иногда схема отношений рассматривается как включающая имя. [5] [6] Таким образом, определение реляционной базы данных ( схема базы данных , иногда называемая реляционной схемой) можно рассматривать как коллекцию именованных схем отношений . [7] [8]
В реализациях домен каждого атрибута фактически является типом данных [9] , а именованная схема отношения фактически является переменной отношения ( кратко relvar ).
В SQL , языке реляционных баз данных, отношения представлены таблицами , где каждая строка таблицы представляет собой один кортеж, а значения каждого атрибута образуют столбец.
Ниже приведен пример отношения, имеющего три именованных атрибута: «ID» из области целых чисел , а также «Имя» и «Адрес» из области строк :
Предикат для этого отношения, использующий имена атрибутов для обозначения свободных переменных, может быть "Идентификатор сотрудника известен как Имя и проживает по адресу Адрес ". Изучение отношения показывает, что существует всего четыре кортежа, для которых предикат верен. Так, например, сотрудник 102 известен только под этим именем, Ёнэдзава Акинори, и не проживает нигде, кроме Нахи, Окинава. Кроме того, кроме показанных четырех сотрудников, нет других сотрудников, которые имели бы и имя, и адрес.
Согласно определению body , кортежи body не появляются в каком-либо определенном порядке — нельзя сказать «Кортеж „Мурата Макото“ находится выше кортежа „Мацумото Юкихиро“», или нельзя сказать «Кортеж „Ёнэдзава Акинори“ является первым кортежем». Аналогичное замечание применимо к строкам таблицы SQL.
Согласно определению заголовка , атрибуты элемента не появляются в каком-либо определенном порядке, и, следовательно, элементы кортежа тоже. Подобный комментарий не применим здесь к SQL, который определяет порядок столбцов таблицы.
Реляционная база данных состоит из именованных переменных отношения (relvars) для обновления базы данных в ответ на изменения в реальном мире. Обновление одной relvar приводит к замене тела отношения, назначенного этой переменной, другим набором кортежей. Relvars делятся на два класса: базовые переменные отношения и производные переменные отношения , последние также известны как виртуальные relvars , но обычно упоминаются в кратком представлении .
Базовая переменная отношения — это переменная отношения, которая не выводится из других переменных отношения. В SQL термин базовая таблица приблизительно соответствует базовой переменной отношения.
Представление может быть определено выражением с использованием операторов реляционной алгебры или реляционного исчисления . Такое выражение работает с одним или несколькими отношениями и при оценке дает другое отношение. Результат иногда называют «производным» отношением, когда операнды являются отношениями, назначенными переменным базы данных. Представление определяется путем присвоения имени такому выражению, так что имя впоследствии может использоваться в качестве имени переменной. (Обратите внимание, что выражение должно затем упоминать по крайней мере одну переменную базового отношения.)
Используя язык определения данных (DDL), он может определять переменные базового отношения. В SQL CREATE TABLE
синтаксис используется для определения базовых таблиц. Ниже приведен пример.
CREATE TABLE List_of_people ( ID INTEGER , Имя CHAR ( 40 ), Адрес CHAR ( 200 ), ПЕРВИЧНЫЙ КЛЮЧ ( ID ) )
Язык определения данных (DDL) также используется для определения производных переменных отношения. В SQL CREATE VIEW
синтаксис используется для определения производной переменной отношения. Ниже приведен пример.
СОЗДАТЬ ПРЕДСТАВЛЕНИЕ List_of_Okinawa_people AS ( ВЫБРАТЬ ИДЕНТИФИКАТОР , Имя , Адрес ИЗ List_of_people ГДЕ Адрес ПОДОБЕН '%, Окинава' )
R является
отношениемна этих n доменах ,
если оно представляет собой набор элементов вида (d
1
, d
2
, ..., d
n
), где d
j
∈ D
j
для каждого j=1,2,...,n.
кортежи не имеют упорядочения атрибутов слева направо ...
Одной из причин полного отказа от позиционных концепций в отношениях реляционной модели является то, что совсем не редкость обнаружить отношения в базе данных, каждое из которых имеет до 50, 100 или даже 150 столбцов.
Термин
отношение
используется здесь в его общепринятом математическом смысле.