Публикации

Дмитрий Тимофеев
Старший инженер-программист
21.09.2013

Использование платформы XML для описания расширенной реляционной модели данных RM/​T

1. Вве­де­ние

Инфор­ма­ци­он­ная систе­ма пред­став­ля­ет собой про­грамм­но-аппа­рат­ный ком­плекс, кото­рый обес­пе­чи­ва­ет сбор, хра­не­ние, акту­а­ли­за­цию, обра­бот­ку и пред­став­ле­ние инфор­ма­ции в целях под­держ­ки дея­тель­но­сти орга­ни­за­ции.

В осно­ве инфор­ма­ци­он­ной систе­мы лежит систе­ма баз дан­ных. Систе­ма баз дан­ных предо­став­ля­ет пред­при­я­тию сред­ства цен­тра­ли­зо­ван­но­го управ­ле­ния его дан­ны­ми.

На сего­дняш­ний день доми­ни­ру­ю­щее поло­же­ние зани­ма­ют СУБД, под­дер­жи­ва­ю­щие реля­ци­он­ную модель дан­ных. Пре­иму­ще­ства­ми реля­ци­он­ных СУБД явля­ет­ся про­сто­та исполь­зу­е­мой струк­ту­ры дан­ных и мани­пу­ля­тив­ных опе­ра­ций, нали­чие стро­го фор­маль­но­го опре­де­ле­ния реля­ци­он­ной моде­ли, нена­ви­га­ци­он­ный доступ к дан­ным, обес­пе­че­ние физи­че­ской и логи­че­ской неза­ви­си­мо­сти дан­ных.

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

Основ­ная цель иссле­до­ва­ний в обла­сти семан­ти­че­ско­го моде­ли­ро­ва­ния состо­ит в том, что­бы сде­лать СУБД более «разум­ны­ми», в удер­жа­нии боль­ше­го смыс­ла дан­ных. Кон­крет­ная цель состо­ит в предо­став­ле­нии более удоб­ных и есте­ствен­ных для чело­ве­ка средств моде­ли­ро­ва­ния пред­мет­ной обла­сти.

В каче­стве спо­со­ба реа­ли­за­ции семан­ти­ки были раз­ра­бо­та­ны раз­лич­ные рас­ши­рен­ные моде­ли дан­ных. Наи­бо­лее попу­ляр­ной из рас­ши­рен­ных моде­лей явля­ет­ся модель «сущ­ность-связь». Одна­ко дан­ная модель явля­ет­ся толь­ко нефор­маль­ным допол­не­ни­ем реля­ци­он­ной моде­ли, она исполь­зу­ет­ся на пер­вом эта­пе про­ек­ти­ро­ва­ния базы для созда­ния кон­цеп­ту­аль­ной моде­ли пред­мет­ной обла­сти. Затем эта модель пред­мет­ной обла­сти отоб­ра­жа­ет­ся в кон­цеп­ту­аль­ную схе­му базы дан­ных в тер­ми­нах фор­маль­ной моде­ли дан­ных кон­цеп­ту­аль­но­го уров­ня выбран­ной СУБД. При этом полу­чен­ная кон­цеп­ту­аль­ная схе­ма базы дан­ных может суще­ствен­но отли­чать­ся от пер­во­на­чаль­ной кон­цеп­ту­аль­ной моде­ли пред­мет­ной обла­сти, уро­вень абстрак­ции пони­жа­ет­ся, а зада­ча пред­став­ле­ние семан­ти­ки пред­мет­ной обла­сти боль­шей частью ложит­ся на при­ло­же­ния к базе дан­ных. Соот­вет­ствен­но, услож­ня­ет­ся постро­е­ние инфор­ма­ци­он­ной систе­мы, а если пред­мет­ная область явля­ет­ся дина­ми­че­ской, то так­же раз­ви­тие и сопро­вож­де­ние инфор­ма­ци­он­ной систе­мы.

В свя­зи с этим наи­бо­лее пер­спек­тив­ным явля­ет­ся пря­мая реа­ли­за­ция СУБД, осно­ван­ной на рас­ши­рен­ной моде­ли дан­ных, вклю­ча­ю­щей как нефор­маль­ные семан­ти­че­ские кон­цеп­ции, так и фор­маль­ную модель для их интер­пре­та­ции. При этом раз­ра­бот­ка инфор­ма­ци­он­ных систем ста­но­вит­ся в боль­шей сте­пе­ни опи­са­тель­ной, декла­ра­тив­ной.

С целью рас­ши­ре­ния семан­ти­че­ских аспек­тов реля­ци­он­ной моде­ли Код­дом была пред­ло­же­на рас­ши­рен­ная реля­ци­он­ная модель RM/​T [1], в кото­рой поми­мо семан­ти­че­ских поня­тий вво­дят­ся так­же фор­маль­ные объ­ек­ты, пра­ви­ла целост­но­сти и опе­ра­то­ры.

В дан­ной рабо­те рас­смат­ри­ва­ет­ся рас­ши­рен­ная реля­ци­он­ная модель дан­ных RM/​T, кото­рая не полу­чи­ла широ­ко­го рас­про­стра­не­ния из-за сво­ей слож­но­сти, пред­ла­га­ет­ся исполь­зо­вать для фор­маль­но­го опи­са­ния моде­ли RM/​T язы­ки плат­фор­мы XML и раз­ра­ба­ты­ва­ет­ся модель дан­ных, осно­ван­ная на моде­ли дан­ных RM/​T, с исполь­зо­ва­ни­ем плат­фор­мы XML.

2. Модель дан­ных RM/​T

Базо­вы­ми семан­ти­че­ски­ми поня­ти­я­ми рас­ши­рен­ной реля­ци­он­ной моде­ли дан­ных RM/​T явля­ют­ся сущ­ность, свой­ство, связь, под­тип. Связь рас­смат­ри­ва­ет­ся как осо­бый вид сущ­но­сти.

Сущ­но­сти име­ют типы, кото­рые клас­си­фи­ци­ру­ют­ся на три кате­го­рии:

  • Харак­те­ри­сти­че­ские сущ­но­сти выпол­ня­ют вспо­мо­га­тель­ную роль в опи­са­ние неко­то­рой дру­гой сущ­но­сти. Суще­ство­ва­ние харак­те­ри­стик зави­сит от суще­ство­ва­ния опи­сы­ва­е­мых ими сущ­но­стей.
  • Ассо­ци­а­тив­ные сущ­но­сти выпол­ня­ют вспо­мо­га­тель­ную роль в обес­пе­че­нии вза­и­мо­свя­зи дру­гих сущ­но­стей. Ассо­ци­а­ции пред­став­ля­ют свя­зи типа «мно­гие ко мно­гим».
  • Стерж­не­вые сущ­но­сти неза­ви­си­мы.

Сущ­но­сти могут иметь свой­ства, под­дер­жи­ва­ют­ся супер­ти­пы и под­ти­пы сущ­но­стей.

Для иден­ти­фи­ка­ции сущ­но­стей пред­мет­ной обла­сти исполь­зу­ют­ся сур­ро­га­ты (опре­де­ля­е­мые систе­мой иден­ти­фи­ка­то­ры). Поль­зо­ва­те­ли базы дан­ных могут заста­вить систе­му сге­не­ри­ро­вать или уда­лить неко­то­рый сур­ро­гат, но они не могут изме­нять зна­че­ние сур­ро­га­та. С вве­де­ни­ем сур­ро­га­тов не отме­ня­ют­ся клю­чи, кон­тро­ли­ру­е­мые поль­зо­ва­те­ля­ми.

Каж­до­му типу сущ­но­сти соот­вет­ству­ет унар­ное E‑отношение (рис. 1). В E‑отношении пере­чис­ля­ют­ся сур­ро­га­ты всех сущ­но­стей, кото­рые име­ют этот тип и суще­ству­ют в базе. Свой­ства типов сущ­но­стей пред­став­ля­ют­ся P‑отношениями (рис. 1).


Рис. 1. E- и P‑отношения

Для свя­зи неко­то­ро­го свой­ства с типом сущ­но­сти, а так­же для свя­зи типов сущ­но­стей исполь­зу­ют­ся бинар­ные и тер­нар­ные гра­фо­вые отно­ше­ния.

RM/​T под­дер­жи­ва­ет опре­де­лён­ную ато­мар­ную и моле­ку­ляр­ную семан­ти­ку. Ато­мар­ная семан­ти­ка пред­став­ля­ет­ся n‑мерными отно­ше­ни­я­ми (в край­нем слу­чае, бинар­ны­ми), кото­рые явля­ют­ся наи­бо­лее малы­ми смыс­ло­вы­ми еди­ни­ца­ми, моле­ку­ляр­ная семан­ти­ка пред­став­ля­ет­ся смыс­ло­вы­ми еди­ни­ца­ми боль­ши­ми, чем n‑мерные отно­ше­ния. RM/​T под­дер­жи­ва­ет четы­ре изме­ре­ния моле­ку­ляр­ной семан­ти­ки: декар­то­ву агре­га­цию, обоб­ще­ние, агре­га­цию покры­тия и пред­ше­ство­ва­ние собы­тий.

Декар­то­ва агре­га­ция – это абстрак­ция, в кото­рой связь меж­ду объ­ек­та­ми рас­смат­ри­ва­ет­ся как объ­ект более высо­ко­го уров­ня. В RM/​T декар­то­ва агре­га­ция под­раз­де­ля­ет­ся на 3 вида:

1. Агре­га­ция про­стых свойств, кото­рая обра­зу­ет неко­то­рый тип сущ­но­стей.

Сово­куп­ность P‑отношений для задан­но­го E‑отношения состав­ля­ет моле­ку­ляр­ный тип свойств.

2. Агре­га­ция харак­те­ри­сти­че­ских сущ­но­стей, кото­рая обра­зу­ет неко­то­рый тип сущ­но­стей.

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

Сово­куп­ность харак­те­ри­сти­че­ских отно­ше­ний для задан­но­го E‑отношения состав­ля­ет харак­те­ри­сти­че­ский моле­ку­ляр­ный тип.

В дан­ной рабо­те харак­те­ри­сти­че­скую агре­га­цию пред­ла­га­ет­ся есте­ствен­ным обра­зом опи­сы­вать и пред­став­лять в виде дере­ва типов сущ­но­стей (рис. 2).


Рис. 2. Харак­те­ри­сти­че­ская агре­га­ция

3. Агре­га­ция любой ком­би­на­ции стерж­не­вых и ассо­ци­а­тив­ных сущ­но­стей, кото­рая обра­зу­ет ассо­ци­а­тив­ный тип сущ­но­стей.

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

В рабо­те пред­ла­га­ет­ся исполь­зо­вать харак­те­ри­сти­че­ские дере­вья в каче­стве основ­ной струк­ту­ры дан­ных, тогда ассо­ци­а­тив­ная агре­га­ция может быть реа­ли­зо­ва­на с помо­щью гори­зон­таль­ных свя­зей меж­ду типа­ми сущ­но­стей этих дере­вьев (рис. 3).


Рис. 3. Ассо­ци­а­тив­ная агре­га­ция

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

Обоб­ще­ние – это абстрак­ция, при кото­рой мно­же­ство схо­жих объ­ек­тов рас­смат­ри­ва­ет­ся как родо­вой объ­ект (под­ти­пы и супер­ти­пы сущ­но­стей).

Неко­то­рый тип сущ­но­сти вме­сте с его непо­сред­ствен­ны­ми под­ти­па­ми, их под­ти­па­ми и т.д. обра­зу­ет иерар­хию обоб­ще­ния, кото­рая явля­ет­ся моле­ку­ляр­ным типом.

Иерар­хия обоб­ще­ния в общем виде пред­став­ля­ет собой решёт­ку типов. В пред­ла­га­е­мом под­хо­де она может быть реа­ли­зо­ва­на с помо­щью гори­зон­таль­ных свя­зей меж­ду типа­ми сущ­но­стей харак­те­ри­сти­че­ских дере­вьев (рис. 4).


Рис. 4. Агре­га­ция обоб­ще­ния

Вме­сте с тем агре­га­цию обоб­ще­ния так­же удоб­но пред­став­лять в виде дере­вьев.

Агре­га­ция покры­тия – это абстрак­ция, при кото­рой раз­но­род­ные объ­ек­ты могут свя­зы­вать­ся по при­зна­ку ком­по­нент­но­го вхож­де­ния в дру­гие объ­ек­ты.

В пред­ла­га­е­мом под­хо­де агре­га­ция покры­тия может быть реа­ли­зо­ва­на с помо­щью гори­зон­таль­ных свя­зей меж­ду типа­ми сущ­но­стей харак­те­ри­сти­че­ских дере­вьев (рис. 5).


Рис. 5. Агре­га­ция покры­тия

Вме­сте с тем агре­га­цию покры­тия так­же удоб­но пред­став­лять в виде дере­ва.

Пред­ше­ство­ва­ние собы­тий – это абстрак­ция, кото­рая отра­жа­ет после­до­ва­тель­ность неко­то­рых типов собы­тий.

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

RM/​T вклю­ча­ет рас­ши­ря­е­мый ката­лог, содер­жа­щий инфор­ма­цию об отно­ше­ни­ях, атри­бу­тах, доме­нах и суще­ству­ю­щих свя­зях меж­ду ними. Так­же RM/​T преду­смат­ри­ва­ет спе­ци­аль­ные опе­ра­то­ры над име­на­ми, мно­же­ства­ми и гра­фо­вы­ми отно­ше­ни­я­ми.

В целом RM/​T вво­дит моле­ку­ляр­ные смыс­ло­вые еди­ни­цы, более круп­ные, чем отдель­ные n‑арные отно­ше­ния. Эти смыс­ло­вые еди­ни­цы более есте­ствен­ны и инту­и­тив­но понят­ны для чело­ве­ка. Одна­ко меха­низм реа­ли­за­ции рас­ши­ре­ний явля­ет­ся низ­ко­уров­не­вым, что дела­ет модель более мощ­ной и гиб­кой, но вме­сте с тем более слож­ной и ори­ен­ти­ро­ван­ной в первую оче­редь на про­грам­ми­стов, а не на поль­зо­ва­те­лей. Боль­шин­ство дета­лей рас­ши­ре­ния долж­но быть скры­то от основ­ной мас­сы поль­зо­ва­те­лей. Из-за сво­ей слож­но­сти RM/​T не полу­чи­ла широ­ко­го рас­про­стра­не­ния.

Как было отме­че­но, харак­те­ри­сти­че­ская агре­га­ция может быть опи­са­на дре­во­вид­ной струк­ту­рой, а ассо­ци­а­тив­ная агре­га­ция, обоб­ще­ние и агре­га­ция покры­тия – гори­зон­таль­ны­ми свя­зя­ми меж­ду типа­ми сущ­но­стей этих дере­вьев. В целом для опи­са­ния моле­ку­ляр­ных типов RM/​T в дан­ной рабо­те пред­ла­га­ет­ся вве­де­ние моле­ку­ляр­ной струк­ту­ры – дере­ва с гори­зон­таль­ны­ми свя­зя­ми – поверх ато­мар­ной струк­ту­ры – n‑мерного отно­ше­ния. Такое дере­во, оче­вид­но, долж­но быть логи­че­ским, что поз­во­лит лег­ко решать зада­чи пере­стру­ри­за­ции дере­ва. Кро­ме того, долж­на под­дер­жи­вать­ся воз­мож­ность пред­став­ле­ния ассо­ци­а­тив­ной агре­га­ции, обоб­ще­ния и агре­га­ции покры­тия в виде логи­че­ских дере­вьев. Сур­ро­га­ты долж­ны слу­жить для упо­ря­до­чи­ва­ния кор­те­жей отно­ше­ний.

Логи­ко-мате­ма­ти­че­ский аппа­рат иерар­хи­че­ской базы дан­ных с гори­зон­таль­ны­ми свя­зя­ми, в общем слу­чае, суще­ствен­но слож­нее, чем реля­ци­он­ных – послед­ние лишь част­ный слу­чай пер­вых. Одна­ко с созда­ни­ем и раз­ви­ти­ем плат­фор­мы XML появи­лась воз­мож­ность фор­маль­но­го опи­са­ния иерар­хи­че­ской моде­ли с гори­зон­таль­ны­ми свя­зя­ми.

3. Плат­фор­ма XML

XML (Extensible Markup Language) [2] – стан­дарт, кото­рый опре­де­ля­ет син­так­сис, поз­во­ля­ю­щий созда­вать соб­ствен­ные язы­ки раз­мет­ки доку­мен­тов. XML не содер­жит гото­во­го набо­ра эле­мен­тов раз­мет­ки (тегов), а опи­сы­ва­ет пра­ви­ла созда­ния соб­ствен­ных тегов.

Глав­ным досто­ин­ством XML явля­ет­ся отде­ле­ние друг от дру­га струк­тур­ной раз­мет­ки, фор­ма­ти­ру­ю­щей (визу­аль­но­го пред­став­ле­ния) раз­мет­ки и семан­ти­ки раз­мет­ки. Сле­ду­ет отме­тить, что XML как тако­вой не пред­пи­сы­ва­ет какой-либо кон­крет­ный смысл при­ме­ня­е­мой раз­мет­ке. Семан­ти­ку раз­мет­ки опре­де­ля­ют исполь­зу­ю­щие доку­мен­ты XML при­ло­же­ния.

Струк­ту­ра XML-доку­мен­тов

Глав­ной кон­струк­ци­ей язы­ка XML явля­ет­ся XML-доку­мент. Основ­ны­ми струк­тур­ны­ми еди­ни­ца­ми XML-доку­мен­та явля­ют­ся эле­мен­ты и атри­бу­ты. XML-доку­мент пред­став­ля­ет собой набор вло­жен­ных друг в дру­га эле­мен­тов, обла­да­ю­щих атри­бу­та­ми. Эле­мен­ты иерар­хи­че­ски орга­ни­зу­ют инфор­ма­цию, содер­жа­щу­ю­ся в доку­мен­те. Эле­мен­ты упо­ря­до­че­ны, соот­вет­ствен­но, суще­ству­ет опре­де­лён­ный поря­док обхо­да доку­мен­та, для атри­бу­тов поря­док сле­до­ва­ния не име­ет зна­че­ния. Иерар­хи­че­ская орга­ни­за­ция инфор­ма­ции в XML опи­сы­ва­ет­ся дре­во­вид­ной струк­ту­рой (рис. 6).


Рис. 6. XML-доку­мент и дере­во эле­мен­тов

Таким обра­зом, соглас­но спе­ци­фи­ка­ции XML, струк­ту­ра XML-доку­мен­та пред­став­ля­ет собой дере­во упо­ря­до­чен­ных эле­мен­тов c атри­бу­та­ми, такая струк­ту­ра соот­вет­ству­ет основ­ной пред­ло­жен­ной струк­ту­ре моде­ли дан­ных RM/​T и поз­во­ля­ет про­мо­де­ли­ро­вать пред­ше­ство­ва­ние собы­тий.

Опи­са­ние струк­ту­ры и огра­ни­че­ний целост­но­сти

Схе­ма доку­мен­та – это фор­маль­ное опи­са­ние струк­ту­ры доку­мен­та и семан­ти­че­ских огра­ни­че­ний, накла­ды­ва­е­мых на содер­жа­щи­е­ся в доку­мен­те дан­ные. Зна­ние схе­мы XML-доку­мен­та поз­во­ля­ет отно­сить его к опре­де­лён­но­му клас­су.

Все язы­ки опи­са­ния схем мож­но раз­бить на две груп­пы: осно­ван­ные на грам­ма­ти­ке (DTD, XML Schema, RELAX NG [3]) и осно­ван­ные на пра­ви­лах (Schematron [4]).

Язы­ки, осно­ван­ные на грам­ма­ти­ке, сосре­до­та­чи­ва­ют­ся на явном объ­яв­ле­нии схе­мы доку­мен­та и опре­де­ля­ют закры­тую модель содер­жа­ния XML-доку­мен­та, что озна­ча­ет невоз­мож­ность добав­ле­ния в XML-доку­мент новых эле­мен­тов без их пред­ва­ри­тель­но­го опре­де­ле­ния в схе­ме. Такие язы­ки поз­во­ля­ют опи­сы­вать дре­во­вид­ную струк­ту­ру XML-доку­мен­та.

Язы­ки, осно­ван­ные на пра­ви­лах, сосре­до­та­чи­ва­ют­ся на про­вер­ке допу­сти­мо­сти кон­крет­ных доку­мен­тов и опре­де­ля­ют откры­тую модель содер­жа­ния XML-доку­мен­та. Каж­дое пра­ви­ло пред­став­ля­ет собой огра­ни­че­ние целост­но­сти, выра­жен­ное язы­ком XPath. С помо­щью пра­вил мож­но обес­пе­чить про­вер­ку допу­сти­мо­сти огра­ни­че­ний, кото­рые невоз­мож­но объ­явить в язы­ках, осно­ван­ных на грам­ма­ти­ке. Такие язы­ки поз­во­ля­ют опи­сы­вать гори­зон­таль­ные свя­зи меж­ду эле­мен­та­ми XML-доку­мен­та и огра­ни­че­ния целост­но­сти.

Сов­мест­ное исполь­зо­ва­ние язы­ков, осно­ван­ных на грам­ма­ти­ке, и язы­ков, осно­ван­ных на пра­ви­лах, поз­во­ля­ет опи­сы­вать дре­во­вид­ные струк­ту­ры с гори­зон­таль­ны­ми свя­зя­ми, то есть, струк­ту­ры моде­ли RM/​T.

Опе­ра­ции с XML-доку­мен­та­ми

Объ­ект­ная модель доку­мен­та DOM (Document Object Model) [5] обес­пе­чи­ва­ет объ­ект­ное пред­став­ле­ние XML-доку­мен­тов. Струк­ту­ра доку­мен­та моде­ли­ру­ет­ся как дере­во узлов-объ­ек­тов раз­лич­ных типов (все­го 12). Модель так­же вклю­ча­ет пол­ный набор низ­ко­уров­не­вых опе­ра­ций с узла­ми, то есть опи­сы­ва­ет функ­ци­о­наль­но пол­ную модель дан­ных XML. Одна­ко сле­ду­ет отме­тить, что, так как опе­ра­ции низ­ко­уров­не­вые, DOM пред­на­зна­че­на, преж­де все­го, для про­грам­ми­стов.

Для более высо­ко­уров­не­во­го мани­пу­ли­ро­ва­ния XML-дан­ны­ми в плат­фор­ме XML исполь­зу­ют­ся язы­ки XPath [6, 7] и XQuery [8].

Язык XPath пред­на­зна­чен для адре­са­ции отдель­ных частей XML-доку­мен­та. Осно­ву язы­ка состав­ля­ют выра­же­ния раз­лич­ных типов, осо­бо выде­ля­ют­ся выра­же­ния пути – пути выбор­ки. Пути выбор­ки поз­во­ля­ют выби­рать в XML-доку­мен­те после­до­ва­тель­ность узлов в соот­вет­ствии с раз­но­об­раз­ны­ми кри­те­ри­я­ми.

Язык запро­сов XQuery пред­на­зна­чен для извле­че­ния инфор­ма­ции из любых участ­ков XML-доку­мен­та и оформ­ле­ния ее в виде эле­мен­тов XML-доку­мен­та. Для поис­ка инфор­ма­ции в XML-доку­мен­те в XQuery исполь­зу­ют­ся выра­же­ния XPath.

По срав­не­нию с XPath одних из основ­ных допол­не­ний, преду­смот­рен­ных в XQuery, явля­ет­ся спо­соб­ность фор­ми­ро­вать новые узлы. Поэто­му в XQuery опре­де­ля­ет­ся такое поня­тие как кон­струк­тор узлов. Кон­струк­тор узлов – это выра­же­ние, кото­рое созда­ет и добав­ля­ет к дере­ву доку­мен­та новые узлы.

Запрос к XML-доку­мен­ту запи­сы­ва­ет­ся в виде выра­же­ния отно­си­тель­но пере­мен­ных, кото­рые при­ни­ма­ют зна­че­ния ото­бран­ных узлов, и содер­жит кон­струк­тор узлов, в кото­ром исполь­зу­ют­ся эти пере­мен­ные.

Сле­ду­ет отме­тить, что язык Query пред­на­зна­чен толь­ко для чте­ния дан­ных, поэто­му для обнов­ле­ния необ­хо­ди­мо исполь­зо­вать DOM либо созда­вать соб­ствен­ные высо­ко­уров­не­вые сред­ства на осно­ве DOM.

Пре­об­ра­зо­ва­ние струк­ту­ры XML-доку­мента

Для пре­об­ра­зо­ва­ния струк­ту­ры XML-доку­мен­та исполь­зу­ет­ся язык XSLT [9, 10]. Таб­ли­ца сти­лей, по кото­рой идет пре­об­ра­зо­ва­ние, содер­жит пра­ви­ла, состо­я­щие из двух частей: образ­цов для отбо­ра узлов, пред­на­зна­чен­ных для пре­об­ра­зо­ва­ния, и шаб­ло­нов для постро­е­ния пре­об­ра­зо­ван­ных узлов. Резуль­тат пре­об­ра­зо­ва­ния может стать новым само­сто­я­тель­ным доку­мен­том.

Модель дан­ных XML

Из выше­ска­зан­но­го сле­ду­ет, что на осно­ве язы­ков плат­фор­мы XML может быть постро­е­на модель дан­ных. Струк­ту­рой дан­ных этой моде­ли явля­ет­ся дере­во эле­мен­тов с гори­зон­таль­ны­ми свя­зя­ми, зада­ва­е­мое базо­вой спе­ци­фи­ка­ци­ей XML, язы­ка­ми опи­са­ния схем Relax NG, Schematron, эле­мен­ты дере­ва упо­ря­до­че­ны. Огра­ни­че­ния целост­но­сти зада­ют­ся с помо­щью язы­ков Relax NG, Schematron. Опе­ра­ции осу­ществ­ля­ют­ся с исполь­зо­ва­ни­ем DOM, XPath и XQuery. Пре­об­ра­зо­ва­ние струк­ту­ры XML-доку­мен­та осу­ществ­ля­ет­ся с исполь­зо­ва­ние XSLT.

И эта модель дан­ных поз­во­ля­ет опи­сать пред­ло­жен­ную интер­пре­та­цию моде­ли RM/​T.

4. Рас­ши­рен­ная модель дан­ных

На осно­ве пред­ло­жен­но­го под­хо­да раз­ра­бо­та­на рас­ши­рен­ная реля­ци­он­ная модель дан­ных, в кото­рой иерар­хи­че­ская модель дан­ных в вари­ан­те XML нало­же­на как вто­рич­ная поверх реля­ци­он­ной. Это поз­во­ля­ет сохра­нить стро­гость реля­ци­он­ной моде­ли и при­вне­сти в неё допол­ни­тель­ные пре­иму­ще­ства иерар­хи­че­ской моде­ли, а так­же исполь­зо­вать для опи­са­ния моде­ли как реля­ци­он­ную алгеб­ру, так и язы­ки плат­фор­мы XML: XML, Relax NG, Schematron, XPath, XQuery.

Основ­ны­ми струк­тур­ны­ми ком­по­нен­та­ми раз­ра­бо­тан­ной моде­ли дан­ных явля­ют­ся поня­тие, объ­ект, экзем­пляр объ­ек­та, код экзем­пля­ра объ­ек­та, отоб­ра­же­ние.

Объ­ек­ты соот­вет­ству­ют типам эле­мен­тов XML-доку­мен­та, экзем­пля­ры объ­ек­тов – отдель­ным эле­мен­там, а поня­тия – атри­бу­там эле­мен­тов. С дру­гой точ­ки зре­ния объ­ек­ты соот­вет­ству­ют реля­ци­он­ным отно­ше­ни­ям, экзем­пля­ры объ­ек­тов – кор­те­жам отно­ше­ний, а поня­тия – атри­бу­там отно­ше­ний (рис. 6).


Рис 6. Струк­тур­ные ком­по­нен­ты моде­ли дан­ных

Если с точ­ки зре­ния XML пози­ция эле­мен­та это ключ есте­ствен­ный, то чисто с реля­ци­он­ной точ­ки зре­ния он видит­ся как ключ сур­ро­гат­ный. В раз­ра­бо­тан­ной моде­ли дан­ных этот ключ назы­ва­ет­ся кодом экзем­пля­ра объ­ек­та.

Для опи­са­ния свя­зей поня­тий с объ­ек­та­ми, а так­же свя­зей меж­ду объ­ек­та­ми вво­дит­ся ещё одна струк­ту­ра – отоб­ра­же­ние. Отоб­ра­же­ние вклю­ча­ет схе­му дере­ва объ­ек­тов и дере­во экзем­пля­ров. Дере­во объ­ек­тов соот­вет­ству­ет схе­ме ХML-доку­мен­та и может быть опи­са­но с помо­щью язы­ка Relax NG, а дере­во экзем­пля­ров – мно­же­ству ХML-доку­мен­тов, удо­вле­тво­ря­ю­щих этой схе­ме.

Базу дан­ных пред­ла­га­ет­ся моде­ли­ро­вать как сово­куп­ность дере­вьев инфор­ма­ци­он­ных объ­ек­тов с гори­зон­таль­ны­ми свя­зя­ми и со спе­ци­фич­ным для каж­до­го объ­ек­та набо­ром поня­тий.

Так как зада­чей явля­ет­ся постро­е­ние логи­че­ской струк­ту­ры с воз­мож­но­стью пере­струк­ту­ри­за­ции, то и иерар­хи­че­ские свя­зи, и гори­зон­таль­ные свя­зи реа­ли­зу­ют­ся толь­ко на осно­ве зна­че­ний поня­тий, таким обра­зом, все свя­зи явля­ют­ся инфор­ма­ци­он­ны­ми.

В код экзем­пля­ра поми­мо пер­вич­но­го пози­ци­он­но­го клю­ча объ­ек­та, вклю­ча­ют­ся так­же внеш­ние клю­чи, ссы­ла­ю­щи­е­ся на экзем­пля­ры-пред­ки дан­но­го экзем­пля­ра (рис. 7).


Рис. 7. Реа­ли­за­ция иерар­хи­че­ских свя­зей

Такой иерар­хи­че­ский пози­ци­он­ный пер­вич­ный ключ опре­де­ля­ет уни­каль­ность экзем­пля­ра не толь­ко в пре­де­лах роди­тель­ско­го экзем­пля­ра, но и в пре­де­лах любо­го экзем­пля­ра-пред­ка. Исполь­зуя метод редук­ции клю­ча, мож­но полу­чить доступ к любо­му пред­ку дан­но­го экзем­пля­ра объ­ек­та. Поэто­му, несмот­ря на избы­точ­ность дан­ных, такой ключ явля­ет­ся наи­бо­лее пред­по­чти­тель­ным, он поз­во­ля­ет реа­ли­зо­вать и под­дер­жи­вать иерар­хи­че­ские свя­зи авто­ма­ти­че­ски.

Гори­зон­таль­ные свя­зи могут быть реа­ли­зо­ва­ны поль­зо­ва­те­лем с помо­щью меха­низ­мов поль­зо­ва­тель­ских потен­ци­аль­ных и внеш­них клю­чей объ­ек­тов.

Иерар­хи­че­ской орга­ни­за­ции дан­ных свой­ствен­но дуб­ли­ро­ва­ние инфор­ма­ции и соот­вет­ствен­но избы­точ­ность дан­ных. Такое дуб­ли­ро­ва­ние явля­ет­ся есте­ствен­ным для чело­ве­ка и долж­но адек­ват­но отра­жать­ся в моде­ли дан­ных. Дуб­ли­ро­ва­ние инфор­ма­ции поз­во­ля­ет отка­зать­ся от реа­ли­за­ции гори­зон­таль­ных свя­зей меж­ду отдель­ны­ми дере­вья­ми и непо­сред­ствен­но исполь­зо­вать зна­че­ния. Вопрос о мини­ми­за­ции коли­че­ства хра­ни­мой инфор­ма­ции – это вопрос физи­че­ско­го уров­ня, а не уров­ня моде­ли.

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

В моде­ли дан­ных пред­ла­га­ет­ся под­дер­жи­вать как нави­га­ци­он­ные опе­ра­ции мани­пу­ли­ро­ва­ния дан­ны­ми, так и спе­ци­фи­ка­ци­он­ные, так как нави­га­ци­он­ные опе­ра­ции предо­став­ля­ют боль­шую гиб­кость и сво­бо­ду в реа­ли­за­ции кон­крет­ных задач. Нави­га­ци­он­ные опе­ра­ции соот­вет­ству­ют низ­ко­уров­не­вым опе­ра­ци­ям моде­ли DOM с неко­то­ры­ми рас­ши­ре­ни­я­ми. Спе­ци­фи­ка­ци­он­ные опе­ра­ции соот­вет­ству­ют реля­ци­он­ной алгеб­ре с рас­ши­ре­ни­ем опе­ра­ций на дере­вья объ­ек­тов. Спе­ци­фи­ка­ци­он­ные опе­ра­ции могут быть опи­са­ны с помо­щью язы­ка XQuery.

На осно­ва­нии пред­ло­жен­ной струк­ту­ры кодов экзем­пля­ров лег­ко реша­ет­ся зада­ча инвер­ти­ро­ва­ния иерар­хии, реа­ли­зу­ет­ся опе­ра­ция про­ек­ции общей схе­мы базы дан­ных по объ­ек­там.

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

Ссы­лоч­ные объ­ек­ты ссы­ла­ют­ся на экзем­пля­ры объ­ек­тов, реаль­но суще­ству­ю­щие в базе дан­ных, при этом опе­ра­ции мани­пу­ли­ро­ва­ния экзем­пля­ра­ми ссы­лоч­ных объ­ек­тов под­дер­жи­ва­ют­ся систе­мой. Вир­ту­аль­ные объ­ек­ты поз­во­ля­ют созда­вать вир­ту­аль­ные дере­вья объ­ек­тов. Опе­ра­ции мани­пу­ли­ро­ва­ния экзем­пля­ра­ми долж­ны реа­ли­зо­вы­вать­ся поль­зо­ва­те­лем.

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

Раз­ра­бо­тан­ная модель дан­ных осно­вы­ва­ет­ся на базо­вой реля­ци­он­ной моде­ли дан­ных и моде­ли дан­ных XML и явля­ет­ся функ­ци­о­наль­ной пол­ной. Она поз­во­ля­ет мани­пу­ли­ро­вать логи­че­ски­ми дере­вья­ми с гори­зон­таль­ны­ми свя­зя­ми, предо­став­ля­ет сред­ства логи­че­ской пере­струк­ту­ри­за­ции дере­ва с воз­мож­но­стью пред­став­ле­ния гори­зон­таль­ных свя­зей в виде логи­че­ских дере­вьев и соот­вет­ству­ет пред­ло­жен­ной интер­пре­та­ции моде­ли дан­ных RM/​T. Модель так­же обла­да­ет свой­ством само­опи­са­ния, что поз­во­ля­ет исполь­зо­вать одни те же опе­ра­ции для мани­пу­ли­ро­ва­ния как дан­ны­ми, так и мета­дан­ны­ми.

5. Заклю­че­ние

В дан­ной рабо­те пред­ло­же­на новая интер­пре­та­ция рас­ши­рен­ной реля­ци­он­ной моде­ли дан­ных RM/​T. Соглас­но этой интер­пре­та­ции моле­ку­ляр­ные типы RM/​T могут быть опи­са­ны моле­ку­ляр­ной струк­ту­рой – дере­вом с гори­зон­таль­ны­ми свя­зя­ми, кото­рое накла­ды­ва­ет­ся поверх ато­мар­ной струк­ту­ры – n‑мерного отно­ше­ния. Такое дере­во явля­ет­ся логи­че­ским, что поз­во­ля­ет лег­ко решать зада­чи рестру­ри­за­ции дере­ва. Под­дер­жи­ва­ет­ся воз­мож­ность пред­став­ле­ния ассо­ци­а­тив­ной агре­га­ции, обоб­ще­ния и агре­га­ции покры­тия в виде логи­че­ских дере­вьев. Сур­ро­га­ты слу­жат для упо­ря­до­чи­ва­ния кор­те­жей отно­ше­ний.

Для опи­са­ния этой интер­пре­та­ции моде­ли дан­ных RM/​T пред­ло­же­но исполь­зо­вать модель дан­ных XML. Пред­став­ля­ет­ся крат­кое опи­са­ние раз­ра­бо­тан­ной рас­ши­рен­ной моде­ли дан­ных, осно­ван­ной на моде­ли дан­ных RM/​T, для опи­са­ния кото­рой исполь­зу­ет­ся модель дан­ных XML.

Пред­ло­жен­ная модель дан­ных явля­ет­ся осно­вой раз­ра­бо­тан­но­го инстру­мен­та для постро­е­ния и исполь­зо­ва­ния инфор­ма­ци­он­ных систем qWORD-XML [11]. Бла­го­да­ря реа­ли­зо­ван­ной моде­ли дан­ных, а так­же уни­фи­ка­ции хра­не­ния, обра­бот­ки и пред­став­ле­ния дан­ных, инстру­мент qWORD-XML пред­став­ля­ет собой удоб­ную сре­ду для быст­рой и про­стой раз­ра­бот­ки, про­сто­го сопро­вож­де­ния и исполь­зо­ва­ния инфор­ма­ци­он­ных систем.

С помо­щью инстру­мен­та qWORD-XML были раз­ра­бо­та­ны Авто­ма­ти­зи­ро­ван­ная инфор­ма­ци­он­но-ана­ли­ти­че­ская систе­ма по про­бле­мам инва­лид­но­сти и инва­ли­дов (АИС МСЭ) и Инфор­ма­ци­он­но-ана­ли­ти­че­ская систе­ма орга­нов соци­аль­ной защи­ты насе­ле­ния субъ­ек­та феде­ра­ции (АИС «Соц­за­щи­та»).

Лите­ра­ту­ра

  1. Кодд Э.Ф. Рас­ши­ре­ние реля­ци­он­ной моде­ли для луч­ше­го отра­же­ния семан­ти­ки. http://www.osp.ru/dbms/1996/05/163.htm
  2. Extensible Markup Language (XML) 1.0. http://www.w3.org/TR/REC-xml/
  3. Relax NG. http://relaxng.org/
  4. The Schematron. http://xml.ascc.net/resource/schematron/
  5. Document Object Model (DOM). http://www.w3.org/DOM/
  6. XML Path Language (XPath) Version 1.0. http://www.w3.org/TR/xpath
  7. XML Path Language (XPath) 2.0. http://www.w3.org/TR/xpath20/
  8. XQuery 1.0: An XML Query Language. http://www.w3.org/TR/xquery/
  9. XSL Transformations (XSLT) Version 1.0. http://www.w3.org/TR/xslt
  10. XSL Transformations (XSLT) Version 2.0. http://www.w3.org/TR/xslt20/
  11. Дол­жен­ков А., Тимо­фе­ев Д. Семан­ти­че­ский инстру­мент постро­е­ния баз дан­ных. «Откры­тые систе­мы», №01/​2006