Подтвердить что ты не робот

Что означает термин "кортеж" в реляционных базах данных?

Пожалуйста, объясните, что подразумевается под кортежами в sql? Спасибо..

4b9b3361

Ответ 1

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

(x=1, y=2, z=3)
(z=3, y=2, x=1)
(y=2, z=3, x=1)

... предполагая, конечно, что x, y и z - целые числа. Также обратите внимание, что нет такой вещи, как "дублированный" кортеж. Таким образом, не только вышеперечисленные равны, они одно и то же. Наконец, кортежи могут содержать только известные значения (таким образом, никакие нули).

A row ** - это упорядоченное множество известных или неизвестных значений с именами (хотя они могут быть опущены). Поэтому следующие сравнения возвращают false в SQL:

(1, 2, 3) = (3, 2, 1)
(3, 1, 2) = (2, 1, 3)

Обратите внимание, что есть способы "подделать". Например, рассмотрим этот оператор INSERT:

INSERT INTO point VALUES (1, 2, 3)

Предполагая, что x является первым, y является вторым, а z является третьим, этот запрос может быть переписан следующим образом:

INSERT INTO point (x, y, z) VALUES (1, 2, 3)

Или это:

INSERT INTO point (y, z, x) VALUES (2, 3, 1)

... но все, что мы действительно делаем, это изменение порядка, а не его удаление.

А также обратите внимание, что могут быть и неизвестные значения. Таким образом, у вас могут быть строки с неизвестными значениями:

(1, 2, NULL) = (1, 2, NULL)

... но обратите внимание, что это сравнение всегда будет иметь значение UNKNOWN. В конце концов, как вы можете узнать, равны ли два неизвестных значения?

И, наконец, строки могут быть дублированы. Другими словами, (1, 2) и (1, 2) могут сравниваться как равные, но это не обязательно означает, что они - одно и то же.

Если это тема, которая вас интересует, я бы настоятельно рекомендовал читать SQL и Relational Theory: как написать точный код SQL от CJ Дата.

* Обратите внимание, что я говорю о кортежах, поскольку они существуют в реляционной модели, которая немного отличается от математики вообще.

** И на всякий случай, когда вам интересно, почти все в SQL - это строка или таблица. Следовательно, (1, 2) - это строка, а VALUES (1, 2) - таблица (с одной строкой).

UPDATE. Я немного расширил этот ответ в сообщении в блоге здесь.

Ответ 2

Это сокращенный "N-tuple" (например, в quadruple, quintuple и т.д.)

Это строка набора строк, взятая в целом.

Если вы выдаете:

SELECT  col1, col2
FROM    mytable

весь результат будет ROWSET, и каждая пара col1, col2 будет tuple.

Некоторые базы данных могут работать с кортежем в целом.

Например, вы можете сделать это:

SELECT  col1, col2
FROM    mytable
WHERE   (col1, col2) =
        (
        SELECT  col3, col4
        FROM    othertable
        )

который проверяет, что целое tuple из одного ROWSET соответствует целому tuple из другого ROWSET.

Ответ 3

В реляционных базах данных таблицы отношения (в математическом смысле). Отношениями являются наборы кортежей. Таким образом, строка таблицы в реляционной базе данных связана с кортежем.

Wiki по отношениям:

В математике (точнее, в теории множеств и логики), отношение свойство, которое присваивает значения истинности комбинаций (k-кортежей) k физические лица. Как правило, свойство описывает возможное соединение между компонентами k-кортежа. Для данного набора k-кортежей, правда значение присваивается каждому k-кортежу в зависимости от того, или не выполняется.

Ответ 4

Каким бы ни было его использование в математике, кортеж в РСУБД обычно считается строкой в ​​таблице или наборе результатов. В РСУБД кортеж неупорядочен. Кортеж в MDDBMS - это экземпляр данных в ячейке со связанными с ней экземплярами измерений (членами).

Что такое кортеж в хранилище данных семейства столбцов?

Ответ 5

tuple = 1 запись; n-tuple = упорядоченный список записей 'n'; Книга Эльмас Навате (стр. 198 3-е издание).

record = либо упорядоченная, либо неупорядоченная.

Ответ 6

строка из таблицы базы данных

Ответ 7

Как я понимаю, таблица имеет набор ключей K и функцию T ввода с доменом K. Строка или "кортеж" таблицы представляет собой функцию r с областью K, для которой r (k) является элемент T (k) для каждой клавиши k. Таким образом, терминология вводит в заблуждение в том смысле, что "кортеж" действительно больше похож на ассоциативный массив.

Ответ 8

Tuple используется для ссылки на строку в модели реляционной базы данных. Но кортеж имеет небольшую разницу в строке.

Ответ 9

Кортежи - это известные значения, которые используются для связывания таблицы в реляционной БД.

Ответ 10

Кортеж используется для определения фрагмента данных из куба; он состоит из упорядоченного набора одного элемента из одного или нескольких измерений. Кортеж используется для идентификации определенных разделов многомерных данных из куба; кортеж, состоящий из одного члена из каждого измерения в кубе, полностью описывает значение ячейки.