5

テーブル内のタプル(行など)に関する順序の概念はないことを学びましたが、ウィキペディアによると、「タプルは要素の順序付きリストです」。属性には順番があるということですか?はいの場合、なぜそれらが異なる方法で扱われるのでしょうか? テーブルに別の列を追加することはできませんでしたか? (これがタプルに順序がない理由です)

「この表記法では、属性と値のペアは任意の順序で表示されます。」これは、属性に順序がないことを意味しますか?

4

2 に答える 2

7

タプルには、いわば2種類あります。「純粋な数学」があり、実際にタプルは通常「順序付けられた値のリスト」として定義されます。したがって、数学理論では、「タプルの最初の値」などについて話すのは理にかなっています。これは、ウィキペディアの記事が参照している意味またはコンテキストである可能性があります。

Haskell 言語はこの種のタプルをサポートしており、たとえば、そのようなタプルから「最初の」値を抽出する fst() 演算子もあります。

しかし、Codd は、順序付きリストとしてのタプルのこの数学的概念をデータ管理の分野に適用する場合、これは非常に非現実的であることに気付きました。データ管理において、彼は序数ではなく属性名による値のアドレス指定可能性を望んでいました。実際、テーブルから「5 つのうちの 2 番目の属性」が削除された場合の壊滅的な結果を想像してみてください。同じテーブルの「3 番目」と「4 番目」の属性に対応するすべてのプログラムを発明し、適応させる必要があります。

そのため、リレーショナル モデルでは、タプルは代わりに名前付き値のセットであり、その結果、データのリレーショナル モデルで役割を果たす種類のタプルでは、​​実際には値の順序付けの概念はありません。

そして、その他の応答で示されているように、SQL と、関係理論からの冒涜的な逸脱があります。SQL では、タプルと見出しの属性の順序付けは非常に意味があり、その結果はいたるところにあります。FK 宣言では、それぞれの参照属性と参照属性の対応は、名前ではなく序数によるものです。その他のケースは、UNION と EXCEPT です。テーブル T、列 X および Y を同じ型とします。

T から X、Y を選択 T から Y、X を選択

それ自体は無効ではありませんが、標準では、結果の列名はシステム定義 (!) であると規定されています。「賢明なことを行い」、これから逸脱し、それぞれ X および Y という名前の列を持つテーブルを生成する実装は、前者の式が同一ではないという結果をユーザーに直面させます

T から Y、X を選択 T から X、Y を選択

(列の順序 X、Y は Y、X とは別の順序であるため、見出しが等しくなく、その結果、表も等しくありません。)

T から X、Y を選択 T から Y、X を選択以外

多くの初心者のSQLユーザーがかなり長い間頭を悩ませている結果が得られます。

于 2012-09-12T13:45:34.217 に答える
5

通常理解され使用されるリレーショナル データベース モデルの操作は、リレーション内の属性の順序に依存しません。関係変数の属性は、位置ではなく常に名前で識別できます。ただし、リレーショナル データベース理論で使用される表記は、常に属性名 (または属性タイプ) を指定するとは限らず、順序付けられた属性を暗示することもあります。これは、リレーショナル モデルの構造や動作ではなく、主に書き方の問題です。これらの異なる「名前付き」および「順序付けられた」パースペクティブについては、次のリファレンスでさらに説明しています。 http://webdam.inria.fr/Alice/pdfs/Chapter-3.pdf

リレーショナル モデルに関する EFCodd の初期の論文では、順序付きバージョンと順序なしバージョンの両方のリレーションを同時にサポートするリレーショナル システムが実際に提案されました。その考えは、コッド自身でさえ、それ以来忘れられているか無視されているようです. これは、最新のリレーショナル データベース理論の一部ではありません。

残念ながら、SQL には間違いなく列順序の概念があります。これは SQL 構文とセマンティクスの重要な部分であり、ISO SQL 標準に準拠するためにすべての SQL DBMS がサポートするものです。SQL はリレーショナルではありません。これは、SQL がリレーショナル モデルと異なる点の 1 つにすぎません。SQL モデルとリレーショナル モデルのあいまいな違いは、SQL も使用するリレーショナル モデルの学生にある程度の混乱を引き起こします。

于 2012-09-11T12:45:22.513 に答える