본문 바로가기
IT 이론/데이터베이스

[시험대비] 외부 스키마, 개념 스키마, 내부 스키마를 구분하자!

by 지식id 2015. 10. 16.
반응형

굳이 이런 개념으로 나눠 둔 이유는 잘 모르겠지만, 배우는 입장인 우리는 이 의미를 명확히 구분할 수 있어야 한다.


외부 스키마(External Schema, Sub Schema)

 응용프로그램 개발자의 관점에서 보는 스키마. 정확한 표현은 아니지만 쉽게 View라고 생각하면 된다. 겉으로 보이는 DB, Table의 형태인 것이다. 사용 주체나 응용 프로그램에 따라서 같은 데이터가 같은 구조로 저장되어 있는 데이터베이스에서 바라보는 관점이 다를 수도 있다. 누군가는 SELECT * FROM table에서 특정 테이블의 모든 에트리뷰트와 데이터들을 바라보고 누군가는 JOIN이나 MERGE를 통해 여러 테이블을 동시에 조회 할 수도 있다. 그들이 바라보고 있는, 우리가 DBMS 툴에서 SELECT 쿼리를 던졌을때 볼 수 있는 그 표를 외부 스키마의 대표적인 예라고 쉽게 생각하자. 하지만 그렇다고 외부 스키마가 조회된 결과값을 의미 한다는 것은 아니다. 


개념 스키마(Conceptional Schema)

 DA가 설계한 그 DB구조, 그것이 개념 스키마이다. 보통 스키마라고 하면 이 개념스키마의 개념으로 받아들여지는 경우가 많다. 외부 스키마랑 다르게 보여지는 형태의 관점이 아니라 그 구조적 관점을 생각해야 한다. 쉽게 이해하려면 ER다이어그램을 떠올려 보자. 어떤 테이블이 어떻게 구성되어 있고 속성은 무엇이며 어떤 테이블과 릴레이션을 이루고 있는가. 이러한 관점의 스키마가 개념 스키마이다. 이해를 돕기 위해 말해두자면 한 데이터베이스에서 외부 스키마는 수업이 많은 형태로 수없이 많이 존재할 수 있지만 개념 스키마는 오직 하나 뿐이다.


내부 스키마(Internal Schema)

 이는 DBMS이용자에겐 잘 드러나지 않는 스키마이다. DA가 아닌 오라클사의 개발자가 보는 관점의 스키마랄까? 어떤 데이터가 어떤 테이블의 어떤 row의 어떤 애트리뷰트에 있다는 개념이 아니라, B-트리 자료구조의 어디에 저장되어 있고, 디스크의 어느 위치에, 메모리의 어느 페이지에 저장돼 있는지의 관점으로 바라보는 개념이다. 우리는 단순히 INSERT로 데이터를 삽입하지만 이 INSERT문에 의해 저장되는 그 VALUES는 어떠한 알고리즘으로 하드디스크의 어떠한 부분에 저장이 될 것이다. 이런 시스템적인, 물리적인 시각의 스키마가 내부 스키마이다.

반응형

댓글