민규의 흔적

[오라클 DB] 데이터베이스 구조 - ANSI/SPARC 아키텍쳐 본문

데이터베이스

[오라클 DB] 데이터베이스 구조 - ANSI/SPARC 아키텍쳐

민규링 2023. 10. 17. 16:40

ANSI / SPARC 아키텍쳐

 

대부분의 DBMS 아키텍쳐는 1978년에 미국 표준화 기관인 ANSI/SPARC에서 제안하였다.

ANSI/SPARC 아키텍쳐는 내부, 개념, 외부 3단계로 구성된다.

데이터베이스를 관점에 따라 3계층으로 분리하여 사용자에게 복잡한 데이터베이스를 단순화된 관점으로 제공하며 궁극적으로 데이터 독립성을 제공하기 위한 목적이다.

 

ANSI / SPARC 3단계 아키텍쳐

 

ANSI/SPARC 3단계 아키텍쳐는 단계별 추상화를 제공한다.

 

  1. 외부 단계(external level): 개별 사용자 관점 뷰
  2. 개념 단계(conceptual level): 조직 전체의 관점 뷰
  3. 내부 단계(internal level): 물리적 저장 장치 관점 뷰

일반적으로 내부 단계에서 외부 단계로 갈수록 추상화 레벨이 높아진다. 이는 데이터베이스가 실제로 어떻게 구성되어 있고 동작하는지 관심이 없다는 의미이다.

외부 단계의 사용자 관점에서는 데이터베이스가 어떻게 동작을 하던 사용자가 원하는 데이터를 응용 프로그램을 통해 보여줄 수 있으면 되기 때문에 내부 시스템을 볼 필요도 없고 궁금해할 이유도 없기 때문이다.

 

단계별 추상화

 

 

외부 단계

 

데이터베이스를 개별 사용자 관점에서 이해하고 표현하는 단계이다.

다양한 사용자를 위해 동일한 다수의 서로 다른 뷰가 제공될 수 있다.

또한 여러 개의 외부 스키마가 있을 수 있다.

 

어떤 커뮤니티 사이트에서 A게시판에 접속한 사용자는 A게시판에 업로드 되어있는 게시글만 보면 되고, B게시판에 접속한 사용자는 B게시판에 업로드 되어있는 게시글만 보면 된다. (여러 개의 외부 스키마)

외부 스키마(external schema)
- 외부 단계에서 사용자에게 필요한 데이터베이스를 정의한 것
- 서브 스키마(sub schema)라고도 한다.

 

 

개념 단계

 

데이터베이스를 조직 전체의 관점에서 이해하고 표현하는 단계이다.

데이터베이스마다 오직 한 개의 개념 스키마가 존재한다.

 

어떤 커뮤니티 사이트의 데이터베이스 관리자는 데이터베이스 일부분이 아닌 전체에 관심을 둘 것이다.

A게시판, B게시판, C게시판을 운영하는 커뮤니티 사이트라면 A ~ C 게시판에 필요한 모든 데이터와 회원 정보 등을 통합하여 전체 데이터베이스의 논리적 구조를 정의하는데 이를 개념 스키마라고 한다.

개념 스키마(conceptual schema)
- 개념 단계에서 전체 데이터베이스의 논리적 구조를 정의한 것
- 조직 전체의 관점에서 생각하는 데이터베이스의 모습
- 전체 데이터베이스에 어떤 데이터가 저장되는지, 데이터들 간에는 어떤 관계가 존재하고 어떤 제약조건이 있는지에 대한 정의뿐만 아니라, 데이터에 대한 보안 정책이나 접근 권한에 대한 정의도 포함

 

 

내부 단계

 

데이터베이스를 저장 정치의 관점에서 이해하고 표현하는 단계이다.

데이터베이스에 어떤 데이터가 어떻게 저장되어 있는가를 기술하며, 하나의 데이터베이스에 내부 스키마가 하나만 존재한다.

 

운영하는 커뮤니티 사이트의 모든 데이터를 데이터베이스에 저장할 때, 각 데이터를 저장하는 레코드 구조, 레코드를 구성하는 필드의 크기, 인덱스를 이용한 레코드 접근 경로 등을 정의한다.

 

내부 스키마(internal schema)
- 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의한 것
- 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의

 

 

3단계 데이터베이스의 예

 

 

3단계 데이터베이스 구조의 사상

 

3단계 스키마 사이의 대응 관계를 정의하는 궁극적인 목적은 데이터 독립성 실현이다.

 

데이터 독립성(Data Independency)
- 상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미


논리적인 데이터 독립성(Logical data Independence)
- 개념 스키마의 변화로부터 외부 스키마가 영향을 받지 않음을 의미
- 기존의 외부 스키마에 영향을 미치지 않고, 응용 프로그램을 다시 작성할 필요 없이 개념 스키마에 대한 변화가 가능해야 함.


물리적인 데이터 독립성(Physical data Independence)
- 내부 스키마의 변화가 개념적 스키마에 영향을 미치지 않으며, 따라서 외부 스키마(또는 응용 프로그램)에도 영향을 미치지 않음을 의미
- 내부 스키마의 변화의 예로는, 파일의 저장 구조를 바꾸거나 인덱스를 생성 및 삭제하는 등이 있다.

 

 

외부/개념 사상(external / conceptual mapping)

외부 단계의 뷰를 사용해서 입력된 사용자의 질의를 개념 단계의 스키마를 사용한 질의로 변환하는 과정

 

 

 

개념/내부 사상(conceptual / internal mapping)

개념 스키마를 내부 단계의 스키마로 변환하여 디스크의 데이터베이스에 접근