С распространением Интернета очень много данных представлено в виде Интернет-страничек. Несмотря на то, что между Интернет-страничками и БД существуют принципиальные различия, возникают задачи поиска информации на Интернет-страницах, следовательно существует потребность в декларативном языке запросов к Интернет-страницам. Рассмотрим XQuery– язык запросов к Интернет-страничкам в формате XML(расширяемый язык разметки).
Изучение XML выходит за пределы данной книги. Вкратце рассмотрим особенности теговой парадигмы, которой следует язык XML (см. Лист. 70 - Лист. 74). В теговой парадигме документ имеет иерархическую структуру вложенных друг в друга пар тегов, между которыми идут объекты документа, пример см. на Лист. 70.
Лист. 70. Теги
<b><i>Это жирный текст курсивом</i></b>
Теги могут иметь атрибуты (см Лист. 71).
Лист. 71. Теги с атрибутами
<font face = “bookman” size = “12”>Текст размером шрифта 12</font>
В документах могут использоваться сущности – любые данные, не представленные в формате языков разметки (см. Лист. 72).
Лист. 72. Сущности в XML
<!entity EmpName “Иванов”>
Здравствуйте, &EmpName!
На языке XML можно использовать пользовательские теги (см. Лист. 73), в отличие от HTML, в котором используются только стандартные теги. Эта особенность языка XML позволяет создавать хорошо структурированные документы, например, на почтовом конверте поля можно заключать в теги <от кого>, <кому> и т.п.
Лист. 73. Пользовательские теги
<sender>Петров</sender>
В языки разметки можно встраивать скриптовые языки, например, JavaScript, см. Лист. 74. Скриптовые языки, как правило, относятся к наиболее распространенным процедурным языкам с объектно-ориентированной надстройкой, например, диалекты Basic, Java. С помощью скриптов можно создавать динамические страницы, которые меняют свое оформление, проводить вычисления на клиентском компьютере или сервере. Структура такого документа представлена на Рис. 32.
Лист. 74. Встройка в теговый документ скриптового языка
<font name = “f1” size = «12»>
Текст
</font>
…
<script language=”javascript”>
f1.size = 14;
</script>
Рис. 32. Структура тегового документа, расширенного скриптами и запросами
Рассмотрим различия между XML и реляционными данными
• В XML-документах имеется внутренний порядок, а реляционные данные неупорядочены, если не принимать во внимание те случаи, когда порядок можно определить на основе значений данных.
• Реляционные данные обычно являются «плотными» (т.е. почти в каждом столбце имеется значение), а отсутствующая информация в реляционных системах часто представляется специальным значением null.
• XML-данные часто бывают «разреженными», а отсутствие информации может представляться отсутствием элемента.