개발자들과의 미팅에서  아래와 같은 말을 쉽게 들을 수 있습니다.

"DB 스키마부터 정의하자."
"데이터베이스 스키마가 잘못되어있었다" 등등...

과연 데이터베이스 스키마란 무엇일까요? 아래에서 간단하게 알아보려고 합니다.




# 데이터베이스 스키마란?
먼저 스키마(Schema)란 용어는 심리학(Psychology)... 특히 인지 심리학에서 온 용어입니다. 스키마는 과거의 오래된 경험으로부터 생성된 것으로 생명체가 어떤 사물이나 대상으로부터 인지하고 반응하는 것을 말합니다. 즉 오랜 경험에 의하여 만들어진 행동의 결과가 바로 스키마죠.

스키마가 무엇인지 알았다면 데이터베이스에서의 스키마 역시 비슷한 의미로 생각하면 될 것입니다. 물리적인 하드웨어 부분에서 데이터베이스가 생성되고 이를 직접적으로 사용하는 대상에게 인지하고 반응하게 되는 모든 과정을 일컬어 데이터베이스 스키마라 부를 수 있습니다. 이런 데이터베이스 스키마는 세 가지로 구분되는데 아래와 같다고 합니다.

개념 스키마(Concept schema)
내부 스키마(Internal schema)
외부 스키마(External schema)

각각의 스키마마다 정의하는 바를 다 알아볼 필요는 없지만 일반적으로 스키마라고 하는 것은 바로 개념 스키마를 의미합니다. 개념 스키마는 DB에서 필요에 따라 적합한 데이터 구조를 컬럼에 따라 적절하게 선택, 결정하는 것을 의미합니다.