18.2. Lesson: DBマネージャを使用してQGISで空間データベースと連携する

すでにQGISや他のツールで多くのデータベース操作を実行する方法を見てきましたが、今度は、この同じ機能の多くに加えてさらに管理指向のツールを提供するDB管理者ツールを検討します。

このレッスンの目標: QGISのDBマネージャを使用して、空間データベースと対話する方法を学びます。

18.2.1. basic Follow Along: DBマネージャでPostGISデータベースを管理する

最初にDBマネージャのインターフェイスを開く必要があります。それには データベース --> DBマネージャ --> DBマネージャ メニューを選択するか、ツールバー上のDBマネージャアイコンを選択します。

dbManager

You should already see the previous connections we have configured and be able to expand the myPG section and its public schema to see the tables we have worked with in previous sections.

気づくかもしれない最初の事は、今データベースに含まれるスキーマに関するいくつかのメタデータを見ることができることです。

../../../_images/db_manager_dialog.png

Schemas are a way of grouping data tables and other objects in a PostgreSQL database and a container for permissions and other constraints. Managing PostgreSQL schemas is beyond the scope of this manual, but you can find more information about them in the PostgreSQL documentation on Schemas. You can use the DB Manager to create new Schemas, but will need to use a tool like pgAdmin III or the command line interface to manage them effectively.

DBマネージャは、データベース内のテーブルを管理するために使用できます。すでに、コマンドライン上でテーブルを作成し管理するためのさまざまな方法を見てきていますが、ここでDBマネージャでこれを行う方法を見てみましょう。

まず、ツリー内の名前をクリックして 情報 タブの中を見ることで、テーブルのメタデータを見てみることは有用です。

../../../_images/table_info.png

このパネルでは、テーブルについての 一般情報 も、ジオメトリと空間参照系に関してPostGIS拡張が維持している情報を見ることができます。

情報 タブで下にスクロールした場合、表示しているテーブルに対して、 フィールド制約索引 についての詳細な情報を見ることができます。

../../../_images/table_info_fields.png

単にレイヤーツリーにレイヤーの属性テーブルを表示することによって、これを行う可能性がありますほとんど同じ方法でデータベース内のレコードを見てDBマネージャを使用することも非常に便利。 テーブル タブを選択して、データを閲覧できます。

../../../_images/table_panel.png

地図プレビューでレイヤーのデータが表示される プレビュー タブもあります。

ツリー中のレイヤーを右クリックし、 キャンバスに追加 をクリックすると地図にこのレイヤーが追加されます。

これまでのところはデータベース、そのスキーマとテーブル、それらのメタデータを閲覧しているだけですが、おそらく追加の列を追加するとかテーブルを変更したい場合はどう?DBマネージャでは、直接これを行うことができます。

  1. ツリーで、編集するテーブルを選択します

  2. Select Table ► Edit Table from the menu, to open the Table Properties dialog.

    ../../../_images/edit_table.png

列を追加するには、このダイアログを使用してジオメトリ列を追加し、既存の列を編集したり、列を完全に削除できます。

制約 タブを使用、どのフィールドが主キーとして使用されるか、既存の制約を削除するために管理できます。

../../../_images/constraints_panel.png

索引 タブは、空間索引と通常の索引の両方を追加および削除するために使用できます。

../../../_images/indexes_panel.png

18.2.2. basic Follow Along: 新しいテーブルを作成する

データベース内の既存のテーブルでの作業のプロセスを一通り終えましたので、ここでDB マネージャを使用して新しいテーブルを作成してみましょう。

  1. If it is not already open, open the DB Manager window, and expand the tree until you see the list of tables already in your database.

  2. メニューから テーブル --> テーブルを作成 を選択し、 [テーブルの作成]ダイアログを開きます。

  3. Use the default Public schema and name the table places.

  4. Add the id, place_name, and elevation fields as shown below

  5. Make sure the id field is set as the primary key.

  6. Click the checkbox to Create geometry column and make sure it is set to a POINT type and leave it named geom and specify 4326 as the SRID.

  7. 空間索引を作成 の横にあるチェックボックスをクリックし、作成 をクリックしてテーブルを作成します。

    ../../../_images/create_table.png
  8. テーブルが作成されたことを知らせるダイアログを閉じ、 閉じる をクリックして「表を作成」ダイアログを閉じます。

これで、DBマネージャで、テーブルを検査できますし、もちろんその中にデータがないことがわかります。ここからレイヤーのメニューで 編集を切替 できます、テーブルに場所の追加を開始します。

18.2.3. basic Follow Along: 基本的なデータベース管理

The DB Manager will also let you do some basic database administration tasks. It is certainly not a substitute for a more complete database administration tool, but it does provide some functionality that you can use to maintain your database.

データベーステーブルは、多くの場合、非常に大きくなることがありえますし、頻繁に変更されているテーブルは、もはやPostgreSQLで必要とされてないレコードの残渣を残したままにすることがあります。 VACUUM コマンドでは、ガベージコレクションのようなものをして、パフォーマンス向上のためにテーブルを圧縮したりオプションで分析します。

Let us take a look at how we can perform a VACUUM ANALYZE command from within DB Manager.

  1. Select one of your tables in the DB Manager Tree

  2. Select Table ► Run Vacuum Analyze from the menu

PostgreSQL will now perform the operation. Depending on how big your table is, this may take some time to complete.

You can find more information about the VACUUM ANALYZE process in the PostgreSQL Documentation on VACUUM ANALYZE.

18.2.4. basic Follow Along: DB マネージャでSQLクエリを実行する

DBマネージャはまた、データベーステーブルに対してクエリを記述し、結果を表示するための方法を提供します。すでに ブラウザ パネルの中のこの種の機能を見てきましたが、再びここでDBマネージャでそれを見てみましょう。

  1. Select the lines table in the tree.

  2. [DB マネージャ]ツールバーで SQLウィンドウ ボタンを選択します。

    ../../../_images/sql_window_btn.png
  3. 次の SQLクエリ を与えられたスペースに構成します

    select * from lines where roadtype = 'major';
    
  4. クエリを実行するには、 実行(F5) ボタンをクリックします。

  5. Result パネルに一致するレコードが表示されているはずです。

    ../../../_images/sql_results.png
  6. 新しいレイヤーとしてロード のチェックボックスをクリックして地図に結果を追加します。

  7. Select the id column as the Column with unique integer values and the geom column as the Geometry column.

  8. Enter roads_primary as the Layer name (prefix).

  9. 今すぐロード! をクリックして地図に新しいレイヤーとして結果をロードします。

    ../../../_images/sql_add_to_map.png

クエリと一致したレイヤーは今、地図上に表示されます。もちろんこのクエリツールは、以前のモジュールとセクション中で見たものなど、任意のSQLコマンドを実行するために使用できます。

18.2.5. DBマネージャを使用したデータベースへのデータのインポート

コマンドラインツールを使用して空間データベースにデータをインポートする方法をすでに見てきました。次に、DBマネージャを使用してインポートを行う方法を学習しましょう。

  1. [DBマネージャ]ダイアログボックスのツールバー上の レイヤー/ファイルを読み込み ボタンをクリックしてください。

    ../../../_images/import_layer_btn.png
  2. Select the urban_33S.shp file from exercise_data/projected_data as the input dataset

  3. フォームの値の一部を事前に埋めるために、 オプションを更新 ボタンをクリックしてください。

  4. 新しいテーブルを作成 オプションが選択されていることを確認してください

  5. Specify the Source SRID as 32722 and the Target SRID as 4326

  6. 空間索引を作成 の横にあるチェックボックスをオンにします。

  7. Click OK to perform the import

    ../../../_images/import_urban.png
  8. 読み込みが成功したことを知らせるダイアログを閉じます

  9. Click the Refresh button on the DB Manager Toolbar

You can now inspect the table in your database by clicking on it in the Tree. Verify that the data has been reprojected by checking that the Spatial ref: is listed as WGS 84 (4326).

../../../_images/urban_info.png

ツリー中のテーブルを右クリックして キャンバスに追加 を選択すると地図にレイヤーとしてテーブルが追加されます。

18.2.6. DBマネージャを使用したデータベースからのデータの書き出し

DB マネージャは空間データベースからデータを書き出すためにも当然使用できますので、それがどのように行われるかを見てみましょう。

  1. Select the lines layer in the Tree and click the Export to File button on the toolbar to open the Export to vector file dialog.

  2. Click the ... button to select the Output file and save the data to your exercise_data directory as urban_4326.

  3. Set the Target SRID as 4326.

  4. OK をクリックして書き出しを初期化します。

    ../../../_images/export_to_vector.png
  5. 書き出しが成功したことを知らせるダイアログを閉じ、DBマネージャを閉じます。

ブラウザパネルで作成したシェープファイルを検査できます。

../../../_images/inspect_vector_output.png

18.2.7. In Conclusion

You have now seen how to use the DB Manager interface in QGIS to manage your spatial databases, to execute SQL queries against your data and how to import and export data.

18.2.8. What's Next?

Next, we will look at how to use many of these same techniques with SpatiaLite databases.