<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Two-way Mapping of Graph and Relational Data Models for Multi-model Databases</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Arkady</forename><surname>Osheev</surname></persName>
							<email>osheev@mail.ru</email>
							<affiliation key="aff0">
								<orgName type="institution">Lomonosov Moscow State University</orgName>
								<address>
									<settlement>Moscow</settlement>
									<country key="RU">Russia</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Аркадий</forename><surname>Ошеев</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">Московский государстве1rnый университет им. М.В. Ломоносова</orgName>
								<address>
									<settlement>Москва</settlement>
									<region>Россия</region>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Two-way Mapping of Graph and Relational Data Models for Multi-model Databases</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">AE6FFBDB539A351DC9603AEF346CC57D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T02:01+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Modem information systems simultaneously use data structured in various ways. Тhе relational data model is no longer sufficient to represent them in а natural and efficient way. In addition, conceptual schemas of many subject areas are much more convenient to represent in NoSQL models Шее graph data model. ComЬining several DBMSs implementing different data models within the same information system leads to significant complication of system man agement. One of the possiЫe solutions to overcome this proЫem is application of а multi-model DBMS. А formal basis for the development of such DBMS is а two-way mapping between the applied data models. Existing approaches to map ping between graph and relational models either implement one-way mapping or implement two-way mapping using an intermediate representation. This work is devoted to а two-way mapping between graph and relational data model schemas, as well as between the relational (SQL) and graph (Cypher) query languages. Mapping is illustrated Ьу examples of schemas and queries. Comparison of ex isting multi-model databases that implement graph and relational models is also provided.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>делях, например, в графовой модели. Использование в рамках одной ин формационной системы нескольких СУБД, реализующих разные модели данных, приводит к существенному усложнению управления системой. Од ним из возможных решений данной проблемы является использование мультимодельной СУБД. Формальной основой для разработки такой СУБД является взаимное отображение между применяемыми моделями данных. Данная работа посвящена взаимному отображению между схемами графо вой и реляционной моделей данных, а также между языками запросов SQL и Cypher. В настоящее время существует множество подходов к отображе нию графовой модели в реляционную модель и наоборот. Все эти подходы в полной мере реализуют отображение в одну сторону или взаимное отоб ражение с использованием промежуточного представления. Рассмотрены и продемонстрированы на конкретных примерах идеи отображения схем и языков запросов. Проведено сравнение существующих мультимодельных баз данных, реализующих графовую и реляционную модели.</p><p>Ключевые слова: интеграция моделей данных, графовая модель данных, реляционная модель данных.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Введение</head><p>Современные информационные системы одновременно используют данные раз личной структуры. Для их представления уже недостаточно реляционной модели данных. Также, концептуальные схемы многих предметных областей значи тельно удобнее представлять в NoSQL моделях, например, в графовой модели. Использование в рамках одной информационной системы нескольких СУБД, ре ализующих разные модели данных, приводит к существенному усложнению управления системой. Одним из возможных решений данной проблемы является использование мультимодельной СУБД <ref type="bibr" target="#b5">[6]</ref>. Формальной основой для разработки такой СУБД является взаимное отображение между применяемыми моделями данных.</p><p>Эта работа посвящена теме интеграции реляционной и графовой моделей. Ре ляционная модель является самой популярной в мире и занимает 60% рынка на 2019 год<ref type="foot" target="#foot_0">1</ref> • Графовая модель естественна для представления некоторых предмет ных областей, например, социальных сетей. Также, из-за отсутствия схемы, воз можно хранить данные разнородных объектов в одном месте.</p><p>В настоящее время развиваются мультимодельные СУБД, поддерживающие графовую и реляционную модели такие как Agens Graph, CosmosDB, OrientDB, MarkLogic.</p><p>Несмотря на наличие данных СУБД, вопрос интеграции реляционной и графо вой моделей не решен полностью. Одной из проблем является разнообразие язы ков манипулирования графовыми данными: Cypher, SP ARQL, Gremlin, PGQL. Также ведутся работы по разработке единого стандарта языка запросов Graph Query Language (GQL). Стандарт GQL <ref type="bibr" target="#b16">[17]</ref> бьm одобрен в сентябре 2019 года, на него повлияли работы <ref type="bibr" target="#b1">[2]</ref> <ref type="bibr" target="#b4">[5]</ref>. Запросы в GQL описываются в декларативной форме подобно SQL.</p><p>Для интеграции интересующих моделей MaгkLogic и OrientDB отображают данные в промежуточное представление. Agens Graph не предоставляют отобра жение моделей друг в друга, а просто хранит данные графовой и реляционной моделей в раздельных хранилищах и для одновременного обращения к этим хра нилищам необходимо производить гибридные запросы.</p><p>На данный момент существует множество подходов к отображению графовой модели в реляционную модель и наоборот. Все эти подходы в полной мере реа лизуют отображение только в одну сторону или взаимное отображение с исполь зованием промежуточного представления. Например, в работе <ref type="bibr" target="#b13">[14]</ref> предложен алгоритм трансформации реляционных данных в графовое представление. В ста тье <ref type="bibr" target="#b9">[10]</ref> описывается взаимное отображение языков запросов SQL, Cypher в язык запросов, основанный на лямбда-исчислении.</p><p>Таким образом, по сведениям автора, в настоящее отсутствуют полноценные подходы к взаимному отображению реляционной и графовой моделей без ис пользования промежуточного представления. Данная работа направлена на объ единение существующих решений и предоставления подхода по взаимному отоб ражению языков запросов и подхода по отображению схем данных реляционной и графовой моделей.  В течение последних лет было множество работ по поводу миграции данных с реляционных баз данных в графовые базы данных <ref type="bibr" target="#b6">[7]</ref>[9] <ref type="bibr" target="#b12">[13]</ref>. Данная ситуация обусловлена получением возможностей, которые предоставляются графовыми СУБД, такими, как масштабируемость и явное представление желаемых структур данных в определенных предметных областях. В работе <ref type="bibr" target="#b13">[14]</ref> предложен алгоритм трансформации реляционных данных в графовое представление. Представлены идеи, как при обходе отношений выяс нить, что является вершиной, а что ребром. В данной работе слабо затронута тема отображения языка запросов. Neo4j в работе <ref type="bibr" target="#b14">[15]</ref> при переходе от реляционного представления в графовое дает следующие рекомендации:</p><p>1. Все записи таблиц представляются как вершины с именем сущности, как название таблицы; 2. В качестве ребер берутся внешние ключи или возможные соединения между таблицами.</p><p>Представления графов в виде ЕR-диаграммы бьmо предложено в статье <ref type="bibr" target="#b2">[3]</ref>. В рамках этой работы было создано приложение, которое на основе построения ЕR диаграммы также строит и граф. В работе <ref type="bibr" target="#b0">[1]</ref> описывается процесс переноса свя зей в ЕR-моделе в NoSQL базы данных. Приводится сравнительная характери стика отражения вида связей в различные формы баз данных. Среди них вьщеля ется характеристики графовой базы данных, в которую можно отразить все виды связей.</p><p>В работе <ref type="bibr" target="#b8">[9]</ref> рассматривается отображение ЕR-диаграмм только в структуру графа с учетом видов связей.</p><p>Тема интеграции реляционных и графовых баз данных затрагивается в ра боте <ref type="bibr" target="#b10">[ 11]</ref>. В статье описывается опыт по переносу данных о публичном транс порте из реляционной системы хранения в графовую базу данных и использова нии их одновременно. Данные действия обусловлены эффективностью графовых алгоритмов. В статье <ref type="bibr" target="#b9">[10]</ref> предлагается схема интеграции данных, язык запросов которой построен на лямбда-исчислении, приводятся примеры перевода его в язык SQL и Cypher.</p><p>Тема отображения Cypher в другие языки запросов не остается без внимания исследователей. В работе <ref type="bibr" target="#b11">[12]</ref> представлен инструмент, который теоретически мог отображать Cypher в любой язык запросов, при правильном формировании файла топологического отображения gTop.</p><p>В gTop вьщеляется два уровня: абстрактный и реализационный. Абстрактный отвечает за формальное описание вершин и ребер в графе, реализационный опи сывает как граф отображается в данной системе с указанием, какие с какими таб лицами описываемая таблица может соединяться. Получается, что пользователь этой библиотеки должен сам описать, как в реляционной системе отображается граф.</p><p>Топологический файл помогает при отображении избежать комбинационного взрыва при поиске необходимого отображения в другой язык запросов.</p><p>Практически реализован функционал по отображению Cypher в язык SQL в виде библиотеки Cytosm.</p><p>Работа Заметим, чго в дшmых идеях не рассматриваются случаи, когда первичный кшоч состоит из более чем двух элементов или составлен специфичным образом. Например, как композиция внешних ключей, которые в свою очередь состоят из нескольких атрибутов. Также считается, что внешний ключ состоит из одного ат рибута. Не учитываются функциональные зависимости между типа отношений. Разработка данных аспектов является предметом дальнейшей работы.</p><p>Для демонстрации отображения используем фрагмент базы данных North Wind <ref type="bibr" target="#b14">[15]</ref>, схема которого представлена на рис.1. В разделе запроса МА ТСН перечислен набор вершин и связывающих их ребер. Согласно <ref type="bibr" target="#b4">[5]</ref> вершины и ребра имеют следующие шаблоны.</p><p>Вершина представляется выражением (а: l {Р}), где:</p><p>• а Е А U {nil} -имя вершины в запросе. Наличие имени дает возможность ис пользоваться эту вершину дальше в теле запроса.</p><p>• l с L -возможно пустое конечное множество меток верпшны. В данной ра боте состоит из одного элемента. • Р -возможно пустое конечное множество частичных отображений атриб ут ов верпшны в выражения. Выражения накладывают дополнительные ограниче ния, которые должны быть в искомых вершинах.  </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Целью данной работы является разработка взаимного отображения графовой и реляционных моделей для обеспечения возможности обращения на реляцион ном языке запросов к графовым данным и наоборот. Такое отображение может бьrrь применено в качестве формальной основы для мультимодельной СУБД.Для достижения данной цели необходимо решить следующие основные за дачи:1. Произвести обзор существующих мультимодельных баз данных, реализую щих графовую и реляционную модели. 2. Определить варианты взаимного отображения схем графовой и реляционной моделей. 3. Определить варианты взаимного отображения языков запросов реляционной и графовой моделей. 4. Реализация отображений схем и запросов для конкретных выбранных реляци онной и графовой СУБД. 5. Произвести сравнение эффективности вариантов отображения на тестовых ба зах данных и наборах запросов. В качестве графового языка запросов выбран Cypher, который близок к GQL, и бьm разработан в компании Neo4j. В 2015 реализация языка была открыта в рамках проекта openCypher. В качестве реляционного языка запросов выбран SQL, реализованный в большом количестве проприетарных и свободно распро страняемых СУБД. Работа выполняется в рамках магистерской диссертации на факультете Вычис лительной математики и кибернетики МГУ им. М.В. Ломоносова, программа «Большие данные: инфраструктуры и методы решения задач». В статье приведены результаты первого года исследований: произведен обзор сушествующих мультимодельных СУБД, предложено по одному варианту основ ных идей отображений (i) реляционной схемы в графовую схему, (ii) графовой схемы в реляционную схему, (iii) запросов Cypher в SQL, (iv) запросов SQL в Cy pher. Все идеи сопровождаются примерами отображений с пояснениями. Данная статья структурирована следующим образом. В разделе 2 представ лены родственные работы и приведено краткое сравнение мультимодельных СУБД. В разделе 3 приведен вариант отображения схем графовых и реляционных баз данных друг в друга. В разделе 4 представлен вариант отображения языков запросов. Варианты отображений проиллюстрированы на примерах. В разделе 5 приведено заключение и направления дальнейших работ.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>представляет собой подробное сравнение существующих мультимо дельных СУБД по многим параметрам, таким как: объединяемые модели, исполь зуемый язык запросов к данным, стратегия оптимизация запросов и другие. Ав торы выделили следующие проблемы сушествующих мультимодельных СУБД: (i) сушествующие языки запросов в мультимодельных СУБД не полноценны, так как не позволяют предложить оптимальный план исполнения запроса, (ii) труд ность в разработке мультимодельной схемы для СУБД, которая будет учитывать все нюансы интегрируемых моделей, (iii) сложность вывода схемы из экземпляра базы данных, так как дополнительно необходимо учитывать связи между моде лями, (iv) сложность в управлении развития схемы мультимодельной СУБД, так как необходимо учитьmать межмодельные связи в виде ссьmок, внешних ключей ипр., В данной работе приведено краткое сравнение мультимодельных СУБД Agens Graph 1 , CosmosDB 2 , OrientDB 3 , MarkLogic 4 . Сравнение проводилось на основе документации СУБД по следующим критериям: поддерживаемые языки запро сов, модели данных и некоторые аспекты интеграции данных. Информация сгруппирована и представлена в таблице 1. По результатам анализа были сделаны следующие выводы: • В MarkLogic и OrientDB интегрируемые модели отображаются в промежуточ ное представление, с которым СУБД умеет работать. Мы же хотим избежать введения промежуточного представления с помощью отображения графовой и реляционной моделей друг в друга. Это позволит нам предоставлять пользо вателю выбор удобного ему интерфейса для работы с данными. • В AgensGraph отсутствует возможность обращаться к графовому хранилищу на реляционном языке запросов и наоборот. Предоставление такой возможно сти является одним из результатов данной работы. • CosmosDB является проприетарной облачной базой данных. Это накладывает ограничения на использование ее в проектах, где отсутствует связь с внешним миром. • OrientDB использует в качестве языка запроса свой диалект SQL. Это накла дывает ограничение в виде отображения диалекта и стандарта SQL на мигра цmо на данную СУБД или с данной СУБД. • CosmosDB, OrientDB в качестве графового языка запроса используют Gremlin, который внес меньший вклад в стандартизацию графового языка запроса, чем Cypher [16].</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>[ 8 ]</head><label>8</label><figDesc>посвящена формализации запросов на языке Cypher посредством адаптации операторов реляционной алгебры для работы с графами, также пред-ставляют новые операторы. Авторы представляют алгоритм по отображению за просов в нее. Данная работа не покрывает всего множества языка. Авторы не утверждают, что их адаптация операторов отображается в обычную реляцион ную алгебру. Целью магистерской работы является объединение перечисленных решений для построения взаимного отображения графовой и реляционной моделей дан ных. Идеи отображения схем данных основаны на работах [3][9][12][13][14]. В качестве источника для идей отображения языков используются работы [5][15]. В статье приведено по одному варианту отображений (i) реляционной схемы в графовую схему, (ii) графовой схемы в реляционную схему, (iii) запросов Cypher в SQL, (iv) запросов SQL в Cypher 3 Отображения схем данных В данном разделе рассматриваются (i) отображение схем реляционной модели в схемы графовой модели и (ii) отображение схем графовой модели в схемы реля ционной модели. Отображения иллюстрируются на примерах конкретных схем. Реляционная модель бьша предложена Коддом в 1970 году [4], и она преду сматривает представление данных в виде отношений. Отношения состоят из кор тежей, которые в свою очередь состоят из пар (название атрибута, значение ат рибута). В данной работе атриб ут ы мог ут принимать лишь атомарные значения, такие типов, как целочисленный, строковый и пр. Предполагается, что в каждом отношении R определен первичный ключ -значение (или совокупность значе ний), которая точно идентифицирует каждый кортеж в R. Если же в отношении R имеется атриб ут А, который определен в другом отношении S, как первичный ключ, то А является внешним ключом в R. В качестве структур графовой модели данных в данной работе используются атриб ут ные графы. Атриб ут ным графом называется множество вершин и соеди няющих их ребер. Вершины и направленные ребра которые могут бьпь анноти рованы совокупностью пар (название атрибута, значение атрибута) и меткой (label). Каждое ребро соединяет ровно две вершины. Основные идеи отображения схем реляционной модели в графовую модель со стоят в следующем: • Тип отношения с составным первичным ключом, состоящим из двух внешних ключей, отображаются в множество ребер с одноименной меткой, при этом предполагается, что каждому кортежу соответствует отдельное ребро. Атри б ут ы кортежа отображаются в соответствующие атриб ут ы ребра. • Остальные типы отношений отображаются в множество вершины с одноимен ной меткой, при этом предполагается, что каждому кортежу соответствует от дельная вершина. Атриб ут ы кортежа отображаются в соответствующие атри б ут ы вершины. • Внешние ключи типов отношений отображаются в ребра между вершинами.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Рис. 1 .Рис. 4 . 1 :</head><label>141</label><figDesc>!,ШQ!o'@Q ,-----.. !:rQ\!!!..ctlD FirstName ,-------РК OrderlD Фрагмент схемы базы данных North Wind Огображение данной реляционной схемы в графовую схему конкретизируется следующим образом: • Типы отношений Employees, Orders, Products отображаются множества вер шин с одноименными метками. • Формируются следующие ребра: -между вершинами с метками Employees и Orders -ребра с меткой Employ eesID; -между вершинами с метками Products и Orders -ребра с метками и атрибу тами OrderDetails. На рис. 2 представлена результирующая графовая схема. EmployeeillJ Рис. 2. Отображение реляционной схемы в графовую схему Основные идеи отображения схем графовой модели в реляционную модель со стоят в следующем: • Каждая метка вершин отображается в одноименный тип отношения. Вершины представляются кортежами соответствующих типов отношений. Атриб ут ы вершин представляются одноименными атриб ут ами кортежей. Первичные ключи вершин представляются первичными ключами соответствующих типов отношений. • Каждая метка ребер отображается в одноименный тип отношения. Ребра пред ставляются кортежами соответствующих типов отношений. Атриб ут ы ребра представляются одноименными атриб ут ами кортежей. В качестве составного первичного ключа бер ут ся первичные ключи типов отношений, полученных из вершин. Для иллюстрации вышеприведенного отображения рассмотрим подграф, взя тый из модельного примера, который предоставляет компания Neo4j ( см. рис. 3). ACTED_IN DIRECTEO Рис. 3. Схема подграфа графа базы данных фильмов Разберем подробнее схему подграфа: • Person -метка вершины, соответствующей человеку. • Movie -метка вершины, соответствующей кино. • ACTED _IN -метка ребра с атриб ут ами, связывающее вершины с метками Person и Movie. • DIRECTED -метка ребра без атриб ут ов, связывающее вершины с метками Person и Movie. Отображение данной графовой схемы в реляционную схему конкретизируется следующим образом: • Вершины с метками Person отображаются в кортежи одноименного типа от ношения. Первичный ключ типа отношения имеет имя PersonID. • Вершины с метками Movie отображаются в кортежи одноименного типа отно шения. Первичный ключ типа отношения имеет имя MovieID. • Ребра с метками А CTED _IN отображаются в одноименный тип отношения. Ат риб ут ы ребра отображаются в одноименные атриб ут ы отношения. Первичный ключ является составным и состоит из внешних ключей PersonID, MovieID. • Ребра с метками DIRECTED отображаются в одноиме�шый тип отношения. Первичный ключ является составным и состоит из внешних ключей PersonID, MovieID. На рис. 4 представлена результирующая реляционная схема. Реляционное представление подграфа. 4 Отображение языков запросов В данном разделе рассматриваются идеи отображений между графовым и реля ционным языками запросов. Запросы к схемам являются SELECT-FROM WНERE запросами. В качестве конкретных языков запросов рассматриваются Cypher и SQL. Приведенные запросы и их отображения протестированы в СУБД Neo4j и Post greSQL над базами данных, схемы которых представленны в разделе 3. Реализа цию планируется выполнить в ходе дальнейшей работы. Cypher был представлен в 2011 году компанией Neo4j. В 2015 его реализация раскрыrа в рамках проекта openCypher. Пример Запрос на Cypher поиска сотрудников, которые продавали шоколад МАТСН (e:Employee)-[:SOLD]-(o:Order)-[:CONTAINS]-&gt;(p:Product) WHERE p.productName = "Chocolade" RETURN e.firstName, e.lastName Пример состоит из оператора МА ТСН, который в свою очередь состоит из сле дующих разделов запроса МАТСН, WНERE, RETURN.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Пример 2 :Пример 3 :Пример 4 :</head><label>234</label><figDesc>Вершина в Cypher (х: Ретsоп {пате: 'Реtет'}) В примере 2: х -имя верпшны в запросе; Ретsоп пате: 'Реtет' -отображение атриб ут а пате в имя 'Реtет' Ребро представляется выражением [ а: t * /{Р}], где: метка вершины; • а Е А U { nil} -имя ребра. Наличие имени дает возможность обращаться к этому ребру дальше в теле запроса. • t Е Т -возможно пустое конечное множество меток ребра. В данной работе состоит из одного элемента. Огражает какие метки используются в запросе. • Р -возможно пустое конечное множество частичных отображений атриб ут ов ребра в выражения. Выражения накладывают дополнительные ограничения, которые должны быть в искомых ребрах. • / -интервал, состоящий из минимального и максимального числа ребер, ко торые необходимо пройти для нахождения необходимой вершины. Показатель либо пустой, либо состоит из (m, п) Е N u {nil}. Ребро в Cypher [k: KNOWS * 1 .. 2 {since: 1985}] В примере 3: k -имя верпшны; KNOWS -метка ребра; 1 .. 2 -интервал, показывающий то, что ребра с данной меткой мог ут встречаться в п ут и от 1 до 2 раз; {since: 1985} -отображение атриб ут а вершины since в 1985. В разделе запроса WНERE указываются фильтрующие условия для запроса. В примере 1 это название продукта -шоколад. В разделе запроса RETURN указываются возвращаемые значение. В примере 1 это имя и фамилия сотрудника. Для соединения запросов в одну цепь используется раздел запроса WITH. Он позволяет использовать результаты одного запроса, как входящие данные для следующего запроса. Использование WITH в запросе МАТСН (n{name: 'David'}) WITH n МАТСН (n)-[:KNOWS]-(m) RETURN m.name В примере 4 сначала мы выбираем вершину с именем 'David', потом исполь зуем ее для следующего раздела запроса МАТСН, где мы ищем всех людей, ко торых знает 'David'.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>4 . 1 Запрос 1 . 1 .Запрос 1 . 2 .</head><label>411112</label><figDesc>Отображение графового языка запросов в реляционный язык запросов Основные идеи отображения запроса на Cypher в SQL состоят в следующем: • Шаблон (вершина)-[ребро]-(вершина)-... -(вершина) в разделе запроса МАТСН отображается, как набор соединений между отношениями. • Шаблон ( вершина) или [ребро] в разделе запроса МА ТСН отображается в одно отношение. • При отображении вершин, ребер из раздела запроса МАТСН необходимо учи тывать их шаблоны и отобразить их следующим образом: -Метки вершин, ребер отобразить в разделе запроса FROM реляционного за проса. -Множество частичных отображений отображаются в предикаты в раздел за проса WНERE реляционного запроса. • Предикаты из раздела запроса WНERE отображаются в предикаты раздела за проса WНERE реляционного запроса. • Атриб ут ы результатов запроса в разделе запроса RETURN отображаются в од ноименные атриб ут ы в реляционный раздел запроса SELECT. • Разделы запроса, которые предшествуют разделу запроса WITH отображаются в вложенный запрос, который соединяется с отображением следующих после WITH разделов запроса. Далее приведены примеры запросов к реляционной схеме на рис. 1. Схема для запросов на Cypher берется из рис.2. Вывести продавцов, которые продавали шоколад. МАТСН (e:Employees)-[:EmployeeID]-()-[:OrderDetails]-(p:Prod ucts{ProductName:'Chocolade'}) RETURN e.firstName, e.lastName Конкретизируем отображения данного запроса: • В разделе запроса МАТСН указаны марки вершин и ребер, одна из вершин() -анонимная. Из графовой схемы, можно определить, что в анонимной вер шине может прис ут ствовать только вершина Orders. • Отображаем это в набор соединений между отношениями, учитывая идеи отображения, что ребрами являются внешние ключи и отношения с составным первичным ключом. Некоторые вершины и ребра не имеют имени, то при своим им имя в реляционном отображении. Так ребру OrderDetails присваива ется имя od. • Отображение {ProductName: 'Chocolade'} отображается в предикат p.Product Name = 'Chocolade' реляционного запроса в разделе WНERE. • Атрибуты в разделе запроса RETURN отображаются в одноименные атрибуты в раздел запроса SELECT. Результат отображения SELECT e.firstName, e.lastName FROM Employees as е JOIN Orders as о ON o.EmployeeID = e.EmployeeID JOIN Order Details as od ON od.orderid = o.orderid JOIN Products as р ON p.productID = od.productID WHERE p.ProductName = 'Chocolade', Вывести имена и фамилию сотрудников, дату заказа, которые участ вовали в отгрузке товара из Сиэтла и их имена начинаются на А. МАТСН (e:Employees) WHERE e.firstName STARTS WITH 'А' WITH е МАТСН (e)-[:EmployeeID]-(o:Orders{shipCity:'Seattle'}) RETURN e.lastName, e.firstName, o.orderDate Конкретизируем отображения данного запроса: • До WITH: раздел запроса МАТСН состоит из одной вершины, которая имеет только метку. Вершина отображается в раздел запроса FROM реляционного запроса. Раздел запроса WНERE с предикатом START WITH отображается в предикат LIКE 'А%' реляционного раздела запроса WНERE. • WITH: так как не указаны, какие именно атрибуты будут использоваться дальше, то происходит отображение всех атрибутов в раздел запроса SELECT вложенного запроса. • После WITH: раздел запроса МАТСН состоит из шаблона (вершина)-[ребро] (вершина), который мы отобразим в набор соединений между отношениями. Вершина е передана с помощью WITH, поэтому соединение будет происходит с вложенным запросом по внешнему ключу EmployeeID с отношением Orders. Составляющие вершин и ребер отображаются согласно идее, изложенным выше. Атрибуты в разделе запроса RETURN отображаются в одноименные ат рибуты в раздел запроса SELECT. • Раздел запроса FROM в связи с наличием оператора JOIN отображается в шаб лон (вершина)-[ребро]-(вершина)-... -(вершина). По графовой схеме опреде лим, что Person, Movie -вершины, ACTED _IN -ребро между ними. • Предикат в разделе запроса WНERE отображается в шаблон вершины Movie, так как является предикатом равенства значению. Результат отображения МАТСН (p:Person)-[:ACTED_IN]-&gt;(m:Movie{title: 'The Matrix'}) RETURN p.name Запрос 2.2. Выбрать всех актеров, которые снимались в фильме «Матрица» с ис пользованием вложенного запроса. SELECT p.name FROM Person as р, WHERE p.PersonID IN SELECT per.PersonID FROM Person as per JOIN ACTED IN as а ON (a.PersonID=per.PersonID), JOIN Movie as m ON (a.MovieID = m.MovieID) WHERE m.title = 'The Matrix') Конкретизируем отображения данного запроса: • Вложенный запрос отображается в запрос на языке Cypher, как запрос, опи санный выше. Результатом вложенного запроса является коллекция идентифи каторов. Поэтому результат отобразится в аргумент функции collect. Это все передастся в основной запрос с помощью WITH. • Предикат 1N в разделе запроса WНERE отобразится в одноименный предикат в графовый раздел запроса WНERE. • Атрибут в разделе запроса SELECT основного запроса отображается в одно именный атрибут раздела запроса RETURN. Результат отображения МАТСН (per:Person)-[:ACTED_IN]-&gt;(m:Movie{title: 'The Matrix'}) WITH collect(per.PersonID) as l МАТСН (p:Person) WHERE p.PersonID IN l RETURN p.name 5 Заключение и направления дальнейшей работы В данной работе был рассмотрен вопрос отображения графовых и реляционных моделей данных друг в друга. Приведено краткое сравнение мультимодельных баз данных, которые объединяют эти модели. Рассматриваются основные поня тия реляционной и графовой моделей. Бьm произведен обзор существующих мультимодельных СУБД, предложено по одному варианту основных идей отображений (i) реляционной схемы в графо вую схему, (ii) графовой схемы в реляционную схему, (iii) запросов Cypher в SQL, (iv) запросов SQL в Cypher. Все идеи сопровождаются примерами отобра жений с пояснениями. Результаты данной работы могут бьпь использованы как формальное основа ние для мультимодельной базы данных или системы интеграции графовой и ре ляционной моделей. Основные направления дальнейшей работы выглядят следующим образом: • учет при отображении важных, но не рассмотренных понятий реляционной и графовой моделей, таких, как функциональные зависимости различного вида, составные внешние ключи и т.д.; • исследование других вариантов отображения между схемами и языками запро сов (например, отображение каждого типа отношения в отдельную вершину графа). Планируется рассмотреть влияние функциональных зависимостей на отображение; • формализация алгоритмов отображения схем и запросов между Cypher и SQL. Языки запросов планируется формализовать с использованием реляционной алгебры и реляционной алгебры над графами, предложенной в работе[?]. Для формализации правил отображения языков запросов планируется использо вать движимый моделями подход (МDА) и язык отображения моделей ATL 1 ; • реализация отображений схем и запросов для конкретных выбранных реляци онной и графовой СУБД; • сравнение эффективности вариантов отображения на тестовых базах данных и наборах запросов. Благодарности. Автор выражает благодарность профессору НИУ ВШЭ в Санкт Петербурге Борису Асеновичу Новикову за идею работы и ассистенту СПБГУ Георгию Алексеевичу Чернышеву за замечания и предложения по улучшению работы. Работа выполняется в рамках магистерской диссертации на факультете Вычислительной математики и кибернетики МГУ им. М.В. Ломоносова под научным руководством С. А. Ступникова, ведущего научного сотрудника Феде рального исследовательского центра «Информатика и управление» Российской Академии Наук.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="2,124.80,395.39,339.60,294.84" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="5,124.68,376.92,347.76,264.24" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="7,125.04,329.39,337.80,195.36" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="16,136.45,323.40,321.60,205.56" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="18,147.60,150.00,316.80,182.52" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://scalegrid.io/Ыog/2019-database-trends-sql-vs-nosql-top-databases-single-vsmultiple-database-use/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_1">https:/ /Ьitnine.net/documentations/manual/agens _graph _ developer _ manual_ en.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_2">https://docs.microsoft.com/m-ru/azure/cosmos-dЫ</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_3">http://www.orientdb.com/docs/last/index.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_4">https://docs.mark:logic.com</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_5">https://www.eclipse.org/atl/</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0" />			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Transfoпnation of Schema ftom Relational Database (RDB) to NoSQL Databases</title>
		<author>
			<persName><forename type="first">Obaid</forename><surname>Alotaiьi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Е</forename><surname>Pardede</surname></persName>
		</author>
		<idno type="DOI">10.3390/data4040148</idno>
	</analytic>
	<monogr>
		<title level="j">Data</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page">148</biblScope>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Oskar van Rest : G-CORE: А Core for Future Graph Query Languages</title>
		<author>
			<persName><forename type="first">R</forename><surname>Angles</surname></persName>
		</author>
		<author>
			<persName><forename type="first">М</forename><surname>Arenas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Р</forename><surname>Barcelo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Р</forename><surname>Boncz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Fletcher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">С</forename><surname>Gutierrez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Т</forename><surname>Lindaaker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">М</forename><surname>Paradies</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Plantikow</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Sequeda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Н</forename><surname>Voigt</surname></persName>
		</author>
		<idno type="DOI">10.1145/3183713.3190654</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2018 Intema tional Conference on Management of Data (SIGMOD &apos;18)</title>
				<meeting>the 2018 Intema tional Conference on Management of Data (SIGMOD &apos;18)<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Com puting Machinery</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="1421" to="1432" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">А Tool То Convert ER Diagram То Property Graph Database</title>
		<author>
			<persName><forename type="first">D</forename><surname>Chehal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Н</forename><surname>Bhardwaj</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Intemational Joumal of Applied Engineering Research</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">9</biblScope>
			<biblScope unit="page" from="23207" to="23221" />
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">А relational model of data for large shared data banks</title>
		<author>
			<persName><forename type="first">Е</forename><surname>Codd</surname></persName>
		</author>
		<idno type="DOI">10.1145/362384.362685</idno>
		<ptr target="https://doi.org/10.1145/362384.362685" />
	</analytic>
	<monogr>
		<title level="j">Commun. АСМ</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="377" to="387" />
			<date type="published" when="1970-06">June 1970</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Cypher: An Evolving Query Language for Property Graphs</title>
		<author>
			<persName><forename type="first">N</forename><surname>Francis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><surname>Green</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Р</forename><surname>Guagliardo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Libkin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Т</forename><surname>Lindaaker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Marsault</surname></persName>
		</author>
		<idno type="DOI">10.1145/3183713.3190657</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2018 Intemational Conference on Management of Data (SIGMOD &apos;18)</title>
				<meeting>the 2018 Intemational Conference on Management of Data (SIGMOD &apos;18)<address><addrLine>NewYork,NY,USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<biblScope unit="page" from="1433" to="1445" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Multi-model Databases: А New Joumey to Handle the Variety of Data</title>
		<author>
			<persName><forename type="first">J</forename><surname>Lu</surname></persName>
		</author>
		<author>
			<persName><surname>Holubova</surname></persName>
		</author>
		<idno type="DOI">10.1145/3323214</idno>
		<ptr target="https://doi.org/10.1145/3323214" />
	</analytic>
	<monogr>
		<title level="j">АСМ Comput. Surv</title>
		<imprint>
			<biblScope unit="volume">52</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page">38</biblScope>
			<date type="published" when="2019-07">July 2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">TaЬle2Graph: А ScalaЫe Graph Con struction ftom Relational ТаЫеs Using Map-Reduce</title>
		<author>
			<persName><forename type="first">S</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">В</forename><forename type="middle">Н</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">М</forename><surname>Shankar</surname></persName>
		</author>
		<idno type="DOI">10.1109/ВigDataService.2015.52</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE First Intemational Conference on Big Data Computing Service and Applications</title>
				<meeting><address><addrLine>Redwood City, СА</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="294" to="301" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Formalising openCypher Graph Queries in Relational Algebra</title>
		<author>
			<persName><forename type="first">J</forename><surname>Marton</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Szamyas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Varro</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-319-66917-513</idno>
	</analytic>
	<monogr>
		<title level="m">Advances in Databases and Infoпnation Systems</title>
				<imprint>
			<date type="published" when="2017">2017</date>
			<biblScope unit="page" from="182" to="196" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">The study on data migration ftom relational database to graph database</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Nan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">В</forename><surname>Xue</surname></persName>
		</author>
		<idno type="DOI">10.1088/1742-6596/1345/2/022061</idno>
	</analytic>
	<monogr>
		<title level="j">Joumal of Physics: Conference Series</title>
		<imprint>
			<biblScope unit="volume">1345</biblScope>
			<biblScope unit="page">22061</biblScope>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Integration of Relational and Graph Databases Functionally</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pokomy</surname></persName>
		</author>
		<idno type="DOI">10.2478/fcds-2019-0021</idno>
	</analytic>
	<monogr>
		<title level="j">Foun dations of Computing and Decision Sciences</title>
		<imprint>
			<biblScope unit="volume">44</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="427" to="441" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Mapping Between Relational Database Management Systems And Graph Database For PuЫic Transportation Network</title>
		<author>
			<persName><forename type="first">F</forename><surname>Serin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mete</surname></persName>
		</author>
		<author>
			<persName><forename type="first">М</forename><surname>Giil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Е</forename><surname>Celik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Conference paper, 21st Intemational Research/Expert Conference: Trends in the Development of Machinery and Associated Technology</title>
				<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Cytosm: Declarative Property Graph Queries Without Data Migration</title>
		<author>
			<persName><forename type="first">В</forename><surname>Steer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><surname>Alnairni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">М</forename><surname>Lotz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Cuadrado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Vaquero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Varvenne</surname></persName>
		</author>
		<ptr target="https://doi.org/10.l145/3078447.3078451" />
	</analytic>
	<monogr>
		<title level="m">1n Proceedings of the Fifth Intemational W orkshop on Graph Data-management Experiences &amp; Sys tems</title>
				<meeting><address><addrLine>New У ork, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2017">2017</date>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="1" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Mi gr ation of data from relational database to gr aph database</title>
		<author>
			<persName><forename type="first">У</forename><surname>Nal</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Н</forename><surname>Oguztiizin</surname></persName>
		</author>
		<idno type="DOI">10.1145/3200842.3200852</idno>
		<ptr target="https://doi.org/10.1145/3200842.3200852" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 8th Intemational Conference on Information Sys tems and Technologies</title>
				<meeting>the 8th Intemational Conference on Information Sys tems and Technologies<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2018">2018</date>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="page" from="1" to="5" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Converting relational to gr aph databases</title>
		<author>
			<persName><forename type="first">R</forename><surname>Virgilio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><surname>Maccioni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Torlone</surname></persName>
		</author>
		<idno type="DOI">10.1145/2484425.2484426</idno>
		<ptr target="https://doi.org/10.1145/2484425.2484426" />
	</analytic>
	<monogr>
		<title level="m">First Intemational Workshop on Graph Data Management Experiences and Systems</title>
				<meeting><address><addrLine>New У ork, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2013">2013</date>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="1" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<ptr target="https://neo4j.corn/developer/guideimporting-data-and-etl/" />
		<title level="m">Tutorial: Import Relational Data Into Neo4j</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<author>
			<persName><surname>Sql</surname></persName>
		</author>
		<ptr target="https://www.opencypher.org/articles/2019/09/12/SQLand-now-GQL/" />
		<title level="m">now GQL</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<ptr target="https://www.gqlstandards.org" />
		<title level="m">GQL Standard</title>
				<imprint/>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
