Data Independence
포스트 난이도: HOO_Junior
# 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가 이루어지고 있다.
'Computer Science' 카테고리의 다른 글
[Programming] Cache Memories: Memory Hierarchy, Performance metrics (0) | 2022.02.25 |
---|---|
[Database] DBMS Languages (0) | 2022.02.22 |
[Database] Schema Architecture (0) | 2022.02.21 |
[Database] Schema vs Instance(State) (0) | 2022.02.21 |
[Database] Data Models: Conceptual, Physical, Implementation, Self-describing (0) | 2022.02.21 |
댓글