DB 스키마란? (관계형 데이터베이스 구조)

오라클, MSSQL, MYSQL, PostgreSQL 등의 RDBMS를 사용하다 보면 스키마(schemas)라는 용어를 많이 접하게 됩니다. 그러나 스키마는 실제 SQL문을 활용하는 과정에서 딱히 사용되지도 않아 추상적인 개념으로 인식되곤 합니다. 스키마가 무엇인지 이해가 쉽게 정리해보겠습니다.

스키마

데이터베이스 스키마는 데이터의 구조를 의미합니다. 쉽게 말해, RDB(관계형 데이터베이스)에서 사용 목적에 맞게 테이터를 저장하기 위해 테이블 구조를 짜고, 컬럼에 기본키, 외래키를 지정하고, 이를 통해 테이블 간 관계 및 제약사항을 만드는 것을 스키마라고 할 수 있습니다. schemas의 일반적 의미인 개요, 윤곽으로 이해하시면 됩니다.

 

스키마는 데이터베이스 구조의 청사진입니다. 프로젝트 초기엔 보통 시각적인 형태로 데이터베이스 구조를 그리는 작업을 진행합니다. 어떤 테이블을 만들 것인지, 각 테이블엔 어떤 컬럼이 들어가는지, 컬럼의 제약조건은 무엇인지, 테이블 간의 관계는 어떻게 구성할 것인지 등을 정하는 겁니다. 이처럼 스키마는 실제 데이터를 포함하고 있는 것은 아니지만 DB가 어떻게 이루어지는지를 보여줍니다.

 

예를 들어, 도서관에 필요한 데이터베이스를 구성하려면 회원 테이블, 도서 테이블, 대출 테이블, 반납 테이블 등이 있어야 할 겁니다. 그리고 회원 테이블의 회원 코드 등은 중복되선 안되니 고유한 값을 가지는 기본키로 지정할 것입니다. 회원이 책을 빌리면 대출 테이블에 기록될 것이고요. 이 같은 데이터 구조를 스키마라고 합니다.

스키마 종류

스키마의 종류는 사용자 관점에 따라 3가지로 나눌 수 있습니다.

  • 개념 스키마(Conceptual Schema) : 논리 스키마로도 불립니다. 데이터베이스의 전체적인 구조를 기술한 스키마입니다. 테이블명, 필드명, 개체 관계, 무결성 제약 등을 정의합니다.
  • 외부 스키마(External Schema) : 사용자에게 보여지는 데이터베이스의 구조를 정의한 것입니다.
  • 내부 스키마(Internal Schema) : 물리 스키마로도 불립니다. 물리적 저장장치, 즉 디스크 스토리지에 데이터가 저장되는 방식을 정의합니다. 데이터베이스 구조를 만드는 데 사용되는 실제 코드가 포함된다고 보면 됩니다.
반응형

댓글

Designed by JB FACTORY