DB Schema(스키마)란?
일단 Schema(스키마)에 대해 알아보자면 데이터베이스의 구조(개체,속성,관계)와 제약조건을 정의한다고 되어있다.
그래서 데이터베이스의 구조에 대해 살펴보자면
개체(Entity): 데이터로 표현할려는 객체 ex) 상품,유저
속성(Attribute): 개체가 가지는 속성 ex) 가격, 이름
관계(Relation): 개체와 개체 사이의 연관성 ex) 유저가 상품을 "구매"라는 관계를 가짐
이렇게 나누어져 있다.
- 스키마는 데이터 사전이라는 곳에 저장된다.
참고) 데이터 사전이란? 읽기전용으로 제공되는 테이블 및 뷰들의 집합- 스키마는 특정 데이터 모델을 이용해서 만들어진다.
- 스키마는 시간에 따라 불변인 특성을 가진다.
- 스키마는 데이터의 구조적 특성을 의미하고, 인스턴스에 의해 규정된다.
스키마는 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.

사진출처: https://iingang.github.io/posts/DB-schema/
외부 스키마는 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이라고 할 수 있고, 전체 데이터베이스의 한 부분으로 볼 수 있어 서브 스키마라고도 한다.
외부 스키마는 한개가 아니라 여러개 존재할 수 있으며 일반 사용자는 질의어(SQL)를 이용하여 데이터베이스를 쉽게 사용할 수 있다.
개념 스키마는 데이터베이스의 전체적인 논리적 구조 즉, 모든 응용프로그램 또는 사용자들이 필요로 하는 데이터를 종합한 것이라고 할 수 있으며 하나만 존재한다.
데이터베이스의 접근 권한, 보안, 무결성 규칙에 관한 명세를 정의한다.
보통 스키마라고만 말하면 개념 스키마를 뜻한다.
사용자가 아닌 물리적 저장장치의 입장에서 본 데이터베이스 구조이며, 물리적 저장장치와 밀접한 관계가 있다.
데이터베이스에 저장될 레코드의 물리적인 구조를 정의한다.
참고한 사이트
https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EC%8A%A4%ED%82%A4%EB%A7%88-%EC%A0%95%EB%A6%AC
https://iingang.github.io/posts/DB-schema/