봉봉의 개인 블로그

2017-07-05-schema(스키마) 본문

학원에서 배운것들/TEA - E

2017-07-05-schema(스키마)

봉봉이네 2017. 7. 5. 10:12

Schema

데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한것이다.

상세하게 말하면 개체의 특성을 나타내는 속성과 속성들의 집합으로 이루어진 개체, 개체사이에 존재하는 관계에 대한 정의와 이들이 유지해야할 제약조건들을 기술한것.

DB내에 어떤 구조로 데이터에 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.

데이터베이스를 구성하는 개체, 속성, 관계 및 데이터 조작시에 데이터 값들이 갖는 제약조건 등에 관해 전반적으로 정의 레코드 형태와 릴레이션 같은 모든 데이터의 논리적 단위에 명칭을 부여하고 의미를 기술

데이터 베이스 내에 있는 데이터 논리적 단위 사이의 관계성 표현

사용자의 관점에 따라서 외부, 개념 , 내부 스키마로 구분


특징

-스키마는 데이터 사전에 저장된다.

현실세계의 특정한 한 부분의 표현으로써 특정 데이터 모델을 이용해서 만들어진다.

시간에 따라 불변인 특성을 갖는다.

데이터의 구조적 특성을 의마한다.

인스턴스에 의해 규정된다.


DBMS은 외부적 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고 이를 다시 내부적 스키마에 적합한 형태로 변환한다.


외부스키마=서브스키마-사용자 뷰

-사용자나 응용 프로그래머가 각 개인의 입장에서 필요하는 데이터 베이스의 논리적 구조를 정의

-실세계에 존재하는 데이터들은 어떤 형식, 구조,배치 화면을 통해 사용자에게 보여줄것인가

-전체 데이터 베이스의 한 논리적 부분-> 서브 스키마

-하나의 데이터 베이스에는 여러개의 외부스키마가 존재가능 & 하나의 외부스키마를 여러개의 응용프로그램이나 사용자가 공용가능

-같은 데이터 베이스에 대해서도 서로 다른 관점을 정의할수 있도록 허용

-일반 사용자는 질의어를 이용 DB를 쉽게 사용

-응용 프로그래머는 COBOL,C등의 언어를 사용, DB에 접근


개념스키마=전체적인뷰

조직체전체를 관장하는 입장에서 DB를 정의한것.

따라서 조직페의 모든 응용시스템에서 필요로 하는 개체 관계 그리고 제약조건들을 포함하고 있다.

DB를 효율적으로 관리하는데 필요한 접근권한, 보안정책, 무결성 규칙등에 관한 사항들도 추가적으로 포함하기도 함.

따라서 개념 스키마를 그냥 스키마라고 칭하기도하고 개념스키마는 DB전체를 기술한 것이기 떄문에 한개만 존재

-데이터 베이스 전체적인 논리적 구조

-데이터 베이스에 실제로 어떤데이터가 저장되었으며 데이터간의 관계는 어떻게 되는가

-모든 응용프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스

* 데이터 베이스당 하나만 존재

-개체간의 관계와 제약조건 명시

-데이터 베이스의 접근 권한 보안 및 무결성 규칙에 관한 명세를 정의

-단순한 스키마라고 하면 개념스키마를 의미

-기관이나 조직체의 관점에서 데이터베이스를 정의

-데이터베이스 관리자 (DBA)에 의해 구성


내부 스키마

물리적인 저장장치 입장에서 DB가 저장되는 방법을 기술한것.

구체적으로 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것으로써 주된 내용은 실제로 저장될 내부 레코드 형식, 내부레코드의 물리적 순서, 인덱스의 유/무 등에 관한것이다.


그러나 DB는 내부 스키마에 의해 곧바로 구현되는것이 아니라 내부 스키나에 기술한 내용에 따라

운영체제의 파일시스템에 의해 물리적 저장장치에 기록되는것.

실무적으로 내부스키마에 의해 dv의 실행속도가 결정적으로 영향을 받기 떄문에 DB의 구축목적에 따라 내부 스키마를 결정해야 할 필요성이있다.

-데이터베이스의 물리적 저장구조를 정의

-디스크에는 어떤 구조로 저장할 것인가

-데이터의 실제 저장방법을 기술

-물리적인 저장장치와 밀접한 계층

-시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마



'학원에서 배운것들 > TEA - E' 카테고리의 다른 글

2017-07-24-E(Spring Security)  (0) 2017.07.24
2017-07-17-E(UML기호 정리)  (0) 2017.07.17
2017-07-04-개발 방법론  (0) 2017.07.04
2017-07-03-Java Annotations(어노테이션)  (0) 2017.07.03
2017-06-13-E  (0) 2017.06.13
Comments