- •Лабораторные работы с базами данных лабораторная работа №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 if... С удалением дочерних данных
Этот раздел описывает действия оператора Update if... в родительской таблице, комбинированное с каждым из возможных действий таблицы, определенных для связанных дочерних таблиц. Опуция «Delete data in child tables option» является активной во всех примерах, кроме одного. Вы можете использовать отображение предыдущего раздела.
Файлы, используемые в данном примере:
Altova_Hierarchical.xsd
altova-cmpy-extra.xml (является XML экземпляром схемы Altova_hierarchical.xsd)
altova.mdb.
Update if.. на родительской таблице, Insert all... на дочерней таблице
Результат:
Обновляются данные родительской таблицы (записи Department);
Удаляются дочерние данные тех таблиц, которые удовлетворяют условию Update if... (записи Person);
Сохраняет существующие таблицы БД (проектируемые в данном случае), которые отсутствуют в XML файле.
Вставляет все записи Person из входного XML-документа, включая новые записи, которых еще не существует в БД.
Update if... на родительской таблице, Update if... на дочерней таблице
Результат:
Обновляются данные родительской таблицы (записи Department);
Удаляются дочерние данные тех таблиц, которые удовлетворяют условию Update if... (записи Person);
Сохраняет существующие таблицы БД (проектируемые в данном случае), которые отсутствуют в XML файле (отсутствуют ключи при сравнении по условию Update if...).
Условие Update if..., определенное для таблицы Person, терпит неудачу, так как по причине установки опции «Delete data in child tables» все записи в Person были удалены. Нет возможности сравнивать PK БД и XML, так как PK БД были удалены (записи не обновляются).
Update if... на родительской таблице, Delete if... на дочерней таблице (Опция «Delete data in child tables» - активна)
Результат:
Обновляются данные родительской таблицы (записи Department);
Удаляются дочерние данные (записи Person) из всех Департаментов, потому что активна опция «Delete data in child tables». Все записи Person удаляются для каждого Департамента, который имеет соответствующий PK в источнике XML. То есть, каждая запись Person, не имеющая соответствующий элемент в источнике XML удалена;
Сохраняет существующие таблицы БД (проектируемые в данном случае), которые отсутствуют в XML файле (отсутствуют ключи при сравнении по условию Update if...).
Данные дочерней таблицы (записи Person) удалены перед действием таблицы Delete if...; никакие записи не удалены.
Update if... на родительской таблице, Delete if... на дочерней таблице (Опция «Delete data in child tables» - активна)
Результат:
Обновляются данные родительской таблицы (записи Department);
Сохраняет существующие таблицы БД (проектируемые в данном случае), которые отсутствуют в XML файле (отсутствуют ключи при сравнении по условию Update if...).
Delete if... удаляет только те записи Person, для которых соответствующие PK существуют в источнике XML.
Записи БД, для которых нет соответствующих PK, остаются без изменений.
Чтобы увидеть пример, включающий дублированные узлы, операции Insert, Update и транзакции, откройте файл Customers_DB.mfd из папки ..\MapForceExamples. Этот пример показывает, как XML-схема и БД могут быть отображены на целевую БД.
В этом примере:
Отображение XML-схемы на БД:
Customers и Addresses существуют в целевой БД. Пример показывает, как XML схемы и БД источника могут быть отображены на целевую БД.
Отображение БД на БД:
Данные существуют в БД-источнике и вставляются в целевую БД. Целевая таблица (Customers) продублирована.
CustomerID для каждой записи создается снова, с начальным значением А1000.
