Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
18.2. Урок: Использование DB Manager для работы с пространственными базами данных в QGIS
Мы уже видели, как выполнять многие операции с базами данных в QGIS, а также с помощью других инструментов, но теперь пришло время рассмотреть инструмент DB Manager, который предоставляет большую часть тех же функций, а также более ориентированные на управление инструменты.
Цель этого урока: Научиться взаимодействовать с пространственными базами данных с помощью QGIS DB Manager.
18.2.1. ★☆☆ Следуйте за мной: Управление базами данных PostGIS с помощью DB Manager
Сначала нужно открыть интерфейс DB Manager, выбрав DB Manager на панели инструментов.
Вы уже должны увидеть предыдущие соединения, которые мы настраивали, и сможете развернуть раздел myPG
и его схему public
, чтобы увидеть таблицы, с которыми мы работали в предыдущих разделах.
Первое, что вы можете заметить, это то, что теперь вы можете увидеть некоторые метаданные о схемах, содержащихся в вашей базе данных.

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

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

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

Также есть вкладка Предварительный просмотр, которая покажет вам данные слоя в виде предварительного просмотра карты.
Щелкнув правой кнопкой мыши на слое в дереве и нажав Добавить на холст, вы добавите этот слой на вашу карту.
До сих пор мы просматривали только схемы и таблицы базы данных и их метаданные, но что если мы захотим изменить таблицу, добавив в нее дополнительный столбец? DB Manager позволяет сделать это напрямую.
Выберите таблицу, которую нужно отредактировать, в дереве
Выберите в меню Свойства таблицы.
, чтобы открыть диалог
С помощью этого диалога можно добавить столбцы, добавить геометрические столбцы, отредактировать существующие столбцы или полностью удалить столбец.
С помощью вкладки Ограничения вы можете управлять тем, какие поля используются в качестве первичного ключа, или отменить существующие ограничения.

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

18.2.2. ★☆☆ Следуйте за мной: Создание новой таблицы
Теперь, когда мы прошли через процесс работы с существующими таблицами в нашей базе данных, давайте воспользуемся DB Manager для создания новой таблицы.
Если оно еще не открыто, откройте окно DB Manager и разверните дерево, пока не увидите список таблиц, уже имеющихся в вашей базе данных.
В меню выберите Таблица –> Создать таблицу, чтобы вызвать диалог создания таблицы.
Используйте схему по умолчанию
Публичный
и назовите таблицуместа
.Добавьте поля
id
,place_name
иelevation
, как показано ниже.Убедитесь, что поле
id
установлено в качестве первичного ключа.Отметьте флажком Создать геометрический столбец и убедитесь, что он установлен на тип
POINT
, оставьте ему имяgeom
и укажите4326
в качестве SRID`.Установите флажок Создать пространственный индекс и нажмите Создать, чтобы создать таблицу.
Вызовите диалог, сообщающий о создании таблицы, и нажмите Закрыть, чтобы закрыть диалог Создать таблицу.
Теперь вы можете просмотреть таблицу в DB Manager и, конечно же, обнаружите, что в ней нет никаких данных. Отсюда вы можете Только редактирование в меню слоя и начать добавлять места в таблицу.
18.2.3. ★☆☆ Следуйте за мной: Основы администрирования баз данных
DB Manager также позволит вам выполнять некоторые базовые задачи по администрированию базы данных. Он, конечно, не заменит более полный инструмент администрирования базы данных, но предоставляет некоторые функциональные возможности, которые вы можете использовать для обслуживания своей базы данных.
Таблицы баз данных часто становятся очень большими, а в таблицах, которые часто модифицируются, могут оставаться остатки записей, которые больше не нужны PostgreSQL. Команда VACUUM выполняет своего рода сборку мусора, чтобы уплотнить и дополнительно проанализировать ваши таблицы для повышения производительности.
Давайте рассмотрим, как можно выполнить команду VACUUM ANALYZE из DB Manager.
Выберите одну из таблиц в дереве DB Manager
Выберите в меню
Теперь PostgreSQL выполнит операцию. В зависимости от размера вашей таблицы это может занять некоторое время.
Более подробную информацию о процессе VACUUM ANALYZE вы можете найти в PostgreSQL Документация по VACUUM ANALYZE.
18.2.4. ★☆☆ Следуйте за мной: Выполнение SQL-запросов с помощью DB Manager
DB Manager также предоставляет возможность писать запросы к таблицам вашей базы данных и просматривать результаты. Мы уже рассматривали этот тип функциональности в панели Браузер, но давайте рассмотрим его еще раз в DB Manager.
Выберите таблицу
Линии
в дереве.Выберите кнопку SQL окно на панели инструментов DB Manager.
Составьте следующий SQL-запрос в отведенном для этого месте:
select * from lines where roadtype = 'major';
Нажмите кнопку Выполнить (F5), чтобы запустить запрос.
Теперь вы должны увидеть совпадающие записи на панели Результат.
Установите флажок Загрузить как новый слой, чтобы добавить результаты на карту.
Выберите столбец
id
в качестве Колонка с уникальными целочисленными значениями` и столбецgeom
в качестве Геометрический столбец`.Введите
roads_primary
в качестве :guilabel:Имя слоя (префикс)
.Нажмите Загрузить сейчас!, чтобы загрузить результаты в виде нового слоя на вашу карту.
Слои, соответствующие вашему запросу, теперь отображаются на карте. Разумеется, вы можете использовать этот инструмент для выполнения произвольных SQL-команд, включая многие из тех, которые мы рассматривали в предыдущих модулях и разделах.
18.2.5. Импорт данных в базу данных с помощью DB Manager
Мы уже рассмотрели, как импортировать данные в пространственную базу данных с помощью инструментов командной строки, теперь давайте узнаем, как использовать DB Manager для импорта.
Нажмите кнопку Импортировать слой/файл на панели инструментов в диалоговом окне DB Manager.
Выберите файл
urban_33S.shp
изexercise_data/projected_data
в качестве входного набора данныхНажмите кнопку Обновить параметры, чтобы предварительно заполнить некоторые значения формы.
Убедитесь, что опция Создать новую таблицу выбрана
Укажите Источник SRID как
32722
, а Целевой SRID` как4326
Включите флажок Создать пространственный индекс
Нажмите OK, чтобы выполнить импорт
Выйти из диалогового окна, сообщающего об успешном импорте
Нажмите кнопку Обновить на панели инструментов DB Manager
Теперь вы можете просмотреть таблицу в своей базе данных, щелкнув на ней в Дереве. Убедитесь, что данные были спроецированы, проверив, что в Пространственная ссылка: указано WGS 84 (4326)
.

Щелкнув правой кнопкой мыши на таблице в дереве и выбрав Добавить на холст, вы добавите таблицу в качестве слоя на вашу карту.
18.2.6. Экспорт данных из базы данных с помощью DB Manager
Конечно, DB Manager можно использовать и для экспорта данных из пространственных баз данных, поэтому давайте рассмотрим, как это делается.
Выберите слой
Линии
в Дереве и нажмите кнопку Экспорт в файл` на панели инструментов, чтобы открыть диалог Экспорт в векторный файл`.Нажмите на кнопку …, чтобы выбрать Выходной файл и сохранить данные в каталоге
exercise_data
под именемurban_4326
.Установите Целевой SRID как
4326
.Нажмите OK, чтобы инициализировать экспорт.
Вызовите диалоговое окно, сообщающее об успешном экспорте, и закройте DB Manager.
Теперь вы можете просмотреть созданный шейпфайл с помощью панели Browser.

18.2.7. В заключение
Теперь вы узнали, как использовать интерфейс DB Manager в QGIS для управления пространственными базами данных, выполнения SQL-запросов к данным, а также для импорта и экспорта данных.
18.2.8. Что дальше?
Далее мы рассмотрим, как использовать многие из этих же приемов с базами данных SpatiaLite.