Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MI6UGRU

.pdf
Скачиваний:
16
Добавлен:
13.02.2015
Размер:
14.71 Mб
Скачать

Глава 23: Доступ к удаленным базам данных

MapInfo EasyLoader (Загрузка в SpatialWare или Oracle Spatial)

Утилита загрузки данных MapInfo – MapInfo EasyLoader загружает файлы .tab MapInfo в таблицы баз данных. Она может работать отдельно от MapInfo как приложение клиент базы данных через установленное подключение к базе данных с данными MapInfo. Загружать данные эта программа может либо в базы данных SpatialWare, либо в базы данных Oracle Spatial.

EasyLoader работает под Windows 95/98, Windows NT или Windows 2000 и обеспечивает удаленное подключение к следующим Системам Управления Базами Данных:

INFORMIX–Universal Server (IUS) с SpatialWare DataBlade (драйвер IUS должен версии 2.8 или более новой).

DB2 Universal Server ñ SpatialWare Extender

Oracle Spatial версии 8.1.5 или более новой

EasyLoader присутствует на дистрибутивных компакт дисках как MapInfo Professional, так и SpatialWare. На диске SpatialWare эта программа размещена в каталоге ”pc”.

Прежде чем запускать программу загрузки EasyLoader, необходимо скопировать ее с дистрибутивного компакт диска SpatialWare на компьютер с установленной операционной системой Windows 95/98, Windows NT или Windows 2000 и после этого запустить выполнимый файл EASYLOADER.EXE. (При установке драйверов SpatialWare с компакт диска MapInfo Professional программа загрузки устанавливается тоже).

Для того, чтобы выполнить программу EasyLoader из программы MapInfo:

1.Выполните команды меню ПРОГРАММЫАТАЛОГ ПРОГРАММ. Появится диалог “Каталог Программ”.

2.Отметьте флажками Загрузить è/èëè Автозагрузка рядом с пунктом

EasyLoader списка имеющихся программ.

3.Нажмите OK. Программа EasyLoader появится в меню Программы

4.Выполните команды меню ПРОГРАММЫ > EASYLOADER.

После запуска программы MapInfo EasyLoader появится основной диалог этой программы. Интерфейс программы позволяет подключаться к серверу через ODBC или к серверу Oracle Spatial и выбирать таблицы, которые Вам необходимо загрузить в эти серверы баз данных.

Можно использовать дополнительные управляющие кнопки в нижней части диалога программы для настройки параметров загрузки таблиц MapInfo в удаленную базу

497

Глава 23: Доступ к удаленным базам данных

данных. Например, можно внести изменения или создать каталог карт Mapcatalog или создать уникальный пространственный индекс для загруженной таблицы.

При подключении к серверу через ODBC необходимо будет указать имя источника данных. Для подключения к серверу Oracle Spatial требуется установленное клиентское программное обеспечение Oracle.

После установления подключения к серверу кнопка ТАБЛИЦЫ (TABLES) становится активной. С е¸ помощью можно вызвать диалог выбора таблиц MapInfo, которые нужно загрузить на сервер. Выбранные таблицы будут перечислены в списке таблиц. Для изменения состава списка нужно пользоваться кнопкой ТАБЛИЦЫ (TABLES).

Кнопка ЗАГРУЗИТЬ (UPLOAD) становится активной после того, как таблицы MapInfo были выбраны. Убедитесь, что нужные Вам дополнительные настройки загрузки с помощью управляющих флажков установлены до того, как нажата кнопка ЗАГРУЗИТЬ

(UPLOAD). Возможности настройки описаны ниже.

Добавить в таблицу (Append to Table) – таблица MapInfo будет добавлена в уже существующую таблицу базы данных, если такая таблица существует и структура обоих таблиц совпадает. Если это условие не выполнено, будет получено сообщение об ошибке и таблица не будет загружена.

498

Глава 23: Доступ к удаленным базам данных

Заменить/Создать(Replace/Create) таблицу – таблица с таким именем на сервере, если она существует, будет сначала удалена, затем будет создана новая таблица со структурой, совпадающей с загружаемой таблицей MapInfo.

Добавить все в одну таблицу (Append All to One Table) – все перечисленные в списке таблицы MapInfo будут добавлены в единственную таблицу на сервере. Таблица на сервере должна быть видна в списке обнаруженных на сервере таблиц.

Внимание: все таблицы должны иметь одну проекцию.

Предоставить общий доступ (Grant Public Access) – установить для таблицы на сервере параметр разрешения доступа к таблице в режим Разрешен общий (PUBLIC) доступ.

Добавить в каталог карт MapCatalog (Add to MapCatalog) – после загрузки таблицы будет добавлена запись в таблицу сервера MAPINFO.MAPINFO_MAPCATALOG (если такая таблица существует). Если такой таблицы нет, программа EasyLoader попытается е¸ создать. При использовании подключения через ODBC режим общего доступа к этой таблице не может быть установлен и его потребуется установить другими средствами. Если у пользователя нет соответствующих прав по созданию и настройке новых таблиц, каталог карт MAPINFO.MAPINFO_MAPCATALOG не будет создан. При загрузке таблиц в случае, если все объекты загружаемой таблицы являются объектами одного типа, то количество типов объектов таблицы сервера будет ограничено единственным. Во всех остальных будет использован параметр для типов объектов – ВСЕ (ALL).

Монопольное использование таблицы (Exclusive Use of Table) – с помощью этого флажка можно существенно повысить скорость обработки таблиц на сервере, если Вы уверены, что являетесь единственным пользователем, который работает с этой таблицей на сервере. Обратите внимание, что программа загрузки получит монопольный доступ только тогда, если предварительно была установлена для этой таблицы такая возможность.

Создать уникальный индекс (Create Unique Index) – создается уникальный первичный индекс для столбца sw_member, в случае использования SpatialWare,

или для столбца mi_prinx, в случае использования Oracle Spatial. Столбец

mi_prinx будет содержать порядковый номер записи созданный при загрузке.

Создать пространственный индекс (Create Spatial Index) – для таблиц SpatialWare такой индекс создается по столбцу с геометрией и будет иметь имя hg<table_name>ind. После выполнения команды по созданию этого индекса типа rtree, обновляется статистика всей базы данных SpatialWare.

Для таблиц Oracle Spatial индекс, которому присваивается имя <имя_таблицы>_SX, создается по столбцу с данными, содержащему геометрию. Уровень вложенности созданного индекса вычисляется с помощью функции SDO_TUNE.ESTIMATE_TILING_LEVEL. Для таблиц с количеством

499

Глава 23: Доступ к удаленным базам данных

записей меньше 7500 уровень вложенности созданного индекса ограничен значением 8. После построения таблицы индекса, выполняется команда ANALYZE для вновь построенной таблицы.

Вы можете построить пространственный индекс в соответствии с Вашими требованиями. Если Вы планируете так поступить, снимите флажок и Вы сэкономите время при загрузке.

Более подробные сведения о программе EasyLoader можно в прочитать в файле-справке

EasyLoader.HLP.

Шаг 2 - Создание колонки пространственного индекса

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

Шаг 3 - Создание Каталога Карт MapInfo

MapInfo хранит информацию о колонках с координатами в специальной таблице СУБД Каталог Карт MapInfo. Для каждой базы данных должен существовать единственный каталог. Приложение MIODBCAT.MBX может быть использовано для создания этого каталога при использовании Oracle7, Sybase, SQL Server, SQL Base и MSAccess. Потребуется настройка этого приложения при применении любых других СУБД. Также можно создать такой каталог вручную.

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

Автоматическое создание Каталога Карт MapInfo

Чтобы создать Каталог Карт, используйте программу MIODBCAT.mbx. Выполните команду ФÀÉË > ÇАПУСТИТЬ ПРОГРАММУ MAPBASIC. Программа может быть найдена в папке MAPINFO\TOOLS. Далее выполните команду ПРОГРАММЫ > MAPINFO ODBC CATALOG, чтобы создать каталог.

Появится следующий диалог:

500

Глава 23: Доступ к удаленным базам данных

Нажмите кнопку СОЗДАТЬ ÊАТАЛОГ и выберите базу данных, для которой Вы хотите

создать каталог карт.

Создание Каталога Карт MapInfo вручную

В случае, если Вам необходимо создать Каталог Карт MapInfo вручную, то делать это должен Администратор базы данных.

1.Создайте пользователя MAPINFO с паролем (PASSWORD) ***** для конкретной базы данных, где расположены таблицы, которым предполагается присвоить геоинформацию.

2.Создайте в базе данных таблицу MAPINFO_MAPCATALOG.

Оператор Create Table, применяемый в конкретной СУБД для создания таблицы, должен быть эквивалентным следующему оператору MapInfo:

Create Table MAPINFO_MAPCATALOG (SPATIALTYPE

Float,

TABLENAME

Char(32),

OWNERNAME

Char(32),

SPATIALCOLUMN

Char(32),

DB_X_LL

Float,

DB_Y_LL

Float,

DB_X_UR

Float,

DB_Y_UR

Float,

COORDINATESYSTEM

Char(254),

SYMBOL

Char(254),

XCOLUMNNAME

Char(32),

YCOLUMNNAME

Char(32)

)

 

Структура таблицы должна точно соответствовать вышеприведенному оператору. Единственное изменение возможно для СУБД, поддерживающих типы данных Varchar или Text, которые могут применяться вместо типа Char.

3.Создайте уникальный индекс для колонок TABLENAME и OWNERNAME так, что только одной таблице для каждого владельца могла быть присвоена геоинформация.

4.Предоставьте общие (Public) привилегии доступа Select (выборка), Update (обновление) и Insert (вставка) для таблицы MAPINFO_MAPCATALOG, что позволит пользователям присоединять к таблицам ODBC геоинформацию. Привилегия Delete (удаление) должна быть предоставлена администратору базы данных.

Типы пространственных индексов

В таблице перечислены все типы пространственных индексов, которые могут быть

использованы программой MapInfo Professional.

501

Глава 23: Доступ к удаленным базам данных

Тип пространственного индекса

Номер типа

 

 

Схема MapInfo MICODE (любая база

1

данных)

 

 

 

Oracle MD HHCODE_NONPARTIONED

2

 

 

Oracle MD HHCODE_PARTIONED

3

 

 

Схема XY (любая база данных)

4

 

 

Сервер Spatialware для Oracle

5

 

 

Ingres SOL

6

 

 

Sybase SQS

7

 

 

Oracle SDOv2

8

 

 

MapInfo IUS_MM_SW

9

 

 

MapInfo IUS_MM_XY

10

 

 

Spatialware blade äëÿ IUS

11

 

 

SpatialWare extender äëÿ DB2

12

 

 

Oracle 8i Spatial

13

 

 

Повторное вычисление границ области данных в MapInfo_MapCatalog

Каталог карт MapInfo_MapCatalog содержит информацию о границах области, в которую попадают все данные, содержащиеся в таблице. Эти значения используются для начального определения представления всех данных в окне карты при открытии удаленной таблицы в новом окне карты. Координаты углов прямоугольной области устанавливаются либо при загрузке таблицы в базу данных программой EasyLoader, либо при использовании программы Определить МОП СУБД.

В предыдущих версиях MapInfo координаты границ области, содержащей данные, не определялись повторно при создании в таблице объектов, лежащих за пределами границ первоначально определенной граничной области. Теперь, при создании в таблице (или добавлении) объектов, лежащих за пределами граничной области, координаты углов автоматически перевычисляются. Если хотя бы один объект любой своей частью выходит за пределы существующего МОП (минимального описывающего прямоугольника для всех географических координат данных в таблице), значения координат углов которого в этот момент записаны в каталоге карт, то вычисляются

502

Глава 23: Доступ к удаленным базам данных

новые координаты МОП и их значения записываются в каталог карт. При удалении

объектов координаты МОП повторно не вычисляются.

Шаг 4 - Присоединение геоинформации к удаленной базе данных

Информация о существующих таблицах карт с присоединенной геоинформацией может быть получена в MapInfo с помощью команды ПРИСОЕДИНИТЬ ГЕОИНФОРМАЦИЮ. Создание такого каталога, описывающего свойства таблицы карты с присоединенной геоинформацией, выполняется единственный раз для каждой таблицы и является обязательной для отображения этой таблицы в окне карты MapInfo.

Команда ПРИСОЕДИНИТЬ ГЕОИНФОРМАЦИЮ делает удаленную таблицу базы данных SQL (таблицу СУБД(DBMS)) способной хранить геоинформацию в виде карты. Любая таблица MapInfo может быть показана на экране в виде списка, но только таблицы с присоединенной геоинформацией могут содержать графические объекты. Только такие таблицы могут быть отображены на экране в окне карты.

После выполнения команды ПРИСОЕДИНИТЬ ГЕОИНФОРМАЦИЮ Вы передаете в MapInfo информацию об удаленной базе данных, которая может описывать :

Столбцы, содержащие значения координат, которые могут быть показаны на карте (не применимо для Oracle SDO).

Проекцию используемую для отображения таблицы удаленной СУБД.

Столбец таблицы удаленной базы данных, содержащий индекс по пространственному признаку (используется MapInfo для ускорения доступа к пространственной информации и увеличения производительности).

Символ, используемый для отображения объектов.

MapInfo получает эту информацию и хранит ее в таблице под именем Каталог Карт MapInfo (MapInfo Map Catalog). Каждый раз при использовании таблицы ODBC, MapInfo проверяет этот каталог для определения возможности показа такой таблицы в окне карты. В результате Вам потребуется лишь однажды выполнить эту команду, и таблица после этого всегда может быть показана в окне карты. В каталоге Карт MapInfo (MapInfo Map Catalog) допускается использовать только один столбец, содержащий пространственную информацию из таблицы СУБД (DBMS), для показа на карте. Если таблица содержит более одного столбца с пространственной информацией и Вам необходимо показать на карте данные из другого столбца, то сначала необходимо удалить запись об используемом столбце с пространственной информацией и присоединить геоинформацию из нового столбца.

503

Глава 23: Доступ к удаленным базам данных

Присоединение геоинформации таблице ODBC

Для присвоения таблице ODBC геоинформации выполните следующую процедуру:

Выполните команду ТАБЛИЦА > ÈЗМЕНИТЬ > ÏРИСОЕДИНИТЬ ГЕОИНФОРМАЦИЮ. Появляется диалог “Выберите таблицу ODBC”, в котором Вы можете выбрать таблицу для присоединения геоинформации.

Диалог “Выберите таблицу ODBC”:

Тип соединения

Можно выбрать либо ODBC=подключение, либо Oracle8i для Oracle

 

Spatial

 

 

Соединение

При наличии нескольких открытых соединений выберите нужное

 

соединение из списка. Список таблиц для этого соединения будет

 

показан в окошке Таблица.

 

 

Новое

Нажмите кнопку НÎÂÎÅ для создания нового соединения в диалоге

 

“Источники данных SQL”.

 

 

Владелец

Это окошко присутствует только для источников данных,

 

использующих концепцию владельцев (таких как Oracle). Это

504

 

 

Глава 23: Доступ к удаленным базам данных

 

 

окошко позволяет Вам выводить в окошко Таблица списки таблиц,

 

 

принадлежащих различным владельцам (если Вам предоставлено

 

 

право доступа).

 

 

 

 

Таблица

Выберите имя таблицы ODBC, которой Вы хотите присвоить

 

 

геоинформацию

 

 

 

 

Фильтр

Позволяет Вам выбрать в диалоге “Фильтр таблиц” тип таблиц,

 

 

показываемых в списке Таблица. По умолчанию показываются

 

 

Таблицы, Представления è Синонимы, à Системные таблицы

 

 

скрываются.

 

 

 

 

OK

Выбирает таблицу для присвоения геоинформации и открывает

 

 

диалог “Добавление геоинформации”.

 

 

 

 

Отмена

Отменяет выбор, сделанный выше.

 

 

 

 

Справка

Выводит справку.

 

 

 

После выбора таблицы ODBC появляется диалог “Добавление геоинформации”:

Диалог “Присоединить геоинформацию”:

Тип индекса

Тип пространственного индекса колонки, содержащей

 

пространственную информацию в удаленной базе

 

данных. Пространственная индексация обеспечивает

 

быстрый доступ к пространственной информации в

 

ODBC таблице. Можно выбирать из четырех типов

 

пространственных индексов: Autometric SQS, Oracle

 

SDO, Oracle Spatial, IUS SW Blade, IUS SW MM Blade,

 

MapInfo и XY Координаты (т.е. нет индекса).

 

 

505

Глава 23: Доступ к удаленным базам данных

Столбец с индексом

Необходим, только если используется индексация типа

 

MapInfo или по XY-координатам. Нужно выбрать имя

 

колонки из списка, для которой создавать индекс

 

точек.

 

 

Координата X,

Необходимы, только если используется индексация

Координата Y

типа MapInfo или по XY-координатам. Выберите

 

колонки X и Y, которые содержат значения координат

 

точек на карте.

 

 

Тип объекта

Для пространственных баз данных выберите тип

 

объекта – точечный, линейный или область.

 

(Стандартно предлагается точечный объект для Oracle

 

SDO, MapInfo и по XY координатам типам индекса.)

 

Точка - указывает, что таблица содержит только

 

объекты типа точки.

 

Линия - указывает, что таблица содержит только

 

линии и полилинии.

 

Область - указывает, что таблица содержит только

 

объекты типа область.

 

 

Стиль объекта

Зависит от типа объектов, которые таблица с

 

геоинформацией может содержать. Вы можете

 

установить стиль отображения объектов на карте после

 

их загрузки.

 

 

Символ

Выводится диалог выбора стиля символов, в котором

 

Вы можете установить стиль оформления данных типа

 

точка.

 

 

Линия

Выводится диалог выбора стиля линий, в котором Вы

 

можете установить стиль оформления данных типа

 

линия или полилиния.

 

 

Область

Выводится диалог выбора стиля областей, в котором

 

Вы можете установить стиль оформления данных типа

 

область.

 

 

OK

Присоединяет геоинформацию выбранного типа к

 

таблице удаленной баз данных

 

 

Отмена

Отменяет действия.

 

 

Справка

Доступ к справке.

 

 

Проекция

Запускает диалог выбора проекции. Укажите проекцию

 

для таблицы ODBC. Проекция должна соответствовать

 

проекции, использованной в удаленной базе данных.

506

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]