트리플스토어
1. 개요
트리플스토어는 트리플(주어, 술어, 객체) 형태로 데이터를 저장하는 데이터베이스이다. 트리플스토어는 자체 데이터베이스 엔진으로 개발되거나, SQL 기반 관계형 데이터베이스 또는 NoSQL 문서 지향 데이터베이스 위에 구축될 수 있다. 쿼드 스토어는 트리플에 이름을 추가한 형태로, 그래프 데이터베이스는 노드, 엣지, 프로퍼티를 사용하여 데이터를 표현하며 트리플스토어보다 일반화된 구조를 가진다.
| 유형 | 데이터베이스 |
|---|---|
| 모델 | RDF |
| 다른 이름 | RDF 트리플 저장소, RDF 저장소, 시맨틱 저장소, 그래프 데이터베이스 |
| 설명 | 트리플스토어는 트리플이라고 불리는 주어–술어–객체 표현을 저장하고 검색하기 위한 데이터베이스 시스템이다. 트리플은 RDF 데이터 모델의 기초이다. |
|---|---|
| 예시 | 주어: "프레드" 술어: "안다" 객체: "윌마" |
| 쿼리 언어 | SPARQL |
| 응용 분야 | 지식 관리 데이터 통합 데이터 모델링 시맨틱 웹 링크드 데이터 |
| 특징 | 대량의 트리플 데이터 저장 및 관리 효율적인 트리플 검색 및 쿼리 추론 및 규칙 기반 질의 지원 다양한 RDF 직렬화 형식 지원 (XML, Turtle, JSON-LD 등) ACID 트랜잭션 지원 |
|---|---|
| 고려 사항 | 트리플 데이터 모델의 이해 필요 SPARQL 쿼리 언어 학습 필요 데이터 모델링 및 온톨로지 설계 중요 성능 최적화를 위한 인덱싱 및 쿼리 튜닝 필요 |
| 관련 기술 | RDF SPARQL OWL SKOS Protege |
|---|
| 참고 자료 | RDF (Resource Description Framework) 공식 웹사이트 SPARQL Query Language for RDF W3C Semantic Web Standards |
|---|
-
데이터베이스 유형 -
병렬 데이터베이스
병렬 데이터베이스는 데이터베이스 시스템 성능 향상을 위해 여러 프로세서나 디스크를 활용하여 작업을 병렬로 처리하는 시스템으로, 쿼리 간 병렬 처리와 질의 내 병렬 처리 방식으로 나뉘며, 대용량 데이터 처리 및 복잡한 쿼리 실행 시간을 단축시켜 효율성을 높인다. -
데이터베이스 유형 -
문서 지향 데이터베이스
문서 지향 데이터베이스는 데이터를 문서 형태로 저장하고 관리하며, XML, JSON 등의 형식으로 캡슐화하고 고유 키로 접근하며, 스키마를 강제하지 않는 NoSQL 데이터베이스의 한 종류이다. -
데이터베이스 이론 -
관계형 데이터베이스
관계형 데이터베이스는 데이터를 테이블 형태로 구성하여 관리하며, 1970년 E.F. 코드에 의해 정의되었고, RDBMS를 통해 ACID 트랜잭션, 저장 프로시저, 정규화, 인덱스 등의 기술을 활용하여 다양한 분야에서 사용된다. -
데이터베이스 이론 -
데이터베이스 설계
데이터베이스 설계는 데이터를 효율적으로 관리하기 위해 데이터 분류, 관계 식별, 논리 구조화 등을 포함하며, 개념적, 논리적, 물리적 설계를 거쳐 데이터 중복을 줄이고 데이터 무결성을 확보하는 과정이다. -
데이터베이스 관리 시스템 -
트랜잭션 처리
트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다. -
데이터베이스 관리 시스템 -
저장 프로시저
저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
2. 구현
트리플스토어는 처음부터 데이터베이스 엔진으로 개발되기도 하고, 기존의 상용 관계형 데이터베이스 엔진(예: SQL 기반)이나 NoSQL 문서 지향 데이터베이스 엔진 위에 구축되기도 한다. 온라인 분석 처리(OLAP) 데이터베이스 개발 초기처럼, 이러한 중간 접근 방식은 적은 프로그래밍 노력으로 크고 강력한 데이터베이스 엔진을 구축할 수 있게 하였다.
2.1. SQL 기반 트리플스토어의 구현 상 어려움
일부 트리플스토어는 완전히 처음부터 데이터베이스 엔진으로서 개발되고 있는 반면, 그 밖의 트리플스토어는 기존의 상용 관계형 데이터베이스 엔진(예: SQL 기반)이나 NoSQL 문서 지향 데이터베이스 엔진 위에 개발되고 있다. OLAP 데이터베이스의 초기 개발처럼 이 중간적인 접근은 대형의 강력한 데이터베이스 엔진들이 트리플스토어 개발의 초기 단계에서 이루어지는 프로그래밍을 거의 거치지 않도록 설계를 허용하였다. 네이티브 트리플스토어가 오랜 시간에 걸쳐 성능 상의 이점을 취할 수 있을 가능성이 있는 것으로 보인다. SQL을 통해 트리플스토어를 구현할 때의 어려운 점은 트리플이 저장될 수 있더라도 그래프 기반 RDF 모델의 효율적인 조회 방식을 SQL 쿼리에 구현하는 것(예: SPARQL로부터의 매핑)은 어렵다.
3.1. 그래프 데이터베이스와의 비교
그래프 데이터베이스는 노드, 엣지, 프로퍼티가 있는 그래프 구조를 사용하여 데이터를 표현하고 저장하므로 트리플스토어에 비해 더 일반화된 구조를 지닌다. 그래프 데이터베이스는 인덱스에서 자유로운 인접(adjacency)을 제공할 수 있으며, 이는 모든 요소가 인접 요소들에 직접적인 포인터를 포함하고 있으면서 인덱스 검색이 불필요하다는 것을 뜻한다. 그래프를 저장할 수 있는 일반적인 그래프 데이터베이스들은 트리플스토어와 네트워크 데이터베이스 등의 특수한 그래프 데이터베이스와는 구별된다.