Поля – это компоненты, представляющие структуру таблицы. У вас не может быть таблицы без полей. Например, вы можете создать пустую таблицу, в которой будут определены поля, но в ней не будет строк (записей).
В базах данных поля также используются для поддержки отношений между таблицами. Это выполняется путем установки соответствий между полями двух и более таблиц. Например, если в базе данных хранится таблица с именем toy_store, а также таблица staff, которая предназначена для ведения учета сотрудников в каждом магазине, то можно создать поле, общее для обеих таблиц, которое могло бы быть заполнено, например, значениями идентификаторов магазинов (store ID). Значение поля store ID для конкретного магазина игрушек будет одинаковым в обеих таблицах.
Ниже приводится таблица toy_store, в которую было добавлено поле STORE_ID:
Таблица магазина игрушек связана с таблицей сотрудников по полю store ID. В следующей таблице показано три сотрудника магазина Play House:
Определенные поля также используются для поддержки отношений между таблицами и их атрибутивными индексами.
Поля в таблице хранят одну и ту же категорию данных с одним и тем же типом данных. Например, если в таблице покупателей имеется поле name, записи этого поля будут содержать имена клиентов в виде данных текстового типа. Вы не будете смешивать эти входные записи – вы не поместите имя пользователя в данное поле в одной строке (записи), а имя продукта в том же самом поле в другой строке (записи).
При создании таблицы или добавлении поля в существующую таблицу пользователь определяет тип данных, который будет использоваться для хранения данных каждого поля. В некоторых случаях вы также определите длину поля.
Имена полей
Имена полей – это имена, которые вы присваиваете для столбцов таблицы. Имена должны нести в себе информацию о том, какие данные содержатся в каждом столбце. Например, при создании нового класса пространственных объектов в ArcCatalog в таблице автоматически создаются и заполняются поля ID и Shape. Поле Object ID содержит уникальные номера идентификаторов (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
В подобных случаях вам следует подумать об использовании других слов в качестве псевдонимов полей.
Переименование полей
Вы можете переименовать поля в таблице или классе пространственных объектов в закладке Поля диалогового окна Свойства. Начиная с выпуска ArcGIS 10 и в более поздних версиях поля в таблицах баз данных можно переименовывать.
Чтобы переименовать поле, щелкните правой кнопкой мыши класс пространственных объектов или таблицу в дереве Каталоге и щелкните Свойства. Щелкните закладку Поля, чтобы просмотреть список полей в таблице или классе пространственных объектов. Щелкните текст в поле, которое необходимо переименовать, и введите новое имя. Нажмите OK, чтобы применить изменения и закрыть диалоговое окно Свойства.
Нельзя переименовывать следующие поля:
- Поля ObjectID и GlobalID
- Любые служебные поля геометрии: Shape, shape length, shape area
- Поля доступности, служебных ролей или веса сети для сетевого класса объектов
- Поля представления
- Поля в классе пространственных объектов, включенном в набор сетевых данных, набор данных Terrain или набор данных участков
- Поля, используемые для отслеживания редактирования
- Поля первичного и внешнего ключа в классах отношений
- Поле подтипа
- Поля растра
Правила и ограничения в именах полей
В таблице ниже приведены правила поддерживаемых названий полей:
Символ | Начало имени | Другая позиция | В псевдониме |
---|---|---|---|
Буквы (A–Z) | |||
Нижнее подчеркивание ( _ ) | |||
Цифры (0-9) | |||
Пробелы | |||
Символы (отличные от нижнего подчеркивания) | |||
Надстрочные буквы и цифры | |||
Подстрочные буквы и цифры |
Дополнительные правила и ограничения для названий полей:
- Имена полей не могут содержать зарезервированных слов, таких как all или result.
Список зарезервированных слов см. в документации к СУБД.
- Длина поля (столбца) зависит от используемой базы данных.
Дополнительную информацию об ограничениях имен со стороны базы данных см. в разделах Ограничения в именах и размерах для файловой базы геоданных или Данные базы данных и ArcGIS.
Псевдонимы полей
Псевдонимы полей позволяют вам назначить для поля альтернативное имя. Вы чаще всего будете использовать те имена полей, которые имеют максимально малую длину и позволяют определить, какие данные содержатся в данном поле. Вы также не сможете использовать пробелы или специальные символы в именах полей, поскольку как показано выше, определенные поля отображаются в таблице полностью определенными именами. В этих случаях вы могли бы использовать псевдонимы полей для присвоения полю более информативного имени. Например, если у вас имеется поле с именем ST_SUFX, в котором хранится значение типа улицы (это было указано с помощью суффикса, используемого для имени улицы), то вы могли бы присвоить этому поле псевдоним Street name suffix.
Использование доменов для контролирования значений в полях
Атрибутивные домены представляют собой правила, определяющие корректные значения для поля в таблице базы геоданных. Они обеспечивают целостность данных путем установки ограничений на то, какие значения данных пользователь сможет добавить в конкретное поле.
Вам следует использовать атрибутивные домены для тех полей, для которых имеется четко определенный набор или диапазон возможных значений, определенных для этого поля. Например, для поля, в котором хранится ответ на вопрос опроса, какая ваша любимая еда? было бы трудно применить домен, поскольку существует большое количество ответов, которые могут быть даны. Однако поле, хранящее данные о цвете глаз, может иметь назначенный для него атрибутивный домен, поскольку существует весьма ограниченное количество возможных значений.
- Черный
- Коричневый
- Синий
- Зеленый
- Светло-коричневый
- Серый
- Фиолетовый
Использование атрибутивного домена для поля, хранящего данные по цвету глаз, могло бы обеспечить некоторую последовательность, или согласованность значений. Если человеку, производящему сбор данных, было бы разрешено вводить для цвета глаз в текстовое поле любой цвет, то вы бы могли запутаться во всех этих значениях глаз голубого цвета:
- Голубой
- Цвет морской волны
- Небесно-голубой
- Кобальтовый
- Аквамарин
Атрибутивные домены также предотвращают возможность появления орфографической ошибки или опечатки. Даже если операторы знают, что им разрешено использовать для обозначения голубого цвета глаз только значение голубой, они все равно могут бы написать это слово с ошибкой (галубой) или нечаянно нажать в момент ввода в текстовое поле слова голубой не ту клавишу на клавиатуре (голубоц).
Типы атрибутивных доменов
Существует два типа атрибутивных доменов, которые вы можете использовать для установки ограничений значений полей: домен кодированных значений и интервальный домен (диапазон).
Домены кодированных значений – используют коды для определения набора возможных значений поля, в котором хранятся дискретные данные.
Вы можете использовать домены с кодированными значениями для любого типа данных. В поле цвета глаз вы можете создать домен кодированных значений с помощью одного из следующих примеров настроек кода:
- Пример 1
- Blk = Черный
- Brn = Коричневый
- Blu = Голубой
- Grn = Зеленый
- Hzl = Светло-коричневый
- Gra = Серый
- Vlt = Фиолетовый
- Пример 2
- 1 = Черный
- 2 = Коричневый
- 3 = Голубой
- 4 = Зеленый
- 5 = Светло-коричневый
- 6 = Серый
- 7 = Фиолетовый
Домен с диапазоном определяет для поля диапазон возможных числовых значений.
Чтобы вы смогли использовать интервальный домен, поле должно иметь численный тип или содержать даты. Примером вы можете использовать интервальный домен, для поля, в котором хранятся данные о весе тела при живорождении у горилл в зоопарках западной низменности. Интервал будет начинаться с самого малого веса (1 кг) и заканчиваться самым высоким (2.5 кг).
Дополнительные сведения об атрибутивных доменах см. в статье Краткий обзор атрибутивных доменов.
Сведения о создании атрибутивного домена см. в статьях Создание нового атрибутивного домена с диапазоном и Создание нового атрибутивного домена кодированных значений.
Использование подтипов
Подтипы представляют собой классификации, созданные в рамках класса пространственных объектов или таблицы в базе геоданных. Они также позволяют вам объединять пространственные объекты в логические группы на основании уникальных характеристик или модели поведения данных. Эта характеристика или модель поведения представляется в виде значений какого-то поля в таблице. Например, для таблицы гидрологических данных, вы можете определить подтипы для различных типов русел: ручьев, горных ручьев, протоков, каналов и рек. Для каждого из этих подтипов вы можете использовать различные правила топологии, правила связности, значения по умолчанию и правила отношений.
Использование подтипов для хранения групп связанных объектов может повысить производительность обработки запросов. Если бы вы хранили различные типы данных в разных классах пространственных объектов вместо использования подтипов, то в вашей базе данных было бы гораздо больше классов пространственных объектов, что могло бы привести к увеличению времени поиска.
При использовании подтипов применяются следующие правила:
- В таблице или классе пространственных объектов только одно поле может иметь определенные для него подтипы.
- Поле, на основе которого создаете подтип, должно иметь тип длинное целое (long integer) или короткое целое (short integer).
- Вы можете использовать различные правила топологии и отношений для различных подтипов.
- Можно также использовать различные атрибуты или домены с кодированными значениями для других полей в таблице на основании подтипов.
Выполните следующие шаги для применения подтипов:
- Убедитесь в том, что поле, к которому вы хотите применить подтип, имеет тип длинное или короткое целое. Если это не так, то добавьте поле с типом длинное целое или короткое целое в таблицу или класс пространственных объектов. В большинстве случаев, поля с типом короткое целое должно быть достаточно. Однако если существует возможность использования в подтипе значений, превышающих 32767, то используйте поле с типом длинное целое.
Например, для класса объектов рек вы бы могли добавить поле с типом короткое целое, присвоить ему имя Watershed для создания подтипов на основании бассейна водосбора, к которому данная река принадлежит.
- На вкладке Подтипы диалогового окна Свойства для таблицы или класса пространственных объектов укажите поле подтипа, выбрав его из первого раскрывающегося списка.
В случае примера с реками можно было выбрать поле Watershedв списке Поле подтипа.
Новый подтип будет автоматически добавлен в таблицу Subtypes. В данном подтипе по умолчанию имеется столбец Код со значением 0 и Описание Нового подтипа.
- Дважды щелкнуть в каждом из этих полей, чтобы ввести код подтипа и необходимое описание.
Вы можете изменить значение первого кода на 1, а в описании ввести имя первого водосборного бассейна.
- Продолжайте добавлять коды подтипов и их описания в таблице Подтипы.
В поле, расположенном под полем с кодом 1, можно добавить код 2 с соответствующим именем водосборного бассейна в поле Описание. Ниже этого поля добавьте код 3 с соответствующим именем водосборного бассейна и т.д. Делайте так до тех пор, пока не создадите коды и описания для всех водосборных бассейнов, представленных в вашем классе пространственных объектов рек.
- Для определения различных значений по умолчанию или доменов для каждого подтипа щелкните на подтипе в списке Подтипы. В списке Значения по умолчанию и домены можно ввести значение по умолчанию для любых полей в этом списке. Для применения к полям в этом списке интервальных доменов или доменов кодированных значениями щелкните на поле Домен и выберите домен из раскрывающегося списка. Если доменов нет, создайте новый домен, нажав кнопку Домены в нижней части диалогового окна Свойства, чтобы открыть диалоговое окно Домены рабочей области.
Значения по умолчанию и домены, которые вы определяете, будут использоваться для того подтипа, который вы выбрали из списка Подтипы. Если вы щелкнете на другом подтипе в списке Подтипы, то значения по умолчанию и домены будут либо пустыми (если вы не определили для этого подтипа значения по умолчанию и домены) или будут содержать другие значения.