반응형

그래프 데이터베이스 10

[그래프 데이터베이스][무작정해보기] [14/30] count, collect, size,map, list 활용하기

데이터 집계하기 기본적으로 Neo4j에서는 데이터를 모아줌 아래의 Cypher문을 작동했을 때 결과 MATCH (p:Person)-[:REVIEWED]->(m:Movie) RETURN p.name, m.title 위의 결과를 잘 보면 오른쪽에 "The Replacements"가 연속되고 그 후 왼쪽에 "Jessica Thompson"이 연속되는 것을 볼 수 있음. 결과를 List로 모으기 Neo4j에서는 자료를 List형태로 모을 수 있음 다음 예시는 톰크루즈가 연기한 영화들을 리스트로 보여줌 MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE p.name ='Tom Cruise' RETURN collect(m.title) AS `movies for Tom Cruise` 위..

[그래프 데이터베이스][무작정해보기] [10/30] Relation과 Property로 Query하기

연습2 : 속성값으로 쿼리값 필터링 하기. 영화 데이터를 계속 사용함. 관계(Relationships) 관계는 복잡하고 깊은 데이터를 연결하는데 있어 Neo4j 그래프를 강력한 도구로 만들어준다. 관계는 방향성(Directed)이 있는 연결로 두 노드 사이를 관계종류(Relationship type)로 연결한다. 노드와 같이 속성(properties)을 가진다. 노드를 찾을떄, 관계의 속성값을 이용할 수 있다. ASCII art 노드와 관계 사이에서 데이터를 얻어내기 위한 syntax () // 노드 ()--() // 어떤 관계를 가진 두 노드 ()-[]-() // 어떤 관계를 가진 두 노드 ()-->() // 첫번째 노드가 두번째 노드에게 관계를 가지고 있다. ()(node2) RETURN node1,..

[그래프 데이터베이스][무작정해보기] [9/30] 노드속성을 이용한 쿼리 및 필터

코멘트 만들기 //를 이용해서 코멘트 표시할 수 있음 그래프의 데이터 모델 확인하기 : CALL db.schema.visualization() 처음 공부할때, 그래프의 데이터 모델을 확인하는 것은 유용하다. `CALL db.schema.visualization()`를 이용하여 노드, 라벨, 관계에대한 정보를 얻을 수 있다. 다음은 기본 movie data에서 실행했을때 결과. person과 movie 두 노드를 볼 수 있으며, 각각은 다른 색상으로 표시되어 있음. 6가지 relation이 있으며, 사람과 사람 사이에는 follow 할 수 있기 때문에 재귀적인 모습으로 표시됨. 속성 노드를 정의하기 위해 속성값을 더 집어넣을 수 있음. 속성은 속성 키 값으로 정의됨. 같은 타입의 노드들이 꼭 같은 속성을 ..

[그래프 데이터베이스][무작정해보기] [8/30] 사이퍼 기초다지기 - 노드 / 관계 생성, 원하는 정보 Query하기

개요. 사이퍼 언어 기초적인 구조를 이해해보고, 이를 응용해 2촌 찾아 보기를 해보겠습니다. Cypher란 무엇인가? ※파파고의 도움을 받아 공식 사이트 문장을 번역하였습니다. 더보기 Cypher is a declarative graph query language that allows for expressive and efficient querying updating and administering of the graph. It is designed to be suitable for both developers and operations professionals. Cypher is designed to be simple, yet powerful; highly complicated database quer..

[그래프 데이터베이스][무작정해보기] [7/30] A*(A-star) Algorithm Neo4j에서 실행해보기

들어가기 전에 복습하기 2021/01/10 - [30일 프로젝트/Graph DB] - [그래프 데이터베이스][무작정해보기] [6/30] A*(A-star) Algorithm 그림으로 이해하기. [그래프 데이터베이스][무작정해보기] [6/30] A*(A-star) Algorithm 그림으로 이해하기. 다음 예제는 A*(A-Star) Algorithm 을 사용합니다. 그 전에 A* 알고리즘이 무엇인지 간단한 그림을 통해 이해해보도록 하겠습니다. A* 알고리즘은 무엇이고 어디에 쓰이는가? A*(pronounced "A-star") is a graph. dfso2222.tistory.com 바쁘다면 한줄요약 A* 알고리즘은 다음과 같은 f(n)값을 최소화하는 방식으로 작동합니다. $f(n) = g(n) + h(..

[그래프 데이터베이스][무작정해보기] [6/30] A*(A-star) Algorithm 그림으로 이해하기.

다음 예제는 A*(A-Star) Algorithm 을 사용합니다. 그 전에 A* 알고리즘이 무엇인지 간단한 그림을 통해 이해해보도록 하겠습니다. A* 알고리즘은 무엇이고 어디에 쓰이는가? A*(pronounced "A-star") is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency. A*("에이 스타"로 발음됨) 는 그래프 순회와 경로 찾기를 위해 사용되는 알고리즘으로, 그 완결성, 적합성, 그리고 최적 효율 덕분에 컴퓨터 과학 분야에서 종종 사용된다1. 한마디로 경로..

[그래프 데이터베이스][무작정해보기] [5/30] Shortest Path Algorithm 사용해보기

지난 글에서 Dijkstra's Algorithm(다익스트라, 데이크스트라 알고리즘)에 대해 알아봤습니다. 오늘은 Neo4j에서 실행해보도록 하겠습니다. Unweighted 와 Weighted Shortest Path 이해하기. 최단거리 계산에는 크게 두가지 방법이 있습니다. 하나는 노드간 몇 회만 뛰어넘는지만 계산하는 방식, 다른 하나는 노드 사이의 실제 거리 값을 계산하는 방식이 있습니다. 우선 그림으로 둘의 차이를 간략히 설명하겠습니다. 앞으로 실행할 알고리즘은 위와 같습니다. 유럽의 여러 도시들과 그 사이의 거리를 표시한 것을 볼 수 있습니다. Neo4j 그래프에선 기본으로 화살표가 생겨 마치 한방향으로 가는것 같지만, 이는 프로그램 기본사항이므로 무시하도록 합시다. Unweighted Short..

[그래프 데이터베이스][무작정해보기] [4/30]Dijkstra's Algorithm(다익스트라, 데이크스트라 알고리즘)

최단거리 찾기(Shortest Path) 하나의 노드쌍에서 최단 거리를 찾습니다. 길찾기 알고리즘은 19세기 부터 유래를 찾을 수 있고, 1956년 Edsger Dijkstra(다익스트라, 데이크스트라)가 가장 유명한 알고리즘을 만들었으며, 대체루트 찾기로 유명해졌습니다. 이 알고리즘을 이해해 보도록 하겠습니다. 위의 움짤을 하나씩 그려가면서 이해해보도록 하겠습니다. 그래프의 구성 그래프의 기본 구성은 다음과 같습니다. 6개의 노드와 8개의 엣지로 이루어져 있습니다. 실생활에 대응해서 생각해본다면 6개의 도시와 이 도시들을 잇는 8개의 도로망이라고 생각해도 됩니다. 그리고 8개의 엣지 위의 값은 거리라고 생각합시다. 최단거리 = 최소 걸리는 루트 라는 공식을 성립하게 하기 위해, 도로체증, 신호 등등의 ..

[그래프 데이터베이스][무작정해보기] [3/30] 웹상의 CSV로 부터 Graph 생성하기

예시데이터: 운송 그래프 데이터는 다음 위치에서 확인 할 수 있습니다. https://resources.oreilly.com/examples/0636920233145/tree/master/data data · master · examples / Graph Algorithms O'Reilly Resources resources.oreilly.com github.com/neo4j-graph-analytics/book/tree/master/data neo4j-graph-analytics/book Contribute to neo4j-graph-analytics/book development by creating an account on GitHub. github.com 둘다 같은 데이터를 사용하지만, 책의 예제..

[그래프 데이터베이스][무작정해보기] [2/30] 저장위치 설정 / 플러그인 설치 / 앞으로 다룰 알고리즘

데이터 저장 위치 설정 여러 데이터를 저장하는 위치인거 같습니다. 그 중 가장 중요한 기능은 *.cypher 파일을 저장하는 기능인 것 같습니다. .cypher에 대한 기능도 해보겠습니다. 기억에 최초에 설치할때도 나왔던거 같지만, 혹시나 변경하고 싶다면 본인이 원하는 위치로 바꾸면 됩니다. 설명에는 다음과 같이 써있습니다. Changing data path will move your data to the selected path. This process can take several minutes. 데이터 위치를 변경하는 것은 당신의 데이터를 선택된 위치에 데이터를 옮길 것이다. 이 과정은 몇분 걸릴 것이다. 즉, 최초에 설정하고 옮긴다 해도 데이터가 소실되지 않는다는 뜻입니다. 데이터 베이스 만들어보..

반응형