SQLのタプルの意味を説明してください?ありがとう..
10 に答える
ここでの答えのほとんどは正しい方向に進んでいます。ただし、行はタプルではありません。 タプル*
は、名前が付いた順序付けられていない既知の値のセットです。したがって、次のタプルは同じものです(リレーショナルタプルは主に理論的な構成であるため、架空のタプル構文を使用しています)。
(x=1, y=2, z=3)
(z=3, y=2, x=1)
(y=2, z=3, x=1)
...もちろん、x、y、zがすべて整数であると仮定します。また、「重複した」タプルなどは存在しないことに注意してください。したがって、上記が等しいだけでなく、同じものです。最後に、タプルには既知の値のみを含めることができます(したがって、ヌルは含めることができません)。
行**
は、名前が付いた既知または未知の値の順序付けられたセットです(ただし、省略される場合があります)。したがって、次の比較は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)
は等しいと比較されるかもしれませんが、それは必ずしもそれらが同じものであることを意味するわけではありません。
これが興味のあるテーマである場合は、 SQLとリレーショナル理論: CJ日付による正確なSQLコードの記述方法を読むことを強くお勧めします。
*
タプルはリレーショナルモデルに存在するため、一般的な数学とは少し異なります。
**
念のために言っておきますが、SQLのほぼすべてが行またはテーブルです。したがって、(1, 2)
は行であり、VALUES (1, 2)
はテーブル(1行)です。
更新:私はここのブログ投稿でこの答えを少し拡張しました。
短縮された " 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
リレーショナル データベースでは、テーブルは(数学的な意味での)リレーションです。リレーションはタプルのセットです。したがって、リレーショナルデータベースのテーブル行は関係のあるタプルです。
関係に関するウィキ:
数学 (より具体的には、集合論と論理) では、関係とは、k 個の個体の組み合わせ (k タプル) に真理値を割り当てるプロパティです。通常、プロパティは、k-タプルのコンポーネント間の可能な接続を記述します。k タプルの特定のセットについて、プロパティが保持されるかどうかに応じて、各 k タプルに真理値が割り当てられます。
数学での用途が何であれ、RDBMS のタプルは一般にテーブルまたは結果セットの行と見なされます。RDBMS では、タプルは順不同です。MDDBMS のタプルは、関連付けられたディメンション インスタンス (メンバー) を持つセル内のデータのインスタンスです。
列ファミリー データ ストアのタプルとは
タプルは、リレーショナル DB でテーブルを関連付けるために使用される既知の値です。
データベース テーブルの行
タプルは、キューブからのデータのスライスを定義するために使用されます。これは、1 つ以上のディメンションからの 1 つのメンバーの順序付きコレクションで構成されます。タプルは、キューブから多次元データの特定のセクションを識別するために使用されます。キューブ内の各ディメンションの 1 つのメンバーで構成されるタプルは、セル値を完全に記述します。