IT - Introduction to Computer Science

[IT지식] Database Schema & State란?

개발자하소서 2023. 9. 15. 19:40
728x90
반응형
SMALL

 

📌Database Schema 란? 


- data model을 바탕으로 database의 구조를 기술(description)한 것 



- shema는 database를 설계할 때 정해지며 한번 정해진 후에는 자주 바뀌지 않는다. 


 
 
예를 들어 relational datat model에서의 데이터베이스 스키마는 
 
아래와 같은 것들이 데이터베이스 스키마가 되는 것이다. 
 

 
 
데이터베이스의 데이터를 나타내는 student 와 book이  있고, 
 
각 student와 book에는 어떤 속성을 가지는 지, 
 
어떤 attribute를 가지는 지를 기술하는 것이다.(student id, 이름 , 저자, 제목 ...etc)
 
따라서 데이터베이스의 schema를 보면 데이터베이스의 구조가 어떤 식으로 되어있는 지 
 
전체 큰 그림을 이해할 수 있게 되는 것이다. 
 
 
그러면 database state란 뭘까?
 
 

📌Database State 란? 


- database에 있는 실제 데이터는 꽤 자주 바뀔 수 있다.

- 특정 시점에 database에 있는 데이터를 database state 혹은 snapshot이라고도 한다. 

- 혹은 database에 있는 현재 instances의 집합이라고도 한다. 

 
 
데이터베이스 아키텍처에서 중요한 3 스키마 아키텍처에 대해 알아보자면 다음과 같다. 
 
 

📌three-schema architecture 란? 


- database system을 구축하는 architecture 중의 하나

- user application으로부터 물리적인(physical) database를 분리시키는 목적 

- 세 가지 level이 존재하며 각각의 level마다 schema가 정의되어 있다. 

 
 
이 three shema architecture에는 세가지 level이 존재한다고 하였는데,
 
어떤 스키마들이 있는 지 알아보자 
 

📌three-schema architecture  3 level


- external schemas (or user views) at external (or view) level 


- conceptual schemas at conceptual level 


- internal schemas at internal level 

 

three-schema architecture 3 level

 
 
extenal schema는 extenal level에서 정의되어 있는 스키마이며,
 
conceptual schema는 conceptual level에서 정의되는 스키마, 
 
그리고 internal shcema는 internal level에서 정의되는 스키마이다. 
 
이 각각의 스키마에 대해 자세히 알아보자.
 
 
먼저 internal schema 에 대해 설명하자면 아래와 같다. 
 

📌internal schema 

- internal schema는 실제로 물리적인 저장 장치에 가장 가깝게 위치하는 스키마이다. 

- 물리적으로 데이터가 어떻게 저장되는 지  physical data model을 통해 표현 

- data storage, data structure, access path 등등 실체가 있는 내용을 기술 

 
 
다음으로 external schema 에 대해 설명하자면 아래와 같다. 
 

📌external schema 

- external views, user views 라고도 불림 

- 특정 유저들이 필요로 하는 데이터만 표현 

- 그 외 알려줄 필요가 없는 데이터는 숨김 

- logical data model을 통해 표현 

 
원래 초창기의 데이터베이스 시스템 아키텍처는 
 
interanl schema와  external schema 이 두 가지 밖에 존재하지 않았다. 
 
하지만, 각각의 유저마다 필요로 하는 데이터들이 달라지다보니 
 
internal level에서도 점점 중복되는 데이터가 생기게 되었다. 
 
needs에 맞춰서 데이터를 제공해주려 하다 보니 
 
같은 데이터를 포함하더라도 조금씩 다른 internal schema들이 생성된 것이다. 
 
그렇게 중복된 데이터들을 포함하는 여러 스키마들이 생기니,
 
점점 관리하기도 힘들어지고 데이터 불일치도 더 잦게 되는 문제가 발생하였다.
 
그래서 이 문제를 해결하기 위해 등장한 것이 바로 
 
conceptual level의  conceptual schema 이다. 
 
 

📌Conceptual schema 


- 전체 database에 대한 구조를 기술 

- 이는 internal schema를 한번 추상화시 표현한 스키마라고 이해하면 된다. 

- 물리적인 저장 구조에 관한 내용은 숨김 

- entities, data types, relationships, user operations, constraints 에 집중 

- logical data model을 통해 기술 

 
 
정리하자면 
 
three-schema architecture란, 
 
안정적으로 데이터베이스 시스템을 운영하기 위해 사용되는 아키텍처로
 
각 레벨을 독립시켜서 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위한 목적으로 사용되는 것이다. 
 
예를 들어, internal schema의 변경이 생긴다 할지라도 
 
그 변경때문에 conceptual schema 도 바꿔줘야 할 필요가 없다는 것이다. 
 
단지 conceptual schema와 internal schema 사이에 mapping 만 바꿔주면 되기에 
 
안정적으로 운영할 수 있다는 장점을 가진다.
 
하지만, 대부분의 DBMS는 이러한 three level을 완벽하게 혹은 명시적으로는 나누지 않으며, 
 
실제로 데이터가 존재하는 곳은 internal schema 이다. 
 
 

📌해당 글은 '쉬운코드' 유튜브영상을 보고 작성하였습니다.

 
728x90
반응형
LIST