단계 간 사상
지금까지 살펴본 데이터베이스 3단계 구조에서는 세 개의 스키마가 존재하는데, 각각의 스키마 사이의 연결을 위해서는 사상(mapping)이라는 과정을 거쳐야 한다. 두 가지 사상이 존재하는데 하나는 개념적 스키마(뷰)와 논리적 스키마 간의 개념적-논리적 사상이며, 다른 하나는 논리적 스키마와 물리적 스키마 간의 논리적-물리적 사상이다.
개념적-논리적 사상 : 개념적-논리적 사상(conceptual-logical mappings)은 개념적 스키마(뷰)와 논리적 스키마 간의 대응 관계를 정의한다. 개념 적-논리적 사상을 정의할 경우, 논리적 스키마에 변화가 생기더라도 그 변화를 개념적-논리적 사상에만 반영시켜 주면 개념적 스키마에 아무런 영향도 미치지 않는다. 즉, 이러한 논리적 데이터 독립성(logical data independence)은 개념적-논리적 사상을 통해 확보된다고 할 수 있다.
논리적-물리적 사상 : 논리적-물리적 사상(logical-physical mappings)은 논리적 스키마와 물리적 스키마 간의 대응 관계를 정의하는 것이다. 논리적-물리적 사상은 논리적 단계의 데이터 스키마가 디스크 내의 내부 필드와 어떻게 대응하는가를 정의한다. 따라서 다른 디스크로 데이터 이동이나 파일 구조 변경 등의 물리적인 변화가 발생해도 그 변화를 논리적-물리적 사상에만 반영시켜 주면 논리적 스키마에는 아무런 영향도 미치지 않는다. 물리적 스키마는 논리적-물리적 사상을 통해 논리적 스키마 및 개념적 스키마와 독립적인 성질을 갖게 되므로, 물리적 데이터 독립성(physical data independency)이 확보된다고 할 수 있다.
데이터 모델
우리는 실세계에 존재하는 무수히 많은 사실 가운데 목적에 부합하는 것만을 모아 데이터베이스에 옮겨 사용한다. 이렇게 목적에 부합하는 사실만 사용하는 이유는 실세계의 데이터 자체를 컴퓨터상에 완전히 옮겨 놓을 수도 없을 뿐만 아니라 옮겨 놓는다 하더라도 불필요한 데이터를 저장하게 되기 때문이다. 따라서 중요한 데이터를 선별하여 체계화된 구조로 데이터베이스화할 방법이 필요하다.
데이터베이스를 체계적인 구조로 표현하기 위해 사용할 수 있는 개념의 집합을 데이터 모델(data model)이라고 한다. 즉, 데이터 모델이란 '데이터 타입, 데이터의 연산, 데이터의 의미 및 일관성 제약조건을 명시하기 위해 사용할 수 있는 개념들의 집합'이다.
데이터 모델을 이용하여 실세계 데이터를 데이터베이스 구조로 변환하는 작업을 데이터 모델링(data modeling)이라고 한다. 데이터 모델링은 데이터 모델을 바탕으로 데이터, 데이터 간 관계, 데이터의 의미 및 일관성 제약사항과 같이 데이터와 관련된 전반적인 사항에 대해 체계적으로 구조화하는 작업이다.
현재까지 여러 데이터 모델이 제안되었지만, 대표적으로 사용되고 있는 네 종류의 데이터 모델만을 소개한다.
1. 관계형 모델 : 관계형 모델(relational model)은 가장 많이 사용되는 모델로 우리가 알고 있는 대다수의 상용 DBMS는 관계형 모델을 기반으로 개발되었다. 관계형 모델은 데이터와 데이터 간의 관계를 표현하는 테이블(table) 집합으로 데이터의 구조를 정의한다. 각 테이블은 다수의 컬럼 (column)을 포함하며 각 컬럼은 고유 이름을 갖는다. 테이블은 릴레이션 (relation)으로도 불린다.
레코드 기반 데이터 모델인 관계형 모델은 다수의 고정 형식 레코드 타입으로 데이터베이스를 구조화한다. 각 테이블은 특정 타입의 레코드를 저장하며 각 레코드 타입은 고정 개수의 필드(field) 또는 속성 (attribute)라 불리는 단위로 정의된다. 즉. 테이블의 컬럼은 레코드 타입의 속성에 해당한다.
2. 개체-관계 모델: 개체-관계(ER: Entity-Relationship) 모델은 개체(entity)라 불리는 기본 객체와 개체 간의 관계(relationship)의 집합으로 표현된다. 개체는 다른 개체와 구분되는 실세계의 '사물' 또는 '객체'를 의미한다. ER 모델은 개념적 데이터 모델링에 가장 많이 이용되는 모델이다.
3. 객체지향적 데이터 모델 : 객체지향(object oriented) 프로그래밍 기법이 대표적인 소프트웨어 개발 방법론이 됨에 따라 데이터 모델에서도 객체지향적 데이터 모델(object oriented data model)이 등장하였다. 객체지향적 데이터 모델은 메서드(method) 및 객체 구분자(identity)의 관점에서 캡슐화(encapsulation) 개념을 사용하는 ER 모델의 확장 모델이라고 할 수 있다. 객체관계형(object relational) 데이터 모델은 객체지향적 데이터 모델과 관계형 데이터 모델의 특징을 결합한 모델이다.
4. 반구조화 데이터 모델 : 대다수의 데이터 모델에서는 특정 타입에 포함되는 모든 데이터가 같은 속성으로 구성된다. 그러나 반구조화 데이터 모델(semistructured data model)은 같은 데이터 타입에 속하는 데이터끼리 서로 다른 속성을 가지고 있는 것을 허용한다. XML(extensible markup language)은 반구조화 모델 표현에 대표적으로 이용되는 기술이다.
위에서 소개한 모델링 이외에 네트워크 데이터 모델(network data model) 및 계층형 데이터 모델(hierarchical data model)이 있으나 복잡한 모델링 과정과 내부적 구현에 치우치는 단점으로 인해 현재는 자주 사용되지 않는다.
'데이터베이스' 카테고리의 다른 글
데이터 조작 언어와 데이터 질의 (0) | 2024.03.01 |
---|---|
데이터 모델링과 데이터 정의 언어 (0) | 2024.03.01 |
데이터베이스 관리시스템의 구조 (0) | 2024.02.27 |
데이터베이스 관리 시스템목적과 특징 (0) | 2024.02.27 |
데이터의 종속과 중복 (0) | 2024.02.27 |