KR102538470B1 - Relational database-based graph processing method and apparatus for performing the same - Google Patents

Relational database-based graph processing method and apparatus for performing the same Download PDF

Info

Publication number
KR102538470B1
KR102538470B1 KR1020230034624A KR20230034624A KR102538470B1 KR 102538470 B1 KR102538470 B1 KR 102538470B1 KR 1020230034624 A KR1020230034624 A KR 1020230034624A KR 20230034624 A KR20230034624 A KR 20230034624A KR 102538470 B1 KR102538470 B1 KR 102538470B1
Authority
KR
South Korea
Prior art keywords
graph
query
metagraph
data processing
edge
Prior art date
Application number
KR1020230034624A
Other languages
Korean (ko)
Inventor
이건호
김민수
박정호
한동형
나인주
Original Assignee
주식회사 그래파이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 그래파이 filed Critical 주식회사 그래파이
Priority to KR1020230034624A priority Critical patent/KR102538470B1/en
Application granted granted Critical
Publication of KR102538470B1 publication Critical patent/KR102538470B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to one embodiment, a data processing device may comprise: a memory containing instructions; and a processor electrically connected to the memory and configured to execute the instructions. When the instructions are executed by the processor, the processor may perform a plurality of operations. The operations may comprise: an operation of receiving a view definition language (VDL), which utilizes a relational database to tabulate and store entities and relationships of an entity-relationship model (ER model); and generating a metagraph, which is metadata in the form of a graph, based on the view definition language.

Description

관계형 데이터베이스 기반 데이터 프로세싱 방법 및 이를 수행하는 장치{RELATIONAL DATABASE-BASED GRAPH PROCESSING METHOD AND APPARATUS FOR PERFORMING THE SAME}Relational database-based data processing method and apparatus for performing the same

아래 개시는 관계형 데이터베이스 기반 데이터 프로세싱 방법 및 이를 수행하는 장치에 관한 것이다.The disclosure below relates to a relational database-based data processing method and an apparatus for performing the same.

현재 가장 많이 이용되는 관계형 데이터베이스(RDB, Relational DataBase)는 고정 schema 환경에서 강력한 consistency를 보장하는 데이터베이스이다. 또한 관계형 데이터베이스는 aggregation, group by, sort와 같은 관계형 연산에 대해서 좋은 성능을 보이는 데이터베이스이다.Relational database (RDB, Relational Database), which is currently most used, is a database that guarantees strong consistency in a fixed schema environment. Also, a relational database is a database that shows good performance for relational operations such as aggregation, group by, and sort.

최근 그래프 형태의 데이터가 산업계에서 많이 활용되고 있다. 그래프 데이터는 높은 연결도 및 유연한 특징을 가지고 있다. 그러나 현재 가장 많이 이용되는 관계형 데이터베이스는 그래프 데이터의 관리에 적합하지 않다.Recently, data in the form of graphs is widely used in the industry. Graph data has characteristics of high connectivity and flexibility. However, relational databases, which are currently most used, are not suitable for managing graph data.

관계형 데이터 모델은 schema가 고정적이기 때문에 다양한 데이터 타입을 처리하기 어려우며, 높은 연결도를 가지는 그래프 형태의 데이터를 모델링하기에 부적합하다. 이러한 이유 때문에 그래프 데이터 모델을 사용하는 그래프 데이터베이스가 주목받고 있다.Relational data model has a fixed schema, so it is difficult to process various data types and is not suitable for modeling graph-type data with high degree of connectivity. For this reason, graph databases using graph data models are attracting attention.

하지만 모든 데이터를 그래프 데이터베이스로만 관리하기는 어렵다. 이미 관계형 데이터베이스에 저장된 데이터가 많기 때문에, 관계형 데이터베이스에 기저장된 데이터를 그래프 데이터베이스로 모두 이전하는 것은 많은 이전 비용(migration cost)을 필요로 한다.However, it is difficult to manage all data only with a graph database. Since there is a lot of data already stored in the relational database, migrating all the data previously stored in the relational database to the graph database requires a lot of migration cost.

일 실시예에 따른 데이터 프로세싱 장치는 인스트럭션들을 포함하는 메모리; 및 상기 메모리와 전기적으로 연결되고, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함할 수 있다. 상기 프로세서에 의해 상기 인스트럭션들이 실행될 때, 상기 프로세서는 복수의 동작들을 수행할 수 있다. ER 모델(entity-relationship model)의 개체(entity) 및 관계(relationship)를 테이블화하여 저장하는 관계형 데이터베이스를 활용하는, 뷰 정의 언어(view definition language, VDL)를 수신하는 동작; 및 상기 뷰 정의 언어에 기초하여, 그래프 형태의 메타데이터인 메타그래프를 생성하는 동작을 포함할 수 있다.A data processing apparatus according to an embodiment includes a memory including instructions; and a processor electrically connected to the memory and executing the instructions. When the instructions are executed by the processor, the processor may perform a plurality of operations. Receiving a view definition language (VDL) using a relational database that stores entities and relationships of an entity-relationship model (ER model) as a table; and generating a metagraph, which is meta data in a graph form, based on the view definition language.

상기 메타그래프는, 상기 개체에 대응되는 정점 및 상기 관계에 대응되는 엣지로 구성된 것일 수 있다. 상기 정점 및 상기 엣지는, 레이블이 존재하고, 프로퍼티로써 쿼리를 포함하는 것일 수 있다.The metagraph may be composed of a vertex corresponding to the entity and an edge corresponding to the relationship. The vertex and the edge may have a label and include a query as a property.

상기 복수의 동작은, 상기 메타그래프를 해석하여 정점 및 엣지를 포함하는 그래프 뷰를 생성하는 동작을 더 포함할 수 있다.The plurality of operations may further include generating a graph view including vertices and edges by analyzing the metagraph.

상기 그래프 뷰는, 유향 엣지(directed edge) 및 무향 엣지(undirected edge)를 지원하는 혼합 방향성 그래프(mixed-directed graph); 정점 및 엣지가 프로퍼티를 포함하는 프로퍼티 그래프(property graph); 하나의 정점 쌍에 대해 복수 개의 엣지가 존재하는 다중 그래프(multi graph); 및 정점 및 엣지 각각에 대해 복수의 레이블을 지원하는 폴리모픽 레이블 그래프(polymorphic-labeled graph)의 타입의 그래프를 포함할 수 있다.The graph view may include a mixed-directed graph supporting directed edges and undirected edges; a property graph in which vertices and edges contain properties; A multi-graph in which a plurality of edges exist for one pair of vertices; and a graph of a polymorphic-labeled graph supporting a plurality of labels for each vertex and edge.

상기 뷰 정의 언어는, 메타그래프의 이름을 정의하는 구문; 및 상기 이름, 레이블, 프로퍼티에 기초하여 메타그래프의 정점 및 엣지를 정의하는 구문을 포함할 수 있다.The view definition language includes a syntax for defining a metagraph name; and a syntax for defining vertices and edges of the metagraph based on the names, labels, and properties.

일 실시예에 따른 데이터 프로세싱 장치는 인스트럭션들을 포함하는 메모리; 및 상기 메모리와 전기적으로 연결되고, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고, 상기 프로세서에 의해 상기 인스트럭션들이 실행될 때, 상기 프로세서는 복수의 동작들을 수행할 수 있다. 상기 복수의 동작들은, 그래프 쿼리를 수신하는 동작; 상기 그래프 쿼리에 대응되는 메타그래프에 기초하여, 상기 그래프 쿼리를 관계형 데이터베이스에 접근가능한 SQL(structured query language) 쿼리로 번역하는 동작; 및 상기 SQL 쿼리를 실행하여 상기 그래프 쿼리에 대응되는 질의 결과를 반환하는 동작을 포함할 수 있다. 상기 메타그래프는, 그래프 형태의 메타데이터일 수 있다.A data processing apparatus according to an embodiment includes a memory including instructions; and a processor electrically connected to the memory and configured to execute the instructions, wherein when the instructions are executed by the processor, the processor may perform a plurality of operations. The plurality of operations may include receiving a graph query; translating the graph query into a structured query language (SQL) query accessible to a relational database, based on a metagraph corresponding to the graph query; and executing the SQL query to return a query result corresponding to the graph query. The metagraph may be metadata in the form of a graph.

상기 메타그래프는, ER 모델의 개체에 대응되는 정점 및 ER 모델의 관계에 대응되는 엣지로 구성된 것일 수 있다. 상기 정점 및 상기 엣지는, 레이블이 존재하고, 프로퍼티로써 쿼리를 포함하는 것일 수 있다.The metagraph may be composed of vertices corresponding to entities of the ER model and edges corresponding to relationships between the ER models. The vertex and the edge may have a label and include a query as a property.

상기 그래프 쿼리는, 그래프 데이터베이스에서 데이터 검색을 지원하는 그래프 탐색 언어에 기반한 것일 수 있다.The graph query may be based on a graph search language supporting data search in a graph database.

상기 메타그래프는, 상기 관계형 데이터베이스를 활용하는 뷰 정의 언어(view definition language, VDL)를 이용하여 정의되는 것일 수 있다.The metagraph may be defined using a view definition language (VDL) that utilizes the relational database.

상기 뷰 정의 언어는, 메타그래프의 이름을 정의하는 구문; 및 상기 이름, 레이블, 프로퍼티에 기초하여 메타그래프의 정점 및 엣지를 정의하는 구문을 포함할 수 있다.The view definition language includes a syntax for defining a metagraph name; and a syntax for defining vertices and edges of the metagraph based on the names, labels, and properties.

일 실시예에 따른 데이터 프로세싱 방법은 ER 모델(entity-relationship model)의 개체(entity) 및 관계(relationship)를 테이블화하여 저장하는 관계형 데이터베이스를 활용하는, 뷰 정의 언어(view definition language, VDL)를 수신하는 동작; 및 상기 뷰 정의 언어에 기초하여, 그래프 형태의 메타데이터인 메타그래프를 생성하는 동작을 포함할 수 있다.A data processing method according to an embodiment uses a view definition language (VDL) that utilizes a relational database for storing and tabulating entities and relationships of an ER model (entity-relationship model). receiving action; and generating a metagraph, which is meta data in a graph form, based on the view definition language.

상기 메타그래프는, 상기 개체에 대응되는 정점 및 상기 관계에 대응되는 엣지로 구성된 것일 수 있다. 상기 정점 및 상기 엣지는, 레이블이 존재하고, 프로퍼티로써 쿼리를 포함하는 것일 수 있다.The metagraph may be composed of a vertex corresponding to the entity and an edge corresponding to the relationship. The vertex and the edge may have a label and include a query as a property.

상기 데이터 프로세싱 방법은은 상기 메타그래프를 해석하여 정점 및 엣지를 포함하는 그래프 뷰를 생성하는 동작을 더 포함할 수 있다.The data processing method may further include generating a graph view including vertices and edges by analyzing the metagraph.

상기 그래프 뷰는, 유향 엣지(directed edge) 및 무향 엣지(undirected edge)를 지원하는 혼합 방향성 그래프(mixed-directed graph); 정점 및 엣지가 프로퍼티를 포함하는 프로퍼티 그래프(property graph); 하나의 정점 쌍에 대해 복수 개의 엣지가 존재하는 다중 그래프(multi graph); 및 정점 및 엣지 각각에 대해 복수의 레이블을 지원하는 폴리모픽 레이블 그래프(polymorphic-labeled graph)의 타입의 그래프를 포함할 수 있다.The graph view may include a mixed-directed graph supporting directed edges and undirected edges; a property graph in which vertices and edges contain properties; A multi-graph in which a plurality of edges exist for one pair of vertices; and a graph of a polymorphic-labeled graph supporting a plurality of labels for each vertex and edge.

상기 뷰 정의 언어는, 메타그래프의 이름을 정의하는 구문; 및 상기 이름, 레이블, 프로퍼티에 기초하여 메타그래프의 정점 및 엣지를 정의하는 구문을 포함할 수 있다.The view definition language includes a syntax for defining a metagraph name; and a syntax for defining vertices and edges of the metagraph based on the names, labels, and properties.

도 1은 일 실시예에 따른 데이터 프로세싱 장치의 개략적인 블록도이다.
도 2는 관계형 데이터 및 그래프 뷰의 일 예를 나타낸다.
도 3은 관계형 데이터베이스를 설명하기 위한 도면이다.
도 4는 그래프 타입을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 그래프 쿼리 처리 동작을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 뷰 정의 언어(view definition language, VDL)를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 데이터 프로세싱 방법의 흐름도를 나타낸다.
도 8은 일 실시예에 따른 데이터 프로세싱 방법의 흐름도를 나타낸다.
1 is a schematic block diagram of a data processing apparatus according to an embodiment.
2 shows an example of a relational data and graph view.
3 is a diagram for explaining a relational database.
4 is a diagram for explaining graph types.
5 is a diagram for describing a graph query processing operation according to an exemplary embodiment.
6 is a diagram for explaining a view definition language (VDL) according to an embodiment.
Fig. 7 shows a flow chart of a data processing method according to an exemplary embodiment.
Fig. 8 shows a flow chart of a data processing method according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this document, "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and "A Each of the phrases such as "at least one of , B, or C" may include any one of the items listed together in that phrase, or all possible combinations thereof. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.The term "module" used in this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions. For example, according to one embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 예를 들어, '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한, '~부'는 하나 이상의 프로세서를 포함할 수 있다.The term '~unit' used in this document means software or a hardware component such as FPGA or ASIC, and '~unit' performs certain roles. However, '~ unit' is not limited to software or hardware. '~bu' may be configured to be in an addressable storage medium and may be configured to reproduce one or more processors. For example, '~unit' includes components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, may include subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. Functions provided within components and '~units' may be combined into smaller numbers of components and '~units' or further separated into additional components and '~units'. In addition, components and '~units' may be implemented to play one or more CPUs in a device or a secure multimedia card. Also, '~ unit' may include one or more processors.

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 일 실시예에 따른 데이터 프로세싱 장치의 개략적인 블록도이고, 도 2는 관계형 데이터 및 그래프 뷰의 일 예를 나타낸다.Fig. 1 is a schematic block diagram of a data processing apparatus according to an embodiment, and Fig. 2 shows an example of relational data and a graph view.

도 1을 참조하면, 일 실시예에 따르면, 데이터 프로세싱 장치(100)는 관계형 데이터베이스(RDB, Relational DataBase)에 기초하여, 그래프 뷰를 생성할 수 있다. 관계형 데이터베이스는 ER 모델의 개체(entity) 및 관계(relationship)를 테이블화하여 저장한 데이터베이스일 수 있다. 그래프 뷰는 사용자에게 시각적으로 제공되는 그래프에 대응될 수 있다. 데이터 프로세싱 장치(100)는 관계형 데이터베이스에 기초하여, 그래프 쿼리 처리 결과를 반환할 수도 있다.Referring to FIG. 1 , according to an embodiment, the data processing apparatus 100 may generate a graph view based on a relational database (RDB). The relational database may be a database in which entities and relationships of the ER model are tabulated and stored. The graph view may correspond to a graph visually provided to the user. The data processing device 100 may return a graph query processing result based on a relational database.

도 2를 참조하면, 데이터 프로세싱 장치(100)는 관계형 데이터베이스를 유지하면서 그래프를 뷰를 생성할 수 있다. 데이터 프로세싱 장치(100)는 관계형 데이터베이스에 포함된 데이터(201)를 그래프 데이터베이스로 이전(migration)하거나 또는 관계형 데이터베이스에 포함된 데이터(201)를 그래프 데이터베이스에 포함된 그래프 데이터와 물리적으로 매핑(예: 관계형 데이터베이스에 기저장된 데이터(201)가 특정 rule에 따라 새롭게 저장되어야만 그래프 데이터로 매핑될 수 있음)하지 않고서도(예: 데이터 저장 방식에 영향을 주지 않고서도), 그래프 뷰(202)를 생성할 수 있다. 데이터 프로세싱 장치(100)는 메타그래프를 활용할 수 있다.Referring to FIG. 2 , the data processing device 100 may create a graph view while maintaining a relational database. The data processing device 100 migrates the data 201 included in the relational database to a graph database or physically maps the data 201 included in the relational database to graph data included in the graph database (eg: A graph view 202 can be created without pre-stored data 201 in the relational database being mapped to graph data only when it is newly saved according to a specific rule (e.g., without affecting the data storage method). can The data processing device 100 may utilize a metagraph.

데이터 프로세싱 장치(100)는 메타그래프(예: 도 5의 메타 그래프(503))를 활용하여, 관계형 데이터베이스로부터 그래프 뷰(202)를 도출할 수 있다. 데이터 프로세싱 장치(100)는 작은 크기를 갖는 메타그래프를 활용함으로써, 이전 비용(migration cost) 없이 그래프 뷰(202)를 생성할 수 있다. 그래프 뷰(202)는 사용자에게 시각적으로 제공되는 그래프에 대응될 수 있다(예: 그래프 뷰(202)가 사용자에게 시각적으로 제공될 수도 있고, 그래프 뷰(202)에 기반한 다른 데이터가 사용자에게 시각적으로 제공될 수 있음). 그래프 뷰(202)는 메타그래프에 기반한 가상의 그래프일 수 있다. 그래프 뷰(202)는 가상의 노드 및 가상의 엣지를 포함하는 것일 수 있다. 그래프 뷰(202)는 휘발성 메모리 및 비휘발성 메모리 어디에도 저장되지 않는 것일 수 있다. 데이터 프로세싱 장치(100)는 관계형 데이터베이스를 그래프 데이터베이스로 전환하기 위한 것이 아니라, 관계형 데이터 베이스와 그래프 데이터의 장점만을 취합하기 위한 것일 수 있다.The data processing device 100 may derive the graph view 202 from a relational database by utilizing a metagraph (eg, the metagraph 503 of FIG. 5 ). The data processing device 100 may generate the graph view 202 without migration cost by utilizing a metagraph having a small size. The graph view 202 may correspond to a graph visually provided to the user (eg, the graph view 202 may be visually provided to the user, and other data based on the graph view 202 may be visually provided to the user). may be provided). Graph view 202 may be a virtual graph based on a metagraph. The graph view 202 may include virtual nodes and virtual edges. The graph view 202 may be stored neither in volatile memory nor in non-volatile memory. The data processing apparatus 100 may not be used to convert a relational database into a graph database, but may be used to combine only the advantages of a relational database and graph data.

데이터 프로세싱 장치(100)는 복잡한 메타그래프에 기초하여, 복잡한 그래프의 모델링을 지원할 수 있다. 복잡한 메타그래프 또한 여전히 작은 크기를 가지므로, 데이터 프로세싱 장치(100)는 적은 리소스만을 이용하여 높은 복잡도의 그래프를 지원할 수 있다.The data processing apparatus 100 may support modeling of a complex graph based on a complex metagraph. Since a complex metagraph still has a small size, the data processing apparatus 100 can support a graph of high complexity using only a small amount of resources.

데이터 프로세싱 장치(100)는 복수의 메타그래프(metagraph)를 미리 생성해 둘 수 있다. 데이터 프로세싱 장치(100)는 복수의 메타그래프에 기초하여 다양한 view의 그래프를 지원할 수 있다. 메타그래프는 관계형 데이터베이스를 활용하는 뷰 정의 언어(view definition language, VDL)를 이용하여 정의된 것일 수 있다. 메타그래프는 그래프 형태의 메타데이터일 수 있다.The data processing device 100 may create a plurality of metagraphs in advance. The data processing apparatus 100 may support graphs of various views based on a plurality of metagraphs. A metagraph may be defined using a view definition language (VDL) that utilizes a relational database. The metagraph may be metadata in the form of a graph.

데이터 프로세싱 장치(100)는 고정된 로직에 기반하여 관계형 데이터베이스를 그래프 데이터베이스로 전환하지 않고, 뷰 정의 언어에 기반한 메타그래프를 활용함으로써 가상의 엣지 및 가상의 노드를 포함하는 그래프 뷰를 생성할 수 있다. 데이터 프로세싱 장치(100)는 고정된 로직이 아닌 뷰 정의 언어를 활용함으로써, 데이터 프로세싱의 자유도를 더욱 향상시킬 수 있다.The data processing device 100 may generate a graph view including virtual edges and virtual nodes by utilizing a metagraph based on a view definition language without converting a relational database into a graph database based on a fixed logic. . The data processing apparatus 100 may further improve the degree of freedom of data processing by using a view definition language rather than a fixed logic.

데이터 프로세싱 장치(100)는 관계형 데이터베이스에 저장된 데이터들의 이동(migration) 또는 변환 없이, 그래프 뷰를 생성할 수 있다. 데이터 프로세싱 장치(100)는 관계형 데이터베이스에 저장된 데이터들의 이동(migration) 또는 변환 없이, 그래프 탐색 언어에 기반한 데이터 검색을 지원할 수 있다.The data processing device 100 may create a graph view without migrating or converting data stored in a relational database. The data processing apparatus 100 may support data search based on a graph search language without migration or conversion of data stored in a relational database.

표 1을 참조하면, LDBC SNB(Large-Scale Benchmark Council Social Network Benchmark) 및 scale factor 1의 설정에 기반하여 수행된 시뮬레이션 결과를 확인할 수 있다.Referring to Table 1, simulation results performed based on the setting of LDBC SNB (Large-Scale Benchmark Council Social Network Benchmark) and scale factor 1 can be confirmed.

[표 1][Table 1]

Figure 112023030118169-pat00001
Figure 112023030118169-pat00001

데이터 프로세싱 장치(100)가 관계형 데이터베이스(예: PostgreSQL)에 저장된 1.4GB의 데이터에 기초하여 그래프 뷰를 생성하기 위해서는, 1MB의 추가 데이터(예: 메타그래프)(예: 논리적 매핑 정보)만이 요구될 수 있다. 관계형 데이터베이스(예: PostgreSQL) 자체를 그래프 데이터베이스(예: Neo4j)로 migration하는 경우 1.4GB의 추가 데이터가 요구되며, 물리적 매핑 방식(예: 관계형 데이터베이스에 기저장된 데이터가 특정 rule에 따라 새롭게 저장되어야만 그래프 데이터로 매핑될 수 있음)을 이용하는 경우 0.3GB의 추가 데이터가 요구되는 점을 고려해보았을 때, 데이터 프로세싱 장치(100)는 메타그래프를 활용하여 실질적으로 추가 오버헤드 없이 그래프 뷰를 제공할 수있다.In order for the data processing device 100 to generate a graph view based on 1.4GB of data stored in a relational database (eg, PostgreSQL), only 1MB of additional data (eg, metagraph) (eg, logical mapping information) is required. can When migrating a relational database (eg PostgreSQL) itself to a graph database (eg Neo4j), 1.4GB of additional data is required, and data previously stored in a physical mapping method (eg, relational database must be newly saved according to a specific rule for a graph). Considering that 0.3 GB of additional data is required in case of using the data), the data processing device 100 may utilize the metagraph to provide a graph view without substantially additional overhead.

데이터 프로세싱 장치(100)는 외부의 그래프 데이터베이스를 활용하여 그래프를 모델링할 수도 있다.The data processing device 100 may model a graph by utilizing an external graph database.

데이터 프로세싱 장치(100)는 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.The data processing device 100 may be implemented in a personal computer (PC), data server, or portable device.

휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.Portable devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), and enterprise digital assistants (EDAs). , digital still camera, digital video camera, portable multimedia player (PMP), personal navigation device or portable navigation device (PND), handheld game console, e-book ( e-book) or a smart device. A smart device may be implemented as a smart watch, a smart band, or a smart ring.

데이터 프로세싱 장치(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있다.The data processing device 100 may include a processor 110 and a memory 120 .

프로세서(110)는 메모리(120)에 저장된 데이터를 처리할 수 있다. 프로세서(110)는 메모리(120)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(110)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 110 may process data stored in the memory 120 . The processor 110 may execute computer readable code (eg, software) stored in the memory 120 and instructions triggered by the processor 110 .

프로세서(110)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 110 may be a data processing device implemented in hardware having a circuit having a physical structure for executing desired operations. For example, desired operations may include codes or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing unit implemented in hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).

메모리(120)는 관계형 데이터 및/또는 메타그래프를 저장할 수 있다. 메모리(120)는 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있다.Memory 120 may store relational data and/or metagraphs. The memory 120 may be implemented as a volatile memory device or a non-volatile memory device.

휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.The volatile memory device may be implemented as dynamic random access memory (DRAM), static random access memory (SRAM), thyristor RAM (T-RAM), zero capacitor RAM (Z-RAM), or twin transistor RAM (TTRAM).

비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.Non-volatile memory devices include electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic RAM (MRAM), spin-transfer torque (STT)-MRAM (conductive bridging RAM), and conductive bridging RAM (CBRAM). , FeRAM (Ferroelectric RAM), PRAM (Phase change RAM), Resistive RAM (RRAM), Nanotube RRAM (Polymer RAM (PoRAM)), Nano Floating Gate Memory Memory (NFGM)), holographic memory, molecular electronic memory device (Molecular Electronic Memory Device), or Insulator Resistance Change Memory.

이하에서는 도 3를 통해 관계형 데이터베이스를 설명하고, 도 4를 통해 그래프 데이터에 대하여 설명하도록 한다.Hereinafter, a relational database will be described with reference to FIG. 3 and graph data will be described with reference to FIG. 4 .

도 3은 관계형 데이터베이스를 설명하기 위한 도면이다.3 is a diagram for explaining a relational database.

도 3을 참조하면, 관계형 데이터베이스에 저장된 데이터는 3가지 스텝을 통해 모델링될 수 있다. 관계형 데이터베이스(relational database)는 정형화된 테이블로 구성된 데이터 항목들의 집합체로서, 상호관련성을 가진 테이블들의 집합일 수 있다. 관계형 데이터베이스는 만들거나 이용하기가 비교적 쉬울 수 있고, 확장이 용이할 수 있다. 처음 데이터베이스를 생성한 후에, 관련되는 응용프로그램들을 변경하지 않고도 새로운 데이터 항목을 데이터베이스에 추가할 수 있다.Referring to FIG. 3 , data stored in a relational database may be modeled through three steps. A relational database is a set of data items composed of standardized tables, and may be a set of tables having interrelationships. Relational databases can be relatively easy to create and use, and can be easily extensible. After the initial database creation, new data items can be added to the database without changing related applications.

스텝 1(310)에서, ER 모델링이 먼저 수행될 수 있다. ER 모델(301)은 관계형 데이터베이스의 설계도로써 기능하는 것일 수 있다. ER 모델(301)은 개체(예: person, message) 및 관계(예: like, create)를 포함할 수 있다. 개체(예: person)는 속성(attribute)(예: id, name, tag, badge, certified)을 포함할 수 있다. 관계(예: like)는 개체 쌍(예: person, message 쌍)의 관계(예: 1-1 관계, 1-N 관계, N-1 관계, N-N 관계)를 의미하는 것일 수 있다. 관계(예: like)는 속성(예: date)을 포함할 수 있다.In step 1 (310), ER modeling may be performed first. The ER model 301 may function as a blueprint of a relational database. The ER model 301 may include entities (eg, person, message) and relationships (eg, like, create). An entity (eg person) may include attributes (eg id, name, tag, badge, certified). A relationship (eg, like) may mean a relationship (eg, a 1-1 relationship, a 1-N relationship, an N-1 relationship, or an N-N relationship) between entity pairs (eg, person and message pairs). Relationships (eg like) can include properties (eg date).

스텝 2(320)에서, ER 모델(301)이 관계형 모델(302)로 매핑될 수 있다. ER 모델(301)의 개체(예: person, message) 및 관계(예: like, create)는 각각 하나의 테이블(예: person 테이블, message 테이블, like 테이블, create 테이블)로 매핑될 수 있다. 개체에 대응되는 테이블(예: person 테이블)은, 개체의 속성(예: id, name, tag, badge, certified)을 schema(예: id, name, tag, badge, certified)로 포함하는 것일 수 있다. 관계에 대응되는 테이블(예: like 테이블)은 관계가 연결하는 개체 쌍(예: person, message 쌍)의 키 속성(key attribute)(예: personId, messageId)을 schema로 포함할 수 있다. 또한 관계에 대응되는 테이블(예: like 테이블)은 관계의 속성(예: date)을 schema로 포함할 수 있다.In step 2 (320), the ER model (301) may be mapped to a relational model (302). Entities (eg, person, message) and relationships (eg, like, create) of the ER model 301 may each be mapped to one table (eg, person table, message table, like table, create table). A table (eg, person table) corresponding to an entity may include attributes (eg, id, name, tag, badge, certified) of an entity as schema (eg, id, name, tag, badge, certified) . A table corresponding to a relationship (eg, like table) can include key attributes (eg, personId, messageId) of a pair of entities (eg, person, message pair) connected by the relationship as a schema. In addition, the table corresponding to the relationship (eg, like table) can include the attribute of the relationship (eg, date) as a schema.

스텝 3(330)에서, 관계형 모델(302)에 대한 분리(normalization) 및/또는 비정규화(denormalization)가 수행될 수 있다. 예를 들어, 테이블마다 schema의 개수는 3개라는 constraints가 존재할 수 있다. 관계형 모델(302)의 person 테이블은 관계형 데이터(303)와 같이 person 테이블 및 persontag 테이블로 분리될 수 있다. 관계형 모델(302)의 create 테이블은 message 테이블과 병합될 수 있다.At step 3 (330), normalization and/or denormalization of the relational model (302) may be performed. For example, there may be constraints such that the number of schemas per table is three. Like the relational data 303, the person table of the relational model 302 can be divided into a person table and a persontag table. The create table of the relational model 302 can be merged with the message table.

관계형 데이터베이스에는 관계형 데이터(303)가 저장되어 있을 수 있다. 관계형 데이터베이스는 ER 모델(entity-relationship model)의 개체(entity) 및 관계(relationship)를 테이블화하여 저장해둔 것일 수 있다.Relational data 303 may be stored in the relational database. The relational database may be one in which entities and relationships of an ER model (entity-relationship model) are tabulated and stored.

도 4는 그래프 타입을 설명하기 위한 도면이다.4 is a diagram for explaining graph types.

도 4를 참조하면, 그래프는 다양한 특성을 가질 수 있고, 다양한 타입으로 분류될 수 있다. 그래프(Graph)는 단순히 수학적인 의미의 그래프뿐만 아니라 전 분야를 아우르는 모든 구조, 예를 들어, 컴퓨팅 분야의 네트워크 구조까지 포함하는 광의의 개념일 수 있다. 그래프는 criterion 및/또는 복잡도에 따라 분류될 수 있다.Referring to FIG. 4 , graphs may have various characteristics and may be classified into various types. A graph may be a concept in a broad sense including not only a graph in a mathematical sense but also all structures encompassing all fields, for example, a network structure in the computing field. Graphs can be classified according to criterion and/or complexity.

방향성 존재 여부에 따라 그래프가 분류될 수 있다. 예를 들어, 그래프는, 무향 엣지(undirected edge)만을 포함하는 무방향 그래프(undirected graph), 유향 엣지(directed edge)만을 포함하는 방향성 그래프(directed graph), 유향 엣지 및 무향 엣지를 지원하는 혼합 방향성 그래프(mixed-directed graph)로 분류될 수 있다.Graphs may be classified according to the presence or absence of directionality. For example, a graph may include an undirected graph containing only undirected edges, a directed graph containing only directed edges, and a mixed directed graph supporting both directed and undirected edges. It can be classified as a mixed-directed graph.

하나의 정점 쌍을 연결하는 엣지의 개수에 따라 그래프가 분류될 수 있다. 예를 들어, 그래프는, 하나의 정점 쌍에 대해 하나의 엣지가 존재하는 단일 그래프(simple graph), 하나의 정점 쌍에 대해 복수 개의 엣지가 존재하는 다중 그래프(multi graph)로 분류될 수 있다.A graph can be classified according to the number of edges connecting a pair of vertices. For example, a graph may be classified into a simple graph in which one edge exists for one vertex pair, and a multi graph in which a plurality of edges exist for one vertex pair.

정점 및/또는 엣지가 레이블을 포함할 수 있는지에 따라 그래프가 분류될 수 있다. 예를 들어, 그래프는, 정점 및/또는 엣지가 레이블을 포함하지 않는 언레이블 그래프(unlabled graph), 정점 및/또는 엣지가 레이블을 포함할 수 있는 레이블 그래프(labled graph), 정점 및/또는 엣지가 복수의 레이블을 포함할 수 있는 폴리모픽 레이블 그래프(polymorphic-labeled graph)로 분류될 수 있다.Graphs can be classified according to whether vertices and/or edges can contain labels. For example, a graph may include an unlabeled graph in which vertices and/or edges do not contain labels, a labeled graph in which vertices and/or edges may contain labels, vertices and/or edges may be classified as a polymorphic-labeled graph that may include a plurality of labels.

정점 및/또는 엣지의 프로퍼티(property) 포함 여부에 따라 그래프가 분류될 수 있다. 예를 들어, 그래프는, 정점 및/또는 엣지가 프로퍼티를 포함하지 않는 논-프로퍼티 그래프(non-property graph), 정점 및/또는 엣지가 프로퍼티를 포함하는 프로퍼티 그래프(property graph)로 분류될 수 있다.Graphs may be classified according to whether vertices and/or edges contain properties. For example, graphs may be classified into a non-property graph in which vertices and/or edges do not contain properties, and a property graph in which vertices and/or edges contain properties. .

데이터 프로세싱 장치(예: 도 1의 데이터 프로세싱 장치(100))는 도 4에 도시된 그래프들 모두 지원할 수 있다. 그러나 데이터 프로세싱 장치(100)가 지원하는 그래프 모델의 유형은 이에 제한되지 않는다. 데이터 프로세싱 장치(100)는 적은 리소스만(예: 메타그래프)을 이용하여 도 4에 개시된 높은 복잡도의 그래프를 지원할 수 있다. 이하에서는 메타그래프를 활용한 그래프 쿼리 처리 동작에 대해서 상세히 설명하도록 한다.A data processing device (eg, the data processing device 100 of FIG. 1 ) may support all of the graphs shown in FIG. 4 . However, the type of graph model supported by the data processing apparatus 100 is not limited thereto. The data processing apparatus 100 may support the high-complexity graph shown in FIG. 4 using only a small number of resources (eg, a metagraph). Hereinafter, graph query processing operations using metagraph will be described in detail.

도 5는 일 실시예에 따른 그래프 쿼리 처리 동작을 설명하기 위한 도면이고, 도 6은 일 실시예에 따른 뷰 정의 언어(view definition language, VDL)를 설명하기 위한 도면이다.5 is a diagram for describing a graph query processing operation according to an exemplary embodiment, and FIG. 6 is a diagram for describing a view definition language (VDL) according to an exemplary embodiment.

도 5를 참조하면, 일 실시예에 따르면, 데이터 프로세싱 장치(예: 도 1의 데이터 프로세싱 장치(100))는 ER 모델(entity-relationship model)의 개체 및 관계를 테이블화하여 저장하는 관계형 데이터베이스에 기초하여, 그래프 탐색 언어에 기반한 데이터 검색을 지원할 수 있다.Referring to FIG. 5, according to an embodiment, a data processing apparatus (eg, the data processing apparatus 100 of FIG. 1) stores entities and relationships of an ER model (entity-relationship model) as a table in a relational database. Based on this, it is possible to support data retrieval based on a graph search language.

데이터 프로세싱 장치(100)는 그래프 쿼리(501)를 수신할 수 있다. 그래프 쿼리(501)는 그래프 데이터베이스에서 데이터 검색을 지원하는 그래프 탐색 언어에 기반한 것일 수 있다. 예를 들어, 그래프 탐색 언어는 C ypher, SPARQL, Gremlin 등을 포함할 수 있으며, 그래프 탐색 언어는 이에 제한되지 않는다. 그래프 쿼리(501)는 사용자가 그래프 뷰(504)에 기반하여(예: 그래프 뷰(504)(또는 그래프 뷰(504)에 대응되는 다른 데이터)를 시각적으로 확인 후, 추가 정보 획득을 위해) 데이터 프로세싱 장치(100)에 입력한 것일 수 있다.The data processing device 100 may receive the graph query 501 . Graph query 501 may be based on a graph navigation language that supports data retrieval in a graph database. For example, graph search languages may include C ypher, SPARQL, Gremlin, and the like, and graph search languages are not limited thereto. The graph query 501 is performed by the user based on the graph view 504 (eg, to acquire additional information after visually checking the graph view 504 (or other data corresponding to the graph view 504)) It may be input to the processing device 100 .

데이터 프로세싱 장치(100)는 기생성된 메타그래프(503)에 기초하여, 그래프 쿼리(501)를, 관계형 데이터베이스에 접근가능한 SQL(structured query language) 쿼리(502)로 번역할 수 있다. 메타그래프(503)는 그래프 형태의 메타데이터일 수 있다. 메타그래프(503)는 기생성된 복수의 메타그래프 중 어느 하나일 수 있다. 메타그래프(503)는 그래프 쿼리(501)에 대응되는 것일 수 있다. 메타그래프(503)는 셀럽이 생성한 메시지에 좋아요를 누른 사람을 찾기 위한 그래프 쿼리(501)에 대응되는 것일 수 있다. 메타그래프(503)는 메모리(예: 도 1의 메모리(120))에 저장된 것일 수 있다. 메모리(120)에 저장된 메타그래프는 도 5의 메타그래프(503)에 제한되지 않는다. 예를 들어, 사람 간의 친구 관계를 보여주는 그래프 데이터(예: 그래프 이름: friends_network, 정점: person, 엣지: friends)를 생성하기 위한 메타그래프(미도시)가 기생성되어, 메모리(120)에 저장되어 있을 수 있다. 다른 예를 들어, 사람의 직장에 대한 정보를 보여주는 그래프 데이터(그래프 이름: works_network, 정점: person, 엣지: work_at)를 생성하기 위한 메타그래프(미도시)가 기생성되어, 메모리(120)에 저장되어 있을 수 있다. 그래프 뷰(504)(예: 그래프 데이터)는 휘발성 메모리 및 비휘발성 메모리 어디에도 저장되지 않는 것일 수 있다.The data processing device 100 may translate the graph query 501 into a structured query language (SQL) query 502 accessible to a relational database, based on the pre-generated metagraph 503 . The metagraph 503 may be metadata in the form of a graph. The metagraph 503 may be any one of a plurality of pre-generated metagraphs. The metagraph 503 may correspond to the graph query 501. A metagraph 503 may correspond to a graph query 501 for finding a person who likes a message created by a celebrity. The metagraph 503 may be stored in a memory (eg, the memory 120 of FIG. 1 ). The metagraph stored in the memory 120 is not limited to the metagraph 503 of FIG. 5 . For example, a metagraph (not shown) for generating graph data (eg graph name: friends_network, vertex: person, edge: friends) showing friendship relationships between people is created and stored in the memory 120. There may be. As another example, a metagraph (not shown) for generating graph data (graph name: works_network, vertex: person, edge: work_at) showing information about a person's workplace is created and stored in the memory 120. may have been The graph view 504 (eg, graph data) may be stored neither in volatile memory nor in non-volatile memory.

도 6을 참조하면, 메타그래프(503)는 관계형 데이터베이스를 활용하는 뷰 정의 언어(view definition language, VDL)를 이용하여 정의된 것일 수 있다. 뷰 정의 언어는 메타그래프(503)의 이름(예: view 1)을 정의하는 구문(예: CREATE GRAPH)을 포함할 수 있다. 뷰 정의 언어는 이름(예: view 1), 레이블(예: [Celeb, Person]) 및 프로퍼티 쿼리(property query)(예:

Figure 112023030118169-pat00002
)에 기초하여, 메타그래프(503)의 정점을 정의하는 구문(예: CREATE VERTEX)을 포함할 수 있다. 뷰 정의 언어는 이름(예: view 1), 레이블(예: (Person)-[Create]->(Message)) 및 프로퍼티 쿼리(property query)(예:
Figure 112023030118169-pat00003
)에 기초하여 메타그래프(503)의 엣지를 정의하는 구문(예: CREATE EDGE)을 포함할 수 있다. 데이터 프로세싱 장치(100)는 고정된 로직이 아닌 뷰 정의 언어를 활용함으로써, 데이터 프로세싱의 자유도를 더욱 향상시킬 수 있다.Referring to FIG. 6 , a metagraph 503 may be defined using a view definition language (VDL) that utilizes a relational database. The view definition language may include a syntax (eg, CREATE GRAPH) defining a name (eg, view 1) of the metagraph 503 . The view definition language includes names (e.g. view 1), labels (e.g. [Celeb, Person]), and property queries (e.g. [Celeb, Person]).
Figure 112023030118169-pat00002
), a syntax (eg, CREATE VERTEX) for defining vertices of the metagraph 503 may be included. The view definition language includes names (e.g. view 1), labels (e.g. (Person)-[Create]->(Message)) and property queries (e.g.
Figure 112023030118169-pat00003
) may include a syntax (eg, CREATE EDGE) that defines an edge of the metagraph 503 based on. The data processing apparatus 100 may further improve the degree of freedom of data processing by using a view definition language rather than a fixed logic.

데이터 프로세싱 장치(100)는 SQL 쿼리(502)를 실행하여(예: 관계형 데이터베이스에 접근하여) 그래프 쿼리(501)(예: 셀럽이 생성한 메시지에 좋아요를 누른 사람을 찾기 위한 그래프 쿼리)에 대응되는 질의 결과(505)(예: James, Nancy, John)를 반환할 수 있다.The data processing unit 100 executes a SQL query 502 (eg, by accessing a relational database) to respond to a graph query 501 (eg, a graph query to find people who liked a message generated by a celebrity). A query result 505 (eg, James, Nancy, John) may be returned.

데이터 프로세싱 장치(100)는 관계형 데이터베이스를 유지하면서 그래프를 뷰를 생성할 수 있다. 데이터 프로세싱 장치(100)는 관계형 데이터베이스에 포함된 데이터를 그래프 데이터베이스로 이전(migration)하지 않고서도, 그래프 데이터(504)를 생성할 수 있다.The data processing device 100 may create a graph view while maintaining a relational database. The data processing device 100 may generate the graph data 504 without migrating data included in the relational database to the graph database.

데이터 프로세싱 장치(100)는 메타그래프(503)를 활용하여, 관계형 데이터베이스로부터 질의 결과(505)를 도출할 수 있다.The data processing device 100 may utilize the metagraph 503 to derive a query result 505 from a relational database.

도 7 및 도 8 각각은 일 실시예에 따른 데이터 프로세싱 방법의 흐름도를 나타낸다.7 and 8 each show a flow chart of a data processing method according to an embodiment.

도 7을 참조하면, 일 실시예에 따르면, 동작 710 내지 730은 순차적으로 각각 수행될 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 둘 이상의 동작들이 병렬적으로 수행될 수 있다. 동작 710 내지 730은 도 1 내지 도 6을 참조하여 설명한 데이터 프로세싱 장치(예: 도 1의 데이터 프로세싱 장치(100))의 동작과 실질적으로 동일할 수 있다. 이에 중복되는 설명은 생략하도록 한다.Referring to FIG. 7 , according to an embodiment, operations 710 to 730 may be sequentially performed, but are not limited thereto. For example, two or more operations may be performed in parallel. Operations 710 to 730 may be substantially the same as those of the data processing device (eg, the data processing device 100 of FIG. 1 ) described with reference to FIGS. 1 to 6 . A redundant description thereof will be omitted.

동작 710에서, 데이터 프로세싱 장치(100)는 ER 모델(entity-relationship model)의 개체(entity) 및 관계(relationship)를 테이블화하여 저장하는 관계형 데이터베이스를 활용하는, 뷰 정의 언어를 수신할 수 있다In operation 710, the data processing apparatus 100 may receive a view definition language that utilizes a relational database that stores entities and relationships of an ER model (entity-relationship model) as a table.

동작 720에서, 데이터 프로세싱 장치(100)는 뷰 정의 언어에 기초하여, 그래프 형태의 메타데이터인 메타그래프를 생성할 수 있다.In operation 720, the data processing device 100 may generate a metagraph, which is meta data in a graph form, based on the view definition language.

동작 730에서, 데이터 프로세싱 장치(100)는 메타그래프를 해석(예: 메타그래프에 포함된 쿼리들을 실행)하여 정점 및 엣지를 포함하는 그래프 뷰를 생성할 수 있다.In operation 730, the data processing device 100 may generate a graph view including vertices and edges by interpreting the metagraph (eg, executing queries included in the metagraph).

도 8을 참조하면, 일 실시예에 따르면, 동작 810 내지 830은 순차적으로 각각 수행될 수 있지만, 이에 한정되는 것은 아니다. 예를 들어, 둘 이상의 동작들이 병렬적으로 수행될 수 있다. 동작 810 내지 830은 도 1 내지 도 6을 참조하여 설명한 데이터 프로세싱 장치(100)의 동작과 실질적으로 동일할 수 있다. 이에 중복되는 설명은 생략하도록 한다Referring to FIG. 8 , according to an embodiment, operations 810 to 830 may be sequentially performed, but are not limited thereto. For example, two or more operations may be performed in parallel. Operations 810 to 830 may be substantially the same as those of the data processing apparatus 100 described with reference to FIGS. 1 to 6 . Duplicated explanations will be omitted.

동작 810에서, 데이터 프로세싱 장치(100)는 그래프 쿼리를 수신할 수 있다.In operation 810, the data processing device 100 may receive a graph query.

동작 820에서, 데이터 프로세싱 장치(100)는 그래프 쿼리에 대응되는 메타그래프에 기초하여, 그래프 쿼리를 관계형 데이터베이스에 접근가능한 SQL(structured query language) 쿼리로 번역할 수 있다.In operation 820, the data processing device 100 may translate the graph query into a structured query language (SQL) query accessible to a relational database based on a metagraph corresponding to the graph query.

동작 830에서, 데이터 프로세싱 장치(100)는 SQL 쿼리를 실행하여 그래프 쿼리에 대응되는 질의 결과를 반환할 수 있다.In operation 830, the data processing device 100 may execute the SQL query and return a query result corresponding to the graph query.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (16)

인스트럭션들을 포함하는 메모리; 및
상기 메모리와 전기적으로 연결되고, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고,
상기 프로세서에 의해 상기 인스트럭션들이 실행될 때, 상기 프로세서는 복수의 동작들을 수행하고,
상기 복수의 동작들은,
ER 모델(entity-relationship model)의 개체(entity) 및 관계(relationship)를 테이블화하여 저장하는 관계형 데이터베이스를 활용하는, 뷰 정의 언어(view definition language, VDL)를 수신하는 동작; 및
상기 뷰 정의 언어에 기초하여, 그래프 형태의 메타데이터인 메타그래프를 생성하는 동작
을 포함하고,
상기 뷰 정의 언어는,
상기 메타그래프의 이름을 정의하는 구문; 및
방향, 레이블, 또는 쿼리 중 적어도 하나에 기초하여 상기 메타그래프의 정점 및 엣지를 정의하는 구문을 포함하고,
상기 방향은 상기 엣지의 방향으로 구현되고,상기 레이블은 상기 정점의 레이블 또는 상기 엣지의 레이블로 구현되고,
상기 쿼리는 상기 정점의 프로퍼티 또는 상기 엣지의 프로퍼티로 구현되고,
상기 쿼리는 상기 관계형 데이터베이스에 저장된 ER 모델의 테이블 별 속성(attribute)을 추출하기 위한 쿼리를 포함하고,
상기 정점은 ER 모델의 개체에 대응되고,
상기 엣지는 ER 모델의 관계에 대응되는,
데이터 프로세싱 장치.
memory containing instructions; and
a processor electrically connected to the memory and configured to execute the instructions;
When the instructions are executed by the processor, the processor performs a plurality of operations;
The plurality of operations,
Receiving a view definition language (VDL) using a relational database that stores entities and relationships of an entity-relationship model (ER model) as a table; and
An operation of generating a metagraph, which is meta data in a graph form, based on the view definition language.
including,
The view definition language,
A syntax defining the name of the metagraph; and
A syntax for defining vertices and edges of the metagraph based on at least one of direction, label, or query;
The direction is implemented as the direction of the edge, the label is implemented as a label of the vertex or a label of the edge,
The query is implemented as a property of the vertex or a property of the edge,
The query includes a query for extracting attributes for each table of the ER model stored in the relational database,
The vertex corresponds to an entity of the ER model,
The edge corresponds to the relationship of the ER model,
data processing device.
삭제delete 제1항에 있어서,
상기 복수의 동작은,
상기 메타그래프를 해석하여 정점 및 엣지를 포함하는 그래프 뷰를 생성하는 동작
을 더 포함하는, 데이터 프로세싱 장치.
According to claim 1,
The plurality of operations,
An operation of interpreting the metagraph to create a graph view including vertices and edges
Further comprising a, data processing device.
제3항에 있어서,
상기 그래프 뷰는,
유향 엣지(directed edge) 및 무향 엣지(undirected edge)를 지원하는 혼합 방향성 그래프(mixed-directed graph);
정점 및 엣지가 프로퍼티를 포함하는 프로퍼티 그래프(property graph);
하나의 정점 쌍에 대해 복수 개의 엣지가 존재하는 다중 그래프(multi graph); 및
정점 및 엣지 각각에 대해 복수의 레이블을 지원하는 폴리모픽 레이블 그래프(polymorphic-labeled graph)
타입의 그래프를 포함하는, 데이터 프로세싱 장치.
According to claim 3,
The graph view,
a mixed-directed graph supporting directed and undirected edges;
a property graph in which vertices and edges contain properties;
A multi-graph in which a plurality of edges exist for one pair of vertices; and
A polymorphic-labeled graph that supports multiple labels for each vertex and edge.
A data processing device, comprising a graph of the type
삭제delete 인스트럭션들을 포함하는 메모리; 및
상기 메모리와 전기적으로 연결되고, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고,
상기 프로세서에 의해 상기 인스트럭션들이 실행될 때, 상기 프로세서는 복수의 동작들을 수행하고,
상기 복수의 동작들은,
그래프 쿼리를 수신하는 동작;
상기 그래프 쿼리에 대응되는 메타그래프에 기초하여, 상기 그래프 쿼리를 관계형 데이터베이스에 접근가능한 SQL(structured query language) 쿼리로 번역하는 동작; 및
상기 SQL 쿼리를 실행하여 상기 그래프 쿼리에 대응되는 질의 결과를 반환하는 동작
을 포함하고,
상기 메타그래프는,
그래프 형태의 메타데이터이고,
상기 메타그래프는,
상기 관계형 데이터베이스를 활용하는 뷰 정의 언어(view definition language, VDL)를 이용하여 정의되는 것이고,
상기 뷰 정의 언어는,
상기 메타그래프의 이름을 정의하는 구문; 및
방향, 레이블, 또는 쿼리 중 적어도 하나에 기초하여 상기 메타그래프의 정점 및 엣지를 정의하는 구문을 포함하고,
상기 방향은 상기 엣지의 방향으로 구현되고,
상기 레이블은 상기 정점의 레이블 또는 상기 엣지의 레이블로 구현되고,
상기 쿼리는 상기 정점의 프로퍼티 또는 상기 엣지의 프로퍼티로 구현되고,
상기 쿼리는 상기 관계형 데이터베이스에 저장된 ER 모델의 테이블 별 속성(attribute)을 추출하기 위한 쿼리를 포함하고,
상기 정점은 ER 모델의 개체에 대응되고,
상기 엣지는 ER 모델의 관계에 대응되는,
데이터 프로세싱 장치.
memory containing instructions; and
a processor electrically connected to the memory and configured to execute the instructions;
When the instructions are executed by the processor, the processor performs a plurality of operations;
The plurality of operations,
receiving a graph query;
translating the graph query into a structured query language (SQL) query accessible to a relational database, based on a metagraph corresponding to the graph query; and
An operation of executing the SQL query and returning a query result corresponding to the graph query.
including,
The metagraph,
It is metadata in the form of a graph,
The metagraph,
It is defined using a view definition language (VDL) that utilizes the relational database,
The view definition language,
A syntax defining the name of the metagraph; and
A syntax for defining vertices and edges of the metagraph based on at least one of direction, label, or query;
The direction is implemented as the direction of the edge,
The label is implemented as a label of the vertex or a label of the edge,
The query is implemented as a property of the vertex or a property of the edge,
The query includes a query for extracting attributes for each table of the ER model stored in the relational database,
The vertex corresponds to an entity of the ER model,
The edge corresponds to the relationship of the ER model,
data processing device.
삭제delete 제6항에 있어서,
상기 그래프 쿼리는,
그래프 데이터베이스에서 데이터 검색을 지원하는 그래프 탐색 언어에 기반한 것인,
데이터 프로세싱 장치.
According to claim 6,
The graph query,
based on a graph navigation language that supports data retrieval in graph databases;
data processing device.
삭제delete 삭제delete ER 모델(entity-relationship model)의 개체(entity) 및 관계(relationship)를 테이블화하여 저장하는 관계형 데이터베이스를 활용하는, 뷰 정의 언어(view definition language, VDL)를 수신하는 동작; 및
상기 뷰 정의 언어에 기초하여, 그래프 형태의 메타데이터인 메타그래프를 생성하는 동작
을 포함하고,
상기 뷰 정의 언어는,
상기 메타그래프의 이름을 정의하는 구문; 및
방향, 레이블, 또는 쿼리 중 적어도 하나에 기초하여 상기 메타그래프의 정점 및 엣지를 정의하는 구문을 포함하고,
상기 방향은 상기 엣지의 방향으로 구현되고,
상기 레이블은 상기 정점의 레이블 또는 상기 엣지의 레이블로 구현되고,
상기 쿼리는 상기 정점의 프로퍼티 또는 상기 엣지의 프로퍼티로 구현되고,
상기 쿼리는 상기 관계형 데이터베이스에 저장된 ER 모델의 테이블 별 속성(attribute)을 추출하기 위한 쿼리를 포함하고,
상기 정점은 ER 모델의 개체에 대응되고,
상기 엣지는 ER 모델의 관계에 대응되는,
데이터 프로세싱 방법.
Receiving a view definition language (VDL) using a relational database that stores entities and relationships of an entity-relationship model (ER model) as a table; and
An operation of generating a metagraph, which is meta data in a graph form, based on the view definition language.
including,
The view definition language,
A syntax defining the name of the metagraph; and
A syntax for defining vertices and edges of the metagraph based on at least one of direction, label, or query;
The direction is implemented as the direction of the edge,
The label is implemented as a label of the vertex or a label of the edge,
The query is implemented as a property of the vertex or a property of the edge,
The query includes a query for extracting attributes for each table of the ER model stored in the relational database,
The vertex corresponds to an entity of the ER model,
The edge corresponds to the relationship of the ER model,
Data processing method.
삭제delete 제11항에 있어서,
상기 메타그래프를 해석하여 정점 및 엣지를 포함하는 그래프 뷰를 생성하는 동작
을 더 포함하는, 데이터 프로세싱 방법.
According to claim 11,
An operation of interpreting the metagraph to create a graph view including vertices and edges
Further comprising, data processing method.
제13항에 있어서,
상기 그래프 뷰는,
유향 엣지(directed edge) 및 무향 엣지(undirected edge)를 지원하는 혼합 방향성 그래프(mixed-directed graph);
정점 및 엣지가 프로퍼티를 포함하는 프로퍼티 그래프(property graph);
하나의 정점 쌍에 대해 복수 개의 엣지가 존재하는 다중 그래프(multi graph); 및
정점 및 엣지 각각에 대해 복수의 레이블을 지원하는 폴리모픽 레이블 그래프(polymorphic-labeled graph)
타입의 그래프를 포함하는, 데이터 프로세싱 방법.
According to claim 13,
The graph view,
a mixed-directed graph supporting directed and undirected edges;
a property graph in which vertices and edges contain properties;
A multi-graph in which a plurality of edges exist for one pair of vertices; and
A polymorphic-labeled graph that supports multiple labels for each vertex and edge.
A data processing method comprising a graph of the type
삭제delete 하드웨어와 결합되어 제11항, 제13항 및 제14항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer readable recording medium in order to execute the method of any one of claims 11, 13 and 14 in combination with hardware.
KR1020230034624A 2023-03-16 2023-03-16 Relational database-based graph processing method and apparatus for performing the same KR102538470B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230034624A KR102538470B1 (en) 2023-03-16 2023-03-16 Relational database-based graph processing method and apparatus for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230034624A KR102538470B1 (en) 2023-03-16 2023-03-16 Relational database-based graph processing method and apparatus for performing the same

Publications (1)

Publication Number Publication Date
KR102538470B1 true KR102538470B1 (en) 2023-06-05

Family

ID=86764241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230034624A KR102538470B1 (en) 2023-03-16 2023-03-16 Relational database-based graph processing method and apparatus for performing the same

Country Status (1)

Country Link
KR (1) KR102538470B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102614051B1 (en) * 2023-07-17 2023-12-14 (주)인포시즈 Fraud detection method using graph database, and a computer program recorded on a recording medium for executing the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
US9172621B1 (en) * 2013-04-01 2015-10-27 Amazon Technologies, Inc. Unified account metadata management
KR20170122427A (en) * 2016-04-27 2017-11-06 (주)로직소프트 Computer program for generating code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100241644A1 (en) * 2009-03-19 2010-09-23 Microsoft Corporation Graph queries of information in relational database
US9172621B1 (en) * 2013-04-01 2015-10-27 Amazon Technologies, Inc. Unified account metadata management
KR20170122427A (en) * 2016-04-27 2017-11-06 (주)로직소프트 Computer program for generating code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102614051B1 (en) * 2023-07-17 2023-12-14 (주)인포시즈 Fraud detection method using graph database, and a computer program recorded on a recording medium for executing the same

Similar Documents

Publication Publication Date Title
US11030247B2 (en) Layered graph data structure
US10467250B2 (en) Data model design collaboration using semantically correct collaborative objects
US10915532B2 (en) Supporting a join operation against multiple NoSQL databases
Fraczek et al. Comparative analysis of relational and non-relational databases in the context of performance in web applications
US9201700B2 (en) Provisioning computer resources on a network
US10936625B2 (en) Progressive optimization for implicit cast predicates
WO2018097846A1 (en) Edge store designs for graph databases
US20210165816A1 (en) Digital Duplicate
Imasheva et al. The practice of moving to big data on the case of the nosql database, clickhouse
Banane et al. Storing RDF data into big data NoSQL databases
KR102538470B1 (en) Relational database-based graph processing method and apparatus for performing the same
Patel et al. Online analytical processing for business intelligence in big data
Petersohn et al. Flexible rule-based decomposition and metadata independence in modin: a parallel dataframe system
US11704345B2 (en) Inferring location attributes from data entries
KR102153259B1 (en) Data domain recommendation method and method for constructing integrated data repository management system using recommended domain
US10417230B2 (en) Transforming and evaluating missing values in graph databases
Karvinen et al. RDF stores for enhanced living environments: an overview
McClean et al. A comparison of mapreduce and parallel database management systems
Mehrotra et al. Apache Spark Quick Start Guide: Quickly learn the art of writing efficient big data applications with Apache Spark
Erraji et al. Toward a smart approach of migration from relational system database to nosql system: Transformation rules of structure
Arasu et al. Towards a domain independent platform for data cleaning
Thacker et al. Review of Elasticsearch Performance Variating the Indexing Methods
Azzini et al. Performances of OLAP operations in graph and relational databases
Relan et al. Database modeling in flask
Chen et al. On construction of a power data lake platform using spark

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant