Что такое кортеж sql

Использование кортежных выражений

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

Любой кортеж, который делает ссылку на один или более недопустимых элементов, считается пустым кортежем.

Полное выражение идентификатора кортежа состоит из одного или более явно заданных элементов, заключенных в скобки:

Кортеж может иметь полную спецификацию, содержать неявные элементы или единственный элемент.

Кортежи и неявные элементы

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

Любое измерение без явной ссылки на него в пределах одного кортежа считается неявной ссылкой. Элемент измерения с неявной ссылкой зависит от структуры этого измерения и связей атрибутов, определенных внутри него. Если есть явная ссылка на иерархию в том же измерении, в котором находится иерархия с неявной ссылкой, и определена прямая или косвенная связь между иерархиями с явной и неявной ссылками, кортеж ведет себя так, как если бы он содержал элемент иерархии с неявной ссылкой, существующий вместе с элементом иерархии с явной ссылкой. Например, если куб содержит измерение «Заказчик» с атрибутами «Город» и «Страна» и между этими двумя атрибутами определена такая связь, что для «Города» существует одна «Страна», а «Страна» может содержать много «Городов», явное включение города «Лондон» в кортеж создает неявную ссылку на страну «Великобритания». Но если связи атрибутов не определены, если связь существует в обратном направлении (например, «Город» имеет связь со «Страной», но невозможно определить город, в котором проживает человек, зная лишь страну проживания) или если не определены прямые связи между двумя атрибутами (определена связь между «Заказчиком» и «Городом» и «Заказчиком» и «Страной», но нет связи между «Городом» и «Страной»), действуют следующие правила.

Если у иерархии с неявной ссылкой есть элемент по умолчанию, этот элемент добавляется к кортежу.

Если в иерархии, на которую ссылается неявная ссылка, нет элемента по умолчанию, используется элемент (все) иерархии по умолчанию.

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

Кортежи с одним элементом

Если кортежное выражение имеет один-единственный элемент, то многомерное выражение преобразует этот элемент в кортеж из одного элемента для вычисления этого выражения. Другими словами, применение выражения элемента [Measures].[TestMeasure] вместо кортежного выражения функционально эквивалентно кортежному выражению ( [Measures].[TestMeasure] ).

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

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

ОТВЕТЫ

Ответ 1

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответ 2

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

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

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

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

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

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

который проверяет, что целое 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

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

Что такое кортеж sql

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

Для начала покажем смысл этих понятий на примере отношения СОТРУДНИКИ, содержащего информацию о сотрудниках некоторой организации:

4.1.1. Тип данных

Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования. Обычно в современных реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких как "деньги"), а также специальных "темпоральных" данных (дата, время, временной интервал). Достаточно активно развивается подход к расширению возможностей реляционных систем абстрактными типами данных (соответствующими возможностями обладают, например, системы семейства Ingres/Postgres). В нашем примере мы имеем дело с данными трех типов: строки символов, целые числа и "деньги".

4.1.2. Домен

Понятие домена более специфично для баз данных, хотя и имеет некоторые аналогии с подтипами в некоторых языках программирования. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат "истина", то элемент данных является элементом домена.

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

Следует отметить также семантическую нагрузку понятия домена: данные считаются сравнимыми только в том случае, когда они относятся к одному домену. В нашем примере значения доменов "Номера пропусков" и "Номера групп" относятся к типу целых чисел, но не являются сравнимыми. Заметим, что в большинстве реляционных СУБД понятие домена не используется, хотя в Oracle V.7 оно уже поддерживается.

4.1.3. Схема отношения, схема базы данных

Схема отношения — это именованное множество пар <имя атрибута, имя домена (или типа, если понятие домена не поддерживается)>. Степень или "арность" схемы отношения — мощность этого множества. Степень отношения СОТРУДНИКИ равна четырем, то есть оно является 4-арным. Если все атрибуты одного отношения определены на разных доменах, осмысленно использовать для именования атрибутов имена соответствующих доменов (не забывая, конечно, о том, что это является всего лишь удобным способом именования и не устраняет различия между понятиями домена и атрибута).

Схема БД (в структурном смысле) — это набор именованных схем отношений.

4.1.4. Кортеж, отношение

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

Отношение — это множество кортежей, соответствующих одной схеме отношения. Иногда, чтобы не путаться, говорят "отношение-схема" и "отношение-экземпляр", иногда схему отношения называют заголовком отношения, а отношение как набор кортежей — телом отношения. На самом деле, понятие схемы отношения ближе всего к понятию структурного типа данных в языках программирования. Было бы вполне логично разрешать отдельно определять схему отношения, а затем одно или несколько отношений с данной схемой.

Однако в реляционных базах данных это не принято. Имя схемы отношения в таких базах данных всегда совпадает с именем соответствующего отношения-экземпляра. В классических реляционных базах данных после определения схемы базы данных изменяются только отношения-экземпляры. В них могут появляться новые и удаляться или модифицироваться существующие кортежи. Однако во многих реализациях допускается и изменение схемы базы данных: определение новых и изменение существующих схем отношения. Это принято называть эволюцией схемы базы данных.

Обычным житейским представлением отношения является таблица, заголовком которой является схема отношения, а строками — кортежи отношения-экземпляра; в этом случае имена атрибутов именуют столбцы этой таблицы. Поэтому иногда говорят "столбец таблицы", имея в виду "атрибут отношения". Когда мы перейдем к рассмотрению практических вопросов организации реляционных баз данных и средств управления, мы будем использовать эту житейскую терминологию. Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД.

Реляционная база данных — это набор отношений, имена которых совпадают с именами схем отношений в схеме БД.

Как видно, основные структурные понятия реляционной модели данных (если не считать понятия домена) имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *