데이터 독립성(Data Independence)

/ 4 min read /
0 views

데이터 독립성

데이터 독립성(Data Independence)이란 데이터베이스 시스템의 중요한 특징 중 하나로, 데이터베이스 시스템은 데이터와 응용 프로그램을 독립적으로 관리할 수 있도록 설계되어 있다. 이러한 데이터 독립성은 데이터베이스의 유지보수와 확장성을 향상시키는 장점을 가진다. 데이터 독립성은 논리적 데이터 독립성과 물리적 데이터 독립성으로 나눌 수 있다.

논리적 데이터 독립성

논리적 데이터 독립성은 데이터베이스의 논리적 구조와 응용 프로그램 간의 독립성을 의미한다. 즉, 데이터베이스의 논리적 구조가 변경되어도 응용 프로그램은 영향을 받지 않는다. 예를 들어, 데이터베이스의 테이블 구조가 변경되어도 쿼리나 트랜잭션은 변경되지 않고 그대로 사용할 수 있다. 하지만 논리적 데이터 독립성은 한계가 있다. 컬럼이 추가되거나 삭제되는 경우에는 해당 컬럼을 참조하는 쿼리에서 오류가 발생할 수 있다. 이로 인해 논리적 데이터 독립성이 완전히 보장되지는 않는다. 즉, 논리적 데이터 독립성은 주로 데이터베이스 구조의 변경에 따른 영향을 최소화하는 데 중점을 둔다.

물리적 데이터 독립성

물리적 데이터 독립성은 데이터베이스의 물리적 구조가 변경되어도 논리적 구조나 데이터의 내용에 영향을 주지 않는 것을 의미한다. 예를 들어, 파일의 저장 방식이나 인덱스의 구성이 바뀌어도 데이터베이스의 스키마나 데이터는 그대로 유지될 수 있다.

스키마

이러한 데이터 독립성은 데이터베이스의 구조가 변경되더라도 응용 프로그램이나 사용자에게 영향을 주지 않으므로, 시스템의 안정성과 신뢰성을 높일 수 있다. 데이터 독립성 보장을 위한 데이터베이스 구조에는 3단계 데이터베이스 구조가 있다. 3단계 데이터베이스 구조를 알아보기 전에 스키마에 대해 먼저 알아볼 필요가 있다.

스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 개체의 특성을 나타내는 속성(Attribute), 개체 사이에 존재하는 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관하여 기술한다. 이를 메타데이터(MetaData)라고도 한다.

쉽게 말해 DB 내에 데이터가 어떤 구조로 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.

3단계 데이터베이스 구조

이제 3단계 데이터베이스 구조에 대해 알아보자. 앞서 소개한 스키마는 데이터베이스의 전체적인 모습을 보여주는 외부 스키마, 데이터베이스의 물리적인 저장 방식을 결정하는 내부 스키마, 그리고 외부 스키마와 내부 스키마 사이의 관계를 매핑하는 개념 스키마로 구성된다 이렇게 3단계로 나뉘는 데이터베이스 구조를 3단계 데이터베이스 구조라고 한다.

외부 스키마

외부 스키마는 사용자의 요구에 따라 데이터베이스의 논리적 구조를 정의하는 것으로, 사용자의 관점에서 데이터를 접근하고 조작할 수 있도록 한다. 이러한 외부 스키마는 하나의 데이터베이스 시스템에서 다수로 존재하며, 하나의 외부 스키마를 여러 응용 프로그램이나 사용자가 공유할 수 있다. 또한 외부 스키마는 같은 데이터베이스에 대해 서로 다른 논리적 구조를 가질 수 있도록 정의하는 것을 허용하며, SQL과 같은 질의어를 이용하여 이를 조작할 수 있다.

개념 스키마

개념 스키마는 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다. 이러한 개념 스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 대해 정의를 한다. 이렇게 개념 스키마는 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마라고 하면 개념 스키마를 의미한다.

내부 스키마

내부 스키마는 물리적 저장 방식을 결정하는 것으로, 저장장치와 관련된 세부적인 사항을 정의한다. 실제로, 내부 스키마는 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 인덱스의 생성 여부, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 결정한다.

사상(mapping)

3단계 데이터베이스 구조에서는 외부 스키마와 개념 스키마, 개념 스키마와 내부 스키마 사이의 관계를 매핑(mapping)한다. 이러한 매핑은 데이터베이스의 논리적 구조와 물리적 구조 사이의 독립성을 보장하며, 데이터베이스의 논리적 구조가 변경되어도 물리적 구조에 영향을 주지 않도록 한다. 즉, 데이터 독립성을 실현하는 핵심적인 요소이다. 위에서 언급했듯이 데이터 독립성은 논리적 데이터 독립성과 물리적 데이터 독립성으로 나눌 수 있으며, 각각의 사상이 이를 보장하는 역할을 한다.

외부/개념 사상

외부 스키마와 개념 스키마 사이의 사상을 외부/개념 사상이라고 하며, 응용 프로그램과 데이터베이스 사이의 인터페이스 역할을 한다. 외부 스키마 사상은 사용자의 요구에 따라 데이터베이스의 논리적 구조를 정의하고, 논리적 데이터 독립성을 보장하는 역할을 한다.

개념/내부 사상

개념 스키마와 내부 스키마 사이의 사상을 개념/내부 사상이라고 하며, 데이터베이스의 논리적 구조와 물리적 구조 사이의 매핑을 담당한다. 개념/내부 사상은 데이터베이스의 논리적 구조가 변경되어도 물리적 구조에 영향을 주지 않도록 하며, 물리적 데이터 독립성을 보장하는 역할을 한다.

정리

3단계 데이터베이스 구조를 통해, 사용자와 애플리케이션을 물리적인 데이터베이스로부터 독립시켜, 데이터베이스의 물리적 구조나 저장 방식이 변경되더라도 사용자나 애플리케이션에 영향을 주지 않도록 한다. 이를 통해 데이터 독립성을 보장하고, 데이터베이스의 유지보수와 확장성을 향상시킬 수 있다.

참고

Loading Comments...