DBMS의 데이터 독립성: 예제를 통한 물리적 및 논리적
⚡ 스마트 요약
데이터 독립성은 DBMS의 속성 중 하나로, 한 레벨의 스키마가 변경되더라도 바로 상위 레벨의 스키마는 변경되지 않도록 하는 기능입니다. 물리적 데이터 독립성과 논리적 데이터 독립성 두 가지 형태가 있으며, 데이터를 사용하는 프로그램과 분리하여 관리합니다.

DBMS에서 데이터 독립성이란 무엇인가요?
데이터 독립성은 데이터베이스 관리 시스템(DBMS)의 속성 중 하나로, 데이터베이스 시스템의 한 계층에서 스키마를 변경하더라도 바로 상위 계층의 스키마를 변경할 필요가 없도록 해줍니다. 데이터 독립성을 통해 데이터를 해당 데이터를 사용하는 모든 프로그램과 분리하여 관리할 수 있습니다.
저장된 데이터를 연산 및 프레젠테이션에 사용할 수 있습니다. 많은 시스템에서 데이터 독립성은 시스템 구성 요소에 필수적인 기능입니다.
데이터 독립성 유형
In DBMS 데이터 독립성에는 두 가지 유형이 있습니다.
- 물리적 데이터의 독립성.
- 논리적 데이터 독립성.
두 유형 모두 데이터베이스의 계층형 설계를 기반으로 하므로 먼저 해당 계층 구조를 검토하는 것이 좋습니다.
데이터베이스의 레벨
데이터 독립성에 대해 배우기 전에 데이터베이스 레벨에 대한 복습이 중요합니다. 데이터베이스는 아래 그림과 같이 세 가지 레벨로 구성됩니다.
- 물리적/내부적
- 개념적
- 외부

이것들은 아래에서 자세히 설명된 것과 동일한 레이어입니다. DBMS 스키마대학교 데이터베이스의 예를 들어 보겠습니다. 각 단계별 구현은 다음과 같습니다.
| 스키마 유형 | 실시 |
|---|---|
| 외부 스키마 |
1도 보기: 코스 정보(cid:int, cname:string) 2도 보기: 학생 정보(id:int, name:string) |
| 개념적 도식 |
Students(id: int, name: string, login: string, age: integer) Courses(id: int, cname: string, credits: integer) Enrolled(id: int, grade: string) |
| 물리적 스키마 |
|
물리적 데이터 독립성
물리적 데이터 독립성은 개념적 수준과 내부 또는 물리적 수준을 분리하는 데 도움이 됩니다. 이를 통해 물리적 구조를 명시하지 않고도 데이터베이스에 대한 논리적 설명을 제공할 수 있습니다. 논리적 독립성에 비해 물리적 데이터 독립성은 달성하기 쉽습니다.
물리적 독립성을 통해 개념적 스키마에 아무런 영향을 주지 않고 물리적 저장 구조나 장치를 변경할 수 있습니다. 모든 변경 사항은 맵에 반영됩니다.ping 개념적 수준과 내부 수준 사이의 관계입니다. 물리적 데이터 독립성은 데이터베이스의 내부 수준의 존재와 개념적 수준에서 내부 수준으로의 변환을 통해 달성됩니다.
물리적 데이터 독립성 하에서의 변화 사례
물리적 독립성 때문에 아래의 변경 사항들은 개념적 계층에 영향을 미치지 않습니다.
- 하드 드라이브나 자기 테이프와 같은 새로운 저장 장치를 사용하는 것.
- 데이터베이스의 파일 구성 방식을 수정합니다.
- 다른 데이터 구조로 전환합니다.
- 접근 방법을 변경합니다.
- 인덱스 수정.
- 압축 기술의 변화 또는 해싱 알고리즘.
- 데이터베이스 위치를 변경하는 것, 예를 들어 C 드라이브에서 D 드라이브로 변경하는 것.
논리적 데이터 독립성
논리적 데이터 독립성이란 개념적 스키마를 변경하더라도 다음을 변경하지 않는 능력입니다.
- 외부 모습.
- 외부 API 또는 프로그램.
변경 사항은 모두 지도에 반영됩니다.ping 외부적 수준과 개념적 수준 사이의 차이입니다. 물리적 데이터 독립성에 비해 논리적 데이터 독립성을 달성하는 것은 어렵습니다.
논리적 데이터 독립성 하에서의 변화 사례
논리적 독립성 때문에 아래의 변경 사항은 외부 레이어에 영향을 미치지 않습니다.
- 기존 애플리케이션 프로그램을 다시 작성하지 않고도 새로운 속성, 엔티티 또는 관계를 추가, 수정 또는 삭제할 수 있습니다.
- 두 개의 레코드를 하나로 병합합니다.
- 기존 레코드를 두 개 이상의 레코드로 분할합니다.
물리적 데이터 독립성과 논리적 데이터 독립성의 차이점
| 논리적 데이터 독립성 | 물리적 데이터 독립성 |
|---|---|
| 주로 데이터 구조 또는 데이터 정의 변경과 관련이 있습니다. | 주로 데이터 저장에 관심이 있습니다. |
| 데이터 검색은 주로 논리적 구조에 의존하기 때문에 어렵습니다. | 쉽게 검색할 수 있습니다. |
| 신체적 독립에 비해 달성하기가 더 어렵습니다. | 논리적 독립성에 비하면 달성하기 쉽습니다. |
| 새로운 필드를 추가하거나 삭제하는 경우, 응용 프로그램도 수정해야 합니다. | 물리적 수준에서의 변경은 일반적으로 애플리케이션 프로그램 수준에서의 변경을 필요로 하지 않습니다. |
| 데이터베이스의 논리적 구조가 변경될 때마다 논리적 수준에서의 수정은 중요한 의미를 갖습니다. | 성능 향상을 위해 내부적인 수정이 필요할 수도 있고 필요하지 않을 수도 있습니다. |
| 개념 체계와 관련이 있습니다. | 내부 스키마와 관련이 있습니다. |
| 예: 새 속성을 추가, 수정 또는 삭제합니다. | 예시: 압축 기술, 해싱 알고리즘, 저장 장치 등의 변화 |
데이터 독립성의 중요성
- 데이터 품질을 향상시키는 데 도움이 됩니다.
- 데이터베이스 시스템 유지 관리 비용을 절감할 수 있습니다.
- 표준을 시행하고 데이터베이스 보안을 강화합니다.
- 응용 프로그램의 데이터 구조를 변경할 필요가 없습니다.
- 이를 통해 개발자는 내부 구현보다는 데이터베이스의 일반적인 구조에 집중할 수 있습니다.
- 데이터베이스 불일치를 크게 줄여줍니다.
- 물리적 수준에서 수정을 가하여 시스템 성능을 향상시킬 수 있습니다.
