Определение полей в таблицах

Поля – это компоненты, представляющие структуру таблицы. У вас не может быть таблицы без полей. Например, вы можете создать пустую таблицу, в которой будут определены поля, но в ней не будет строк (записей).

В базах данных поля также используются для поддержки отношений между таблицами. Это выполняется путем установки соответствий между полями двух и более таблиц. Например, если в базе данных хранится таблица с именем toy_store, а также таблица staff, которая предназначена для ведения учета сотрудников в каждом магазине, то можно создать поле, общее для обеих таблиц, которое могло бы быть заполнено, например, значениями идентификаторов магазинов (store ID). Значение поля store ID для конкретного магазина игрушек будет одинаковым в обеих таблицах.

Ниже приводится таблица toy_store, в которую было добавлено поле STORE_ID:

Таблица Toy_store с ID магазина
Показана таблица toy_store с классом STORE_ID.

Таблица магазина игрушек связана с таблицей сотрудников по полю store ID. В следующей таблице показано три сотрудника магазина Play House:

Таблица сотрудников
Таблица сотрудников связана с таблицей toy_store по полю STORE_ID.

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

Поля в таблице хранят одну и ту же категорию данных с одним и тем же типом данных. Например, если в таблице покупателей имеется поле CUSTOMER_NAME, записи этого поля будут содержать имена клиентов в виде данных текстового типа. Вы не будете смешивать эти входные записи – вы не поместите имя пользователя в данное поле в одной строке (записи), а имя продукта в том же самом поле в другой строке (записи).

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

Имена полей

Имена полей – это имена, которые вы присваиваете для столбцов таблицы. Имена должны нести в себе информацию о том, какие данные содержатся в каждом столбце. Например, при создании нового класса пространственных объектов в ArcGIS в таблице автоматически создаются и заполняются поля ObjectID и Shape. Поле ObjectID содержит уникальные номера идентификаторов (ID) для каждого объекта в классе пространственных объектов. Поле Shape определяет тип геометрии, хранящийся в классе пространственных объектов: точка, линия, полигон, мультиточка или мультипатч.

Вы также можете использовать словосочетания для обозначения типа столбца. Например, если вы создаете для таблицы отдельный столбец уникальных ID, который вы будете использовать для индексирования, то вы можете присвоить этому полю имя ID_UK, – UK означает, что это уникальный ключ.

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

Определенные имена полей будут отображаться в ArcGIS под своими полными именами для таблиц, хранящихся в многопользовательской базе геоданных. Например, если вы создаете или импортируете полигональный класс пространственных объектов, который имеет поле с именем Area, то к его имени будет добавлено имя базы данных, схема и имя таблицы. Именно это название вы увидите в таблице атрибутов класса пространственных объектов. Это означает, что для полигонального класса пространственных объектов с именем archsites, хранимого в схеме prof в базе данных museum, поле Area будет MUSEUM.PROF.ARCHSITES.AREA.

Ниже приведен список полей, которые имеют полные имена в многопользовательской базе геоданных:

  • FID
  • AREA
  • LEN
  • POINTS
  • NUMOFPTS
  • ENTITY
  • EMINX
  • EMINY
  • EMAXX
  • EMAXY
  • EMINZ
  • EMAXZ
  • MIN_MEASURE
  • MAX_MEASURE

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

Переименование полей

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

Чтобы переименовать поле, щелкните правой кнопкой мыши класс пространственных объектов или таблицу на панели Каталог и щелкните Дизайн > Поля. При этом откроется представление полей, где вы сможете поменять их свойства. Дважды щелкните на имени поля, которое хотите поменять и введите новое имя поля. Чтобы сохранить изменения, щелкните кнопку Сохранить Сохранить в группе Правки на вкладке Поля.

Нельзя переименовывать следующие поля:

  • Поля ObjectID и GlobalID
  • Любые служебные поля Shape: Shape, shape length, shape:
  • Поля Enabled, AncillaryRole или поля веса сети в классе пространственных объектов сети;
  • Поля представления;
  • Поля в классе пространственных объектов, включенном в набор сетевых данных, набор данных Terrain или набор кадастровых данных;
  • Поля, используемые для отслеживания правки
  • Поля Первичный ключ и Внешний ключ в классах отношений;
  • Поле подтипа
  • Поля растра.

Правила и ограничения в именах полей

В таблице ниже приведены правила поддерживаемых названий полей:

СимволНачало имениДругая позицияВ псевдониме

Буквы (A–Z)

ДаДаДа

Нижнее подчеркивание ( _ )

ДаДа

Цифры (0-9)

ДаДа

Пробелы

Да

Символы (отличные от нижнего подчеркивания)

Да

Надстрочные буквы и цифры

Да

Подстрочные буквы и цифры

Да

Дополнительные правила и ограничения для названий полей:

Псевдонимы полей

Псевдонимы полей позволяют вам назначить для поля альтернативное имя. Вы чаще всего будете использовать те имена полей, которые имеют максимально малую длину и позволяют определить, какие данные содержатся в данном поле. Вы также не сможете использовать пробелы или специальные символы в именах полей, поскольку как показано выше, определенные поля отображаются в таблице полностью определенными именами. В этих случаях вы могли бы использовать псевдонимы полей для присвоения полю более информативного имени. Например, если у вас имеется поле с именем ST_SUFX, в котором хранится значение типа улицы (это было указано с помощью суффикса, используемого для имени улицы), то вы могли бы присвоить этому поле псевдоним Street name suffix.

Более подробно о том, как указать псевдоним поля

Подсказка:
Методы геообработки позволяют проверить имена таблиц и полей. Подробнее см. в разделе Работа с базами геоданных на языке Python.

Использование доменов для контролирования значений в полях

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

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

  • Черный
  • Коричневый
  • Синий
  • Зеленый
  • Светло-коричневый
  • Серый
  • Фиолетовый

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

  • Лазурный
  • Цвет морской волны
  • Небесно-голубой
  • Кобальтовый
  • Аквамарин

Атрибутивные домены также предотвращают возможность появления орфографической ошибки или опечатки. Даже если операторы знают, что им разрешено использовать для обозначения голубого цвета глаз только значение голубой, они все равно могут бы написать это слово с ошибкой (галубой) или нечаянно нажать в момент ввода в текстовое поле слова голубой не ту клавишу на клавиатуре (голубоц).

Типы атрибутивных доменов

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

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

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

  • Пример 1
    • Blk = Черный
    • Brn = Коричневый
    • Blu = Голубой
    • Grn = Зеленый
    • Hzl = Светло-коричневый
    • Gra = Серый
    • Vlt = Фиолетовый
  • Пример 2
    • 1 = Черный
    • 2 = Коричневый
    • 3 = Голубой
    • 4 = Зеленый
    • 5 = Светло-коричневый
    • 6 = Серый
    • 7 = Фиолетовый

Домен с диапазоном определяет для поля диапазон возможных числовых значений.

Чтобы вы смогли использовать интервальный домен, поле должно иметь численный тип или содержать даты. Примером поля, для которого вы можете использовать интервальный домен, может служить поле, в котором хранятся данные о весе тела при рождении западных равнинных горилл в зоопарках. Интервал будет начинаться с самого малого веса (1 кг) и заканчиваться самым высоким (2.5 кг).

Дополнительные сведения об атрибутивных доменах см. в статье Краткий обзор атрибутивных доменов.

Подробнее о том, как создать атрибутивный домен, см. в разделе Представление доменов.

Использование подтипов

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

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

При использовании подтипов применяются следующие правила:

  • В таблице или классе пространственных объектов только одно поле может иметь определенные для него подтипы.
  • Поле, на основе которого создаете подтип, должно иметь тип длинное целое (long integer) или короткое целое (short integer).
  • Вы можете использовать различные правила топологии и отношений для различных подтипов.
  • Можно также использовать различные атрибуты или домены с кодированными значениями для других полей в таблице на основании подтипов.
    Примечание:

    Для каждого подтипа можно применять отдельный домен к полю.

Более подробно о создании и применении подтипов см. Введение в подтипы и Представление подтипов.