데이터 독립성

Data independence

데이터 독립성은 중앙집중식 DBMS에 중요한 데이터 투명성의 유형으로, 데이터의 정의와 구성에서 이루어지는 변경에 대한 사용자 응용프로그램의 내성을 말한다. 애플리케이션 프로그램은 이상적으로는 데이터 표현 및 저장의 세부사항에 노출되어서는 안 된다. DBMS는 그러한 세부사항을 숨기는 데이터의 추상적인 보기를 제공한다.

데이터 독립성에는 물리적 데이터와 논리적 데이터 독립성의 두 가지 유형이 있다.

데이터 독립성과 운영 독립성은 함께 데이터 추상화의 특징을 제공한다. 데이터 독립성에는 두 가지 수준이 있다.

첫 번째 데이터 독립성 수준

데이터의 논리적 구조를 '구성표 정의'라고 한다. 일반적으로 사용자 애플리케이션이 관계 속성의 하위 집합에서 작동하는 경우, 동일한 관계에 새로운 속성이 추가될 때 나중에 영향을 받지 않아야 한다. 논리적 데이터 독립성은 개념 스키마가 기존 스키마에 영향을 주지 않고 변경될 수 있음을 나타낸다.

두 번째 데이터 독립성 수준

데이터의 물리적 구조를 "물리적 데이터 설명"이라고 한다. 물리적 데이터 독립성은 스토리지 구조의 세부 정보를 사용자 애플리케이션으로부터 숨기는 것을 다룬다. 데이터에 대해 수행되는 작업에는 개념적으로 차이가 없기 때문에 신청서는 이러한 문제와 관련되지 않아야 한다. 데이터 독립성에는 세 가지 유형이 있다.

  1. 논리적 데이터 독립성: 외부 스키마(User View)를 변경하지 않고 논리(개념) 스키마를 변경할 수 있는 기능을 논리 데이터 독립성이라고 한다. 예를 들어, 개념 스키마에 새로운 엔티티, 속성 또는 관계를 추가하거나 제거하거나 기존 애플리케이션 프로그램을 다시 작성해야 하는 경우.
  2. 물리적 데이터 독립성: 논리적 스키마를 변경하지 않고 물리적 스키마를 변경할 수 있는 기능을 물리적 데이터 독립성이라고 한다. 예를 들어, 다른 파일 구성이나 스토리지 구조, 저장 장치 또는 인덱싱 전략을 사용하는 것과 같은 내부 스키마의 변경이 개념적 스키마나 외부 스키마를 변경할 필요 없이 가능해야 한다.
  3. 보기 수준 데이터 독립성: 보기 수준 위에 다른 수준이 없기 때문에 항상 독립적인 효과가 없음.

데이터 독립성

데이터 독립성은 다음과 같이 설명할 수 있다. 각 상위 레벨의 데이터 아키텍처는 다음 하위 레벨의 아키텍처 변경에 영향을 받지 않는다.

최적화나 재구성의 이유로 일부 데이터의 저장 공간이나 유형이 변경되더라도 논리 체계는 변하지 않는다. 이 경우 외부 스키마는 변경되지 않는다. 여기서 일부 물리적 스키마가 재편성되어 내부 스키마 변경이 필요할 수 있다. 물리적 데이터 독립성은 대부분의 데이터베이스와 파일 환경에서 하드웨어의 인코딩 저장, 디스크의 정확한 데이터 위치, 레코드 병합 등이 사용자로부터 숨겨져 있다.

데이터베이스의 가장 큰 장점 중 하나는 데이터 독립성이다. 그것은 우리가 다른 수준의 데이터에 영향을 주지 않고 한 수준에서 개념 스키마를 변경할 수 있다는 것을 의미한다. 그것은 또한 우리가 사용자와 프로그램이 요구하는 데이터에 영향을 주지 않고 데이터베이스의 구조를 바꿀 수 있다는 것을 의미한다. 이 기능은 파일 지향 접근 방식에서는 사용할 수 없었다.

데이터 독립성 유형

스키마 정의의 스키마에 영향을 주지 않고 한 수준에서 스키마 정의를 수정할 수 있는 기능을 데이터 독립성이라고 한다. 데이터 독립성에는 물리적 데이터 독립성과 논리적 데이터 독립성이라는 두 가지 레벨이 있다.

  1. 물리 데이터 독립성은 응용 프로그램이 다시 작성되도록 하지 않고 물리적 스키마를 수정할 수 있는 능력이다. 성능 향상을 위해 물리적 수준의 수정이 필요한 경우도 있다. 즉, 데이터의 개념적 또는 외부 보기에 영향을 주지 않고 물리적 스토리지/레벨을 변경해야 함을 의미한다. 새로운 변화는 지도 기술에 의해 흡수된다.
  2. 논리 데이터 독립성은 응용 프로그램 프로그램을 다시 작성하게 하지 않고 논리 스키마를 수정할 수 있는 능력이다. 논리적 수준의 수정은 데이터베이스의 논리적 구조가 변경될 때마다 필요하다(예: 금융 시스템에 화폐 시장 계정이 추가되는 경우). 논리적 데이터 독립성은 일부 새 열을 추가하거나 테이블에서 일부 열을 제거하면 사용자 보기와 프로그램이 변경되지 않아야 함을 의미한다. 예를 들어, 두 명의 사용자 A와 B를 고려하십시오. 두 사용자 모두 "EmperteNumber"와 "EmperteName" 필드를 선택하고 있다. 사용자 B가 테이블에 새 칼럼(예: 급여)을 추가하면, 데이터베이스 내부 스키마가 사용자 A&B에 대해 모두 변경되었지만, 사용자 A의 외부 보기에 영향을 미치지 않는다.

애플리케이션 프로그램은 액세스하는 데이터의 논리적 구조에 크게 의존하기 때문에 논리적 데이터 독립성은 물리적 데이터 독립성보다 달성하기가 더 어렵다.

참고 항목