Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ ПРИМЕР.doc
Скачиваний:
6
Добавлен:
20.08.2019
Размер:
875.01 Кб
Скачать

7.4 Вывод

В результате программирования разработан программный SQL-код, обеспечивающий создание 23 таблиц базы данных и реализующий 11 стандартных ограничений целостности. Одно нестандартное ограничение целостности из специфицированных на предыдущем этапе было реализовано с помощью триггера базы данных. На основе ранее построенных моделей отображения запрограммирована реализация внешних представлений, включающая в общей сложности около (более) 106 строк SQL-кода.

8 РАЗРАБОТКА XML-КОДА ДОСТУПА К БАЗЕ ДАННЫХ

Данный раздел посвящен разработке XML-кода, обеспечивающего доступ к реляционной базе данных в формате XML на базе технологии XML-схем отображения (XML Mapping Schema). На данном этапе проектирования предполагается, что внешние иерархические модели, рассмотренные в разд. 2, задают данные в формате XML. Здесь выбирается ориентация внешних XML-документов, строятся XSD-схемы внешних XML-документов, а также аннотированные XSD-схемы для отображения внешних XML-документов во внутреннюю реляционную модель базы данных.

8.1 Выбор ориентации внешних xml-представлений

В данном подразделе выбирается ориентация XML-документов, соответствующих внешним иерархическим моделям. Рассматривается два способа внешних XML-представлений:

– элемент-ориентированный, при котором каждый атрибут внешней иерархической модели, так же как и каждый агрегат, представляется отдельным элементом во внешнем XML-документе;

– атрибут-ориентированный, при котором агрегаты внешней иерархической модели представляются элементами во внешнем XML-документе, а атрибуты внешней иерархической модели представляются атрибутами соответствующих элементов внешнего XML-документа.

Сделан следующий выбор способа ориентации внешних XML-докумен­тов:

– для функции 1 «Поступление» — атрибут-ориентированный;

– для функции 2 «Реставрация» — элемент-ориентированный;

– для функции 3 «Экспозиция» — атрибут-ориентированный.

В соответствии с указанным выбором построены в графической форме внешние модели XML-документов.

Определено отображение моделей XML-документов в таблицы и представления внутренней реляционной модели. Сделан следующий выбор между реальными таблицами и виртуальными представлениями (см. разд. 6 и 7) реляционной базы данных при задании отображений:

– для функции 1 — отображение только на виртуальные представления;

– для функции 2 — отображение только на реальные таблицы;

– для функции 3 — отображение на виртуальные представления и реальные таблицы.

Результаты представлены в документе2008.654600.БД.КР.056.ХМ«XML-модель».

8.2 Разработка xsd-схем внешних xml-документов

В данном подразделе строятся XSD-схемы внешних XML-документов. XML-код задания XSD-схем внешних документов для каждой из функций представлен ниже.

8.2.1 XSD-схема для функции 1

<?xml version="1.0" encoding="windows-1251"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="Поступление" type="Поступление-type"/>

<xsd:complexType name="Поступление-type">

<xsd:sequence>

<xsd:element name="Объект-поступления" type="Объект-поступления-type" minOccurs="1" maxOccurs="1"/>

<xsd:element name="Владелец" type="Владелец-type" minOccurs="1" maxOccurs="1"/>

<xsd:element name="Ответственный-за-поступление-сотрудник" type="Ответственный-за-поступление-сотрудник-type" minOccurs="1" maxOccurs="1"/>

</xsd:sequence>

<xsd:attribute name="Рег-номер-поступления" use="required"/>

<xsd:attribute name="Дата" use="required"/>

</xsd:complexType>

<xsd:complexType name="Объект-поступления-type">

<xsd:sequence>

<xsd:element name="Автор-объекта" type="Автор-объекта-type" minOccurs="1" maxOccurs="unbounded"/>

<xsd:element name="Хар-ка-объекта" type="Хар-ка-объекта-type" minOccurs="1" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Код-объекта" use="required"/>

<xsd:attribute name="Назв-объекта" use="required"/>

<xsd:attribute name="Код-типа" use="required"/>

<xsd:attribute name="Назв-типа" use="required"/>

</xsd:complexType>

<xsd:complexType name="Владелец-type">

<xsd:attribute name="Код-клиента" use="required"/>

<xsd:attribute name="ФИО-клиента" use="required"/>

</xsd:complexType>

<xsd:complexType name="Ответственный-за-поступление-сотрудник">

<xsd:attribute name="Таб-номер" use="required"/>

<xsd:attribute name="ФИО" use="required"/>

<xsd:attribute name="Код-должности" use="required"/>

<xsd:attribute name="Назв-должности" use="required"/>

</xsd:complexType>

<xsd:complexType name="Автор-объекта">

<xsd:attribute name="Код-автора" use="required"/>

<xsd:attribute name="ФИО-автора" use="required"/>

</xsd:complexType>

<xsd:complexType name="Хар-ка-объекта">

<xsd:attribute name="Код-хар-ки" use="required"/>

<xsd:attribute name="Назв-хар-ки" use="required"/>

<xsd:attribute name="Значение" use="optional"/>

</xsd:complexType>

</xsd:schema>

8.2.2 XSD-схема для функции 2

<?xml version="1.0" encoding="windows-1251"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="Реставрация" type="Рестарация-type"/>

<xsd:complexType name="Рестарация-type">

<xsd:sequence>

<xsd:element name="Реставратор-реставрации" type="Реставратор-реставрации-type" minOccurs="1" maxOccurs="unbounded"/>

<xsd:element name="Объект-реставрации" type="Объект-реставрации-type" minOccurs="1" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Рег-номер-рест" use="required"/>

<xsd:attribute name="Дата-начала" use="required"/>

<xsd:attribute name="Дата-окончания" use="required"/>

<xsd:attribute name="Продолжительность" use="required"/>

</xsd:complexType>

<xsd:complexType name="Реставратор-реставрации-type">

<xsd:attribute name="Нпп-рест" use="required"/>

<xsd:attribute name="Таб-номер" use="required"/>

<xsd:attribute name="ФИО" use="required"/>

<xsd:attribute name="Код-категории" use="required"/>

<xsd:attribute name="Назв-категории" use="required"/>

</xsd:complexType>

<xsd:complexType name="Объект-реставрации-type">

<xsd:sequence>

<xsd:element name="Вып-работа-на-объекте" type="Вып-работа-на-объекте-type" minOccurs="1" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Нпп-объекта" use="required"/>

<xsd:attribute name="Код-объекта" use="required"/>

<xsd:attribute name="Назв-объекта" use="required"/>

<xsd:attribute name="Таб-номер" use="required"/>

</xsd:complexType>

<xsd:complexType name="Вып-работа-на-объекте-type">

<xsd:attribute name="Нпп-работы" use="required"/>

<xsd:attribute name="Код-вида" use="required"/>

<xsd:attribute name="Назв-вида" use="required"/>

<xsd:attribute name="Содержание" use="optional"/>

</xsd:complexType>

</xsd:schema>

8.2.3 XSD-схема для функции 3

<?xml version="1.0" encoding="windows-1251"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="Экспозиция" type="Экспозиция-type"/>

<xsd:complexType name="Экспозиция-type">

<xsd:sequence>

<xsd:element name="Ответственный-сотрудник-за-экспозицию" type="Ответственный-сотрудник-за-экспозицию-type" minOccurs="1" maxOccurs="1"/>

<xsd:element name="Персонал-экспозиции" type="Персонал-экспозиции-type" minOccurs="1" maxOccurs="unbounded"/>

<xsd:element name="Экспонат-экспозиции" type="Экспонат-экспозиции-type" minOccurs="1" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Рег-номер-экспозиции" use="required"/>

<xsd:attribute name="Назв-экспозиции" use="required"/>

<xsd:attribute name="Дата-начала" use="required"/>

<xsd:attribute name="Дата-окончания" use="required"/>

</xsd:complexType>

<xsd:complexType name="Ответственный-сотрудник-за-экспозицию-type">

<xsd:attribute name="Таб-номер" use="required"/>

<xsd:attribute name="ФИО" use="required"/>

<xsd:attribute name="Код-должности" use="required"/>

<xsd:attribute name="Назв-должности" use="required"/>

</xsd:complexType>

<xsd:complexType name="Персонал-экспозиции-type">

<xsd:attribute name="Таб-номер" use="required"/>

<xsd:attribute name="ФИО" use="required"/>

<xsd:attribute name="Роль" use="optional"/>

</xsd:complexType>

<xsd:complexType name="Экспонат-экспозиции-type">

<xsd:sequence>

<xsd:element name="Зал" type="Зал-type" minOccurs="1" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute name="Нпп-объекта" use="required"/>

<xsd:attribute name="Код-объекта" use="required"/>

<xsd:attribute name="Назв-объекта" use="required"/>

</xsd:complexType>

<xsd:complexType name="Зал-type">

<xsd:attribute name="Код-зала" use="required"/>

<xsd:attribute name="Назв-зала" use="required"/>

<xsd:attribute name="Номер-зала" use="required"/>

</xsd:complexType>

</xsd:schema>