데이터 독립성

    DBMS를 사용하는 이유 중 하나는 DBMS가 데이터 독립성을 제공하기때문이다.

    데이터 독립성이라는 말만 들었을때 직관적으로 의미가 다가오지 않는다. 

     

    데이터 독립성은 데이터베이스의 물리적 구조나 저장 방식이 변경되어도 응용 프로그램이나 사용자 인터페이스에 영향을 주지 않는다는 것을 말한다. 

     

    물리적 데이터 독립성: 데이터베이스의 물리적구조/저장방식이 변경

    데이터베이스가 물리적 저장 구조가 변경된다는 것은 예를 들어

    데이터가 디스크에 실제로 배치되는 방법이 변경되어 데이터를 저장하던 저장 하드웨어가 HDD에서 SDD로 변경된다던지, 

    특정 레코드의 빠른 검색을 가능하게 하기 위해 파일 구조의 변경을 하여 순차 파일에서 인덱스 파일로 변경이 일어난다는 것을 의미한다.

     

    물리적 스키마가 변경되어도 개념 스키마가 그대로 유지되는 독립성을 가지므로, 응용 프로그램을 변경하지 않고 저장의 세부사항을 변경할 수 있다. 

    (물리적 스키마 와 개념적 스키마 사이의 독립성)

     

     

    논리적 데이터 독립성: 데이터베이스의 개념 스키마(논리적 구조)가 변경

    데이터베이스의 논리적 구조가 변경되어 테이블 구조가 변경된다거나 관계 추가/삭제가 발생하는 경우에도 응용 프로그램에 영향을 주지 않는데, 이는 (응용 프로그램이 사용하는 데이터베이스의 뷰를 의미하는) 외부 스키마와 (데이터베이스의 전체적인 논리적 구조인) 개념 스키마가 분리되어있기 때문이다. 

    (개념적 스키마와 외부 스키마 사이의 독립성)

     

     

    -- 초기 개념 스키마
    CREATE TABLE Employees (
        employee_id INT PRIMARY KEY,
        name VARCHAR(100),
        department VARCHAR(50)
    );
    
    -- 외부 스키마 (응용 프로그램이 사용하는 뷰)
    CREATE VIEW EmployeeView AS
    SELECT employee_id, name, department
    FROM Employees;
    
    -- 응용 프로그램 쿼리 (변경되지 않음)
    SELECT * FROM EmployeeView WHERE department = 'IT';
    
    -- 개념 스키마 변경 (테이블 구조 변경)
    ALTER TABLE Employees
    ADD COLUMN salary DECIMAL(10,2);
    
    -- 외부 스키마 유지 (뷰 정의 변경 없음)
    -- 응용 프로그램 쿼리는 여전히 동일하게 작동

     

    데이터베이스의 3가지 추상화 단계

    외부 스키마 (external schema , View)

    최종 사용자들의 요구에 의해 방향이 정해지는 데이터 접근, 쿼리를 했을때 임시 table 이다.

     

    개념 스키마 (conceptual schema = logical schema)

    데이터베이스의 전체적인 논리적 구조를 나타낸다. 엔티티, 관계, 제약 조건 등을 포함한 전체 데이터베이스의 내용을 기술한다. ER 다이어그램이나 관계형 스키마로 표현된다.

     

    물리 스키마 (physical schema)

    파일 구조, 인덱스, 접근 경로, 파티셔닝 등의 물리적 저장 구조를 정의한다.

     

    'CS > 데이터베이스' 카테고리의 다른 글

    트랜잭션  (0) 2024.09.21

    댓글