データベースにテーブルを作成する、またはテーブルに列を追加すると、それらの列は特定のデータ タイプとして作成されます。データ タイプとは、有効な値、データで実行できる操作、およびその列のデータがデータベースに格納される方法を識別するための分類のことを指します。
ArcGIS からデータベース テーブルにアクセスすると、特定のデータ タイプを操作できます。カタログ ツリーの [Database Connections] ノードや ArcMap のクエリ レイヤーからデータベース テーブルにアクセスする場合、ArcGIS はサポートされていないデータ タイプを除外します。データベース テーブルに直接アクセスする場合、サポートされていないデータ タイプは ArcGIS インターフェイスには表示されず、ArcGIS からは編集できません。同様に、サポートされていないデータ タイプを含むテーブルを ArcGIS でコピーする場合、サポートされているデータ タイプのみがコピーされます。テーブルを別のデータベースやジオデータベースに貼り付けるときも、サポートされていないデータ タイプの列は対象外となります。
ArcGIS でフィーチャクラスまたはテーブルを作成したり、ArcGIS を使用して既存のテーブルまたはフィーチャクラスに列を追加したりするとき、フィールドに割り当てることのできる ArcGIS データ タイプは 12 種類あります。これらのタイプに対応しないデータベースのデータ タイプは、ArcGIS クライアントアプリケーションでは直接使用できません。
最初の列は ArcGIS データ タイプです。2 番目の列は、データベースに作成される SQL Server のデータ タイプです。3 番目の列は、ArcGIS で表示するときに、ArcGIS データ タイプにマップされるその他の SQL Server のデータ タイプ (存在する場合) を示しています。
ArcGIS データ タイプ | 作成された SQL Server のデータ タイプ | 表示可能なその他の SQL Server のデータ タイプ | 注意事項 |
---|---|---|---|
BLOB | VARBINARY(MAX) | BINARY、IMAGE、TIMESTAMP、VARBINARY(n) | |
DATE | DATETIME2(7) | DATETIME2(n)、DATETIME、SMALLDATETIME | |
DOUBLE | NUMERIC(p,s) | DECIMAL、FLOAT、MONEY、SMALLMONEY | ArcGIS で指定した精度と縮尺が、データベースに作成されるデータ タイプの結果に影響を与える場合があります。詳細は、「ArcGIS フィールド データ タイプ」をご参照ください。 |
FLOAT | NUMERIC(p,s) | REAL | ArcGIS で指定した精度と縮尺が、データベースに作成されるデータ タイプの結果に影響を与える場合があります。詳細は、「ArcGIS フィールド データ タイプ」をご参照ください。 |
GEOMETRY | INT, GEOMETRY, GEOGRAPHY | エンタープライズ ジオデータベースでは、作成される SQL Server のデータ タイプは、フィーチャクラスの作成時に使用されたコンフィグレーション キーワードの GEOMETRY_STORAGE パラメーターの設定によって変わります。SDEBINARY = INT、GEOMETRY = GEOMETRY 列、GEOGRAPHY = GEOGRAPHY 列。 デスクトップおよびワークグループ ジオデータベースでは、常に GEOMETRY タイプが使用されます。 フィーチャクラスの作成時に、データベースで GEOMETRY または GEOGRAPHY のどちらを使用するかを指定します。 ArcGIS は、次のジオメトリ サブタイプをサポートしていません。
| |
GLOBAL ID | UNIQUEIDENTIFIER | ジオデータベースでのみサポートされています。 | |
GUID | UNIQUEIDENTIFIER | ||
LONG INTEGER | INT | ||
RASTER | INT, ST_RASTER | ラスター データ タイプは、ジオデータベースのみでサポートされます。 デスクトップおよびワークグループ ジオデータベースでは、ラスター タイプは常に INT データ タイプとして作成されます。 エンタープライズ ジオデータベースでは、作成される SQL Server データ タイプは、ラスター列の作成時に使用されるコンフィグレーション キーワードによって異なります。このキーワードの RASTER_STORAGE パラメーターが BINARY に設定された場合は INT 列が作成され、ST_RASTER に設定された場合は ST_Raster 列が作成されます。 ST_Raster を使用する場合は、別途、エンタープライズ ジオデータベースに ST_Raster を構成する必要があります。手順については、「SQL Server での ST_Raster タイプのインストール」をご参照ください。 | |
OBJECT ID | INT(4) when created in an enterprise geodatabase INTEGER with IDENTITY property when created in a database | ArcGIS の ObjectID タイプは、テーブル (またはフィーチャクラス) に登録された RowID 列です。1 つのテーブルにつき、1 つだけ存在します。 | |
SHORT INTEGER | SMALLINT | BIT、TINYINT | |
TEXT | VARCHAR, NVARCHAR, VARCHAR(MAX), NVARCHAR(MAX) | CHAR、NCHAR |
テキスト データ タイプ
SQL Server データベースで VARCHAR または VARCHAR(MAX) フィールドを作成する場合、ArcGIS で表示するときには ArcGIS TEXT データ タイプにマップされます。ArcGIS から SQL Server データベースに TEXT フィールドを作成する場合、NVARCHAR または NVARCHAR(MAX) のいずれかが使用されます。
エンタープライズ ジオデータベースでは、UNICODE_STRING コンフィグレーション パラメーターが FALSE に設定されており、テキスト フィールドが 7,999 文字以下の場合、VARCHAR が使用されます。
UNICODE_STORAGE コンフィグレーション パラメーターが FALSE に設定されており、テキスト フィールドが 8,000 文字以上の場合、VARCHAR(MAX) が使用されます。
UNICODE_STRING コンフィグレーション パラメーターが TRUE に設定されており、テキスト フィールドが 3,999 文字の場合、NVARCHAR が使用されます。
UNICODE_STORAGE コンフィグレーション パラメーターが TRUE に設定されており、テキスト フィールドが 4,000 文字以上の場合、NVARCHAR(MAX) が使用されます。
ジオメトリ データ タイプ
表に示すように、ArcGIS は、Compressed Binary、SQL Server geometry、および SQL Server geography という 3 種類のジオメトリ データ タイプを SQL Server に作成して操作できます。ArcGIS での geometry または geography の使用の詳細については、「SQL Server の空間タイプと ArcGIS」をご参照ください。
Compressed Binary
Esri Compressed Binary 格納タイプは、バイナリ格納メカニズムを使用してフィーチャ ジオメトリを格納します。Compressed Binary ジオメトリ格納は、ジオデータベースでのみ使用できます。Compressed Binary フィーチャクラスは、ビジネス テーブル、フィーチャ テーブル、空間インデックス テーブルという 3 つのテーブルで構成されます。
クライアント アプリケーションはジオメトリを整合チェックした後、ジオメトリ データを圧縮してジオデータベースに送信します。ジオデータベース側では、データは Compressed Binary 形式でフィーチャ テーブル (F テーブル) に格納されます。クライアント側でジオメトリを圧縮すると、データベース サーバーの負荷が軽減され、ジオメトリの送信にかかる時間が短縮されます。データの格納に必要な領域を最大で 40% 削減することで、空間データの効率的な格納と取得が可能になります。
ビジネス テーブルには属性と空間列が含まれています。空間列は、フィーチャ テーブルと空間インデックス テーブルへのキーとなります。
ビジネス テーブルとフィーチャ テーブル間のリレーションシップは、空間列とフィーチャ ID (FID) 列で管理されます。ArcGIS によって管理されるこのキーは一意です。
SQL Server geometry
geometry タイプの要約を次に示します。geometry タイプの詳細と使用方法については、Microsoft SQL Server のドキュメントをご参照ください。
- geometry タイプは、XY 座標系をサポートしています。
- レンダリングと空間的な比較には、平面 (平面地球、ユークリッド) の計算と頂点間の直線内挿が使用されます。
- OGC (Open Geospatial Consortium) の Simple Features for SQL Specification バージョン 1.1.9 に従い、SQL MM、ISO 規格に準拠しています。
SQL Server geography
以下では、geography タイプについてまとめます。geography タイプの詳細と使用方法については、Microsoft SQL Server のドキュメントをご参照ください。
- geography タイプは、GPS の緯度と経度など、多くの標準地理座標系をサポートしています。
Microsoft では、SQL Server データ ディクショナリで定義されている SRID と地理座標系を使用するように求めています。
- 計算と空間比較には、楕円 (丸い地球) モデルと、頂点間の線分の大楕円内挿が使用されます。
- 地球 (回転楕円体) 規模のレイヤー範囲を使用します。
データの座標は、地球規模の範囲を超えることはできません。
- SQL Server 2008 および 2008 R2 では、フィーチャは 1 つの半球より小さい必要があります。
- ArcGIS で使用するとき、SQL Server 2008 または 2008 R2 を使用している場合は、フィーチャに Z 値または M 値の座標は使用できません。
ラスター データ タイプ
SQL Server のジオデータベースで使用されるデフォルトのラスター タイプは、整数タイプです。SQL を使用してジオデータベース ラスターにアクセスする場合、ST_Raster タイプを使用するように SQL Server のエンタープライズ ジオデータベースを構成できます。
ST_Raster オブジェクト タイプの定義方法の詳細については、「ST_Raster データ タイプ」をご参照ください。