컴공생의 다이어리
3단계 데이터베이스 구조 본문
3단계 데이터베이스 구조
데이터베이스의 복잡한 내부 구조를 감추고 일반 사용자가 데이터베이스를 쉽게 이해하고 이용할 수 있도록 미국의 표준화 기관인 ANSI/SPARC에서는 3단계 데이터베이스 구조(3-level database architecture)를 제안했다.
3단계 데이터베이스 구조는 하나의 데이터베이스를 외부, 개념, 내부 세 단계로 나눈 것이다. 각 단계 별로 다른 추상화를 제공하면 데이터베이스를 효과적으로 관리할 수 있다. 일반적으로 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아진다. 추상화 레벨이 높아진다는 것은 데이터베이스가 실제 어떻게 돌아가는지 관심 없다는 것과 비슷하다. 사용자 관점에서는 내부 시스템을 알 수도 없고 알 필요도 없기 때문이다.
3단계 구조를 통해, 모든 데이터의 저장·유지와 관련된 복잡한 내용을 숨기고 필요한 데이터만 단순화한 외부 단계의 관점을 일반 사용자들에 제공 가능하다.
- 외부 단계(external level) : 개별 사용자 관점
- 개념 단계(conceptual level) : 조직 전체의 관점
- 내부 단계(internal level) : 물리적인 저장 장치의 관점
외부 단계(external level)
3단계 구조 중 제일 개념화가 많이 되어 있는 외부 단계는 데이터베이스를 개별 사용자 관점에서 이해하고 표현한다. 외부 단계에서는 개별 사용자가 데이터베이스를 어떻게 보는가를 표현하므로 사용자마다 생각하는 데이터베이스의 구조가 다르다. 이와 같이 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것을 외부 스키마(external schema)라 한다. 외부 스키마는 각 사용자가 생각하는 데이터베이스의 모습을 표현한 논리적인 구조로, 사용자마다 다르다.
데이터베이스 하나에 외부 스키마가 여러 개 존재할 수 있으며, 사용 목적이 같은 사용자들은 외부 스키마 하나를 공유 할 수 있다. 외부 스키마는 전체 데이터베이스 중 사용자가 관심을 가지는 일부분으로 볼 수 있어 서브 스키마(sub schema)라고도 한다.
개념 단계(conceptual level)
개념 단계는 데이터베이스를 이용하는 사용자들의 관점을 통합해 조직 전체의 관점에서 이해하고 표현한다. 데이터베이스 관리 시스템이나 데이터베이스 관리자는 데이터베이스의 일부분이 아닌 전체에 관심을 둔다. 따라서 개념 단계에서는 이 같은 데이터베이스 관리 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조를 정의하는데, 이를 개념 스키마(conceptual schema)라 한다.
개념 스키마는 조직 전체의 관점에서 생각하는 데이터베이스의 모습이다. 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함한다. 하지만 데이터를 물리적으로 저장하는 방법이나 데이터 저장 장치와는 독립적이다.
데이터베이스 하나에는 개념 스키마 하나만 존재한다. 개념 스키마의 일부분을 사용자의 이용 목적에 맞게 사용하는 것이 외부 스키마이다. 일반적으로 스키마라고 하면 개념 스키마를 의미한다.
내부 단계(internal level)
내부 단계는 데이터베이스를 저장 장치의 관점에서 이해하고 표현한다. 즉, 내부 단계는 전체 데이터베이스가 디스크와 테이프 같은 저장 장치에 실제로 저장되는 방법을 정의하는데, 이를 내부 스키마(internal schema)라 한다.
데이터베이스는 저장 장치에 파일 형태로 저장되는데 내부 스키마는 파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드의 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의한다. 내부 스키마 역시 데이터베이스 하나에 내부 스키마 하나만 존재한다.
http://www.yes24.com/Product/Goods/67882661
http://www.kocw.net/home/search/kemView.do?kemId=1163794
https://agilestarskim.github.io/posts/what-is-database-03
'Development > Database & SQL' 카테고리의 다른 글
DBeaver(디비버) DB연결 (0) | 2022.02.13 |
---|---|
DBeaver(디비버) - 설명, 설치 (0) | 2022.02.12 |
[MySQL] 조건문 - CASE WHEN (0) | 2022.02.07 |
[MySQL] 절대값 함수 - ABS (0) | 2022.02.03 |
[MySQL] TIMESTAMP 시간 차이 계산 - TIMESTAMPDIFF (0) | 2022.02.02 |