- •Лабораторные работы с базами данных лабораторная работа №5. Работа с базами данных
- •Экспорт xml данных во внешнюю бд
- •Импорт данных из бд
- •Импорт атрибутов, элементов и пропуски
- •Создание схемы бд
- •Создание xml схемы из бд ms Access
- •Создание xml схемы из бд ibm db2 (odbc)
- •Лабораторные работы по mapforce
- •Лабораторная работа № 6. Отображение схем и генерирование кода с помощью mapforce Установка среды отображения Создание компонента исходной схемы
- •Создание компонента целевой схемы
- •Отображение узлов схемы
- •Авто-отображение
- •Использование функций для отображения данных
- •Использование функций для объединения узлов
- •Отображение остальной части Личных данных
- •Фильтрация данных
- •Генерирование xslt 1.0/2.0 кода
- •Преобразование отчета личных расходов в отчет расходов компании
- •Множественные целевые схемы/документы
- •Создание второго целевого документа
- •Отфильтровывание данных non-travel
- •Определение множественных схем одинакового наименования для генерации кода
- •Генерирование программного кода для множественных целевых схем
- •Отображение множественных узлов-источников на один целевой узел
- •Создание отображений
- •Дублирование входных узлов
- •Лабораторная работа № 7. Отображение базы данных на схему
- •Создание компонента бд в MapForce
- •Отображение данных бд Вставка целевой схемы
- •Отображение данных бд на схему в MapForce
- •Создание кода Java и результирующего xml файла
- •Отображение множества иерархических таблиц на выходной xml файл
- •Отображение множества плоских таблиц на один выходной xml файл
- •Отображение и корневые элементы выходных документов
- •Фильтрация бд по дате
- •Рекомендации для использования компонента «filter»
- •Лабораторная работа № 8. Отображение схемы на базу данных
- •Установка xml для отображения на бд
- •Компоненты и отношения между таблицами
- •Действия бд: insert Вставка новой записи в таблицу
- •Вставка таблиц и связанных дочерних таблиц.
- •Действия бд: Update Первый пример
- •Второй пример
- •Комбинации Update if... С удалением дочерних данных
- •Действия бд: Delete
- •Установки ключей бд
- •Действия таблиц бд и обработка транзакций
Действия бд: Update Первый пример
Первый пример имеет дело с простой задачей обновления существующих записей таблицы Person. Отображения созданы от источника XML в таблицу Person (корневую) .
Файлы, используемые в этом примере:
Altova_Hierarchical.xsd,
altova-cmpy.xml,
altova.mdb.
Цель: обновить поля таблицы Person.
Вставьте схему Altova_Hierarchical.xsd (и свяжите с файлом altova-cmpy.xml как экземпляром XML)
Введите БД altova.mdb в отображение.
Активизируйте значок
(Auto connect matching children).Щелкните по узлу Person в компоненте XML источника и перетащите коннектор на узел Person БД. Убедитесь, что этот узел корневой.
Щелкните ПКМ на Person и выберите Database Table Actions.
Щелкните по выпадающему списку Table action и выберите Update if....
Щелкните по выпадающему списку в строке с PK, выберите equal и щелкните ОК для подтверждения.
PK источника и адресата сравниваются используя оператор «equal». Если два ключа идентичны, то все отображаемые поля таблицы Person будут обновлены.
Щелкните по вкладке Output, чтобы посмотреть на псевдо-SQL код, реализующий это отображение.
Щелкните по значку (Run SQL-Script) на ПИ, чтобы запустить скрипт и вставить данные таблицы в БД. Если скрипт успешно выполняется, появляется сообщение. Щелкните ОК для подтверждения.
Откройте БД altova.mdb.
Второй пример
Это более сложный пример, где обновление осуществляется в двух таблицах (Department и Person), а также добавляются новые записи в таблицу Person, которые существуют во входном XML файле. Корневая таблица, используемая в этом примере, Department.
Файлы, используемые в данном примере:
Altova_Hierarchical.xsd
altova-cmpy-extra.xml (является XML экземпляром схемы Altova_hierarchical.xsd)
altova.mdb.
Цель:
обновить записи поля Name таблицы Department;
обновить записи поля таблицы Person;
вставить новые записи в таблицу Person.
PK источника и адресата сравниваются, используя оператор «equal». Если два ключа идентичны, то отображаемые поля таблиц Department и Person будут обновлены. Если совпадение не происходит, то следует операция вставки (Insert Rest).
Действия таблицы Department:
Действия Update if... «equal» определены для PK, т.е. обновляется поле Name таблицы Department, если есть изменения.
Действия таблицы Person:
Действия Update if... «equal» определены для PK.
Действие Insert Rest определяется как второе действие таблицы, которое должно осуществляться, если первое сравнение Update if... выдает false.
Щелкните для добавления новой колонки действия таблицы.
Последовательность обработки таблицы Department
Таблица Department: результат Update if... – true:
Обновляет каждую запись таблицы Department, если ключи идентичны;
Если в БД существуют записи, для которых нет соответствующих записей в источнике, то эти записи остаются неизменными.
Таблица Department: результат Update if... – false, т.е. в источнике существуют записи, которых нет в целевой таблице:
В таблице не производится никаких изменений.
Последовательность обработки таблицы Person
Таблица Person: результат Update if... – true:
Если ключи источника и целевой таблицы идентичны, то:
Обновляется каждая запись таблицы Person, ключи которых идентичны;
Если запись существует в БД без соответствующих записей в источнике, то эти записи сохраняются и остаются без изменений.
Таблица Person: результат Update if... – false:
Ключи источника и адресата не идентичны, т.е. существуют ключи источника, которые не имеют соответствующих значений в целевой БД, результат Update if... – false, поэтому:
Выполняется действие следующей колонки Insert Rest....
Вставляются новые записи в таблицу Person, если они существуют.
В нашем случае добавляются две новые записи в департамент AdminPK которых равны 30 и 31.
