Смекни!
smekni.com

А. Н. Терехов Санкт Петербург (стр. 2 из 8)

<NAME>

<FNAME>John</FNAME>

<LNAME>White</LNAME>

</NAME>

<NAME>

<LNAME>White</LNAME>

<FNAME>John</FNAME>

</NAME>

Но атрибуты в XML не являются упорядоченными, поэтому следующие два элемента XML считаются одинаковыми:

<NAME FNAME=”John” LNAME =”White”/>

<NAME LNAME=”White” FNAME=”John”/>

2.2. Основы реляционных моделей.

Реляционная модель основывается на математических принципах, вытекающих непосредственно из теории множеств и логики предикатов. Эти принципы впервые были применены в области моделирования данных в конце 60-х гг. доктором Е.Ф. Коддом, в то время работавшим в IBM, а впервые опубликованы — в 1970 г. Реляционная модель определяет способ представления данных (структуру данных), методы зашиты данных (целостность данных), а также операции, выполняемые с данными (манипулирование данными).

В общих чертах основные принципы реляционных систем баз данных можно сформулировать так,

· Все данные на концептуальном уровне представляются в виде упорядоченной организации, определенной в виде строк и столбцов и называемой отношением.

· Все значения являются скалярами. Это означает, что для любой строки и столбца любого отношения существует одно и только одно значение.

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

Основные операции легко определить в терминах универсальной алгебры. Универсальная алгебра – множество всех возможных значений с набором операций, результат которых лежит в том же множестве. Эти операции так,

· Селекция: Среди кортежей выбираем те, которые удовлетворяют определённому предикату (он строится из простых предикатов, которые являются логическими выражениями на значениях атрибутов).

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

· Произведение: При выполнении операции произведения результирующая таблица получается, как правило, очень большой.

· Соединение: - композиция произведения и селекции, играет важную роль в теории баз данных. Эта операция имеет два операнда, может иметь разные виды зависимости от того,что происходить потом - кроме селекции может быть проекция.

· Естественное соединение: Эта операция важна, так как для нее существует эффективный алгоритм. Мы можем конструировать новые отношения из уже имеющихся. Другие операции тоже позволяют конструировать нетривиальные отношения, большие по размерам.

2.3. DTD и XML schema

С тех пор XML - способ описать структурные данные должно быть средство определить структуру XML документа. Определения Типа документа (DTD) и XML Схемы - различные механизмы. Они используются, чтобы определить допустимые элементы, которые могут произойти в документе. Они могут произойти и сдержать некоторые аспекты этих элементов в порядке. Ниже печатает из различных средств, сдерживания содержания XML документа.

2.3.1 Определение типа документа (Document Type Definition - DTD)

DTD состоит из объявлений разметки (markup declarations), начинающихся с пары символов <!. За этими символами идет одно из слов ELEMENT,ATTLIST,ENTITY,NOTATION,указывающих, что именно объявляется: элемент, список атрибутов, сущность или обозначение. Объявление разметки заканчивается символом ”>”. Структура DTD выглядит следующим образом:

<!DOCTYPE root_element [

<!ELEMENT element_name (component)>

other elements’ or attributes’ declarations

]>

· Объявление типа элемента

Каждый элемент документ XML должен быть описан в объявление типа элемента(element type declaration).Объявление типа элемента начинается с символов <!ELEMENT,после которых через пробел идет имя элемента и объявляется его содержимое.

Проще всего объявляется пустой элемент – отмечается словом EMPTY.Пример: <!ELEMENT doc EMPTY>.

Следующее объявление можно считать полной противоположностью объявлению пустого элемента: <!ELEMENT book ANY>.Элемент с обычным текстовым содержимым и без вложенных элементов объявляется так: <!ELEMENT author (#PCDATA)> . Слово #PCDATA (Parsed Character DATA) означает строку символов, просматриваемую программой-анализатором документа XML.

Если объявляемый элемент содержит вложенные элементы, то объявление должно содержать список их имен, перечисленных через запятую, в скобках. Вложенные элементы должны следовать в документе XML в том порядке, в каком они перечислены в объявление. Кроме вложенных элементов, внутри элемента может встретиться обычный текст, и вложенный элемент может встретиться больше один раз. То обстоятельство, что вложенный элемент можно записать в объявляемом элементе несколько раз, отмечается звездочкой, плюсом или вопросительным знаком. И так:

· Оператор * означает, что компонент может повторяться произвольное количество раз или вовсе отсутствовать.

· Оператор + означает, что компонент должен присутствовать не менее одного раза.

· Оператор ? означает, что компонент может отсутствовать или быть использован только однократно.

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

· Кроме того, в определениях элементов в DTD допускается использование оператора выбора |, разделяющего компоненты и позволяющего допускать присутствие только одного компонента, участвующего в выражении с этим оператором.

· Объявление атрибутов

Атрибуты элемента объявляются уже после объявления самого элемента. Все атрибуты одного элемента объявляются сразу, одним списком. Список начинается с символов <!ATTLIST, после них через пробел следует имя элемента, к которому относятся атрибуты. Затем идут объявления атрибутов. Список, как всегда, заканчивается символом “ > ”.

Для каждого атрибута записывается его имя, тип и признак обязательности. Тип атрибута записывается приведенными далее обозначениями.

· CDATA- строка символов.

· ID-уникальный идентификатор, однозначно определяющий элемент, в котором встретился этот атрибут; значения такого атрибута не должны повторяться в документе.

· IDREF- идентификатор, содержащий одно из значений атрибутов типа ID, используется в качестве ссылки не другие элементы.

· IDREFS- идентификатор, содержащий набор значений атрибутов типа ID, перечисленных через пробелы; тоже используется в качестве ссылки сразу на несколько элементов.

· ENTITY- имя непроверяемой анализатором сущности.

· ENTITIES- имена непроверяемых сущностей.

· NMTOKEN- слово, содержащее только символы, применяемые в именах.

· NMTOKENS- слова, перечисленные через пробелы.

· NOTATION- обозначение.

· Список значений атрибута, перечисляемых через вертикальную черту, в скобках.

Атрибуты типа ID играют ту же роль, что и первичные ключи в таблицах баз данных. Они позволяют различать элементы и индексировать их.

Объявление атрибута заканчивается признаком обязательности присутствия атрибута в элементе или подразумеваемым значением атрибута. Признак обязательности- это одно из трех слов, показывающих, всегда ли нужно записывать атрибут и что будет, если его нет в элементе :

a. #REQUIRED – атрибут надо обязательно записывать в элементе.

b. #IMPLIED – атрибут необязателен, у него нет значения по умолчанию.

c. #FIXED – у атрибута есть только одно значение, которое записывается тут же, через пробел.

· Объявление сущности

Все сущности можно разделить на три группы:

a. Внутренние сущности – задаются при объявлении сущности.

b. Внешние сущности – содержатся в отдельных файлах или встроены в программу- анализатор.

c. Параметризованные сущности – используются только внутри описания DTD.

Объявление внутренней сущности (entity declaration) начинается с символов <!ENTITY, после которых идет имя сущности. Через пробел записывается сама сущность – ее значение в кавычках.

После такого объявления программа- анализатор, увидев в документе ссылку на сущность &имя-сущности, ссылку на сущность можно применять тут же, в описании DTD. Такие сущности называются внутренними (internal entities), потому что для их объявления не нужен никакой внешний объект.

Для внешних сущностей (external entities) указывается только место их расположения в виде адреса URI. Перед указанием адреса записывается одно из слов SYSTEM или PUBLIC. Разница между пометками SYSTEM и PUBLIC заключается в том, что после слова PUBLIC идет какое-то общеизвестное объявление. Обычно здесь записывается известная ссылка, введенная консорциумом W3C или другой организацией. Если программа-анализатор не найдет эту ссылку, то она воспользуется адресом URI, идущим за ссылкой.

Объявление параметризованных сущностей (parametric entities), используемых только внутри описания DTD, выполняется точно так же, как объявление внутренних и внешних сущностей, только между началом объявления <!ENTITY и именем сущности вставляется знак процента, отделенный пробелами. Ссылка на параметризованную сущность начинается с амперсанда, а со знака процента.

· Объявление обозначение

Обозначение (notation) объявляется подобно сущности. Обозначения тоже могу быть внутренними и внешними. При объявлении внутренних обозначений после символов записывается имя обозначения, затем в кавычках – его расшифровка.

При объявлении внешних обозначений используются пометки SYSTEM или PUBLIC, причем за словом не обязательно должна следовать общеизвестная ссылка, так что слова SYSTEM и PUBLIC здесь равнозначны.

2.3.2 Схема XML.

Схемы данных (Schemas) являются альтернативным способом создания правил построения XML-документов. По сравнению с DTD, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться. Безусловным достоинством схем является также то, что они позволяют описывать правила для XML- документа средствами самого же XML.