본문 바로가기
Domain 지식들

스키마란 무엇인가?

by monsangter 2023. 4. 3.

스키마란?

데이터 베이스를 기술하기 위한 목적으로 시작한 개념이다.

현실세계의 자료를 DB로 옮기기 위해서는 특정데이터 모델을 통한 모델링이 필요한데, 그 결과 생성된 구조물이다.

데이터베이스에서 자료의 구조(테이블), 자료의 표현 방법(속성), 자료간의 관계, 제약조건등 전반적 명세를 형식언어로 정의한 구조이다.

그리고 그 구조적 특성을 통해 인스턴스에 의해 규정된다..

데이터베이스의 구조에 관해 이용자가 보았을때의 논리 구조와 컴퓨터가 보았을때 물리구조에 대해 기술한다.

스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.

 

 

스키마의 3계층

 

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

 

 

외부 스키마(External Schema) = 사용자 뷰(View)

 

 

1. 외부스키마는 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것이다.

2. 외부스키마는 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다.

3. 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있으며 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.

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

5. 일반 사용자는 질의어(SQL)을 이용하여 DB를 쉽게 사용할 수 있다.

6. 응용 프로그래머는 C, JAVA등의 언어를 사용하여 DB에 접근한다.

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

데이터 전체의 구조를 정의한다.

1. 개념 스키마는 데이터베이스의 전체적인 논리적 구조로서, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다.

2. 개념스키마는 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.

3. 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것으로, 단순히 스키마(Schema)라고 하면 개념 스키마를 의미한다.

4. 기관이나 조직체의 관점에서 데이터베이스를 정의한것이다.

5. 데이터베이스 관리자(DBA)에 의해서 구성된다.

 

 

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

1. 내부 스키마는 물리적 저장장치의 입장에서 본 데이터베이스 구조로, 물리적인 저장장치와 밀접한 계층이다.

2. 내부스키마는 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의하고, 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.

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

 

 

실전에서의 스키마

데이터를 다루는 곳에서 주로 쓰인다.

데이터를 효율적으로 다루기 위해서는 규칙과 형식. 스키마가 필요하기 때문이다.

database(RDBMS, noSQL), XML(XSD), JSON 등에서 스키마를 언급하여 사용한다.

 

1. 위에서 언급한 3가지 기본 구조로써 언급되는 스키마.

2.RDBMS의 정해진 구조로써 언급되는 스키마.

 

RDBMS에서의 스키마는 테이블의 구조를 정의한다.

noSQL의 장점으로는 스키마가 없어 데이터 구조가 유연하다는 말을 하는데, 다음과 같은 의미를 가진다.

  • 정해진 테이블 구조를 갖지 않는다.
  • RDBMS에서는 속성하나를 추가하려면 alter table을 통해 모든 레코드에 컬럼을 추가해야하지만 noSQL은 그럴 필요가 없다.
  • 각 레코드의 property가 고정돼 있지 않다. RDBMS와 달리 자료형이 다른 column이라도 대응이 된다.

3.mySQL에서 DB자체로써 언급되는 스키마

mysql에서는 테이블의 집합체로써의 데이터베이스를 스키마라고 한다. 그래서 DB를 만드는 코드와 스키마를 만드는 코드가 같다.

mysql > CREATE DATABASE Sparta; mysql > CREATE SCHEMA Greek;

 

4.JSON,XML에서 언급되는 스키마

둘은 데이터를 형식화하는 방법이다. 이들과 함꼐 사용되는 스키마는 구조를 알 수 있게 해주고 유효성검사시 활용한다.

참고

https://coding-factory.tistory.com/216

https://gkqlgkql.tistory.com/83

'Domain 지식들' 카테고리의 다른 글

Gem이란 무엇인가?  (0) 2023.04.06
쿼리란 무엇인가?  (0) 2023.04.03
스크립팅 언어란 무엇인가?  (0) 2023.04.03
dom이란 무엇인가?  (0) 2023.04.03
SSO란?  (0) 2023.03.15

댓글