리얼라이져의 마케팅, 개발, 창업 블로그

schema란?? (공부내용 정리) 본문

IT/DBMS

schema란?? (공부내용 정리)

nadadhl 2020. 3. 1. 23:14
728x90

그동안,

데이터베이스 관련 자료를 보다보면,  schema란  단어를  많이 접할수 있었다,

하지만,  그동안은  이 schema가  그저  각 테이블  필드의   데이터 이름과  타입을 정하는 것 인줄  알고 있었다.  

 

하지만,

데이터베이스 공부를 하는 중,    내가  schema에 대해서  잘못  알고 있는 듯하여,  

이해한 내용을 토대로 다시 정리를 해본다.

 

 

우선,  스키마를  알기전에,  이 스키마가  무엇인지에 대하여  이해하려다  찾은  내용 인

'인지 심리학'에서 본  스키마에 대하여  간략히 정리해보겠다.

(개인적으론,  데이터 베이스관점에서 스키마를 이해하는것  보다  이해하기가 쉬었다) 

 

간략히 정리하자면, 

인지 심리학에선,  우리가 사물을 볼때,  '스키마'라는 인지 매커니즘을  이용해 

그 사물에서 어떤 부분이  필요한 부분인지를  나눠서  받아들인다고 한다. 

 

예를들어,  a라는 '문'을  바라볼때,  우리는  우리만의  스키마를 통해  해당 문을 지각하고,

받아들인다고 한다. 

 

그리고  인지 매커니즘은  개개인 마다 다르기 떄문에

( 사람마다 해당 사물이 문이라는걸 인지하지만,  어떤 부분을  통해서 문이라고 인지하는지는 제각각일수 있음

하지만,  그 사물에 대해서  문이라는걸  인식하는 부분에서는 공감대를 형성이 가능.)

  

한  사물에 대하여 각각의  스키마도  다를수 있다고 한다.  

 

 

그럼  이  개념을 가지고 데이터 베이스에 적용해보자. 

 

우선,  우리는  데이터 베이스에  데이터를 저장할때,  사람의 대한 데이터를  받아들인다고 해보자.

인지 심리학에서 처럼   데이터베이스는   사람의 대한 데이터중 필요한 데이터를  받아들이기 위해  스키마를  구성한다.

(이 관점에서 볼때,  데이터베이스마다  사람이라는 데이터를 받아들일때,  필요한  부분이 다르므로, 

데이터가  저장되는  구조, 각 컬럼의 이름, 데이터 타입, 데이터 관계, 제약 조건 등의  부분이  다를것이다.)

 

결국,  데이터 베이스에서 스키마란,   

데이터베이스가  데이터에서 필요한  부분을 받아들이기 위한 전체적인  구조와  형식을  정하는것이라 볼수 있을 것같다. 

 

 

그리고  또 중요한 점이 있는데,   

이  데이터베이스 스키마는  데이터베이스를  사용하는 관점에 따라서도  부분적으로  나줘질수 있다고 한다. 

그렇게  3계층으로 나눠진다고 하는데  다음과 같이 외부계층,  개념 계층,  내부 계층으로 나눠진다고 한다.

 

1.외부 계층

   외부 사용자들 (  ex) 응용프로그래머)에게  데이터들을 어떤 형식으로  보여주는지  구조를 정의.

   (예를들어, 데이터베이스 view- 여러 테이블의 필드를 모아서 필요한 데이터만 모아서 구성)

 

 

2. 개념 계층

     데이터 베이스에  실제로 어떤  데이터가  저장되며,  데이터간의 관계, 어떤 타입, 어떤 제약 조건으로   저장되는지       등을 정의

     

     데이터베이스 관리자에 의해서 구성됨. 

     (내가  기존에 생각하던  스키마 정의가  이 개념계층의 관점으로 본  스키마 였나봄....)

 

 

3. 내부 계층

     물리적인  저장 장치 입장에서  데이터가  저장되는 방법을 정의 한것.

      시스템 프로그래머나  시스템 설게자에 의해 구성됨.

 

 

아래는  위  3계층을 시각적으로 보여주는  이미지다.

        

 

 

 

완벽하진  않지만,  기존에   추상적였던  느낌보다는  조금 정리된  느낌이다.

나중에 좀더 깊이  공부하면,   추가적으로  다듬어야 할듯함....

 

 

 

끝~

 

개발자가 되기 위해  공부 중인  비전공자  학생입니다. 
아직 부족하여,  부족하거나  틀린 내용이 있을수 있으니, 
그부분에 대해서  생각을  댓글로 공유해주시면 

감사하겠습니다.^^

 

Comments