- •Глава 1. Базы данных и системы управления 9
- •Глава 2. Организация доступа к данным 45
- •Глава 3. Реляционная алгебра 60
- •Глава 4. Основы sql 67
- •Глава 5. Проектирование реляционных баз данных 89
- •Глава 6. Взаимодействие sql с приложениями 116
- •Глава 7. Некоторые проблемы администрирования баз данных 154
- •Базы данных и системы управления
- •Файловые системы
- •Концепция баз данных
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков баз данных
- •Трехуровневая модель архитектуры систем баз данных
- •Модели данных
- •Характеристика связей
- •Компьютерно-ориентированные модели данных
- •Реляционный подход
- •Ключи и целостность реляционных данных
- •Моделирование концептуальной схемы базы данных
- •Организация доступа к данным
- •Страницы и файлы
- •Индексирование
- •Структуры типа б-дерева
- •Хеширование
- •Методы сжатия
- •Метод дифференциального сжатия
- •Иерархические методы сжатия
- •Кодирование по методу Хаффмена
- •Реляционная алгебра
- •Традиционные реляционные операции
- •Специальные реляционные операции
- •Дополнительные реляционные операции
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формул
- •Основы sql
- •Типы данных
- •Строковые типы данных
- •Битовые типы данных
- •Точные числовые типы данных
- •Вещественные числовые типы данных
- •Календарные типы данных
- •Значения null
- •Создание и обслуживание таблиц
- •Запрос на выборку
- •Статистические функции
- •Создание соединений
- •Вложенные запросы
- •Запрос на объединение
- •Запросы, выполняющие реляционные операции вычитания, пересечения и деления
- •Запросы на изменение
- •Перекрестные запросы
- •Проектирование реляционных баз данных
- •Нормализация отношений
- •Функциональные зависимости
- •Н ормальные формы, обоснованные функциональными зависимостями
- •Нормальная форма Бойса–Кодда
- •Нормальные формы, обоснованные более сложными зависимостями
- •Процедура нормализации и проектирования
- •Пример проектирования базы данных
- •Назначение и предметная область
- •Проектирование базы данных
- •Взаимодействие sql с приложениями
- •Встраивание sql-операторов в программный код
- •Тип курсора
- •Триггеры
- •Хранимые процедуры
- •Стандартные интерфейсы для доступа к данным
- •Информационное окружение веб-сервера
- •Стандарт odbc
- •Уровни соответствия
- •Уровень соответствия odbc
- •Задание имени источника данных odbc
- •Расширяемый язык разметки xml
- •Xml как язык разметки
- •Материализация хмl-документов с помощью xslt
- •Создание хмl-документов на основе информации из базы данных
- •Некоторые проблемы администрирования баз данных
- •Оптимизация запросов
- •Параллельная обработка данных
- •Потеря обновления
- •Зависимость от незафиксированных обновлений
- •Несогласованный анализ
- •Блокировки транзакций
- •Согласованность и уровень изоляции транзакций
- •Распределенные системы баз данных
- •Фрагментация
- •Репликация
- •Распространение обновлений
- •Управление каталогом
- •Распределенная обработка запросов
- •Типы распределенных систем баз данных
- •Нераспределенные мультибазовые субд
- •Клиент-серверные системы
- •Системы с общими ресурсами
- •Технические аспекты администрирования базы данных
- •Восстановление базы данных
- •Безопасность баз данных
- •Шифрование данных
- •Производительность баз данных
- •Администрирование данных
- •Литература
Материализация хмl-документов с помощью xslt
В приведенном в предыдущем разделе листинге 1 определены структура и содержимое XML-документа. Однако ничто в документе не указывает на то, как его следует материализовывать. Разработчики XML обеспечили четкое разделение структуры, содержимого и формата. Наиболее популярный способ материализации XML заключается в использовании XSLT (extensible Style Language for Transformations – расширяемый язык стилей для преобразований). XSLT – это мощный и надежный язык преобразований. Его можно использовать для материализации XML-документов в HTML, а также для множества других целей. Одно из популярных применений XSLT – преобразование XML-документа из одного формата в другой. Например, с помощью XSLT компания может преобразовать накладную, представляющую собой XML-документ в некотором внутреннем формате, в эквивалентный XML-документ в формате клиента.
Язык XSLT является, во-первых, декларативным, а во-вторых, преобразовательным. Декларативным он является потому, что вместо указания процедуры материализации элементов документа создается набор правил, которые определяют, как будет материализоваться документ. Преобразовательным же он является потому, что с его помощью документ, задаваемый на входе, преобразуется в другой документ. При помощи таблицы стилей, которая, также как и DTD, может быть создана либо в отдельном, либо в общем файле, программе-обработчику XSLT указывают правила, по которым элементы XML-документа должны преобразовываться в другой формат, например, в HTML-документ, пригодный для отображения в браузере.
XML Schema
Стандарт XML Schema используется для определения содержимого и структуры документов, и в этом отношении он играет роль, аналогичную DTD. Однако XML Schema имеет ряд усовершенствований по сравнению с DTD. XML Schema позволяет определить набор символов и их взаимосвязи.
Ранее говорилось о том, что XML-документ, удовлетворяющий DTD, называется допустимым по типу. Аналогичным образом документ, соответствующий XML Schema, называется допустимым по схеме. ХМL-документ может быть формально правильным, но при этом недопустимым по типу и по схеме.
В отличие от DTD, имеющих свой собственный синтаксис, документы XML Schema сами по себе являются XML-документами. Это значит, что для определения схемы можно использовать тот же самый синтаксис, что и для других XML-документов. Это означает также, что и сам документ XML Schema можно проверять на допустимость по отношению к его схеме. Но в таком случае какой документ должен использоваться в качестве схемы для всех остальных схем? Такой документ находится на сайте http://www.w3.org. Все документы XML Schema могут быть проверены на допустимость по отношению к этому документу.
Листинг простого документа XML Schema, представляющий одиночную строку из таблицы ARTIST в базе данных:
Листинг 3.
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema"> <xsd:element name="Artist"> <xsd:complexType> <xsd:sequence> <xsd:element name="Name"/> <xsd:element name="Nationality”/> <xsd:element name='BirthDate" minOccurs="0"/> <xsd:element name= DeceasedDate" minOccurs="0"/> </xsd:sequence> <xsd:atribute name="ArtStyle"/> </xsd:complexType> </xsd:element> </xsd:schema>
В рамках нашего курса мы только ознакомимся с технологией создания документов XML Schema и отметим некоторые особенности. Первый оператор определяет документ, относительно которого будет проверяться допустимость схемы, и задает помеченное пространство имен при помощи выражения xmlns:xsd (xml name space – пространство имен XML).
Документы XML Schema состоят из элементов (element) и атрибутов (attribute). Элементы бывают простые и сложные. Простые элементы содержат одиночные значения (Name, Nationality, Birth Date и DeceasedDate).
Сложные элементы (принадлежащие к типу complexTyре) могут содержать один или несколько простых или сложных элементов. Здесь имеется сложный элемент Artist, все составляющие элементы которого являются простыми. Схема определяет не только список элементов, но и их порядок: теги <xsd:sequence>...</xsd:sequence> указывают, что элементы должны следовать в том же порядке, в каком они перечислены в схеме. Сложные элементы могут иметь атрибуты (Artist имеет атрибут под названием ArtStyle). В базах данных элементы используются для хранения данных, а атрибуты – для хранения метаданных. Например, может быть элемент Цена, содержащий цену товара, например, 12.50, а у этого элемента может иметься атрибут Валюта, определяющий, в какой валюте исчисляется цена – US$, рублях или Euro. В нашем примере атрибут ArtStyle содержит данные, характеризующие произведение художника.
В стандарте XML нет ничего, что требовало бы использовать элементы и атрибуты именно таким способом. Это вопрос стиля, а не какого-либо стандарта XML.