Oracle、DB2、SQL Serverには新しい列XMLが含まれています。私はDB2を使用して開発しており、XMLにリストが含まれている場合は、データベース設計から1NFを破ることができます。SQLXMLは1NFを壊しますか?
SQLXMLが1NFを壊すことはできないと誤っていますか?
はOracle、DB2、SQL Serverには新しい列XMLが含まれています。私はDB2を使用して開発しており、XMLにリストが含まれている場合は、データベース設計から1NFを破ることができます。SQLXMLは1NFを壊しますか?
SQLXMLが1NFを壊すことはできないと誤っていますか?
はリレーショナルモデルは、種類や場所タイプの複雑さには特に制限に直交する、ありがとうございます。型は、任意の複雑なものでもよく、その型を含むリレーションに対してすべての関係演算がサポートされている限り、おそらくドキュメント、画像、ビデオなどを含むことができます。 First Normal Formは実際にはリレーションスキーマの定義にすぎません。したがって、基本的にXML型は1NFで許されます。
しかし、Oracle、DB2、およびMicrosoft SQL Serverは本当にリレーショナルではなく、必ずしもリレーションおよびリレーショナル演算を忠実に表すわけではありません。たとえば、SQL Serverは、xがXML列の場合、σ(x = x)Rまたはπ(x)Rのような演算は不可能なXML値の比較をサポートしていません。私はDB2とOracleで同じことを試していません。このようなテーブルが1NFを満たすと正しく言えるかどうかは、XMLがリレーションで動作すると予想されるように動作しない「特別な」データとして実装されるためです。このような制限があるため、重要なのは、選択したDBMSの独自のXMLタイプが実際にあなたの目的に合っているかどうかということです。
SQLでは、重複行と値以外のNULLを使用して1NFを破棄することが既に許可されているため、比較をサポートしていないXML型は、コースに対して同等です。とにかく、良い答え。 – reaanb
SQL standardは、XMLデータ型、そのデータ型に関するセマンティクスと関数(「SQL/XML」)をその一部14に定義しています。 XML列に数バイトを「合法的に」格納することも、データベース全体を単一のXML値に入れることもできます。これはユーザーの責任で、はい、古典的なデータベース設計を破ります。しかし、残りのデータベースが1NFで、XML型の列がいくつかの特殊なペイロード(アプリケーションデータ、設定、法律文書、デジタル署名など)にのみ使用されている場合、それらは素晴らしい組み合わせになります。
すでに1NFを中断できる他のデータ型とSQL機能があります。上記と同じですが、それはユーザーの責任です。
XMLのビューに少し依存しますが、それはあなたのドメインに依存します。例として、2バイトのバイト配列フィールドは、個々のバイトがこれらのバイトが一緒になってドメイン内の単一の値を形成する場合は、破損しません。同様に、XMLは、1NFを破ることなく、または複数の別々のコンテンツ値を含むことで、それを破るモノリシックな値として見ることができます。 –
BLOBに格納されているコンテンツはどうですか? –
@data_henrikでは、BLOBを照会することはできませんが、xmlを照会することはできます。 – dalcorta