Базы данных Oracle - статьи

         

Структуры данных Spatial, задействованные в проекте


Для того, чтобы вывести пространственные объекты при помощи MapViewer на растровое отображение карты, в базе данных Oracle необходимо создать таблицы, содержащие геометрические описания необходимых пространственных объектов, хранящиеся в столбцах типа SDO_GEOMETRY. Эти таблицы также могут содержать помимо колонок с пространственной информацией, необходимые столбцы, содержащие дополнительную семантическую информацию, по объектам. Например, подобная информация может служить для вывода текстовых надписей на объектах при формировании карты. Для более эффективной работы Spatial с этими таблицами необходимо создать пространственные индексы для столбцов с пространственной информацией.

Предположим нам необходимо обеспечить вывод информации о зданиях, улицах и земельных участках населенного пункта. Для обеспечения работы демонстрационного приложения в базе данных Oracle необходимо создать соответствующие таблицы пространственных данных:

  1. Здания (BUILDS) - хранит полигональные объекты зданий и сооружение, а также информацию об адресных номерах зданий. Она содержит столбцы:
    • PR_KEY NUMBER - первичный ключ;
    • GEOLOC SDO_GEOMETRY - контуры зданий;
    • NUM VARCHAR - номера зданий (номер и литера);
    • Улицы (STREET) - хранит линейные объекты, характеризующие пролегание улиц города, и информацию о названиях улиц. Включает столбцы:
      • PR_KEY NUMBER - первичный ключ;
      • GEOLOC SDO_GEOMETRY - оси улиц;
      • NAME VARCHAR - названия улиц.
      • Участки (PARCELL) - хранит полигональные объекты, описывающие земельные участки, и информацию о кадастровых номерах участков.Содержит столбцы:
        • PR_KEY NUMBER - первичный ключ;
        • GEOLOC SDO_GEOMETRY - контура земельных участков;
        • KU NUMBER - номера земельных участков.

        Все три таблицы создадим в схеме, которую назовем MAP. Данные для примера в каждую из таблиц можно загрузить при помощи стандартного загрузчика Oracle или воспользоваться специализированной программой третьей фирмы. Например, Easy Loader, поставляемый с MapInfo, позволяет загрузить в Oracle Spatial данные из файлов формата MapInfo (TAB) и сразу же создать пространственные индексы на пространственные колонки (подробнее о программе смотрите здесь http://www.mapinfo.com). Также можно воспользоваться программой FME, позволяющей загружать данные из различных форматов (подробнее о программе смотрите http://www.safe.com/products/fme/).

        Доступ к графической информации осуществляется опосредовано - через соответствующие процедуры PL/SQL, которые неявно формируют политику доступа к данным. Следует отметить, что в порядке разграничения доступа может возникнуть задача ограничения объема вывода информации, введения заданной погрешности в отображение данных, и другие. Эти проблемы могут быть решены, однако их рассмотрение выходит за рамки данной статьи. Для простейшего случая подключения к базе картографических данных MapViewer и Web-сервера необходимо создать соответствующего пользователя (или отдельно пользователей для MapViewer и Web-сервера для более полного разграничения доступа), в схеме которого будут храниться данные.



        Содержание раздела