Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные 3-4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.72 Mб
Скачать

Лабораторная работа № 8. Отображение схемы на базу данных

MapForce используется не только для отображения БД на XML-документы, но вы можете также осуществить обратное преобразование – отобразить XML данные на БД, а также отображение между БД. MapForce учитывает наличие PK и FK, а также генерирует транзакции, которые гарантируют целостность данных при этих отображениях.

Операции, поддерживаемые MapForce:

  • INSERT;

  • UPDATE;

  • DELETE;

  • Обработка ключевых полей.

Файлы, используемые в этом разделе:

Altova_Hierarchical.xsd

иерархический файл схемы, содержащий ограничения целостносности

Altova-cmpy.xml

файл данных компании Altova, который поставляет XML данные

Altova.mdb

файл базы данных Altova, используемый как целевая база данных

Все эти файлы находятся в папке ..\MapForceExamples.

Установка xml для отображения на бд

Установка XML для отображения на БД нисколько не отличается от способов, описанных выше.

  1. Щелкните значок (Insert XML Schema/File) и выберите Altova_Hierarchical.xsd.

  2. Выберите файл Altova-cmpy.xml в качестве экземпляра XML файла. Щелкните на Altova и нажмите * на цифровой клавиатуре, чтобы раскрыть все узлы и измените размеры окна компонента так, чтобы были видны все узлы.

  3. Щелкните по значку (Insert Database) на ПИ, выберите Microsoft Access (ADO) и щелкните Next.

  4. Щелкните по значку на ПИ для определения языка генерации кода.

  1. Щелкните кнопку Browse для выбора БД altova.mdb из папки ..\MapForceExamples\ Tutorial и щелкните Next.

Этот диалог обеспечивает выбор таблиц, View и системных таблиц, которые вы хотите вывести в компонент Database.

  1. Щелкните Select All затем кнопку Insert Now для вставки БД.

  1. Щелкните на значке «+» узла Altova, для отображения полей таблицы.

Обратите внимание: создание отображений между компонентами БД невозможно, если вы выбираете XSLT, XSLT2, or XQuery в качестве выходного языка. XSLT не поддерживает запросы БД.

Компоненты и отношения между таблицами

Отношения таблиц в компоненте БД легко распознаются. Компонент БД отображает кадую таблицу как корневую таблицу для всех других, связанных с ней таблиц в древовидном представлении.

Мы будем называть имена таблиц, которые видим на диаграмме, корневыми таблицами, т.е. это верхний уровень, или корень дерева. Раскрытие имени таблицы (значок «+») отображает все таблицы связанные с ней.

При создании запросов/отображений БД с отношениями, включая плоские форматы SQL/XML, убедитесь, что вы создаете отображения между таблицами под одной корневой таблицей, если вы хотите, чтобы отображения были обслужены, т.е. были созданы запросы, которые используют соединения (joins).

В диаграмме, приведенной ниже показана раскрытая таблица Office БД Altova. Стрелки слева от значков «+/-» каждого наименования таблицы указывают на таблицу, с которой эта таблица связана.

Начиная с таблицы Office и спускаясь вниз по дереву:

  • Левая стрелка обозначает, что эта таблица является дочерней для таблицы, находящейся выше, например, таблица Address – дочерняя таблица таблицы Office.

  • Таблица Department также является дочерней таблице Office, ее можно рассматривать как «родную сестру» таблицы Address.

  • Правая стрелка указывает на родителя таблицы, находящегося выше, например, Altova – родитель таблицы Office.

При создании отображений к таблицам БД убедитесь, что вы создаете отображения, используя определенную корневую таблицу, как таблицу верхнего уровня.

Например, предположим, что вы хотите вставить или обновить данные таблицы Person. В этом случае вы должны создать отображение используя таблицу Person как корневую таблицу и создать отображения между исходным и целевым элементами полей таблицы Person, которые вы хотите обновить.

Если вы хотите обновить данные Departament и Person при сохранении отношений между ними, используйте таблицу Departament как корневую и создайте отображения между исходными и целевыми элементами обеих таблиц.