데이터베이스의 스키마


데이터베이스에서 데이터를 취급할 때 데이터의 성질, 형식, 또는 데이터와의 관계 등 데이터 정의의 집합을 데이터베이스의 스키마라 한다. 즉, 스키마는 전체 데이터베이스의 논리적인 구조와 정의를 기술하는 것을 말한다. 구체적으로 데이터베이스를 구성하는 필드, 레코드, 데이터 형과 이들의 관계 등의 집합을 말한다. 스키마는 데이터베이스 관리 시스템에 의하여 참조되는 것으로 데이터베이스 관리 시스템 별로 다르게 정의되어 진다.

 

트리 구조로 표현한 스키마에서는 하위 레코드형과 상위 레코드형을 지정하는 방법이 자주 쓰이고 있다. 즉, 계약의 입장에서 개인은 상위 레코드형이고 ‘사고내역’과 ‘계약내역’은 하위 레코드이다. 트리 구조에서는 어느 하나의 하위 레코드형에 대한 상위 레코드가 정하여지므로 이런 방법에 의하여 레코드와 레코드의 관련성을 명확하게 지정하는 것이 가능하다.

 

3계층 스키마


3계층 스키마 구조는 데이터의 독립성을 높여 준다. 데이터 독립성이란 한 계층의 스키마를 변경시킬 때 그 다음 계층의 스키마에 영향을 주지 않는 성질을 말한다. 데이터의 독립성은 데이터베이스 관리 시스템의 궁극적인 목적이라 할 수 있다. 데이터의 독립성은 논리적 데이터 독립성과 물리적 데이터 독립성으로 구분되어 진다 논리적 데이터 독립성은 사용자 관점에서 응용 프로그램을 수정하지 않고 개념적 스키마를 변경시킬 수 있는 성질을 말한다. 즉, 응용 프로그램에 영향을 주지 않고 논리적 데이터 구조의 변경이 가능한 성질을 말한다. 그리고 물리적 데이터 독립성은 개념적 스키마를 수정하지 않고 내부 스키마를 변경시킬 수 있는 성질을 말한다. 즉, 응용 프로그램과 논리적 데이터 구조에 영향을 주지 않고 물리적 데이터 구조의 변경이 가능한 성질을 말한다.


공식적인 규칙에 의하여 표현된 데이터베이스는 사용자들이 원하는 데이터 항목들을 다양하게 결합하여 여러 가지 용도로 사용된다. 이 때 공식적인 규칙에 의한 표현이란 논리적 표현과 물리적 표현을 모두 의미한다. 데이터베이스의 논리적 구조를 전반적으로 기술하는 것을 스키마라 한다. 스키마는 사용자의 관점에 따라 여러 개의 부분 집합으로 나누어질 수 있다. 이렇게 쪼개진 스키마의 부분집합을 서브스키마라고 한다. 즉, 서브스키마는 특정 사용자나 응용 프로그램에 의해 요구되는 데이터베이스의 일부분이다.


데이터베이스 시스템의 스키마구조는 사용자의 응용 프로그램과 논리적인 데이터베이스 구조의 기술부터 물리적인 데이터베이스 구조의 기술까지를 3계층으로 구분하여 명명하는데 이를 일컬어 3계층 스키마라고 한다. 스키마에는 물리적인 데이터베이스 구조를 기술하는 내부스키마, 논리적인 데이터베이스를 기술하는 개념스키마, 외부적인 데이터베이스 구조를 기술하는 외부스키마 또는 사용자 뷰가 존재한다.

 

 

1) 외부스키마


3계층 스키마의 하나인 외부스키마는 사용자가 직접 인터페이스 할 수 있는 바깥쪽의 스키마로서 일반적으로 서브스키마라는 이름으로 많이 불려진다. 외부 스키마는 응용 프로그래머가 데이터베이스를 바라보는 관점을 나타낸 것으로 하나의 스키마는 여러 개의 서브스키마로 나누어질 수 있다. 외부스키마는 특정 사용자가 관심을 갖는 데이터만 추출한 데이터베이스의 부분집합니다. 각각의 외부스키마는 주로 외부의 응용 프로그램에 위치하는 데이터 추상화 작업 단계로서 전체적인 데이터베이스의 부분적인 기술이다. 이 외부스키마는 단말 사용자가 부분적으로 필요로 하는 요구사항에 해당되므로, 이러한 일을 처리하는 응용 프로그램에 위치하는 것이 보통이다.


응용 프로그래머나 터미널에서 데이터베이스를 사용하는 단말 사용자가 반드시 데이터베이스 전체 스키마의 구성을 알아두어야 할 필요는 없다. 왜냐하면, 실제로 하나의 데이터베이스 전체 스키마의 구성은 매우 복잡하기 때문이다. 따라서, 데이터베이스를 부분적으로 이용하는 사람들이 그러한 복잡성에 시간을 낭비할 필요가 없다. 그리고 데이터의 보안 때문에 전체를 노출하기를 꺼려할 대도 있다. 응용 프로그래머와 단말 사용자들은 그들이 원하는 데이터에만 액세스하면 된다. 그들이 액세스할 수 있는 데이터베이스가 외부스키마이다.

 

2) 개념스키마


개념 스키마는 모든 사용자의 관점을 통합한 전체 데이터베이스의 관점이라 볼 수 있다. 스키마라 하면 일반적으로 개념 스키마를 의미한다. 개념 스키마는 논리적인 데이터베이스 전체의 구조를 의미한다. 쉽게 말하면 개념 스키마는 여러 개의 외부 스키마를 통합한 논리적인 데이터베이스의 전체 구조로서 데이터베이스 파일에 저장되어 있는 데이터 형태를 그림으로 나타낸 도표이다. 그것은 레코드와 데이터 항복의 이름을 부여하고 그들 사이의 관계를 명시해 준다. 개념 스키마는 데이터베이스의 물리적 저장구조의 표현을 제외한 개체와 이들의 관계, 자료형, 사용자연산, 제약조건 등을 기술한다.


즉, 논리적 데이터베이스 구조를 표현하는 것으로 개체 관계 다이어그램이나 객체 정의어 등의 설계 도구를 이용하여 레코드와 이를 구성하는 데이터 항목의 이름을 부여하고, 그들 사이의 관계를 표시하고, 데이터 유형과 제약조건 등을 표현한다. 이러한 개념 스키마는 데이터베이스 설계과정에서 개체-관계 도표를 통해 표현되는 전체적이고 논리적인 데이터베이스 구조를 갖는다.

 

3) 내부스키마 


내부 스키마는 하드웨어에 저장되는 데이터베이스의 물리적인 구조를 기술한 것이다. 외부 스키마와 개념 스키마는 물리적인 구조를 보여주지 않는다. 외부 스키마는 여러 가지 측면에서 데이터베이스를 바라보는 관점이므로 다수 개가 있을 수 있으나 개념 스키마와 내부 스키마는 하나만이 존재한다. 물리적인 데이터의 저장구조 기술을 내부 스키마라 한다.


즉, 기억 장치 내에 데이터가 저장되어 있는 데이터의 물리적인 설계도를 말한다. 다시 말하면 물리적 저장장치에서의 전체적인 데이터베이스 구조 기술로서 실질적인 데이터베이스의 자료구조와 크기, 접근 경로 등을 완전하고 상세하게 표현한 것을 말한다.

'IT정보' 카테고리의 다른 글

사물 인터넷, IoT(internet of things)  (0) 2017.08.29
DBMS의 정의와 기능  (0) 2017.08.29
DBMS 장점과 단점들  (0) 2017.08.29
리눅스란?  (0) 2017.08.27
c란?  (0) 2017.08.27

+ Recent posts