-
[TIL] 스키마에 대한 정리IT 지식 2020. 11. 29. 18:08728x90
이번주 node 수업을 들으면서 처음 들어본 개념이 있었습니다. 바로 스키마 라는 것이었는데요, 저를 제외한 다른 분들은 스키마에 대한 개념을 알고 들으시는 듯 했지만, 저는 잘 모르는 개념이었기에 이렇게 한 번 정리를 해야 다른 백엔드 수업을 들을 때, 어려워하지 않겠구나 라는 생각이 들어 이번 포스팅의 주제로 선정하기로 했습니다.
1. 스키마란?
스키마를 한마디로 정의한다면 '데이터베이스의 구조와 제약조건에 대한 전반적인 명세를 기술한 것'이라고 할 수 있습니다. 이를 좀 더 자세하게 풀이한다면, 개체의 특성을 나타내는 속성(attribute)과 속성들의 집합으로 이루어진 개체(entity), 개체 사이에 존재하는 관계에 대한 정의와 이들이 유지해야할 제약 조건들에 대해 기술한 것이라고 할 수 있습니다.
즉, DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 합니다.
2. 스키마의 특징
스키마의 특징으로는 다음과 같은 것들이 있습니다.
-
스키마는 데이터 사전에 저장됩니다. 또 다른 이름으로는 메타데이터라고도 불립니다.
-
스키마는 현실 세계의 특정한 한 부분의 표현으로서, 특정 데이터 모델을 이용하여 만들어집니다.
-
스키마는 불변성을 가지고 있습니다.
-
스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정됩니다.
3. 스키마의 3 계층
스키마는 사용자의 관점에 따라서 개념, 외부, 내부 스키마로 세분화 할 수 있습니다.
1) 개념 스키마
개념 스키마는 전체적인 입장에서 DB를 정의한 것이라고 할 수 있습니다. 데이터 베이스의 전체적인 논리 구조로서 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스를 의미합니다. 전체를 총괄하는 의미의 데이터베이스이다보니, 하나의 개념 스키마만 존재할 수 있습니다.
개념 스키마에는 개체간의 관계와 제약 조건에 대한 내용들이 들어있으며, 데이터 베이스에 대한 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의하고 있습니다.
우리가 단순히 스키마라고 하면 개념스키마를 의미하는 것이라고 생각하시면 됩니다.
2) 외부 스키마
외부 스키마는 사용자의 입장에서 정의된 DB 라고 할 수 있습니다. 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의 한 것입니다. 외부 스키마는 전체 데이터 베이스의 한 논리적인 부분으로 볼 수 있기에 서브 스키마 라고도 합니다.
하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러 응용 프로그램이나 사용자가 공유할 수 있습니다. 또 같은 데이터베이스라고 할지라도 서로 다른 관점을 정의할 수 있도록 허용되어 있습니다.
3) 내부 스키마
내부 스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이라고 할 수 있습니다. 내부 스키마는 물리적 저장장치에 저장된 기록의 물리적인 구조를 정의하고, 저장된 데이터의 표현 방법, 내부 기록의 물리적 순서등을 나타냅니다.
4. 마무리
이번 포스팅에서는 스키마에 대한 개념을 알아보았습니다. 이렇게 한 번 글로 정리했음에도 불구하고 아직 머릿속에 정확하게 개념이 정립되지는 않는데요, 앞으로 다양한 데이터베이스를 구성해보면서 이 스키마들이 왜 필요하고 어떤 식으로 사용되는지에 대해 몸소 체험하다보면 더 구체적으로 체득할 수 있을 것이라는 생각이 드네요. 오늘의 포스팅 읽어주셔서 감사하고 다음에는 더 좋은 글과 주제로 포스팅 하도록 하겠습니다.
참고 블로그: jwprogramming.tistory.com/47, coding-factory.tistory.com/216
728x90'IT 지식' 카테고리의 다른 글
[TIL] 로컬 스토리지, 세션 스토리지 그리고 쿠키 (0) 2020.12.06 [TIL] Timer 만들기 (1) 2020.12.06 [TIL] Date 객체에 대해 알아보자 (0) 2020.11.29 [TIL] axios 사용법 (0) 2020.11.29 [what is?] node.js 가 뭔가요? (0) 2020.11.22 -