새소식

인기 검색어

IT 용어

스키마(Schema)

  • -

 

스키마(Schema)


데이터베이스 어떻게 설계할지에 대한 계획 즉, 구조와 제약 조건을 정하는 것입니다.구체적으로 데이터는 어떤 것들로 구성하며, 데이터들은 어떤 테이블에 저장되며, 여러 테이블들을 어떤 관계를 가지고 있는지를 계획합니다.

 

 

 

 

 

특징


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

2. 특정 데이터 모델을 이용해서 만들어진다.(현실 세계의 특정한 부분을 모델로 만듦.)

3. 시간이 지나도 변하지 않는다.

4. 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.

 

 

 

 

 

 

스키마 3계층


외부 스키마(서브 스키마) = 사용자 뷰(View)

  • 사용자들이 사용할 데이터를 보여주는 것이기에 추상화 되어있다.
  • 여러 사용자가 바라보는 관점에 따라 여러 스키마가 존재할 수 있다.                                                                                                            (ex. 구글DB는 구글 메일, 구글 주소록, 구글 드라이브.. 등등)
  • 사용자는 데이터베이스에서 데이터를 사용하는 사람이므로 응용 프로그래머라고 볼 수 있으며 응용 프로그래머는 외부 스키마를 통해 구조를 확인하고 DML을 사용해서 테이터를 이용한다.
DML(데이터 조작어)
   테이블에 있는 행과 열을 조작하는 언어로 명령어로는 SELECT / INSERT / UPDATE / DELETE 가 있다.

 

 

개념 스키마  = 전체적인 뷰(View)

  • 전체 데이터베이스가 어떤 구조로 되었는지 구체적으로 어떤 데이터가 있고, 그 데이터들은 어떤 테이블에 있고, 각 테이블마다 어떤 관계가 존재하는지를 정의한다.
  • 각 데이터베이스에는 한 개의 개념 스키마만 존재한다.
  • 개체 간의 관계 및 무결성 제약 조건에 대한 명세를 정의한다.
  • 무결성 제약 조건 : 데이터베이스의 정확성, 일관성을 보장하기 위해 저장, 삭제, 수정 등을 제약하기 위한 조건
  • 테이터베이스 자체의 전체적인 구조를 확인하기 때문에 개념 스키마를 확인하는 사람은 데이터베이스 관리자 즉, DBA이다.
DBA(데이터베이스 관리자)
   한 조직 내에서 데이터베이스를 설치, 구성, 업그레이드, 관리, 감시하는 일을 하는 사람으로 데이터를 체계적으로 수집, 정리, 가공을 하며 사용자 등록에 대해 접근 범위와, 일고쓰기 권한, ID/PW 를 관리한다.

 

  • DBA는 개념 스키마를 통해서 전체적인 구조의 개념을 확인하고 DDLDCL을 사용해서 구조를 설계한다.

 

DDL(데이터 정의어)
   테이터를 정의하는 언어로 테이터를 생성하거나 수정, 삭제 등 데이터의 전체 골격을 결정하는 역할의 언어다.
명령어로는 CREATE / ALTER / DROP / TRUNCATE 가 있다.
DCL(데이터 제어어)
   데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어로 데이터의 보안, 무결성, 회복 동을 정의하는 데 사용한다. 명령어로는 GRANT / REVOKE / COMMIT / ROLLBACK 가 있다.

 

 

내부 스키마 = 저장 스키마(Storage Schema)

  • 물리적 저장장치의 입장에서 본 데이터베이스 구조이다.
  • 데이터의 내부 즉, 데이터의 필드 이름이 무엇이고, 해당 필느는 몇 Byte이며 인덱스가 있는지 등을 정의하는데 이것은 곧 데이터를 물리적으로 어떻게 저장할지에 대한 정의이므로 저장 스키마라고도 부른다.
  • 저장될 데이터 항목의 내부 레코드 형식, 물리적 순서 등을 나타낸다.
  • 물리적 저장장치의 입장으로 보기 때문에 내부 스키마를 확인하느 사람은 시스템 프로그래머라고 한다.
시스템 프로그래머
   컴퓨터를 작동시키고 컴퓨터의 활동을 조정,통제하는 OS를 설계하는 프로그래머로 응용프로그래머가 만든 프로그램을 돌아가게끔 '시스템'을 관리하고 구축하는 사람을 시스템 프로그래머라고 한다.

 

  • 시스템 프래그래머는 내부 스키마를 통해서 데이터의 내부 구조를 확인하고 물리적인 데이터 구조를 설계한다.

 

데이터 독립성


데이터베이스 내의 데이터, 데이터를 사용하는 사용자 및 응용 프로그램, 데이터베이스의 저장 구조가 서로 영향을 받지 않는 성질을 의미한다.

 

논리적 독립성

  • 개념 스키마가 변경되어도, 외부 스키마에 영향을 주지 않는다.

 

물리적 독립성

  • 내부 스키마가 변경되어도, 개념 스키마 / 외부 스키마에 영향을 주지 않는다.

 

예를 들어, 저장 구조 등이 물리적으로 변경되어도 다른 스키마와 독립적인 것을 의미한다.

'IT 용어' 카테고리의 다른 글

자바 어노테이션(Java Annotation)  (0) 2022.12.19
어노테이션(Java Annotation)  (0) 2022.12.19
데이터베이스 이중화 / 서버 클러스터링  (0) 2022.12.15
HTTP 에러정리  (0) 2022.12.15
git 사용 방법  (0) 2022.12.08
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.