논리적 데이터 모델의 개념과 특성
개체-관계 모델은 현실 세계를 사람들의 머릿속에 그릴 수 있는 개념적인 구조로 모델링하는데 사용하므로 어떤 DB 관리 시스템으로 DB를 구축하든 상관이 없다. 하지만 E-R 다이어그램으로 표현된 개념적인 구조를 DB에 표현하는 형태를 결정하는 논리적 데이터 모델링에서는 DB 관리 시스템 종류가 중요하다.
선택한 DB 관리 시스템에 따라 사용자 입장에서 E-R 다이어그램으로 표현된 개념적 구조를 DB에 저장한다고 할 때 저장 형태로 표현한 논리적인 구조를 논리적 데이터 모델이라 한다. 결국 논리적 데이터 모델은 논리적 데이터 모델링의 결과물이고, 사용자가 생각하는 DB의 모습 또는 구조다. 그리고 논리적 데이터 모델로 표현된 DB의 논리적 구조가 바로 DB 스키마다. 논리적 구조는 사용하는 DB 관리 시스템에 따라 달라진다.
DB에 있는 데이터들 간의 관계를 표현하는 방법에 따라 다양한 논리적 데이터 모델이 존재한다. 일반적으로 많이 사용되는 논리적 데이터 모델은 관계 데이터 모델로, DB의 논리적 구조가 2차원 테이블 형태다. 관계 데이터 모델이 제안되기 전에는 계층 데이터 모델과 네트워크 데이터 모델이 주로 사용되었다.
계층 데이터 모델
계층 데이터 모델(hierarchical data model)은 DB의 논리적 구조가 트리(tree) 형태다. 개체는 사각형으로 나타내고 개체들 간의 관계는 링크(연결선)로 나타내는데, 링크는 일대다 관계만 표현할 수 있다. 그리고 계층 데이터 모델은 두 개체 사이에 관계를 하나만 정의할 수 있어 관계에 이름을 붙여 구별할 필요가 없다.
계층 데이터 모델에서는 다대다 관계를 직접 표현할 수 없어 별도의 개체를 추가로 생성하여 이를 표현한다. 위 그림에서 개체2와 개체3의 다대다 관계를 나타내기 위해 개체4를 추가로 만들어 표현하고 있다. 즉, 개체2와 개체3의 일대다 관계, 개체3과 개체4의 일대다 관계로 개체2와 개체3의 다대다 관계를 표현한다.
계층 데이터의 모델은 트리 구조로 표현되기 때문에 출판사 개체처럼 루트 역할을 하는 개체가 존재하고 사이클이 존재하지 않는다. 그리고 일대다 관계를 맺는 개체들 사이에는 상하 관계가 성립한다. 상위에 있는 개체를 부모 개체, 하위에 있는 개체를 자식 개체라 하고, 이들 사이의 일대다 관계를 부모 자식 관계라 한다. 계층 데이터 모델에서는 트리 구조의 특성상 부모 개체 하나가 자식 개체를 여러 개 가질 수 있지만, 모든 자식 개체는 부모 개체를 하나만 가질 수 있다는 제약 사항이 존재한다.
계층 데이터 모델은 개체 사이의 관계를 정의할 때 여러 제약이 존재하기 때문에 개념적 구조를 논리적 구조로 자연스럽게 모델링하기 어려워 구조가 복잡해질 수 있다. 그리고 데이터의 삽입, 삭제, 수정 등의 연산이나, 원하는 데이터를 검색하기가 쉽지 않다는 단점이 있다.
네트워크 데이터 모델
네트워크 데이터 모델(network data model)은 DB의 논리적 구조가 그래프 또는 네트워크 형태다. 개체는 사각형으로 나타내고 개체들 간의 관계는 화살표로 나타내는데, 화살표는 일대다 관계만 표현할 수 있다. 그래서 네트워크 데이터 모델은 계층 데이터 모델과 달리 두 개체 간의 관계를 여러 번 정의할 수 있어 관계를 이름으로 구별하고 화살표로 표현한다.
네트워크 데이터 모델에서도 일대다 관계만 직접 표현할 수 있으므로 두 개체 사이의 일대다 관계들을 이용해 다대다 관계를 표현한다. 위 그림에서 개체1과 개체2가 다대다의 관계를 맺고 있어 관계1과 관계2라는 두 개의 일대다 관계로 이를 표현했다. 네트워크 데이터 모델에서는 일대다 관계의 개체들을 각각 오너(owner)와 멤버(member)라 부르고, 이들 사이의 관계를 오너-멤버 관계(owner-member relationship)라 부른다.
네트워크 데이터 모델은 같은 개체들 사이의 관계를 두 개 이상 표현할 수 있어 계층 데이터 모델보다 개념적 구조를 논리적 구조로 좀 더 자연스럽게 모델링할 수 있다. 그러나 계층 데이터 모델보다 구조가 훨씬 복잡해질 수 있어, 데이터의 삽입, 삭제, 수정 같은 연산과 데이터 검색이 계층 데이터 모델보다 더 어려워지는 문제가 발생한다.
최근에는 객체의 개념을 도입한 객체지향 데이터 모델(object-oriented data model) 및 객체지향 데이터 모델과 관계 데이터 모델의 특성을 모두 수용하는 개체관계 데이터 모델(object-relational data model)이 사용되기도 한다. 하지만 누구나 쉽게 이해할 수 있는 데이터 구조와 데이터의 검색, 삽입, 삭제, 수정 등의 연산을 제공하는 관계 데이터 모델이 꾸준하게 인기가 높다.
'데이터베이스 > 데이터 모델링' 카테고리의 다른 글
개체-관계 모델 (0) | 2024.05.25 |
---|---|
데이터 모델링과 데이터 모델의 개념 (0) | 2024.05.25 |