SQLite と ArcGIS
ArcGIS から SQLite データベースに接続してマップを作成し、データに対して空間解析を実行できます。
ArcGIS クライアントから、SQLite データベース ファイルに直接接続します。手順については、「SQLite への接続」をご参照ください。
Esri ST_Geometry タイプまたは SpatiaLite のいずれかを SQLite データベースにインストールして、それに空間データを格納する必要があります。これらのうちの、どちらか一方を使用してください。同じ SQLite データベースで両方を使用することはできません。CreateSQLiteDatabase ArcPy 関数を使用して、これらの空間データ タイプのいずれかを含む SQLite データベースを作成できます。
ArcGIS の SQLite データ
データへのアクセス
SQLite データベースが保存されているフォルダに対する権限を制御することによって、SQLite データベースへのアクセスを制御します。他のデータベースとは異なり、データベースによって認証されるユーザを作成せず、特定のデータベースに対する権限を他のユーザに付与することも行いません。
複数のユーザが SQLite を読み取ることができますが、データベースに対するどのような更新も、別のユーザの更新中に行うべきではありません。たとえば、別のユーザが既存のテーブルにデータを追加しているとき、あるいはデータベースにテーブルを作成しているときに、既存のテーブルにデータを追加したり、データベースにテーブルを作成したりしないでください。
データ タイプ
SQLite は、フィールドが特定のデータ タイプに割り当てられず、データ タイプの定義が厳密に適用されないという点でも、他のデータベースとは異なっています。その代わり、SQLite は、さまざまなデータ タイプの値を格納できる格納クラスを使用します。
ところが、ArcGIS は、1 つのフィールドにつき 1 つのデータ タイプのみを操作することができ、それらのデータ タイプを厳密に適用します。ArcGIS で SQLite データを表示する場合、データ タイプの適用に関するこの違いを知っておく必要があります。
以下の例では、整数フィールドとテキスト フィールドを含むテーブルを作成しています。
CREATE TABLE mytable (
id INTEGER PRIMARY KEY NOT NULL,
item TEXT,
weight INTEGER,
store TEXT;
weight フィールドが整数として定義されているにもかかわらず、SQLite では、小数を含む数値をこのフィールドに格納できます。このフィールドには、テキストさえも格納できます。たとえば、以下の各レコードを挿入できます。
INSERT INTO mytable (id, item, weight, store) VALUES(
1,
“magnetic dual elliptical trainer with seat”,
75,
“CardioPlus Equipment”
);
INSERT INTO mytable (id, item, weight, store) VALUES(
2,
“superfit treadmill4000”,
81.2,
“Sports Pit”
);
INSERT INTO mytable (id, item, weight, store) VALUES(
3,
“serenity yoga mat”,
.4588,
“Aerobic Angels Sporting Goods”
);
INSERT INTO mytable (id, item, weight, store) VALUES(
4,
“swim fins”,
"two",
“The Plunge”
);
ところが、weight フィールドが整数として定義されているため、これらの値は ArcGIS では以下のように表示されます。
id |
item |
weight |
store |
---|---|---|---|
1 |
magnetic dual elliptical trainer with seat |
75 |
CardioPlus Equipment |
2 |
superfit treadmill4000 |
81 |
Sports Pit |
3 |
serenity yoga mat |
0 |
Aerobic Angels Sporting Goods |
4 |
swim fins |
0 |
The Plunge |
どの SQLite データ タイプがどの ArcGIS データ タイプにマッピングされるかの一覧については、「ArcGIS でサポートされている DBMS のデータ タイプ」をご参照ください。