CS/Database

[DB] 데이터 추상화 레벨, 3단계 스키마 구조, 데이터 독립성

@~@ 2024. 4. 6. 01:20

* 추상화란?

Computer Science에서 추상화란 세세한 instance에서 중요한 개념, 핵심만 분리하는 프로세스를 의미한다. 즉 instance를 사용자에게 보여주는 방법, 표현이라고 할 수 있을 것 같다.

 

추상화는 추상화 레벨에 따라 사용자에게 보이는 detail 정도가 달라진다. 

 

1. 데이터 추상화 레벨 - 3단계 추상화

  • 물리적 레벨 Physical Level에서의 추상화

실제 데이터 레코드(record)가 어떻게 저장되는지 기술한다. 데이터 필드 길이, 필드 간격, 레코드의 전체 길이 등을 포함한다.

  • 논리적 레벨 Logical Level에서의 추상화

데이터베이스에 저장되어 있는 데이터들 간의 관계를 논리적 관점에서 추상화한 것이다. 예를 들어

Type Professor = record
	ID : string;
    	name : string;
    	department : string;
    	salary : integer;
end;

위와 같은 선언이 있다면 이는 professor가 하나의 레코드이고, 이것은 string 타입의 ID, string 타입의 name, string 타입의 department, integer 타입의 salary라는 네 가지 구성요소로 이루어져 있음을 기술하는 것이다. 

  • 뷰 레벨 View Level에서의 추상화

뷰 레벨에서의 추상화는 사용자가 관심 있는 데이터만을 추상화한다. 즉, 위의 professor 레코드에서 만약 salary가 보안상의 이유로 다른 사용자들에게 알려지면 안 되는 경우라면 salary 필드를 보이지 않게 하기 위하여 ID, name, department 필드만 추상화하여 보여준다. 반대로 ID 필드를 보이지 않게 하고 싶다면 name, department, salary 필드만을 따로 추상화하여 보여줄 수 있다. 

=> 동일한 논리적 레벨에서의 추상화에 대하여 다수개의 뷰 레벨 추상화가 가능하다.

 

2. 3단계 스키마 구조

위와 같이 3단계 추상화가 성립되면 각 단계의 추상화에 따른 데이터베이스 스키마가 생성된다. 결과적으로, 3단계 스키마 구조가 완성된다. 각각 뷰 스키마, 논리적 스키마, 물리적 스키마라고 한다. 3단계 스키마 구조는 ANSI/SPARC 구조라고도 한다.

 

3. 데이터 독립성

3단계 스키마 구조로 데이터 독립성을 설명할 수 있다. 데이터 독립성은

논리적 데이터 독립성

물리적 데이터 독립성으로 구성된다. 

 

논리적 데이터 독립성은 뷰 스키마 변경 없이 논리적 스키마를 변경할 수 있는 것

물리적 데이터 독립성은 논리적 스키마 변경 없이 물리적 스키마를 변경할 수 있는 것을 말한다.

 

만약 데이터베이스 내부 구조가 변경되어서 물리적 스키마가 변경되어도 물리적 데이터 독립성에 의해 논리적 스키마에는 변화가 없다. 또한 논리적 스키마가 변경되어도 논리적 데이터 독립성에 의해 뷰 스키마에는 변화가 발생하지 않는다.

 

=> 데이터 독립성 덕분에 기존에 개발된 프로그램이 수정 없이 계속 사용될 수 있는 것이다.

'CS > Database' 카테고리의 다른 글

[DB] 인스턴스(Instance)와 스키마(Schema)  (0) 2024.04.06
[DB] Super key, Candidate key, Primary key란  (0) 2024.03.31