В форуме SoftCraft Петро спросил: "Может, кто знаком с математическим аппаратом для описания преобразования реляционной схемы в XML?"
Он же представил для критики свой подход:
ОПРЕДЕЛЕНИЕ. Реляционной схемой отношения будем называть конечно множество атрибутов A1,A2,...,An и обозначать R.
ОПРЕДЕЛЕНИЕ. Схемой реляционной базы данных будем называть множество схем реляционных отношений и обозначать R(R1,R2,...).
Множество реляционных схем R будем обозначать буквой В.
Пусть D1,D2,...,DN - некоторые множества, которые мы будим в дальнейшем называть доменами.
ОПРЕДЕЛЕНИЕ. Реляционным отношением r будим называть множество упорядоченных n-ок <d1,d2,...,dn>, где d1 принадлежит D1, d2 принадлежит D2, ..., dn принадлежит Dn.
ОПРЕДЕЛЕНИЕ. Схемой XML-Документа будем называть пару X=<{Ai | I=1..m}, <Ai, Aj>>, т.е множество атрибутов (наименований узлов) и отношение на этом множестве.
Множество схем XML-документов будем обозначать А.
ОПРЕДЕЛЕНИЕ. XML-документом будем называть множество пар x={<di,dj> | di принадлежит Di, dj принадлежит Dj}
УТВЕРЖДЕНИЕ 1. Любое реляционное отношение r со сохемой R может быть отображено в xml-документ x со схемой X т.е существует отображение R2X: В->А (Отображение множества реляционных схем в множество схем XML-документов будем обозначать R2X).
Предложим алгоритм такого отображения (R2X). Документ строится согласно алгоритму:
НАЧАЛО
Вводим атрибуты A1, A2,An из реляционной модели R = {A1,A2,..,An} и атрибут AR - наименование отношения r, тогда X={{A1,..,An,AR}, <AR,Ai> | I =1..n} и каждый кортеж отношения r= (d1,d2,..,dn) отображается в {<AR,d1>,<AR,d2>,..,<AR,dn>}. Множество всех кортежей отобразятся в xml-документ.
КОНЕЦУТВЕРЖДЕНИЕ 2.Любой xml-Документ x со схемой X может быть отображен на реляционное отношение r со схемой R т.е существует отображение X2R: А->В (Отображение множества реляционных схем в множество схем XML-документов будем обозначать R2X).
Предложим алгоритм такого отображения (X2R). Документ строится согласно алгоритму:
НАЧАЛО
1) Схему R отношения строим следующим образом: R={ID, Name, Value, ParentID}
2) Каждом отношению <di,dj> ставим в соответствие 2 картежа <IDi, Name di, Value di, null>, <IDj, Name dj, Value dj, IDi>
КОНЕЦЗамечание: При доказательстве утверждений неявно использовалась теорема о том, что всякое конечное множество может быть упорядоченно.