Среди различных типов баз геоданных файловые базы геоданных больше всего похожи на персональные базы геоданных, потому что они спроектированы на работу в однопользовательском режиме и не поддерживают версии. Вы работаете с ними точно так же при отображении, проведении запросов, редактировании, обработке данных или разработке приложений. Однако между ними существует несколько принципиальных различий. Например, у персональной базы геоданных имеется предел в размере в 2 ГБ, в то время как у файловых баз геоданных нет ограничений по размеру.Синтаксис языка структурированных запросов (SQL) между ними также в некоторой степени отличается. Если вы привыкли использовать персональную базу геоданных и хотели бы перейти к использованию файловой базы геоданных, то в данном разделе вы можете прочитать о различиях между этими типами баз геоданных, а также найти информацию о действиях, которые вам необходимо выполнить для этого перехода.
Для получения информации о различиях между файловыми базами геоданных, персональными базами геоданных и многопользовательскими базами геоданных, см. разделы Типы баз геоданных и Как растровые данные хранятся в базе геоданных.
Создание новой файловой базы геоданных
Чтобы создать новую пустую файловую базу геоданных, щелкните правой кнопкой мыши на папке файловой системы в дереве Каталога, выберите Новый и выберите Файловая база геоданных. Более подробно см.Создание файловой базы геоданных.
Перенос существующих данных
- Самым простым способом копирования данных из персональной базы геоданных в файловую базу геоданных является использование команд Каталога Копировать и Вставить. Использование Копирования/Вставки является гибким, поскольку вы можете выбрать, что именно вы хотите скопировать. Вы можете выбрать в персональной базе геоданных все или только некоторые объекты, например, несколько наборов классов объектов, которые вы хотите перенести. Например, чтобы скопировать набор классов из персональной базы геоданных в файловую, создайте новую пустую файловую базу геоданных в дереве Каталога. Выберите нужные вам элементы персональной базы геоданных, щелкните правой кнопкой на команде Копировать (Copy), затем правой кнопкой на файловой и Вставить (Paste). Более подробно см.Копирование наборов классов, классов пространственных объектов и таблиц в другую базу геоданных.
Копирование/Вставка может перенести любой тип данных в базе геоданных за исключением атрибутивных доменов, которые не связываются ни с какими классами пространственных объектов или таблицами. Если у вас имеются такие домены, и вы хотели бы перенести их, то вам нужно использовать функцию Экспорт в XML-документ рабочей области, которая будет описана далее.
- Чтобы скопировать целую базу геоданных, используйте команду Экспорт > XML-Документ рабочей области (Export > XML Workspace Document) для экспорта всей базы данных в XML-файл. Вы можете создать новую пустую файловую базу геоданных и использовать команду Импорт > XML-Документ рабочей области (Import > XML Workspace Document) для импорта данных из XML-файла в файловую базу геоданных. Данный способ также является гибким, поскольку вы можете выбирать наборы данных для экспорта в мастере Экспорт (Export). Более подробно см. разделы:Экспорт наборов классов, классов и таблиц в файл экспорта и Импорт наборов классов, классов и таблиц из документа рабочей области XML.
- Если вы переносите данные базы геоданных с низкой точностью, то при использовании Копировании/Вставки и Экспорта в XML-документ рабочей области эти инструменты автоматически сконвертируют данные с более высокой точностью, установив разрешение в районе 0,1 миллиметра. Это достаточное значение по умолчанию, и оно работает отлично в большинстве случаев. Однако если вы бы хотели, чтобы данные хранились с другим разрешением, то вам нужно использовать инструмент Обновить пространственную привязку (Upgrade Spatial Reference) до того, как переносить данные с помощью Копирования/Вставки или Экспорта в XML-документ рабочей области. Обновление пространственной привязки конвертирует ваши данные с большей точностью и позволит вам выбрать разрешение. Другим способом установки контроля за разрешением является перенос данных с помощью инструментов геообработки импорт/экспорт. Для получения более подробной информации см.Переход к использованию большей точности данных.
- Для перемещения шейп-файлов, покрытий или данных другого формата в файловую базу геоданных вы можете использовать те же средства, как и в случае переноса данных в персональную базу геоданных. Выберите набор данных в дереве Каталога, щелкните правой кнопкой мыши на нем и выберите Экспорт > В Базу геоданных (Export > To Geodatabase) (используйте команду В Базу геоданных (несколько) (To Geodatabase (multiple)) для экспорта нескольких наборов данных за раз). Вы также можете найти эти инструменты в ArcToolbox в наборе инструментов Конвертация > В БГД (Conversion > To Geodatabase). Более подробно см. следующие разделы: Импорт объектов, Импорт таблиц и Импорт наборов растровых данных.
В файловых базах геоданных имеются ключевые слова конфигурации, которые настраивают хранение отдельных наборов данных. Вы можете определить ключевое слово при копировании и вставке или импорте данных, хотя значения по умолчанию обычно работают хорошо. Более подробную информацию см.Ключевые слова конфигурации для файловых баз геоданных.
Создание новых наборов данных
Вы можете создать пустой набор классов объектов, класс пространственных объектов, каталог растров, набор растровых данных и таблицу в файловой базе геоданных точно так же, как и в персональной базе геоданных: щелкните правой кнопкой мыши на базе геоданных или наборе классов объектов, выберите Новый и щелкните на объекте, который вы хотите создать. См. следующие разделы для получения более подробной информации:
Создание новых наборов данных с помощью ArcCatalog
Создание наборов растровых данных в базе геоданных
Создание каталогов растров в базе геоданных
Как только вы создадите пустой класс пространственных объектов или таблицу, вы можете загрузить загрузить туда данные из дерева Каталога. Более подробную информацию см.Загрузка данных в существующие классы пространственных объектов и таблицы и Импорт наборов растровых данных.
В отличие от персональных баз геоданных, каждый раз, когда вы создаете новый класс пространственных объектов файловой базы геоданных, каталог растров, растровый набор данных или таблицу с помощью дерева Каталога или инструмента геообработки, вы можете по желанию указать ключевое слово конфигурации. Ключевое слово конфигурации настраивает то, каким образом данные будут храниться и то, каким образом к ним будет осуществляться доступ. Описание доступных ключевых слов см.Ключевые слова конфигурации для файловых баз геоданных.
Редактирование, отображение и запросы к данным
Как только набор данных будет перенесен в файловую базу геоданных, он будет выглядеть в ArcCatalog и в ArcMap точно так же, как и в персональной базе геоданных. За исключением пространственных индексов и SQL-запросов, которые будут описаны ниже, вы будете работать с наборами данных точно таким же образом. Все команды и инструменты, с которыми могут работать наборы данных персональной базы геоданных, также могут быть использованы для наборов данных файловой базы геоданных.
Пространственный индекс класса пространственных объектов персональной базы геоданных использует один размер ячейки сетки, который не может быть изменен. Пространственный индекс файловой базы геоданных использует до трех уровней сетки, размер ячеек которых вы можете изменить в любое время. ArcGIS автоматически повторно создает пространственный индекс по окончанию определенных операций обновления, чтобы обеспечить оптимальную работу индекса и установить подходящие размеры ячеек сеток индекса. Однако в некоторых исключительных случаях вам может понадобиться произвести повторный расчет индекса вручную. Более подробную информацию см.Установка пространственных индексов.
Синтаксис оператора SQL WHERE, который вы используете для проведения запросов к файловой базе геоданных, – это тот же самый синтаксис, который вы можете использовать для покрытий, шейп-файлов и других файловых источников данных с некоторыми дополнительными возможностями, например, поддержкой подзапросов. Из-за этого синтаксис оператора WHERE в файловой базе геоданных отличается от персональной базы геоданных. Диалоговые окна, предназначенные для создания SQL-выражений в ArcGIS, помогут вам использовать корректный синтаксис оператора WHERE для данных, к которым вы производите запрос, поскольку там приводится список имен полей и значений с нужными разделителями. В них также будут выбраны подходящие ключевые слова и операторы. Однако если для слоя в персональной базе геоданных будет определен оператор WHERE, он может не работать для того же самого слоя после того, как вы перенесете исходные данные в файловую базу геоданных. Ниже приводятся вероятные причины, по которым оператор WHERE не будет работать:
- В персональных базах геоданных имена полей заключаются в квадратные скобки, а в файловых базах геоданных они заключаются в двойные кавычки.
- В качестве группового символа в персональных базах геоданных вы используете * для замены нескольких символов и ? для замены одного символа. В файловых базах геоданных используются знаки % и _, соответственно.
- Поиск в строке в персональных базах геоданных не является чувствительным к регистру, в то время как в файловых базах геоданных он чувствителен к регистру.
- В персональных базах геоданных для конвертации регистра строки используются UCASE и LCASE, а в файловых базах геоданных используются UPPER и LOWER.
- Даты и время в персональных базах геоданных разделяются знаками #, а в файловых базах геоданных перед ними идет слово date.
Синтаксис оператора WHERE в персональной базе геоданных | Синтаксис того же оператора в файловой базе геоданных |
---|---|
[STATE_NAME] = 'California' | "STATE_NAME" = 'California' |
[OWNER_NAME] LIKE '?atherine smith' | "OWNER_NAME" LIKE '_atherine smith' |
[STATE_NAME] = 'california' (когда требуется провести нечувствительный к регистру поиск) | LOWER(«STATE_NAME») = 'california' |
UCASE([LAST_NAME]) = 'JONES' | UPPER("LAST_NAME") = 'JONES' |
[DATE_OF_BIRTH] = #06-13-2001 19:30:00# | «DATE_OF_BIRTH» = date '2001-06-13 19:30:00' |
Дополнительные причины, по которым оператор WHERE может не работать:файловые базы геоданных поддерживают меньшее число операторов и функций, которые поддерживаются персональной базой геоданных; файловая база геоданных обеспечивает ограниченную поддержку подзапросов. Однако это не самая вероятная причина, по которой оператор WHERE не работает. Файловые базы геоданных поддерживают большинство функций оператора WHERE, которые могут быть вам нужны.
Геообработка
Существует несколько небольших различий в том, как вы будете использовать инструменты геообработки в файловой базе геоданных по сравнению с персональными базами геоданных:
- Файловые базы геоданных поддерживаются во всех инструментах геообработки.
- Для создания файловой базы геоданных, используйте инструмент Создать файловую БГД.
- Каждый раз, когда вы используете инструмент, который создает новый класс пространственных объектов, каталог растров, набор растровых данных или таблицу в файловой базе геоданных, вы можете по желанию указать ключевое слово конфигурации для настройки метода хранения данных. Эта опция доступна для некоторых инструментов. Если эта опция недоступна, то воспользуйтесь диалоговым окном Параметры среды (Environments), чтобы указать ключевое слово.
Сжатие векторных данных
В отличие от персональных и многопользовательских баз геоданных, файловая база геоданных позволяет вам по желанию хранить векторные данные в сжатом формате «только для чтения» для снижения размера хранимых данных. Сжатые данные имеют формат прямого доступа. Нет необходимости отменять сжатие данных при доступе к ним: ArcGIS и ArcReader считывают их напрямую. Данные имеют такой же вид, как и до сжатия, и вы можете выполнить все операции уровня «только для чтения» точно так же.Для этого вы можете использовать команды дерева Каталога, ArcMap, геообработки или ArcObjects. Более подробную информацию см.О сжатии данных файловой базы геоданных.
Перенос данных на уровне приложений
Если у вас имеется приложение, написанное на ArcObjects, и вы хотели бы изменить путь к данным, к которым это приложение имеет доступ, с персональной базы геоданных на файловую базу геоданных, то вам следует выполнить следующие действия:
- Обновите форму рабочей области (workspace factory), чтобы обеспечить приложению работу с новым источником данных. Измените форму рабочей области (workspace factory) с AccessWorkspaceFactory на FileGDBWorkspaceFactory и расширение базы данных с .mdb на .gdb.
- Если ваше приложение использует язык SQL, то вам будет нужно изменить синтаксис, чтобы обеспечить его работу для файловой базы геоданных:
- Как было описано в этом разделе ранее, синтаксис SQL-оператора WHERE в файловой базе геоданных отличается от синтаксиса SQL-оператора WHERE персональной базы геоданных. Если ваше приложение использует QueryFilter или QueryDef, то обратитесь к описанию оператора WHERE, расположенному выше, для получения информации о том, какие изменения вам будет нужно произвести.
- Файловые базы данных не поддерживают все опции и функции, которые доступны для персональных баз геоданных. В ArcGIS 9.2 наиболее часто используемыми функциями, которые не поддерживаются файловыми базами геоданных, являются DISTINCT, GROUP BY и ORDER BY; набор функций AVG, COUNT, MIN, MAX и SUM не поддерживаются вне подзапросов. Поддержка некоторых этих функций возможно будет обеспечена в последующих версиях.
- Поддержка QueryDef join для файловых баз геоданных ограничена в том, что подполя могут содержать только простые имена столбцов:псевдонимы (aliases), выражения (expressions) и функции (functions) не поддерживаются. Оператор FROM может содержать только простые имена таблиц.
- Поддержка ExecuteSQL для INSERT и UPDATE в файловых базах геоданных ограничена до использования только операторов, содержащих только буквенные значения. Составные выражения, например , а также подзапросы не поддерживаются в операторах INSERT и UPDATE. Однако в работе оператора DELETE ограничений нет.Этот оператор поддерживает все функции оператора WHERE, которые поддерживаются файловой базой геоданных.
SET RENTAL_PRICE = (RENTAL_PRICE - 1.00)
- Если ваше приложение содержит подзапросы, то они могут не работать с файловыми базами геоданных, поскольку их поддержка ограничена. Для получения более подробной информации см. Справка по SQL.
- Для максимизации производительности в переносе данных вам следует рассмотреть возможность использования режима «только загрузка» каждый раз, когда загружается большое количество записей. Для получения более подробной информации см. «Рекомендации по поддержке производительности».
За исключением перечисленных выше различий ArcObjects работает с файловыми базами геоданных точно так же, как и с персональными.
Рекомендации по поддержке производительности
Выполнение следующих действий может помочь вам улучшить и поддержать производительность работы в файловой базе геоданных:
- Разрешением по умолчанию, которое устанавливается при создании нового класса пространственных объектов, является 0,1 мм или эквивалент этого значения в единицах системы координат набора данных. Значение по умолчанию для x,y разрешения будет отлично работать почти во всех случаях. Если ваши данные не имеют такой точности, то вы можете по желанию установить большее x,y разрешение при создании класса пространственных объектов. Хранение координат с большим x,y разрешением уменьшит объем и улучшит производительность. Это применимо не только для файловых баз геоданных, но и для многопользовательских баз геоданных. Для получения более подробной информации о x,y разрешении см.Классы пространственных объектов.Основные понятия.
- Как и в случае работы с любым другим источником данных, создавайте только те индексы атрибутов, которые действительно вам нужны, поскольку каждый индекс, который вы будете добавлять, будет немного замедлять процесс редактирования класса пространственных объектов или таблицы. Каждый раз, когда вы редактируете индексированный атрибут, ArcGIS должен обновить также индекс. Если вам будет нужно часто редактировать данные поля, то не создавайте для него индекс.
- Если вы планируете добавлять, редактировать или удалять большое количество объектов или записей в крупном наборе данных в сессии редактирования, с помощью инструмента геообработки или в дереве Каталога, то вы можете сэкономить время, если удалите пространственный индекс и любые индексы атрибутов перед тем, как начать.После выполнения нужных изменений вы можете повторно добавить индексы.
Каждый раз, когда вы добавляете, удаляете или редактируете или удаляете объект или запись, ArcGIS нужно обновлять индексы. Если вы производите изменения для небольшого набора данных или всего нескольких записей, например 10 записей из 1 миллиона, то количество времени, которое потребуется ArcGIS для обновления индексов после каждого изменения не будет критичным. Однако если вы производите изменения для большого количества записей, например, 300,000 из 1 миллиона, то обновление индексов для многих инкрементных изменений может потребовать намного больше времени, чем если бы вы удалили индексы до начала редактирования, а после завершения работы создали индексы повторно. При принятии решения об удалении индексов в других случаях должны рассматриваться компромиссы; необходимость удаления индексов может не быть очевидной.Точно так же, разработчики, пишущие загрузчики (loaders) или конверторы (converters) с ArcObjects, должны иметь ввиду возможность использования режима «только загрузка» при загрузке большого количества записей. Режим «только загрузка» приостанавливает обновление всех атрибутивных и пространственных индексов, пока объекты не будут импортированы. Как только все объекты будут импортированы, индексы для всех записей, существующие и новые, будут обновлены автоматически. Вы можете установить данный режим с помощью интерфейса IFeatureClassLoad.
- Как и в случае персональной базы геоданных, если вы часто добавляете или удаляете данные, то должны регулярно проводить уплотнение (compact) вашей файловой базы геоданных. Вы также должны уплотнять (compact) файловую базу геоданных после любого крупномасштабного изменения. Уплотнение (compacting) улучшает производительность путем реорганизации структуры, в которой данные хранятся на диске. Более подробную информацию см.Уплотнение файловых и персональных баз геоданных.
- Как и при работе с любыми другими типами файлов, хранимыми в вашей файловой системе, вам необходимо поддерживать высокую производительность и качество настройки вашего компьютера. Если вы работаете в Windows, то вам следует регулярно запускать служебную программу дефрагментации диска для поддержки общей производительности файловой системы. Дефрагментация диска – это служебная программа, которая поставляется вместе с операционной системой Windows.Для получения более подробной информации см. справку по вашей операционной системе в сети Интернет.
- Наличие сеток пространственного грида с ячейками, размеры которых будут слишком большими или слишком маленькими, может привести к увеличению времени загрузки и снизить производительность при выполнении пространственного поиска. ArcGIS повторно строит пространственный индекс автоматически по окончании большинства операций; он подразумевает, что для размеров сетки установлены оптимальные значения. Вам будет редко нужно производить перерасчет индексов вручную. Однако могут возникнуть ситуации, когда вы будете добавлять большое количество объектов в сессии редактирования, что может потребовать от вас ручного перерасчета. Более подробную информацию см.Установка пространственных индексов.