반응형
/*
-- 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
반응형