데이터 모델과 질의 언어
2장의 내용은 데이터 모델의 변천사와 데이터 모델을 문제에 적합하게 적용해야 효율적으로 적용할 수
있다는 내용이 주요 내용입니다.
프로그램은 객체지향 프로그래밍 언어로 개발, 데이터는 관계형 테이블(테이블,Row,Column)에
저장함으로 전환 계층이 필요함 → 임피던스 불일치(impedance mismatch)
그래프형 데이터 모델
- 속성 그래프-사이퍼 질의 언어, SQL의 그래프 질의
- 트리플 스토어 모델-SPARQL
시맨틱 웹: 웹사이트는 사람을 위해 텍스트와 이미지를 게시하듯, 컴퓨터를 위해 기계가 읽을 수 있는
데이터도 함께 게시하면 좋지 않겠느냐는 것입니다. 이를 위해 제안된 것이 RDF(Resource Description Framework)
이며,다양한 웹사이트가 데이터를 일관된 포맷으로 게시함으로써, 자동으로 통합 가능한 웹 데이터 네트워크—
즉, 인터넷 전체가 하나의 거대한 "모든 것의 데이터베이스"가 되는 것
SPARQL: RDF 데이터 모델을 사용하는 트리플 스토어를 위한 질의 언어입니다. (SPARQL Protocol and RDF Query Language) Cypher보다 먼저 등장했으며, Cypher의 패턴 매칭 문법이 SPARQL에서 차용되었기 때문에 두 언어는
매우 유사한 구조를 가집니다.
데이터는 트리 형태의 계층 모델로 시작되었으나, 이는 다대다 관계를 표현하는 데 적합하지 않아 관계형 모델이 등장하게 되었습니다. 이후 일부 애플리케이션이 관계형 모델에도 잘 맞지 않자, NoSQL이라는 새로운 비관계형 데이터 저장소들이 등장했고, 이들은 두 갈래로 발전했습니다:
1. 도큐먼트 데이터베이스는 개별 문서 단위의 데이터를 저장하며, 문서 간 관계가 드문 경우에 적합합니다.
2. 그래프 데이터베이스는 거의 모든 것이 서로 연결될 수 있는 상황에 적합합니다.
문서, 관계형, 그래프 — 이 세 가지 모델은 오늘날 모두 널리 사용되고 있으며, 각각의 사용 사례에 적합한 장점을 지닙니다. 한 모델을 다른 모델로 흉내낼 수는 있지만 (예: 그래프 데이터를 관계형 DB에 표현) 이는 불편하거나 비효율적입니다. 그래서 모든 용도에 맞는 단일 시스템은 존재하지 않으며, 목적에 따라 시스템을 선택하는 것이 중요합니다.
문서 및 그래프 데이터베이스는 보통 스키마를 강제하지 않기 때문에, 애플리케이션의 변화에 보다 유연하게 대응할 수 있습니다.
하지만 대부분의 애플리케이션은 여전히 어떤 구조를 전제로 하고 있으며, 이는 단지 스키마가 명시적(쓰기 시 강제)인지
암묵적(읽기 시 해석)인지의 차이일 뿐입니다.
항목 | CODASYL 네트워크 모델 | 그래프 데이터베이스 |
스키마 유연성 | 레코드 간 포함 관계가 스키마에 고정됨 | 정점 간 관계에 제약 없음 – 자유롭게 연결 가능 |
데이터 접근 방식 | 정해진 접근 경로를 따라 탐색해야 함 | 정점 ID 또는 인덱스를 통해 직접 접근 가능 |
레코드(정점) 간 순서 | 자식 레코드는 순서가 있음 → 삽입 시 순서 유지 필요 | 정점과 간선은 순서 없음 (필요 시 질의 시 정렬 가능) |
질의 방식 | 명령형 (imperative) 언어 사용 → 작성 복잡, 스키마 변경에 민감 | 선언형 (declarative) 언어 지원 (Cypher, SPARQL 등) + 명령형 탐색 가능 |
확장성과 유연성 | 변경에 취약, 구조 확장 시 복잡함 | 새로운 관계, 정점 유형 추가가 쉬워 구조 확장에 유리 |
표현 가능한 관계 구조 | 제한적인 관계 표현 (스키마 기반, 계층성 강조) | 복잡한 다대다 관계, 이질적 정점/간선도 자연스럽게 표현 가능 |
사용 사례의 현대 적용성 | 현대 시스템에서는 거의 사용되지 않음 | 추천 시스템, 소셜 네트워크, 지식 그래프 등에서 널리 사용 |
네트워크 모델 vs 그래프 데이터베이스
'IT도서요약' 카테고리의 다른 글
데이터 중심 어플리케이션 - 4장 (0) | 2025.04.07 |
---|---|
데이터 중심 어플리케이션 - 3장 (0) | 2025.04.01 |
👍데이터 중심 어플리케이션- 1장 (0) | 2025.03.27 |