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



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

1464   10  

10 ответов:

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

(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 и реляционная теория: Как написать точный SQL-код по дате CJ.

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

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

обновление: я немного расширил этот ответ в блоге здесь.

это укороченный "N-tuple" (как в quadruple,quintuple etc.)

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

если вы:

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.

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

Вики по отношениям:

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

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

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

кортеж = 1 запись; Н-кортеже = упорядоченный список в N записей; книги Navathe соответствует (стр. 198 3-е издание).

запись = упорядоченная или неупорядоченная.

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

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

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

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

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

Comments

    Ничего не найдено.