데이터독립성
태그 :
- 개념
- 데이터의 논리적 구조나 물리적 구조가 변경되더라도 응용 프로그램이 영향을 받지 않는 것
1. DBMS의 궁극적인 목표, 데이터 독립성의 개요
가. 데이터 독립성의 종류
종류 |
정의 및 설명 |
관련 사상 |
논리적 데이터 독립성 |
- DBMS가 데이터베이스의 논리적 구조를 변경시키더라도 기존 응용 프로그램에 영향을 주지 않는 것 - DBMS가 하나의 논리적 데이터 구조를 가지고 많은 응용 프로그램들이 제각각 요구하는 다양한 형태의 데이터 구조로 사상(Mapping)시켜 줄 수 있는 능력이 있을 때 가능 |
논리적 |
물리적 데이터 |
- DBMS가 응용 프로그램이나 데이터베이스의 논리적 구조에 영향을 주지 않고 데이터의 물리적 구조를 변경시킬 수 있는 것 - DBMS가 하나의 논리적 데이터 구조를 가지고 여러 가지 상이한 물리적 구조를 지원할 수 있는 사상 능력이 있을 때 가능 |
물리적 |
나. 데이터 독립성과 데이터 구조간 사상의 개념도
- 논리적 구조 사상(mapping)은 논리적 데이터 독립성을 지원하고, 물리적 구조 사상은 물리적 데이터 독립성을 지원함
2. 데이터 독립성 보장을 위한 3단계 데이터베이스 구조
가. 3단계 데이터베이스 구조(3-Level data Architecture)의 정의
- 데이터베이스의 관리 측면에서 데이터베이스를 외부/개념/내부 단계의 3단계로 구별하여 구조와 그 관계를 기술한 것
나. 3단계 데이터베이스 구조의 개념도
- 외부/개념 단계의 사상: 외부/개념스키마 간의 대응 관계, 논리적 데이터 독립성 제공. 응용(application) 인터페이스
- 개념/내부 단계의 사상: 개념/내부시키마 간의 대응 관계, 물리적 데이터 독립성 제공. 저장(storage) 인터페이스
다. 스키마(Schema)의 정의
- 데이터베이스의 구조(데이터 객체, 관계)와 제약조건의 명세
- 외부/개념/내부스키마로 구성됨
라. 스키마의 종류
스키마 |
내 용 |
관리 정보 |
외부 (External Schema) |
- 데이터베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의한 것 - 개인이나 특정 응용프로그램에 제한된 전체 데이터베이스의 한 논리적 부분 - 서브 스키마(sub schema) |
- 해당 응용 프로그램이나 사용자에 관련된 개체와 관계 정보 |
개념 (Conceptual Schema) |
- 범 기관적 입장에서 데이터베이스를 정의한 것 - 모든 응용 시스템들이나 사용자들 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스를 기술한 것 - 하나의 데이터베이스 시스템은 하나의 개념스키마만 존재 |
- 모든 데이터 객체 정보 (개체, 관계 및 제약조건) - 이들을 효율적 관리를 위한 필수 정보 (접근권한, 보안정책, 무결성 규칙에 대한 명세) |
내부 (Internal Schema) |
- 저장 장치(storage) 입장에서 데이터베이스 전체가 저장되는 방법을 명세한 것 - 개념 스키마에 대한 저장 구조를 정의 - 저장 장치 관점에서 표현 - 내부 레코드의 형식, 인덱스유무, 데이터 표현 방법 기술 |
- 실제 저장될 내부 레코드의 형식, 인덱스의 유무, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등 |
마. 스키마와 인스턴스
구 분 |
스키마 (Schema) |
인스턴스 (Instance) |
정 의 |
- 데이터베이스에 저장되는 데이터의 구조 및 유형을 정의하는 것임 - 데이터베이스의 전체적인 정의를 나 타내며, 일반적으로 논리 스키마 지 칭하고 있음 |
- 데이터베이스에 저장되는 값들을 나타냄 |
특 징 |
- 한 번 정의되면 잘 변경되지 않음 |
- 계속적으로 변화하는 데이터베이스 특성으로 인해 자주 변경됨 |
언 어 |
- DDL (Data Definition Language) |
- DML (Data Manipulation Language) |
3. 3단계 구조의 응용-인사기본의 사례
- 위 구조는 통합된 구조인 인사기본 스키마를 인사부서, 회계부서, 인터넷 사용자에 따라 필요정보를 다르게 볼 수 있는 사용자 뷰를 정의한 사례
- 각 부서의 접근 필요에 따라 개념스키마와 다른 구조의 스키마를 뷰 오브젝트를 통해 가지는 것임