РУКОВОДСТВО ПО ГИС ИНГЕО

СЕМАНТИЧЕСКАЯ ТАБЛИЦА

Семантическая таблица - это служебный объект в структуре данных ГИС ИнГео.

Особенности семантической таблицы:

  • Семантическая таблица создается для конкретного слоя.
  • Для слоя может быть создано сколько угодно семантических таблиц.

Создание таблицы

Для семантической таблицы:

  1. Откройте проводник базы данных.
  2. Выберите слой, для которого хотите создать семантическую таблицу.
  3. Выберите пиктограмму (рис.1). Откроется окно параметров семантической таблицы слоя.
  4. Введите название (и если надо имя файла) (рис.2).
    ВНИМАНИЕ! Имя файла таблицы задается программой исходя из требований используемой СУБД. Вы можете сами задать название, но вы должны придерживаться таких требований (требования к названиям файлов смотрите в документации СУБД sqlite, postgreSQL, MS SQL, oracle).
  5. Задайте тип связи таблицы.
  6. Задайте поля таблицы.
  7. Задайте индексы таблицы.
  8. Выберите кнопку применить (галочка в зеленом кружке справа сверху).

Создание семантической таблицы
Рис. 1. Создание семантической таблицы

Семантическая таблица
Рис. 2. Семантическая таблица

Тип связи таблицы

В ГИС ИнГео предусмотрены семантические таблицы со следующими типами связей между объектом и записями в таблице:

  • один объект - одна запись (один к одному),
  • один объект - много записей (один ко многим).

На рис.3 выделено здание и отрыто окно свойств объекта, где красным цветом выделены данные двух таблиц.

Первая таблица называется Адрес и для нее задан тип связи один ко многим. Для нее заданы поля:

  • Улица,
  • Дом,
  • Строение.
    Как видно на рисунке, для объекта задано два адреса - две записи в таблице, которые нумеруются цифрами один и два в начале каждой записи.

Вторая таблица называется Дома и для нее задан тип связи один к одному. Для нее заданы поля:

  • этажность,
  • материал,
  • заселенность,
  • Наименование.
    Как видно из рисунка этот объект имеет одну запись в таблице.

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

Семантическая таблица
Рис. 3. Таблицы с разными типами связей.

Поля таблицы

Для задания полей таблицы выберите закладку Поля на форме редактирования таблицы рис.4 в проводнике базы данных.

Первое поле ID - это служебное поле, которое добавляется автоматически. В нем хранится идентификатор объекта. Это поле вы не сможете изменить.
Второе поле Record ID - это тоже служебное поле, которое появляется если тип таблицы один ко многим. В нем хранится порядковый номер записи.
Остальные поля можете добавлять и удалять по вашему усмотрению.

Для добавления нового поля семантической таблицы рис.4:

  1. Откройте проводник базы данных.
  2. Слева в дереве элементов выберите слой и семантическую таблицу, для которой хотите добавить поле.
  3. Выберите закладку Поля.
  4. Нажмите кнопку Добавить.
  5. Введите Заголовок (и если надо название поля).
    ВНИМАНИЕ! Название поля семантической таблицы задается программой исходя из требований используемой СУБД. Вы можете сами задать название, но вы должны придерживаться таких требований (требования к названиям полей таблиц смотрите в документации СУБД sqlite, postgreSQL, MS SQL, oracle).
  6. Выберите Тип поля. Для строковых полей задайте Размер.
  7. Для полей, которые будут ссылаться на справочник укажите галочку Использовать справочник рис.5.
  8. Выберите кнопку применить (галочка в зеленом кружке справа сверху).

Для использования справочника:

  1. Выберите поле семантической таблицы.
  2. Установите галочку Использовать справочник.
  3. Нажмите кнопку Справочник. Откроется диалоговое окно добавления ссылки на справочник рис.5.
  4. Выберите справочник из выпадающего списка поля Справочник.
  5. Выберите Ключевое поле справочника (обычно "код" или "code"). В редактируемом поле семантической таблицы будет сохранено, как раз, значение из этого поля справочника, после того как пользователь выберет значение из справочника во время заполнения семантики.
  6. С помощью кнопок >> или << добавляйте или убирайте поля справочника в список Отображаемых полей. Например, для добавления отображаемого поля справочника: выберите поле в списке Все поля справочника и нажмите кнопку >>. При отображении с окне свойств или в табличных данных, значений полей семантической таблицы, в этом поле, как раз, будет выводится значение Отображаемого поля справочника.
  7. Нажмите кнопку ОК.

Типы полей семантических таблиц:

  • логическое - значения: да|нет, 1|0, true|false,
  • целое число - значение примерно от минус двух миллиардов до двух миллиардов,
  • целое число (64 бит) - значение примерно от минус 9 квинтиллионов до 9 квинтиллионов = 9 x (10 в степени 18),
  • вещественное число - значение с 131072 цифр до запятой и до 16383 цифр — после,
  • денежная единица - подобна вещественному числу с четырьмя цифрами после запятой,
  • дата/время - значение в формате дд.мм.гггг чч:мм:сс,
  • дата - значение в формате дд.мм.гггг,
  • время - значение в формате чч:мм:сс,
  • строка - значение имеет фиксированный размер,
  • текст - значение неограниченной длины,
  • рисунок (blob) - рисунок во встроенном редакторе ГИС ИнГео (вы можете открыть из файла или вставить из буфера обмена),
  • документ OLE (blob) - документ, который встраивается во встроенный редактор ГИС ИнГео по технологии OLE.

Вы можете перемещать поля вверх (вперед), вниз (назад) в списке с помощью кнопок в виде треугольника, который направлен, соответственно, вверх и вниз. Эти кнопки расположены справа снизу диалогового окна закладки Поля (рис.4).

Семантическая таблица
Рис. 4. Поля семантической таблицы

Семантическая таблица
Рис. 5. Поле семантической таблицы использующее справочник

Индексы таблицы

Для ускорения поиска объектов по значениям полей семантических данных используются Индексы (рис.6).
Индексирование - это расположение записей в таком порядке, чтобы программа быстро нашла нужную запись. Строковое поле индексируется по алфавиту, а целочисленное значение в порядке возрастания. Тогда программа не перебирает все значения, а быстро переходит к нужному, зная порядок (алфавитный или числовой).

Для добавления индекса в семантическую таблицу:

  1. Откройте проводник базы данных.
  2. Слева в дереве элементов выберите слой и семантическую таблицу, для которой хотите добавить индекс.
  3. Выберите закладку Поля.
  4. Выберите поле, по которому хотите создать индекс.
  5. Переключитесь в закладку Индексы.
  6. Нажмите кнопку Добавить. Программа добавит индекс по выделенному полю. Название индекса будет соответствовать названию поля таблицы (обратите внимание: не заголовку, а названию поля).
  7. Выберите кнопку применить (галочка в зеленом кружке справа сверху).

Для изменения индекса поля семантической таблицы:

  1. Откройте проводник базы данных.
  2. Слева в дереве элементов выберите слой и семантическую таблицу, для которой хотите добавить индекс.
  3. Выберите закладку Индексы.
  4. Выберите индекс в списке. Если нет нажмите кнопку Добавить.
  5. Нажмите на кнопку с тремя точками справа от поля Поля свойств индекса (рис.7). Откроется диалоговое окно Индексируемые поля.
  6. Перенесите поля, которые необходимо проиндексировать из левого списка в правый список с помощью кнопок > и <.
  7. Нажмите кнопку ОК в диалоговом окне Индексируемые поля.
  8. Выберите кнопку применить (галочка в зеленом кружке справа сверху).

ВНИМАНИЕ! Вы можете выбрать несколько индексируемых полей одновременно в одном индексе. Например, если добавить два поля в один индекс, то создается двойной индекс: сначала индексируется по первому полю, а потом каждая запись с одинаковым значением первого поля индексируется по второму полю.

Семантическая таблица
Рис. 6. Индекс поля семантической таблицы

Семантическая таблица
Рис. 7. Изменение индекса поля семантической таблицы