В теории баз данных отношение , первоначально определенное Э.Ф. Коддом [ 1], представляет собой набор кортежей ( d1 , d2 , ... , dn ) , где каждый элемент dj является членом Dj , a область данных . Несмотря на исходное определение Кодда, в отличие от обычного определения в математике, элементы кортежей отношения не упорядочены. [2] [3] Вместо этого каждый элемент называется значением атрибута . Атрибут — это имя в паре с доменом (в настоящее время его чаще называют типом или типом данных ). Значение атрибута — это имя атрибута, связанное с элементом домена этого атрибута, а кортеж — это набор значений атрибута, в котором нет двух разных элементов с одинаковым именем. Таким образом, в некоторых источниках кортеж описывается как функция , сопоставляющая имена значениям.
Набор атрибутов, в котором нет двух различных элементов с одинаковым именем, называется заголовком . Из приведенных выше определений следует, что каждому кортежу соответствует уникальный заголовок, представляющий собой набор имен из кортежа в паре с доменами, из которых взяты домены элементов кортежа. Набор кортежей , соответствующих одному и тому же заголовку, называется телом . Таким образом, отношение представляет собой заголовок в паре с телом, причем заголовок отношения также является заголовком каждого кортежа в его теле. Количество атрибутов, составляющих заголовок, называется степенью , этот термин также применяется к кортежам и отношениям. Термин n -кортеж относится к кортежу степени n ( n ≥ 0).
Э. Ф. Кодд использовал термин «отношение» в его математическом смысле финитного отношения , набора кортежей на некотором наборе из n множеств S 1 , S 2 ,...., Sn . [4] Таким образом, n -арное отношение интерпретируется в рамках предположения о закрытом мире как расширение некоторого n -адического предиката : все и только те n -кортежи, значения которых, замененные на соответствующие свободные переменные в предикате, дают результат пропозиции, которые являются истинными, появляются в отношении.
Заголовок в сочетании с набором ограничений, определенных в терминах этого заголовка, называется схемой отношения . Таким образом, отношение можно рассматривать как реализацию схемы отношения, если оно имеет заголовок этой схемы и удовлетворяет применимым ограничениям.
Иногда схема отношения включает имя. [5] [6] Таким образом , определение реляционной базы данных ( схема базы данных , иногда называемая реляционной схемой) можно рассматривать как набор именованных схем отношений . [7] [8]
В реализациях домен каждого атрибута фактически является типом данных [9], а именованная схема отношения фактически является переменной отношения ( сокращенно relvar ).
В SQL , языке баз данных для реляционных баз данных, отношения представлены таблицами , где каждая строка таблицы представляет собой один кортеж, а значения каждого атрибута образуют столбец.
Ниже приведен пример отношения, имеющего три именованных атрибута: «ID» из области целых чисел , а также «Имя» и «Адрес» из области строк :
Предикатом для этого отношения, использующим имена атрибутов для обозначения свободных переменных, может быть: « Идентификатор номера сотрудника известен как Имя и живет по адресу ». Исследование отношения показывает, что существует всего четыре кортежа, для которых предикат справедлив. Так, например, сотрудник 102 известен только под этим именем, Ёнезава Акинори, и живет только в Нахе, Окинава. Кроме того, кроме четырех показанных сотрудников, нет другого сотрудника, у которого есть одновременно имя и адрес.
Согласно определению тела , кортежи тела не располагаются в каком-либо определенном порядке — нельзя сказать: «Кортеж «Мурата Макото» находится над кортежем «Мацумото Юкихиро»», и нельзя сказать: «Кортеж «Кортеж» Ёнезава Акинори — первый кортеж». Аналогичный комментарий относится и к строкам таблицы 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 ( ВЫБРАТЬ ID , имя , адрес ИЗ List_of_people WHERE Адрес LIKE '%, Окинава' )
R является отношением в этих n областях, если оно представляет собой набор элементов вида (d 1 , d 2 , ..., d n ), где d j ∈ D j для каждого j=1,2,..., н.
... кортежи не имеют упорядочения атрибутов слева направо...
Одна из причин полного отказа от позиционных концепций в отношениях реляционной модели заключается в том, что нередко встречаются отношения базы данных, каждое из которых имеет до 50, 100 или даже 150 столбцов.
Термин «
отношение»
используется здесь в его общепринятом математическом смысле.