스키마schema

database에 저장되는 데이터 구조와 제약조건constraint 등을 정의한 것.

Sub:
외부스키마external_schema
외부 관점에서의 개별적 DB 구조를 정의한 것.
DB 전체가 아닌 DB 일부만을 대상으로 한정하여 명세한 구조이므로 서브스키마subschema라고도 부름.
ex. 사용자별로 외부에서 바라보는 관점이 다르므로, '강의정보' 서브스키마 from 교수 입장, '수강정보' 서브스키마 from 학생 입장
QQQ 뷰view와 밀접한데 구체적으로 and 정확히? tbw
개념스키마conceptual_schema
모든 사용자들의 관점을 통합해, 전체 조직 관점에서 DB 구조를 정의한 것.
논리적 스키마.
간단히 그냥 스키마schema로도 부름.
내부스키마internal_schema
저장장치 관점에서 전체 DB의 내부 구조를 정의한 것.
개념스키마conceptual_schema를 실질적으로 시스템에 어떻게 저장할 것인가를 표현.
다만 실제 장치의 물리적 구조까지 명세한 것은 아니며 그보다는 추상화된 상위 표현.
내부 레코드의 형식이나 배치 방법, 인덱스 등에 대한 명세를 포함.
DB당 하나만 존재.


DB를 관점에 따라 세 단계로 나누면

외부 단계(external level) : 개별 사용자 관점
개념 단계(conceptual level) : 조직 전체의 관점
내부 단계(internal level) : 물리적인 저장 장치의 관점

그리고 단계별로 다른 추상화abstraction를 제공, 외부 단계로 갈수록 추상화 레벨이 높다.[1]


ANSI/SPARC 3단계 아키텍처, 1978년

외부스키마1  외부스키마2  ...  외부스키마n
      ↘         ↓            ↙
           개념스키마
                ↓
           내부스키마 (= 물리적 스키마)
                ↓
           데이터베이스


//from Elmasri p37

the three-schema architecture
  1. internal schema - DB의 physical storage structure를 기술함.
  2. conceptual schema - DB의 사용자 커뮤니티를 위한 구조를 기술함.
    Hides the details of physical storage structures.
    entities, data_types, relationships, user operations, constraints를 기술하는 데 집중함.
  3. external schema = user views
    보통 representational data model로 구현됨

그림 참조:
https://www.javatpoint.com/dbms-three-schema-architecture


// 2021-03-17 34m - slide 'Schemas, Instances, and Database State' 대충 번역

DB스키마
  • database를 기술(describe)
  • DB 디자인 도중에 그 명세가 정해짐(specified)
  • 자주 바뀌지 않음 - 24h 돌아가고 있는 DB의 schema를 바꾸는 것은 쉽지 않거나 위험하다. DB schema는 처음 만들 때 잘 만들어야 한다.

Schema diagram
  • schema를 diagram으로 표시함.
  • record types, data items, constraints를 가짐.

DB 상태state(데이터베이스상태,database_state) 혹은 스냅샷snapshot
  • 어떤 특정한 순간 DB에 들어있는 data를 가리킴(indicate).
  • 상태는 operation(예: insertion) 순간에 바뀜.


내부스키마,internal_schema
DB의 물리적 표현만을 기술하는 것
데이터 구조의 형식을 구체적으로 정의[2]
개념 스키마conceptual schema = 논리 스키마
DB의 전반적인 논리 구조
데이터 전체의 구조를 정의[3]
개요 혹은 네트워크 모양의 표현 구조 같은 전체적 도식[4]
객체에 관한 정보를 활용할 수 있는 내용과 구조와 제약을 추상적으로 설명하고 정의한 것[5]
외부 스키마
실제로 이용자가 취급하는 데이터 구조를 정의[6]

데이터 독립성data_independence과 3단계 스키마의 관계

논리적 데이터 독립성 : 개념스키마가 변경되어도 외부스키마는 영향 x
물리적 데이터 독립성 : 내부스키마가 변경되어도 개념스키마는 영향 x ...chk




MongoDB는 문서형이라 schema가 필수가 아니고, 필드를 마음대로 추가/삭제 가능.

Schema가 저장되는 곳(물리적 위치)는 시스템카탈로그system_catalog. - chk


기타 정신의학psychiatry and 심리학psychology 에서는 schema란 '인지도식'. Namu:인지도식


DB schema가 아닌 건 다음 페이지로: (나중에는 모두 저기로 옮기고 DB_schema 같은 page를 분리할까?):
스키마,schema =스키마,schema =,schema 스키마 schema
{
스키마
schema

wikiadmin
Page name 'schema→스키마' via kornorms at 2023-11-18.
}


Sources:
Sub부분 - http://www.kocw.net/home/cview.do?cid=fc3d162212c224f5 변시우 4-2