空間データベースにとって、優れたデータベース設計はそれほど重要ではありませんか?


15

データベースの設計と正規化は、空間データを扱う際によく使用されると強く感じています。

100を超えるフィールドテーブルを備えたデータベースとデータベースを備えたソフトウェアでは、次の点を確認する必要があります。

空間データベースを設計するときに、正規化以外の考慮事項を考慮する正当な理由はありますか?

私は人々が例を求めていると思いますが、ここでは説明できないので、私の質問は100フィールドが問題ではなく、適切な正規化された設計よりも維持しやすいことを意味する人を対象としています。

引数は何ですか?


ArcGISの場合、参照整合性を備えた正規化されたデータベースを実現するのは困難です。これは、ArcGISでサポートされているデータベース機能のみが公開されているためです。これは、リレーショナルデータベースの男として非常にイライラします。
-nw1

回答:


16

空間データベースは、従来のデータベースと同じように扱われるべきだと思います。彼らは本質的に同じことをしていて、高速検索のために大量のデータを保存しています。例として、PostgreSQL / PostGISでは、ジオメトリは単なる別のデータ型です。テキストまたは整数のように。SQL Server 2008でも同じ。Oracleでも同じ。「空間」部分がデータベース内の単なる別のフィールドタイプである場合、それは元のデータベースとは実際にそれと異なりますか?これは、従来のデータベース設計のルールをすべて捨てるべきだということですか?

明らかに、正規化は、従来のデータベースと同様に、あまりにも遠くまで取られる可能性があるため、ニーズに合った最適な設計を見つけることはトレードオフです。

100列のテーブルを持つ非常に非正規化された構造を作成することを計画している場合、今後何が変わる可能性があるかを自問する必要がありますか?行が大幅に増加すると、これはクエリのパフォーマンスにも影響しますか?これは将来、保守性に影響を与えるのでしょうか?

正規化された構造を作成し、ビューを使用してすべてのデータをデータベースクライアント(GISまたは他のクライアント)に公開することの何が問題になっていますか?

これらの質問はすべて、従来のデータベースと空間データベースの両方に当てはまります。あなたが通過する場合http://en.wikipedia.org/wiki/Database_normalizationあなたはそれが同様の空間データベースに適用されることがわかります。

データベースの上で使用しているソフトウェアが高度に非正規化された構造の使用を強制している場合、これは別の引数です。データベースではなくソフトウェアに制約されているため、最適なデータベース設計には選択肢がありません。

簡単な答えは、(私の意見では)データベースの設計は、空間データベースでも従来のデータベースと同じくらい重要だと思います。


1
データの性質に関して、db構造を指示するソフトウェアと「最適な」設計を区別する重要なポイントについて+1。
マットウィルキー

はい、この答えとマットのコメントの両方に同意します。しかし、私が望んでいるのは、なぜこれがそれほど頻繁に守られないのかを誰かが説明できることです。質問を少し編集します。
ニックラスアベン

同意する。私が見つけたもう1つのことは、データベースのパフォーマンスが、正規化するかどうかの決定に影響する可能性があることです。場合によっては、2つのデータベースが使用されることがわかります。1つは正規化データを含む「マスター」データベース、もう1つは表示目的でのみ使用されるセカンダリデータベースです。これには、通常は単一のテーブルに(GIS)データを表示するために必要なものだけが含まれています。
ベレンド

Berendsポイントを拡張するために、この非正規化の原因の1つは、マテリアライズドビューが実装するのが少し難しく、DB固有であることが多いため、通常、非正規化データを格納するために独自のテーブル/データベースを作成することをお勧めします。
アレクサンダー

6

これはよく見ます。これは、従来のGISの人々は調査のバックグラウンドから来ており、データベースのバックグラウンド/理解を持っていないという事実に起因すると感じています。しかし、ますます多くの組織がGISインフラストラクチャをIT部門に移行するにつれて、この変化を見ています。


1
これも私の気持ちですが、説明がポールの議論に似ていること、何らかの形で意図的な選択であることを何らかの形で願っています。それは、非常に多くの空想の言葉でGISのbuissnessに底にデータベースがあるため無知の誤用されたことを見つけるよりもモデル」技術をより多くのローミングサービスを与えるだろう。
ニクラス・アベン

1
申し訳ありませんが、誤用は間違っています。それが正当な理由で甘やかされている場合、それは誤用ではありません。
ニックラスアベン

5

GISソフトウェアレガシー

以前のArcSDEの高コストとSQL Serverの空間データ型の不足(2008年まで)、およびバージョン10までのOracleにより、多くの組織のデータをシェープファイルに格納する以外に選択肢がありませんでした(入札者が入札コストを抑えるため) 。

SQL Serverにネイティブの空間タイプが導入されたことで、ArcSDEは莫大な投資からArcGISに無料で含まれるようになり、組織の空間データの "折り込み"になりました。

ArcGISとSQL Serverを使用している組織には、以前は3つの選択肢がありました。

  1. ArcSDEを購入して空間データを「適切な」SQL Serverデータベースに保存するには、2万以上の料金を支払います。
  2. 空間データをシェープファイル/個人用GDBに保存し、データベース内の残りの組織データにリンクします(またはこれらの属性をDBFにエクスポートします)
  3. GISベンダーを切り替えて、単一のデータベースに空間データを保存します。ただし、新しいGISソフトウェアからのみアクセス可能な形式で保存します

SQL Serverがネイティブの空間タイプを持つと、ほとんどのベンダーは独自の形式ではなくこれを使用しました。つまり、他のアプリケーションが空間データに突然アクセスできることを意味します。ESRIは、ArcSDEをArcGISに統合することでコストを削減するか、空間データをネイティブデータベース形式で保存できるようにする必要がありました。

さらに、空間ビューを作成したり、フィーチャをバックエンドデータベースに簡単にリンクしたりするオプションがなかったため、DBFに関連付けられたシェープファイルに対してArcIMSで実行されるクエリには、すべての必須フィールドと複製を含める必要がありました。

組織上の理由

最近、空間データがネイティブデータベースタイプになるまで、組織内のデータベース管理者によって長い間無視されたり分離されたりしており、GISマネージャーの責任になっていることに他の人も同意します。データベースの設計、正規化、レプリケーション、セキュリティ、およびSQLビューの概念には、非常に異なる特殊なスキルセットが必要になることが多く、習得するにつれて簡単に学ぶことはできません。

コストの理由

データモデルに費やすために多大な時間と労力が必要であることを入札で説明し、このモデルへのデータのクリーニング/インポートはしばしば不可能です。多くの場合、プロジェクトの購入者はGISの分析的観点から来ており、構造化データの重要性を見落としています。


私はあなたが書くもののほとんどを理解し、同意します。ただし、SDEパーツはArcGISサーバーに名前を変更した後に無料で提供されるというのは、この車の派手な色を100,000ドルで購入すると、残りの車を無料で入手できるということとは違います。ArcGISについてはよく知りませんが、SDEパーツのないArcGISサーバーとは何ですか?また、ArcGISサーバーが安いと言う人はいません。SQL Serverの空間タイプがArcGISにどのように影響したかは、実際にはわかりません。しかし、Arc製品は非常に広く普及しているため、Arc道路は人々の空間データに対する考え方に大きな影響を与えることに同意します。
ニックラスアベン

ArcGIS Server以前は、ArcSDEはArcMapおよびArcIMSとは完全に分離されていたため、個別に購入してライセンスを取得する必要がありました。ArcSDEは空間データをSQL Server(または当時Oracle)に格納する唯一の方法であったため、空間データは他の場所に格納されていました。
geographika

わかりました、SDEのパッケージのArcIMSは新しい概念です。Arcmapでは、ユーザーごとに個別のライセンスまたはフローティングが必要です。オフトピックですが、少し興味があります。
ニックラスアベン

大量の追加費用を支払わずにリレーショナルデータベースの空間データにアクセス/保存することは、新しいコンセプトではありませんでした。esri.com/software/arcgis/arcsde/index.html
geographika

ArcGISサーバーは高額ではないのですか?私が知る限り、sdeなしのarcmapではsqlserver fomatまたはpostgis形式(ziggisなし)を使用できないことを知っています。
ニックラスアベン

4

100列のテーブルとは、複数の入力の「マスターカバレッジ」オーバーレイを構築することで得られる出力の種類を意味すると想定しています。はい、これらはArc / INFOワークフローの成果物です。しかし、防御のために、それらはOLAPの意図的に非正規化されたテーブルであると考えることもできます。データの更新ではなく、クエリ処理に主に使用されているため、非正規化形式はある程度意味があります。スタースキーマに似ていますが、ポイントはありません。OK、弱いお茶ですが、それでも何かがあると思います。


1
はい、ポール。よくわからない単語を含む説明がそこにあることは知っていました:-)。非常に興味深いのは、この背後に意図的な歴史があることです。すごい!
ニックラスアベン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.