web-dev-qa-db-ja.com

リレーショナルデータベースで「タプル」という用語は何を意味しますか?

Sqlのタプルの意味を説明してください。ありがとうございます。

58
Warrior

ここでの答えのほとんどは正しい軌道に乗っています。ただし、rowはTupleではありません。 Tuples_*_は、名前付きの既知の値のunorderedセットです。したがって、次のタプルは同じものです(リレーショナルタプルの大部分は理論上の構造であるため、仮想のタプル構文を使用しています)。

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

...もちろん、x、y、およびzはすべて整数であると仮定します。また、「重複」タプルなどはないことに注意してください。したがって、上記が等しいだけでなく、それらは同じものです。最後に、タプルには既知の値のみを含めることができます(したがって、nullはありません)。

row_**_は、既知の値または未知の値の名前付きの順序付きセットです(ただし、省略できます)。したがって、次の比較はSQLでfalseを返します。

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

ただし、「偽造」する方法があることに注意してください。たとえば、次のINSERTステートメントを考えます。

_INSERT INTO point VALUES (1, 2, 3)
_

Xが最初、yが2番目、zが3番目であるとすると、このクエリは次のように書き換えられます。

_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が生成されることに注意してください。結局のところ、2つの未知の値が等しいかどうかをどのようにして知ることができますか?

最後に、行が複製される場合があります。言い換えれば、_(1, 2)_と_(1, 2)_は等しいと比較されるかもしれませんが、必ずしも同じことを意味するわけではありません。

これが興味のあるテーマである場合は、CJ Dateによる SQLおよびリレーショナル理論:正確なSQLコードの記述方法 を読むことを強くお勧めします。

_*_リレーショナルモデルに存在するタプルについて話していることに注意してください。これは一般的な数学とは少し異なります。

_**_そして、念のために、SQLのほとんどすべてが行またはテーブルです。したがって、_(1, 2)_は行であり、VALUES (1, 2)は表(1行)です。

[〜#〜] update [〜#〜]:ブログ投稿でこの答えを少し拡張しました ここ

80
Jason Baker

これは短縮された「N-Tuple」です(quadruplequintupleなど)

行セット全体の行です。

あなたが発行する場合:

SELECT  col1, col2
FROM    mytable

、全体の結果はROWSETになり、col1, col2の各ペアはTupleになります。

一部のデータベースは、タプル全体で機能します。

同様に、これを行うことができます:

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

、あるTuplerowset全体が、別のTuplerowset全体と一致することを確認します。

14
Quassnoi

リレーショナルデータベースでは、テーブルは relations(数学的に) です。リレーションはタプルのセットです。したがって、リレーショナルデータベースのテーブル行は、リレーションのタプルです。

関係に関するWiki:

数学(より具体的には集合論と論理)では、リレーションはk個の個体の組み合わせ(kタプル)に真理値を割り当てるプロパティです。通常、このプロパティはk-Tupleのコンポーネント間の可能な接続を記述します。 kタプルの特定のセットについて、プロパティが保持するかどうかに応じて、各kタプルに真理値が割り当てられます。

4
vartec

数学での使用方法が何であれ、RDBMSのタプルは一般にテーブルまたは結果セットの行と見なされます。 RDBMSでは、タプルは順序付けられていません。 MDDBMSのAタプルは、関連するディメンションインスタンス(メンバー)を持つセル内のデータのインスタンスです。

列ファミリデータストアのTupleとは何ですか?

3
user3177983

タプル= 1レコード。 n-Tuple =「n」レコードの順序付きリスト。 Elmasri Navathe本(198ページ3版)。

レコード=順序付きまたは順序なし。

2

私が理解しているように、テーブルにはキーのセットKとドメインKの入力関数Tがあります。テーブルの行または「タプル」は、r(k)は、各キーkのT(k)の要素です。したがって、用語は、「タプル」が実際に連想配列に似ているという点で誤解を招きます。

0

データベーステーブルの行

0
Chand

タプルは、リレーショナルデータベースモデルの行を参照するために使用されます。しかし、タプルには行と少し違いがあります。

0
rashedcs