티스토리 뷰
그래프 데이터베이스란?
데이터를 미리 정의된 모델로 제한하지 않고 보관하기 위해, 데이터 간의 관계를 데이터 자체에 똑같이 중요한 것으로 취급하도록 설계된 데이터베이스입니다. 데이터는 각 개별 엔티티가 다른 엔티티와 어떻게 연결되어 있는지 보여줍니다.
왜 그래프 데이터베이스를 이용하나요?
기본적으로 관계를 포함하는 데이터베이스만이 연결을 효율적으로 저장 및 처리할 수 있습니다. 다른 데이터베이스는 값 비싼 JOIN 작업을 통해 관계를 계산하지만 그래프 데이터베이스는 모델의 데이터와 함께 연결을 저장합니다.
데이터 세트의 총 크기와 관계없이 그래프 데이터베이스는 연결된 데이터와 복잡한 쿼리를 관리하는 데 효율적입니다. 수백만 개의 노드와 관계에서 정보를 수집 및 집계하고 검색 경계 외부에있는 데이터는 그대로 둡니다.
속성 그래프 모델 (Property Graph Model)
그래프 데이터베이스의 요소를 구성하는 방법에는 몇 가지 다른 접근 방식이 있습니다. 이러한 접근 방식 중 하나는 데이터가 노드, 관계 및 속성 (노드 또는 관계에 저장된 데이터)으로 구성되는 속성 그래프 모델입니다.
'노드'는 그래프의 엔티티입니다.
- (키-값) 쌍의 속성을 보유 할 수 있습니다.
- 노드는 역할을 나타내는 레이블(Label)을 지정할 수 있습니다.
- 레이블은 특정 노드에 메타 데이터 (예 : 인덱스 또는 제약 정보)를 첨부할 수 있습니다.
'관계'는 두 노드 간의 연결을 의미합니다.
- 항상 방향, 유형, 시작 노드 및 끝 노드가 있습니다.
- 노드와 마찬가지로 속성을 가질 수 있습니다.
- 대부분의 경우 관계에는 가중치, 비용, 거리, 등급, 시간 간격 또는 강점과 같은 양적 속성이 있습니다.
- 두 노드는 성능 저하없이 여러 관계 유형을 공유 할 수 있습니다.
- 특정 방향으로 저장되지만, 어느 방향으로든 효율적으로 탐색 할 수 있습니다. (역방향 탐색 가능)
Neo4j란?
Neo4j는 ACID 호환 트랜잭션을 제공하는 오픈 소스 NoSQL 네이티브 그래프 데이터베이스입니다.
SQL과 유사하지만 그래프에 최적화 된 선언적 쿼리 언어인 Cypher를 제공합니다.
참고 : neo4j.com/developer/
'개발지식 > TIL (Today I learned)' 카테고리의 다른 글
Kotlin 기초 문법 (5) - 클래스의 기본 구조 및 생성자 (0) | 2021.04.05 |
---|---|
Kotlin 기초 문법 (4) - 반복문, 증감연산자, 흐름제어, 논리연산자 (0) | 2021.04.05 |
Kotlin 기초 문법 (3) - 조건문, 비교연산자 (0) | 2021.04.05 |
Kotlin 기초 문법 (2) - 형변환, 배열, 타입추론, 함수 (0) | 2021.04.05 |
Kotlin 기초 문법 (1) - 변수와 자료형 (0) | 2021.04.05 |
- Total
- Today
- Yesterday
- bounds
- SWEA
- 백준
- blendshape
- SwiftUI
- rxswift6
- rxswift
- 카카오인턴십
- cocoapods
- Neo4j
- Reactivex
- GraphDB
- 알고리즘
- Swift
- boj
- 백준온라인저지
- Kotlin
- 프로그래머스
- 안드로이드
- coreml
- ARKit
- mergesort
- 코코아팟
- ios
- DispatchQueue
- C++
- blendshapes
- disposeBag
- infallible
- Lottie
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |