Инструментальная Система Управления Базами Данных руководство пользователя

Вид материалаРуководство пользователя

Содержание


16. Обмен данными между банками
Создание (описание) таблиц обмена
Выполнение обмена данными
Экспорт данных в текст.
Подобный материал:
1   ...   39   40   41   42   43   44   45   46   ...   53

16. Обмен данными между банками

Понятие обмена данными. Назначение таблиц обмена.


В ИСУБД «CronosPlus» имеется возможность обмена данными между банками. В обмене участвуют два банка: банк-источник и банк-получатель. Результатом обмена является добавление записей из одного банка данных (источника) в другой (получатель). Для проведения обмена, в обоих банках должны быть созданы (описаны) таблицы обмена.

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

Обмен данными в ИСУБД «CronosPlus» проводится, в общем, по следующей схеме. Сначала следует создать таблицы обмена в банке-источнике и в банке-получателе. Фактически, именно при создании (описании) таблиц обмена определяется, какие поля в каких базах данных будут участвовать в обмене, то есть передаваться из одного банка данных в другой. После этого нужно выполнить запрос в банке-источнике и отобрать те записи, которые будут переданы в банк-получатель. На этом этапе определяется, какие записи будут переданы при проведении конкретного обмена. Отобрав нужные записи, нужно перейти к режиму обмена. На этом этапе Вы указываете банк-получатель и другие параметры.

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

Создание (описание) таблиц обмена


Итак, для проведения обмена данными между банками, сначала нужно поочередно создать (описать) таблицы обмена для банка-источника и для банка-получателя. Сделать это можно в закладке «Таблицы обмена» (см. Рис. 16.1) окна диалога «Проектирование банка данных». Чтобы вызвать это окно на экран, выберите в Главном меню Проектирование  Структуры банка данных.



Рис. 16.1. Закладка «Таблицы обмена» окна диалога «Проектирование банка данных».

В центре этой закладки приведен список всех существующих в банке таблиц обмена. Чтобы удалить таблицу обмена из этого списка, выделите ее имя и нажмите кнопку «Удалить». Система запросит подтверждение «Вы действительно хотите удалить таблицу?». Нажмите кнопку «Да», для выполнения данной операции, или кнопку «Нет» для ее отмены. Для создания (описания) новой таблицы обмена, нажмите кнопку «Новая». На экране появится окно диалога «Проектирование таблицы обмена банка» (см. Рис. 16.2).

Чтобы просмотреть/изменить описание (свойства) уже существующей таблицы обмена, выделите ее имя в списке и нажмите кнопку «Свойства». На экране, как и при создании новой таблицы, появится окно диалога «Проектирование таблицы обмена банка» (см. Рис. 16.2).



Рис. 16.2. Окно диалога «Проектирование таблицы обмена банка».

Как видно на Рис. 16.2., окно диалога «Проектирование таблицы обмена банка» состоит из трех частей: кнопочной панели, строки «Имя таблицы» и списка всех баз данных, созданных в банке. Для того чтобы добавить (включить) базу данных в таблицу обмена, выделите название базы в списке баз и нажмите кнопку «Создать». Соответствующая база будет помечена значком . При этом система автоматически присвоит базе внешнее имя (совпадающее с мнемокодом базы). Как уже отмечалось выше, внешние имена баз данных, участвующих в обмене, должны совпадать в таблицах обмена банка-источника и банка-получателя. Поэтому, если Вас не устраивает внешнее имя, автоматически созданное системой, Вы можете его изменить. Для этого нужно дважды щелкнуть левой кнопкой мыши на внешнем имени соответствующей базы. После этого Вы получите возможность изменить внешнее имя базы. Следует отметить, что оно должно состоять из двух символов (цифр или букв) и не должно быть пустым. Внешнее имя базы должно быть уникальным в рамках одной таблицы обмена.

После того, как база данных включена в таблицу обмена, необходимо просмотреть и, возможно, изменить свойства этой базы. В данном случае под свойствами базы понимается состав полей, значения которых подлежат обмену. Выделите название базы в списке баз и нажмите кнопку «Свойства». На экране появится окно диалога «Таблица обмена банка» (см. Рис. 16.3).



Рис. 16.3. Окно диалога «Таблица обмена банка».

Как видно на Рис. 16.3., в этом окне диалога выведен список всех полей, входящих в описываемую базу данных. Каждому полю соответствует одна строка в списке. В этой строке указывается номер, название, тип и внешний номер поля. Для сложных полей кроме этого выводится информация о связанных базах.

Как уже было отмечено выше, для проведения обмена данными, поля (значения которых подлежат обмену) каждой базы, входящей в таблицу обмена, должны иметь одинаковые внешние номера для банка-источника и для банка-получателя. При этом поля, значения которых не должны участвовать в обмене, не должны иметь внешние номера59. По умолчанию система присваивает внешние номера (совпадающие с номерами полей в базе) всем полям, входящим в базу, включенную в таблицу обмена.

В окне диалога «Таблица обмена банка» (см. Рис. 16.3) Вы можете изменить или удалить внешний номер поля. Для этого выделите строку, соответствующую полю, а затем дважды щелкните левой кнопкой мыши на внешнем номере этого поля. После этого Вы сможете изменить внешний номер поля. Следует отметить, что внешний номер может иметь неограниченную длину и состоять не только из цифр, но и из букв. Внешний номер поля должен быть уникальным в рамках одной базы.

Для того чтобы включить в таблицу обмена сложное поле, достаточно, создать для этого поля внешний номер. Для того чтобы связи между записями, участвующими в обмене, были сохранены (информация о связях содержится именно в сложных полях), при описании сложного поля должен быть установлен специальный флажок. Этот флажок «подтверждает», что связи между записями, установленные по конкретному сложному полю, должны переноситься в банк-получатель при проведении обмена. По умолчанию такой флажок установлен. Этот факт отображается в окне диалога «Таблица обмена банка» (см. Рис. 16.3) в столбце «Связанные базы». Если связи между записями, установленные по некоторому сложному полю, должны переноситься в банк-получатель (специальный флажок установлен), в строке, соответствующей этому сложному полю выводятся имена (мнемокоды) связанных баз данных. Если по сложному полю установлены связи с несколькими базами данных, имена этих баз будут выведены через точку с запятой.

Если Вы не хотите при проведении обмена переносить в банк-получатель связи между записями, Вам необходимо снять специальный флажок для сложного поля (полей). Для этого выделите такое поле в списке окна диалога «Таблица обмена банка» (см. Рис. 16.3) и дважды щелкните левой кнопкой мыши в графе «Связанные базы». На экран будет выведен список всех баз данных, которые связаны с описываемой базой по данному сложному полю. Слева от названия каждой такой базы расположен специальный флажок. Как уже говорилось выше, по умолчанию этот флажок установлен. Если Вы снимете специальный флажок для одной (или нескольких) базы данных, ее (их) мнемокод исчезнет из строки, соответствующей сложному полю. При проведении обмена, в банк-получатель будут перенесены значения этого сложного поля (то есть системные номера связанных записей, с указанием мнемокода связанной базы), без установления соответствующих связей.

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

Рассмотрим пример. Как Вам известно, поля типа Текстовое могут хранить любую последовательность символов. Поэтому после проведения обмена данными в такое поле может быть помещено число, хранившееся до обмена в поле типа Числовое, или дата, хранившаяся в поле типа Дата (правда, ее формат не будет сохранен), и т.д. Можно привести другой пример. Значением поля типа Словарное является код (обычно это число). Следовательно, значение такого поля может после проведения обмена «попасть» в поле типа Текстовое или Числовое.

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

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

В окне диалога «Проектирование таблицы обмена банка», следует включить в таблицу обмена все необходимые базы и описать их, как это было рассказано выше. Затем нужно присвоить таблице обмена имя, заполнив строку «Имя таблицы», и нажать кнопку «Выполнить».

Заметим, что для того чтобы провести обмен связанными данными, т.е. хранящимися в разных базах, необходимо включить все соответствующие базы в таблицу обмена. В этом случае в таблицу обмена обязательно должны быть включены все обеспечивающие связь сложные поля (кроме того, должен быть установлен специальный флажок, «подтверждающий» участие связи в обмене – подробнее см. выше). Базы данных должны быть связаны между собой в банке-источнике и в банке-получателе, т.е. быть описаны соответствующим образом в закладке «Список баз» окна диалога «Проектирование банка данных» (подробнее см. раздел 4.3)

Выполнение обмена данными


Для того чтобы начать выполнение обмена данными, необходимо подключить к системе банк-источник и вызвать на экран окно диалога «Обмен данных» (см. Рис. 16.4). Данное окно может быть вызвано только из рабочего окна результатов запроса (см. Рис. 9.3), путем нажатия кнопки . Запрос выполняется в банке-источнике. Другая возможность вызова окно диалога «Обмен данных» - выбрать в окне просмотра/коррекции пункт меню Результаты  Обмен данными (комбинация клавиш Ctrl+Shift+O>. В этом случае Вы обмениваться будут не все записи, а только помеченные (по умолчанию текущая) записи.

В строке «Таблица обмена» окна диалога «Обмен данных» (см. Рис. 16.4) следует выбрать из списка (в него заносятся все существующие в банке-источнике таблицы обмена) имя той таблицы обмена, которая будет использоваться.

Для заполнения строки «Банк-получатель», нажмите кнопку «Выбор». На экране появится окно диалога «Выберите банк» (см. Рис. 14.19), в котором нужно выделить мышью строку, соответствующую банку-получателю, и нажать кнопку «Выполнить». После этого в строке «Банк-получатель» появится название выбранного Вами банка, а в строке расположенной ниже – адрес этого банка на диске.

В строке «Таблица обмена банка-получателя», как и при заполнении строки «Таблица обмена», следует выбрать из списка имя нужной таблицы обмена банка-получателя. Пока Вы не укажете банк-получатель, строка «Таблица обмена банка-получателя» будет недоступной для работы.




Рис. 16.4. Окно диалога «Обмен данных».

В строке «Вид обмена» нужно выбрать из списка одно из трех возможных значений:
  • «По запросу» - обмену подлежат только те данные, которые отобраны в результате выполнения запроса. Это означает, что в обмене будут участвовать только те записи корневой базы, которые соответствуют условию запроса. При этом если в запросе накладывалось условие на сложные поля, то в обмене будут участвовать только те записи связанной базы, которые соответствуют данному условию. Все остальные записи связанных баз данных (даже если эти записи связаны с какой-то из отобранных записей корневой базы запроса) в обмене не участвуют.
  • «Все связанные» - обмену подлежат только те записи корневой базы запроса, которые соответствуют условию запроса, а также все записи других баз, связанные с отобранными записями корневой базы запроса (вне зависимости от того, каким было условие запроса).
  • «Весь банк» - обмену подлежат все записи всех баз данных (вне зависимости от условий запроса).

Если Вы установите флажок «Очищать банк-получатель перед обменом», то данные, передаваемые при обмене банку-получателю, будут записываться заново. Т.е. все записи, существующие в этом банке, будут удалены, а вместо них будут созданы новые записи. Если же этот флажок не установлен, в результате обмена, новые записи добавляются в банк-получатель, т.е. уже существующие записи не удаляются (в зависимости от типа идентификации, заданного в базах банка-получателя, новые записи могут «сливаться» с существующими записями после добавления).

Если установить флажок «Проводить идентификацию», то в ходе проведения обмена в банке-получателе будет производится идентификация обмениваемых записей в соответствии с типом идентификации, установленном в базах банка-получателя. Сняв этот флажок Вы можете отказаться от проведения идентификации.

Если Вы установите флажок «Вычислять формулы», то в ходе проведения обмена в банке-получателе для обмениваемых записей будут вычисляться формулы структуры, созданные в базах банка-получателя. Сняв этот флажок Вы можете отказаться от вычисления формул.

После того, как в окне диалога «Обмен данных» заданы все параметры проведения обмена, следует нажать кнопку «Выполнить». На экране последовательно появится три окна, предназначенных для контроля, за процессом выполнения обмена данными. Это окно контроля за непосредственным выполнением обмена, окно контроля за процессом построения индексов (если они были построены) в банке-получателе и окно контроля за процессом выполнения идентификации записей в банке-получателе.

Экспорт данных в текст.


В ИСУБД «CronosPlus» существует возможность экспорта всего банка, включая связи между записями, в текстовый файл. Подключите банк к системе и выберите пункт меню Администратор => Экспорт в текст. На экране появится окно, в котором нужно указать каталог для создаваемых файлов и символ разделителя, который будет использоваться. Для каждой базы будет создан отдельный текстовый файл, название которого будет соответствовать названию базы (для русских названий используется транслитерация).

Кроме того, отдельные текстовые файлы создаются для кратных полей. В этом случае названием файла является <название базы_название поля>. В таком файле хранятся системные номера записей и значения поля в каждой записи.

Для кратных сложных полей создаются отдельные файлы. В этом случае названием файла является <название базы_название поля_название связанной базы> для каждой связанной базы, на которую ссылается это поле. Этот файл содержит пары системных номеров (SN) записей в виде:

<разделитель>

Если сложное поле некратное, то есть не имеет статуса <Множественное> (что соответствует отношению "один ко многим"), то дополнительный файл связи не создается. Поля типа Файл не экспортируются60.