반응형

/*
-- Title : [N4j4.4] 다-다 Relationship 만들기
-- Tag : neo4j 네오포제이 다대다 다:다 관계 relationshiop apoc library
*/


■ 다:다 관계(Relationship) RDB 모델


■ 노드(Node) 생성

// VM에 설치된 Neo4j라서 1개의 DB만 가능
:use neo4j

// 초기화
match(n) 
detach delete n;

// tBook 노드 생성
CALL apoc.load.jdbc("jdbc:sqlserver://172.20.20.93:1433;databaseName=MYDB;user=usr_neo4j;password=******"
,"SELECT * FROM neo4j.tBook") 
YIELD row
CREATE (:tBook {
bk_id: row.bk_id,
bk_nm: row.bk_nm,
page_cnt: row.page_cnt,
pub_dt: row.pub_dt,
fk_pub_id: row.fk_pub_id    
})

Added 10 labels, created 10 nodes, set 48 properties, completed after 67 ms.

// tISBN노드 생성
CALL apoc.load.jdbc("jdbc:sqlserver://172.20.20.93:1433;databaseName=MYDB;user=usr_neo4j;password=******"
,"SELECT * FROM neo4j.tISBN") 
YIELD row
CREATE (:tISBN {
isbn_id: row.isbn_id,
isbn_nm: row.isbn_nm,
isbn_cnt: row.isbn_cnt
})

Added 6 labels, created 6 nodes, set 18 properties, completed after 53 ms.

// tPublisher 노드 생성
CALL apoc.load.jdbc("jdbc:sqlserver://172.20.20.93:1433;databaseName=MYDB;user=usr_neo4j;password=******"
,"SELECT * FROM neo4j.tPublisher") 
YIELD row
CREATE (:tPublisher {
pub_id: row.pub_id,
pub_nm: row.pub_nm,
pub_city: row.pub_city,
pub_tp: row.pub_tp,
emp_cnt: row.emp_cnt
})

Added 6 labels, created 6 nodes, set 26 properties, completed after 33 ms.

// 노드 생성 확인
match(n) return n;


■ 관계(Relationship) 생성

ㅁ 1:다 관계 생성

// 1:다 관계 생성
match (b:tBook),(p:tPublisher) 
where b.fk_pub_id = p.pub_id 
create (b)-[r:PUBL_by]->(p) return type(r);

// 조회
match(n:tBook) --> (r),(m:tISBN) return n,r,m


ㅁ 다:다 관계 생성

// 다:다 관계 생성
CALL apoc.load.jdbc("jdbc:sqlserver://172.20.20.93:1433;databaseName=MYDB;user=usr_neo4j;password=******",
"SELECT * FROM neo4j.tBookISBN") YIELD row
MATCH (b:tBook {bk_id: row.bk_id})
MATCH (i:tISBN {isbn_id: row.isbn_id})
CREATE (b)-[:CLASS_as]->(i)

Created 14 relationships, completed after 47 ms.

// 조회
match(n:tBook) --> (m:tISBN) return n,m

 


■ 전체 조회

 


※ Resources

 

반응형

+ Recent posts