본문 바로가기
Computer Science

[Database] Data Independence: Logical and Physical

by Henry Cho 2022. 2. 22.
728x90

Data Independence


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Data Independence

Data Independence는 Centralized 된 DBMS에 부분적으로 Data schema를 수정하고자 할 때 어떤 식으로 나눌지에 대해서 정의한다.

Database는 한번 구성이되고 Data schema의 변동사항 없이 평생 사용할 수도 있지만 대부분은 부분적 변경이 지속적으로 이루어진다.

데이터 자체의 업데이트가 될 수도 있지만 구조적이나 기존 제약 부분에 대한 부분을 수정이나 보완이 필요한 경우가 발생한다.

이때 우리는 매번 새로운 database를 만들 수는 없다.

효율성 면에서 기존의 database를 부분적으로 수정하여 사용할 수 있으면 효과적인데 이게 바로 Data independence인 것이다.

Data schema라는 것은 데이터의 전반적인 설명이라고 했듯이 Data schema를 부분적으로 수정할 수 있도록 설명해주는 것이 Data independence이다.

Data schema의 경우 세가지 구조를 가지고 있지만 Data independence는 크게 2가지 방식으로 나뉜다.

왜냐하면 최종 단계인 External schema는 수정 및 보완하는데 어려움이 없기 때문이다.

External schema를 수정한다는 것은 사실상 전반적인 Database schema의 수정이 들어가는 것이기에 Conceptual과 Internal 부분에 있어서만 부분적 수정이 이루어진다.

 


# Logical Data Independence

Logical data independence는 용어에서도 유추가 가능하듯이 논리적인 부분만을 수정하는 걸 의미한다.

Schema에서 논리적인 부분을 conceptual 부분을 의미하며, External schema의 수정 없이 conceptual 부분만 수정하는 걸 의미한다.

결과적으로 Logical data independence는 conceptual과 internal schema 두 부분을 수정하게 된다.

논리적인 부분을 수정한다는 건 Database에 저장되는 전반적인 구조나 체계 또는 제약적인 부분을 수정 및 보완한다는 의미를 가진다.

End users가 보는 External schema의 변경없이 database의 전반적인 논리성 부분을 수정한다는 건 사실상 어려운 작업이다.

작업이 어렵다기 보다는 까다로운 작업이라고 하는 것이 적합할 것이다.

 


# Physcial Data Independence

Physcial data independence는 External, Conceputal schema를 제외한 채 internal 부분만을 수정하는 것을 의미한다.

한마디로 database의 performance를 높이기 위해서 일부 데이터 값의 구조를 변경할 수는 있지만 전반적인 데이터베이스의 구조를 변경하지는 않는다.

따라서 Database에서 달라지는 건 내부 데이터의 저장 방식이나 데이터값의 구조적 변경이지, Database 자체가 변경되지는 않는다.

이 점에서 많은 Database들이 Physical data independence가 이루어지고 있다.

 


728x90

댓글