instance
인스턴스는 특정한 순간에 DB에 저장된 정보의 모임을 말합니다.
다시말해 영구적이지 않다는 의미입니다.
프로그래밍 언어를 공부하면서 자주 들어봤을 단어이기도 하며, 제 개인적인 의견으로, 본질적으로는 PL에서 말하는 인스턴스와 DB에서 말하는 인스턴스는 같다고 생각합니다.
schema
스키마는 DB의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터의 집합을 말합니다.
한 단어로 정리하자면 ‘구조’ 라고 할 수 있습니다.
스키마는 관점에 따라 3개로 분류할 수 있습니다. 여러가지 이름으로 불립니다.
- 물리 스키마(physical / internal / storage schema)
- 논리 스키마(logical / conceptual schema)
- 서브 스키마(sub / external schema)
physical schema
내부스키마, 저장스키마 라고도 불리는 물리적 스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조를 말합니다.
실제 물리적인 저장장치에 저장될 레코드의 구조, 순서 등을 나타냅니다.
logical schema
개념스키마 라고도 불리우는 논리적 스키마는 DB에 저장될 데이터의 제약조건과 데이터간의 관계를 기술한 정보입니다.
| 학번 | 이름 | 성별 |
|---|---|---|
| 001 | 김은혜 | 남자 |
| 002 | 김인호 | 여자 |
위 표를 예시로 들면
001, 김은혜, 남자, 002, 김인호, 여자 는 data 입니다.
학번, 이름, 성별은 meta data 입니다.
학번은 1~999 사이의 값을, 성별은 남자/여자 값만을 가질 수 있습니다. 이것을 제약조건이라고 합니다.
학번, 이름, 성별, 제약조건을 모아 기술한 논리적인 구조를 logical schema라고 합니다.
sub schema
서브 스키마(외부스키마)는 논리적 스키마에서 사용자에게 필요한 일부분만을 보여주는 스키마를 말합니다.
view 관점에서 존재하는 스키마이며, 따라서 여러개의 스키마가 존재합니다.