Читайте также:
|
|
В первом приближении импорт является зеркальным отображением экспорта - он обеспечивает перенос данных их внешнего файла в таблицу. Поэтому обязательные параметры вызова утилиты импорта - те же, что и утилиты экспорта: имя файла, имя таблицы, формат данных. Однако, ряд дополнительных проблем, возникающих при импорте, требует специального рассмотрения. Основные из этих проблем следующие:
· ввод данных в непустую таблицу;
· совместимость данных с описанием таблицы;
· проверка правил целостности и модификация индексов.
Таблица, в которую импортируются данные не обязательно должна быть пустой. В утилите импорта могут задаваться следующие режимы импорта:
· создание таблицы - таблица создается заново (возможно только при импорте из файла собственного формата, так как только этот формат включает в себя описание таблицы);
· замена - удаление всех строк из уже существующей таблицы и вставка данных из внешнего файла;
· вставка - вставка данных из внешнего файла без удаления имеющихся в таблице строк;
· вставка с заменой - замена строк с идентичными первичными ключами на строки из внешнего файла и вставка строк из внешнего файла, имеющих оригинальные первичные ключи.
Следует иметь в виду, что структура таблицы, в которую данные импортируются, не обязательно совпадает со структурой таблицы, из которой они были импортированы, не говоря уже о том, что источником внешних данных может быть и не СУБД. Поэтому, во-первых, при вызове утилиты импорта может быть заданы имена столбцов и порядок следования значений столбцов во внешнем файле. Во-вторых, при импорте может возникать несоответствие между типом столбца таблицы и представлением данных для него во внешнем файле. Это могут быть как принципиальные несоответствия типов (например, данные для столбца числового типа представлены в виде строковой константы), так и "мягкие" несоответствия (например, длина строковой константы превышает зарезервированную длину данных в столбце или значение числовой константы превышает допустимое для типа SMALLINT). Принципиальные несоответствия приводят к отказу от импорта строки, для "мягких" несоответствий возможны более "мягкие" решения, такие как:
· усечение записываемых данных до предельной длины;
· замена на значения по умолчанию;
· замена на NULL-значения.
В любом случае строки, утерянные или искаженные при импорте, должны сохраняться в отдельном файле - файле "исключений".
Для таблицы, в которую импортируются данные, могут быть определены правила целостности - такие как первичный ключ, непустые (NOT NULL) значения в столбцах, вторичные ключи и т.п. Эти правила могут не совпадать с правилами, определенными для источника данных, или не выполняться для новой конфигурации данных. Еще одна проблема импорта связана с изменением индексов. Поскольку при импорте в индексы может быть добавлено большое количество новых ключей, сбалансированность индексов может быть нарушена.
Существуют два принципиально разных варианта построения утилит импорта, по-разному решающие эти проблемы. Первое решение заключается в том, что импорт каждой новой строки производится "по полной программе", аналогичной той, которая выполняется при выполнении SQL-операторов INSERT или UPDATE - с полной проверкой целостности и модификацией индексов. Во втором варианте импорт выполняется в несколько этапов, каждый из которых охватывает все импортируемые данные: включение новых строк, построение сбалансированного индекса, минимальная проверка целостности, которая может быть выполнена в пределах одной таблицы (непустые значения и первичный ключ), полная проверка целостности (включая ссылочную целостность).
Как и в случае несоответствия по данным, строки, исключенные из импорта в результате проверки целостности должны сохраняться в файле исключений или в отдельной таблице.
Для выполнения некоторых действий (таких как перестройка индексов, проверка целостности) утилите импорта требуются дополнительные ресурсы памяти - внешней и оперативной. Объем этих ресурсов может выбираться по умолчанию или задаваться параметрами утилиты. Некоторые утилиты используют ресурсы внешней памяти из пространства временных таблиц БД.
Дата добавления: 2015-07-20; просмотров: 60 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Экспорт данных и форматы внешних файлов | | | Модели управления доступом |