Другие статьи

Цель нашей работы - изучение аминокислотного и минерального состава травы чертополоха поникшего
2010

Слово «этика» произошло от греческого «ethos», что в переводе означает обычай, нрав. Нравы и обычаи наших предков и составляли их нравственность, общепринятые нормы поведения.
2010

Артериальная гипертензия (АГ) является важнейшей медико-социальной проблемой. У 30% взрослого населения развитых стран мира определяется повышенный уровень артериального давления (АД) и у 12-15 % - наблюдается стойкая артериальная гипертензия
2010

Целью нашего исследования явилось определение эффективности применения препарата «Гинолакт» для лечения ВД у беременных.
2010

Целью нашего исследования явилось изучение эффективности и безопасности препарата лазолван 30мг у амбулаторных больных с ХОБЛ.
2010

Деформирующий остеоартроз (ДОА) в настоящее время является наиболее распространенным дегенеративно-дистрофическим заболеванием суставов, которым страдают не менее 20% населения земного шара.
2010

Целью работы явилась оценка анальгетической эффективности препарата Кетанов (кеторолак трометамин), у хирургических больных в послеоперационном периоде и возможности уменьшения использования наркотических анальгетиков.
2010

Для более объективного подтверждения мембранно-стабилизирующего влияния карбамезапина и ламиктала нами оценивались перекисная и механическая стойкости эритроцитов у больных эпилепсией
2010

Нами было проведено клинико-нейропсихологическое обследование 250 больных с ХИСФ (работающих в фосфорном производстве Каратау-Жамбылской биогеохимической провинции)
2010


C использованием разработанных алгоритмов и моделей был произведен анализ ситуации в системе здравоохранения биогеохимической провинции. Рассчитаны интегрированные показатели здоровья
2010

Специфические особенности Каратау-Жамбылской биогеохимической провинции связаны с производством фосфорных минеральных удобрений.
2010

Возникновение языка XML и особенности перевода сообщений с реляционного языка на XML

В статье рассмотрены особенности перевода с реляционного языка на язык XML и наоборот. Реляционный язык – это язык кортежей и отношений. Внешним представлением сообщений на реляционном языке является набор двухмерных таблиц. Конкретное приложение, работающее с РБД, делает разметку отношений, кортежей и значений в таблицы, строки (записи) и клетки (поля) и придает им некоторый внешний вид, обычно по опциональному выбору пользователя. 

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

Рассмотрим исторические причины возникновении XML как языка. На исторические причины возникновения XML можно посмотреть с двух различных, но связанных между собой точек зрения (рисунок1):

 Две точки зрения возникновения XML

Рисунок 1. Две точки зрения возникновения XML

Первая точка зрения состоит в том, что семантическая ограниченность языка разметки гипертекста HTML не позволяла разработчику Web-приложений описывать специфичную информацию, например, химические или математические формулы [1]. Возникла практическая потребность в других языках разметки, структурно аналогичных HTML, но с другой семантикой. В результате стараний Интернет-консорциума W3C был создан метаязык XML, на основе которого заинтересованные разработчики создали и создают специфичные дочерние языки разметки - CML, MathML и уже десятки других. С учетом небольшой синтаксической доработки, HTML также является дочерним языком XML.

Согласно второй точки зрения информация, заключенная в любом документе, в том числе и в Web-странице, является в большей или меньшей степени регулярной. Ранние варианты HTML слабо учитывали эту регулярность, что приводило к громоздкости сообщений на этом языке и не вполне удовлетворяло разработчиков Web-приложений. Первым делом, стараниями W3C-консорциума, разработчикам была предоставлена возможность вычленить из HTML-документа описание внешнего вида отдельных, регулярно повторяющихся его фрагментов в самостоятельный объект – таблицу стилей CSS. Далее была вычленена в самостоятельный объект собственно разметка – таблица стилей XSL, которую, возможно, следовало бы более точно назвать таблицей шаблонов разметки. В итоге остался XML-документ, описывающий в чистом виде структуру данных документа.

Таким образом, структурированные данные документа были отделены от способа их логико-графического представления (разметки) в виде списков, параграфов, таблиц, диаграмм и т.п., а логико-графическое представление от конкретного внешнего вида (стиля) – размеров, цветов, начертаний и т.п.

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

<ИмяУзла ИмяАтр1=”значение” ИмяАтр2=”значение” ... > вложенные теги и тексты </ИмяУзла>

Разница этих двух точек зрения на XML состоит в том, что ставить во главу угла – разметку или данные. В первом случае имена тегов и их атрибутов являются указателями на конкретный шаблон разметки и стандартизуются в словарях-спецификациях XML для каждого конкретного языка разметки. Во втором случае имена тегов XML - это указатели регулярных данных самого XML- документа. Нас интересует второй вариант, и под XML- документом мы будем понимать структуру данных документа, выраженную языком XML. Далее рассмотрим особенности перевода с реляционного языка на язык XML и наоборот. Реляционный язык – это язык кортежей (неупорядоченных множеств пар “Имя Реквизита-Значение Реквизита”) и отношений (неупорядоченных множеств кортежей, имеющих одинаковый набор имен реквизитов). Внешним представлением сообщений на реляционном языке является набор двухмерных таблиц [2]. Конкретное приложение, работающее с РБД, делает разметку отношений, кортежей и значений в таблицы, строки (записи) и клетки (поля) и придает им некоторый внешний вид, обычно по опциональному выбору пользователя.

Внешним представлением сообщений на языке XML является набор реальных документов (и электронных, и бумажных), визуализация которых происходит при помощи универсального браузера (например, IE5) на основании XSL и CSS.

Перевод сообщений с реляционного языка на XML синтаксически не однозначен. Для иллюстрации рассмотрим простой пример, состоящий из 3 отношений, 5 реквизитов и 5 кортежей (рисунок 2).

 Перевод сообщений с реляционного языка на XML

Рисунок 2. Перевод сообщений с реляционного языка на XML

В простейшем и наиболее компактном варианте получается следующая конструкция (вариант 1):

<DataBase>

<Tab1 A=”a1” C=”c1”/>

<Tab2 B=”b1” D=”d1”/>

<Tab2 B=”b2” D=”d2”/>

<Tab3 A=”a1” B=”b1” E=”e1”/>

<Tab3 A=”a1” B=”b2” E=”e2”/></DataBase>

Ее недостатком является неоднородность представления кортежей и значений, что, например, осложняет отображение расширенных реляционных моделей. Если значения оформлять также в виде тегов, то получим следующее (вариант 2):

<DataBase>

<Tab1><A>a1</A><C>c1</C></Tab1>

<Tab2><B>b1</B><D>d1</D></Tab2>

<Tab2><B>b2</B><D>d2</D></Tab2>

<Tab3><A>a1</A><B>b1</B><E>e1</E></Tab3>

<Tab3><A>a1</A><B>b2</B><E>e2</E></Tab3></DataBase> 

Оба варианта используют двухуровневую вложенность XML-узлов, с помощью которой устанавливаются направленные связи кортеж-значение. Направленные связи от записей Tab1 к записям Tab3 и от записей Tab2 к записям Tab3 (Tab3 обычно называют таблицей-связкой для реализации связей типа "многие-ко-многим") указываются одинаковыми значениями ключевых реквизитов A и B. В языке XML связи обычно указываются явно путем вложения тегов друг в друга и путем применения ссылок. Это позволяет в нашем примере убрать ссылочные ключи в Tab3 и установить ссылки на одного родителя путем вложения тега Tab3 в Tab2 и на второго родителя (Tab1) с помощью атрибутов Id и Ref (вариант 3):

<DataBase>

<Tab1 Id=”#1”>

<A>a1</A>

<C>c1</C></Tab1>

<Tab2>

<B>b1</B>

<D>d1</D>

<Tab3 Ref1=”#1”>

<E>e1</E></Tab3></Tab2>

<Tab2>

<B>b2</B>

<D>d2</D>

<Tab3 Ref1=”#1”>

<E>e2</E></Tab3></Tab2></DataBase>

Для того чтобы выполнить обратную операцию – привести произвольные XML- данные к реляционным – в первую очередь их необходимо преобразовать к одному из описанных выше вариантов. Для примера возьмем вариант 3.

  1. Для каждого тега (в общем виде) вынесем все атрибуты, кроме Id и Ref, и все фрагменты текста в отдельные вложенные теги. Получится следующая структура:

<ИмяУзла Id=”Указатель” Ref1=”Указатель” Ref2=”Указатель”...>

<ИмяАтр1> Значение </ИмяАтр1>

<ИмяАтр2> Значение </ИмяАтр2>...

<ИмяТекста1> Только текст </ИмяТекста1>

<ИмяТекста2> Только текст </ИмяТекста2>... Только вложенные теги </ИмяУзла>

  1. Реляционные данные хранятся в неупорядоченном виде, а данные XML в упорядоченном. Если в порядке следования атрибутов, фрагментов текста и вложенных тегов заложен смысл, то его, возможно, следует сохранить путем добавления к этой структуре специального вложенного тега, содержащего эту информацию.
  2. Узлы предпоследнего уровня иерархии, которым соответствуют кортежи, не могут содержать одноименные вложенные теги - эта ситуация должна быть преобразована. Грубо говоря, в реляционной таблице клетка не может быть разделена на части. Кроме того, если она и может быть пустой, то уж никак не может отсутствовать. Поэтому, необходимо учесть разницу между отсутствующим и пустым тегом последнего уровня.
  3. Узлы последнего уровня иерархии, которым соответствуют значения реквизитов, не могут содержать ссылочных атрибутов Id и Ref, так как в реляционных данных связи по ключам существуют только на уровне кортежей.

Преобразование варианта 3 в вариант 2 происходит путем включения ключевых тегов, в качестве которых, в общем случае, удобно использовать суррогатные ключи.

Как видно из рассмотренного примера, если данные размещать как текст и "размечать" их именами тегов, а атрибуты использовать только для ссылок, то получается весьма однородная структура, синтаксически несколько более широкая, чем реляционная.

 

Литература

  1. Веселов В.В., Долженков А.Н. Влияние языка XML на развитие технологий баз данных. - Сайт информационных технологий. webservis.ru
  2. Джонатан Эйнджел. XML: время пришло. - Lan/Журнал сетевых решений,№11/99

Разделы знаний

Архитектура

Научные статьи по Архитектуре

Биология

Научные статьи по биологии 

Военное дело

Научные статьи по военному делу

Востоковедение

Научные статьи по востоковедению

География

Научные статьи по географии

Журналистика

Научные статьи по журналистике

Инженерное дело

Научные статьи по инженерному делу

Информатика

Научные статьи по информатике

История

Научные статьи по истории, историографии, источниковедению, международным отношениям и пр.

Культурология

Научные статьи по культурологии

Литература

Литература. Литературоведение. Анализ произведений русской, казахской и зарубежной литературы. В данном разделе вы можете найти анализ рассказов Мухтара Ауэзова, описание творческой деятельности Уильяма Шекспира, анализ взглядов исследователей детского фольклора.  

Математика

Научные статьи о математике

Медицина

Научные статьи о медицине Казахстана

Международные отношения

Научные статьи посвященные международным отношениям

Педагогика

Научные статьи по педагогике, воспитанию, образованию

Политика

Научные статьи посвященные политике

Политология

Научные статьи по дисциплине Политология опубликованные в Казахстанских научных журналах

Психология

В разделе "Психология" вы найдете публикации, статьи и доклады по научной и практической психологии, опубликованные в научных журналах и сборниках статей Казахстана. В своих работах авторы делают обзоры теорий различных психологических направлений и школ, описывают результаты исследований, приводят примеры методик и техник диагностики, а также дают свои рекомендации в различных вопросах психологии человека. Этот раздел подойдет для тех, кто интересуется последними исследованиями в области научной психологии. Здесь вы найдете материалы по психологии личности, психологии разивития, социальной и возрастной психологии и другим отраслям психологии.  

Религиоведение

Научные статьи по дисциплине Религиоведение опубликованные в Казахстанских научных журналах

Сельское хозяйство

Научные статьи по дисциплине Сельское хозяйство опубликованные в Казахстанских научных журналах

Социология

Научные статьи по дисциплине Социология опубликованные в Казахстанских научных журналах

Технические науки

Научные статьи по техническим наукам опубликованные в Казахстанских научных журналах

Физика

Научные статьи по дисциплине Физика опубликованные в Казахстанских научных журналах

Физическая культура

Научные статьи по дисциплине Физическая культура опубликованные в Казахстанских научных журналах

Филология

Научные статьи по дисциплине Филология опубликованные в Казахстанских научных журналах

Философия

Научные статьи по дисциплине Философия опубликованные в Казахстанских научных журналах

Химия

Научные статьи по дисциплине Химия опубликованные в Казахстанских научных журналах

Экология

Данный раздел посвящен экологии человека. Здесь вы найдете статьи и доклады об экологических проблемах в Казахстане, охране природы и защите окружающей среды, опубликованные в научных журналах и сборниках статей Казахстана. Авторы рассматривают такие вопросы экологии, как последствия испытаний на Чернобыльском и Семипалатинском полигонах, "зеленая экономика", экологическая безопасность продуктов питания, питьевая вода и природные ресурсы Казахстана. Раздел будет полезен тем, кто интересуется современным состоянием экологии Казахстана, а также последними разработками ученых в данном направлении науки.  

Экономика

Научные статьи по экономике, менеджменту, маркетингу, бухгалтерскому учету, аудиту, оценке недвижимости и пр.

Этнология

Научные статьи по Этнологии опубликованные в Казахстане

Юриспруденция

Раздел посвящен государству и праву, юридической науке, современным проблемам международного права, обзору действующих законов Республики Казахстан Здесь опубликованы статьи из научных журналов и сборников по следующим темам: международное право, государственное право, уголовное право, гражданское право, а также основные тенденции развития национальной правовой системы.