본문 바로가기

Programming/DataBase

(SQL)스키마(SCHEMA)에 대해 알아보자!!

728x90
반응형




▣ 스키마(SCHEMA)란?

  -  데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것입니다.

  -  개체의 특성을 나타내는 속성과 속성들의 집합으로 이루어진 개체, 개체 사이에 존재하는 관계에 대한 정의와 이들이 유지해야 할 제약조건들을 기술한 것입니다.

  -  DB내에서 어떤 구조로 데이터에 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 합니다.

  -  DB내에 있는 데이터 논리적 단위 사이의 관계성을 표현합니다.

  -  사용자의 관점에 따라 외부, 개념, 내부 스키마로 구분합니다.



 스키마의 특징

  - 스키마는 데이터 구조적 특성을 의미합니다.

  - 스키마는 데이터 사전(Data Dictionary)에 저장됩니다.

  - 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어집니다.

  - 스키마는 시간에 따라 불변인 특성을 갖습니다.

  - 스키마는 데이터의 논리적 단위에 명칭을 부여하고 그 의미를 기술합니다.


 스키마의 3계층

 ◇ 외부 스키마

  - 외부 스키마는 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.

  - 외부 스키마는 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로, 서브 스키마(Sub Schema)라고도 한다.

  - 하나의 데이터베이스 관리 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마는 여러 개의 응용 프로그램이나 사용자에 의해 공유될 수 있다.

  - 외부 스키마는 동일한 데이터베이스에 대해서 서로 다른 관점을 정의할 수 있도록 허용한다.

EX) 한 사용자는 SELECT * FROM TABLE; 을 사용해 데이터를 볼 수 있다.

     다른 사용자는 JOIN을 통해 테이블을 결합해 조회할 수 있다.

     SELECT 쿼리를 던졌을 때 볼 수 있는 테이블을 외부스키마의 대표적인   예 라고 할 수 있다.


 ◇ 개념 스키마

  - 개념 스키마는 개체 간의 관계와 제약조건을 나타내고 데이터베이스의 접근 권한, 보안 정책 및 무결성 규정에 관한 명세를 정의한 것이다.

  - 개념 스키마는 데이터베이스의 논리적 구조로서, 모든 으용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 명세로서 하나만 존재한다.

  - 단순히 스키마라고 하면 개념 스키마를 의미한다.

  - 개념 스키마는 기관이나 조직의 관점에서 데이터베이스를 정의한 것이다.

  - 개념 스키마는 데이터베이스 관리자에 의해서 작성된다.

EX) E-R 다이어그램의 테이블 구조와 같이 테이블의 구성과, 속성이 어떻게 되는지, 또한 어떤 테이블과 릴레이션을 갖고 있는지 등의 점을 개념 스키마라고 한다.


  ◇ 내부 스키마

   - 내부 스키마는 데이터베이스의 물리적 구조를 정의한 것이다,.

   - 내부 스키마는 물리적 저장장치의 관점에서 본 전체 데이터베이스의 명세로서 하나만 존재한다.

   - 내부 스키마는 개념 스키마의 물리적 저장 구조에 대한 정의를 기술한 것이다,

   - 내부 스키마는 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.

EX) INSERT문에 의해 저장되는 VALUES가 어떠한 알고리즘으로 하드디스크의 어떠한 부분에 저장이되는데, 이러한 시스템적, 물리적인 시각의 스키마를 내부 스키마라고 한다.

반응형