DB Schema

·2022년 7월 31일
0

graphql을 사용해서 API를 만들다 보면 스키마가 자동적으로 만들어지기에 항상 볼 수밖에 없는데 그럼에도 불구하고 스키마에 대해 물어본다면 제대로 된 답변을 하지 못하고 있었다. 그래서 오늘은 스키마의 개념을 작성해 보겠다.


스키마란?

DB Schema 즉 데이터베이스 스키마는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 데이터베이스 내에 어떤 구조로 데이터가 저장되는지를 나타내는 데이터베이스 구조를 스키마라고 칭한다. 스키마는 3계층 스키마로 나누어져 구성되어 있고 나눠진 각각의 스키마는 데이터베이스의 구조와 제약 조건에 대한 전반적인 명세를 기술한 것이다. 3계층으로 스키마를 나눈 이유는 사용자의 관점에 따라서 분류한 것이다.

그래서 관점에 따른 3계층 스키마를 살펴보면 외부스키마, 내부스키마, 개념스키마로 분류되어 있다.


개념스키마 : 전체적인 뷰

조직 전체를 관리하는 입장에서 DB를 정의한 것이다. 조직의 모든 응용시스템에서 필요로 하는 개체 관계 그리고 제약 조건들을 나타낸다.
DB를 효율적으로 관리하는데 필요한 접근권한, 보안정책, 무결성 규칙 등에 관한 사항들도 추가적으로 포함된다.
개념스키마를 "스키마"라고 부르기도 하며 DB 전체를 기술한 것이기 때문에 한 개밖에 존재할 수 없다.

내부스키마 :

시스템 프로그래머나 설계자의 관점에서 바라보는 스키마이다. 데이터베이스의 물리적 구조를 가리키고 실제 저장 방법을 기술하는 물리적인 저장 장치와 관련된다.
개념스키마를 디스크 기억 장치에 물리적으로 구현하기 위한 방법을 기술한 것으로서 DB는 내부 스키마에 의해서 곧바로 구현되는 것이 아니라 내부 스키마에 기술한 내용에 따라 운영체제의 파일 시스템에 의해 물리적 저장장치에 기록된다.

외부스키마 : 사용자의 뷰 (= 서브스키마)

하나의 외부스키마는 여러 명이 공유 가능하며 하나의 DB시스템에 여러 개의 외부스키마가 존재 가능하다.
사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한다. 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인지를 정한다.
일반 사용자는 쿼리문을 이용해서 DB를 쉽게 이용할 수 있다.

참고 : 스키마란 무엇인가?, 스키마의 개념&특징

profile
파워블로거입니다 주인이 힘이 센 건 아니고 그냥 하고 싶습니다

0개의 댓글