Важно

Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.

18.2. Урок: Использование DB Manager для работы с пространственными базами данных в QGIS

Мы уже видели, как выполнять многие операции с базами данных в QGIS, а также с помощью других инструментов, но теперь пришло время рассмотреть инструмент DB Manager, который предоставляет большую часть тех же функций, а также более ориентированные на управление инструменты.

Цель этого урока: Научиться взаимодействовать с пространственными базами данных с помощью QGIS DB Manager.

18.2.1. ★☆☆ Следуйте за мной: Управление базами данных PostGIS с помощью DB Manager

Сначала нужно открыть интерфейс DB Manager, выбрав База данных ► DB Manager ► DB Manager в меню или выбрав иконку dbManager DB Manager на панели инструментов.

Вы уже должны увидеть предыдущие соединения, которые мы настраивали, и сможете развернуть раздел myPG и его схему public, чтобы увидеть таблицы, с которыми мы работали в предыдущих разделах.

Первое, что вы можете заметить, это то, что теперь вы можете увидеть некоторые метаданные о схемах, содержащихся в вашей базе данных.

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

Схемы - это способ группировки таблиц данных и других объектов в базе данных PostgreSQL, а также контейнер для разрешений и других ограничений. Управление схемами PostgreSQL выходит за рамки данного руководства, но вы можете найти дополнительную информацию о них в документации по схемам PostgreSQL <https://www.postgresql.org/docs/9.1/ddl-schemas.html>`_. Вы можете использовать DB Manager для создания новых схем, но для эффективного управления ими вам понадобится такой инструмент, как pgAdmin III или интерфейс командной строки.

DB Manager также можно использовать для управления таблицами в вашей базе данных. Мы уже рассмотрели различные способы создания и управления таблицами в командной строке, а теперь давайте рассмотрим, как это сделать в DB Manager.

Во-первых, полезно просто посмотреть метаданные таблицы, щелкнув на ее имени в дереве и заглянув на вкладку Информация.

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

На этой панели вы можете увидеть Общую информацию о таблице, а также информацию, которую расширение PostGIS хранит о геометрии и пространственной системе отсчета.

Если прокрутить вниз вкладку Информация, можно увидеть более подробную информацию о Полях, Ограничениях и Индексах для просматриваемой таблицы.

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

Также очень полезно использовать DB Manager для простого просмотра записей в базе данных, точно так же, как вы можете сделать это, просматривая таблицу атрибутов слоя в дереве слоев. Вы можете просматривать данные, выбрав вкладку Таблица.

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

Также есть вкладка Предварительный просмотр, которая покажет вам данные слоя в виде предварительного просмотра карты.

Щелкнув правой кнопкой мыши на слое в дереве и нажав Добавить на холст, вы добавите этот слой на вашу карту.

До сих пор мы просматривали только схемы и таблицы базы данных и их метаданные, но что если мы захотим изменить таблицу, добавив в нее дополнительный столбец? DB Manager позволяет сделать это напрямую.

  1. Выберите таблицу, которую нужно отредактировать, в дереве

  2. Выберите в меню Таблица ► Редактировать таблицу, чтобы открыть диалог Свойства таблицы.

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

С помощью этого диалога можно добавить столбцы, добавить геометрические столбцы, отредактировать существующие столбцы или полностью удалить столбец.

С помощью вкладки Ограничения вы можете управлять тем, какие поля используются в качестве первичного ключа, или отменить существующие ограничения.

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

Вкладка Индексы может использоваться для добавления и удаления как пространственных, так и обычных индексов.

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

18.2.2. ★☆☆ Следуйте за мной: Создание новой таблицы

Теперь, когда мы прошли через процесс работы с существующими таблицами в нашей базе данных, давайте воспользуемся DB Manager для создания новой таблицы.

  1. Если оно еще не открыто, откройте окно DB Manager и разверните дерево, пока не увидите список таблиц, уже имеющихся в вашей базе данных.

  2. В меню выберите Таблица –> Создать таблицу, чтобы вызвать диалог создания таблицы.

  3. Используйте схему по умолчанию Публичный и назовите таблицу места.

  4. Добавьте поля id, place_name и elevation, как показано ниже.

  5. Убедитесь, что поле id установлено в качестве первичного ключа.

  6. Отметьте флажком Создать геометрический столбец и убедитесь, что он установлен на тип POINT, оставьте ему имя geom и укажите 4326 в качестве SRID`.

  7. Установите флажок Создать пространственный индекс и нажмите Создать, чтобы создать таблицу.

    ../../../_images/create_table.png
  8. Вызовите диалог, сообщающий о создании таблицы, и нажмите Закрыть, чтобы закрыть диалог Создать таблицу.

Теперь вы можете просмотреть таблицу в DB Manager и, конечно же, обнаружите, что в ней нет никаких данных. Отсюда вы можете Только редактирование в меню слоя и начать добавлять места в таблицу.

18.2.3. ★☆☆ Следуйте за мной: Основы администрирования баз данных

DB Manager также позволит вам выполнять некоторые базовые задачи по администрированию базы данных. Он, конечно, не заменит более полный инструмент администрирования базы данных, но предоставляет некоторые функциональные возможности, которые вы можете использовать для обслуживания своей базы данных.

Таблицы баз данных часто становятся очень большими, а в таблицах, которые часто модифицируются, могут оставаться остатки записей, которые больше не нужны PostgreSQL. Команда VACUUM выполняет своего рода сборку мусора, чтобы уплотнить и дополнительно проанализировать ваши таблицы для повышения производительности.

Давайте рассмотрим, как можно выполнить команду VACUUM ANALYZE из DB Manager.

  1. Выберите одну из таблиц в дереве DB Manager

  2. Выберите в меню Таблица ► Запустить вакуумный анализ

Теперь PostgreSQL выполнит операцию. В зависимости от размера вашей таблицы это может занять некоторое время.

Более подробную информацию о процессе VACUUM ANALYZE вы можете найти в PostgreSQL Документация по VACUUM ANALYZE.

18.2.4. ★☆☆ Следуйте за мной: Выполнение SQL-запросов с помощью DB Manager

DB Manager также предоставляет возможность писать запросы к таблицам вашей базы данных и просматривать результаты. Мы уже рассматривали этот тип функциональности в панели Браузер, но давайте рассмотрим его еще раз в DB Manager.

  1. Выберите таблицу Линии в дереве.

  2. Выберите кнопку SQL окно на панели инструментов DB Manager.

    ../../../_images/sql_window_btn.png
  3. Составьте следующий SQL-запрос в отведенном для этого месте:

    select * from lines where roadtype = 'major';
    
  4. Нажмите кнопку Выполнить (F5), чтобы запустить запрос.

  5. Теперь вы должны увидеть совпадающие записи на панели Результат.

    ../../../_images/sql_results.png
  6. Установите флажок Загрузить как новый слой, чтобы добавить результаты на карту.

  7. Выберите столбец id в качестве Колонка с уникальными целочисленными значениями` и столбец geom в качестве Геометрический столбец`.

  8. Введите roads_primary в качестве :guilabel:Имя слоя (префикс).

  9. Нажмите Загрузить сейчас!, чтобы загрузить результаты в виде нового слоя на вашу карту.

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

Слои, соответствующие вашему запросу, теперь отображаются на карте. Разумеется, вы можете использовать этот инструмент для выполнения произвольных SQL-команд, включая многие из тех, которые мы рассматривали в предыдущих модулях и разделах.

18.2.5. Импорт данных в базу данных с помощью DB Manager

Мы уже рассмотрели, как импортировать данные в пространственную базу данных с помощью инструментов командной строки, теперь давайте узнаем, как использовать DB Manager для импорта.

  1. Нажмите кнопку Импортировать слой/файл на панели инструментов в диалоговом окне DB Manager.

    ../../../_images/import_layer_btn.png
  2. Выберите файл urban_33S.shp из exercise_data/projected_data в качестве входного набора данных

  3. Нажмите кнопку Обновить параметры, чтобы предварительно заполнить некоторые значения формы.

  4. Убедитесь, что опция Создать новую таблицу выбрана

  5. Укажите Источник SRID как 32722, а Целевой SRID` как 4326

  6. Включите флажок Создать пространственный индекс

  7. Нажмите OK, чтобы выполнить импорт

    ../../../_images/import_urban.png
  8. Выйти из диалогового окна, сообщающего об успешном импорте

  9. Нажмите кнопку Обновить на панели инструментов DB Manager

Теперь вы можете просмотреть таблицу в своей базе данных, щелкнув на ней в Дереве. Убедитесь, что данные были спроецированы, проверив, что в Пространственная ссылка: указано WGS 84 (4326).

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

Щелкнув правой кнопкой мыши на таблице в дереве и выбрав Добавить на холст, вы добавите таблицу в качестве слоя на вашу карту.

18.2.6. Экспорт данных из базы данных с помощью DB Manager

Конечно, DB Manager можно использовать и для экспорта данных из пространственных баз данных, поэтому давайте рассмотрим, как это делается.

  1. Выберите слой Линии в Дереве и нажмите кнопку Экспорт в файл` на панели инструментов, чтобы открыть диалог Экспорт в векторный файл`.

  2. Нажмите на кнопку , чтобы выбрать Выходной файл и сохранить данные в каталоге exercise_data под именем urban_4326.

  3. Установите Целевой SRID как 4326.

  4. Нажмите OK, чтобы инициализировать экспорт.

    ../../../_images/export_to_vector.png
  5. Вызовите диалоговое окно, сообщающее об успешном экспорте, и закройте DB Manager.

Теперь вы можете просмотреть созданный шейпфайл с помощью панели Browser.

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

18.2.7. В заключение

Теперь вы узнали, как использовать интерфейс DB Manager в QGIS для управления пространственными базами данных, выполнения SQL-запросов к данным, а также для импорта и экспорта данных.

18.2.8. Что дальше?

Далее мы рассмотрим, как использовать многие из этих же приемов с базами данных SpatiaLite.