Schema

김회민·2022년 5월 25일
0

관계형 Database

목록 보기
1/2

데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합

데이터베이스를 구성하는 개체(Entity), 속성(Attribute), 관계(Relationship) 및
데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관래 전반적으로 정의한다.

특징

  • Data Dictionary에 저장되며, 메타데이터라고도 한다.
  • 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
  • 시간에 따라 불변이다.
  • 데이터의 구조적 특성을 의미하며, Instance에 의해 규정된다.

3계층

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

  • 사용자가 각 개인의 입장에서 필요로 하는 DB의 논리적 구조를 정의한 것.
  • 전체 DB의 한 논리적인 부분으로 볼 수 있으므로, Sub Schema라고도 한다.
  • 하나의 DBS에는 여러 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 사용자가 공유할 수 있다.
  • 같은 DB에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
  • 사용자는 질의어(SQL)나 ORM을 이용하여 DB를 쉽게 사용할 수 있다.

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

  • DB의 전체적인 논리적 구조로서, 모든 사용들이 필요로 하는 데이터를 종합한 조직 전체의 DB.
  • 개체간의 관계와 제약 조건을 나타내고 DB의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
  • DB 파일에 저장되는 데이터의 형태를 나타내는 것으로,
    단순히 스키마라고 하면 개념 스키마를 의미하는 것이다.
  • 기관이나 조직의 관점에서 DB를 정의한 것이다.
  • 데이터베이스 관리자(DBA)에 의해서 구성된다.

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

  • 물리적 저장장치의 입장에서 본 DB 구조로, 물리적인 저장장치와 밀접한 계층이다.
  • 실제로 DB에 저장될 레코드의 물리적인 구조를 정의하고,
    저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서 등을 나타낸다.
  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마다.

DBMS 별 의미

Oracle

  • 오라클에서 Schema는 사용자가 생성한 모든 오브젝트( Table, Index, Procedure 등 ) 를 의미한다.
  • 스키마에 각각의 사용자에게 선택적인 권한을 준다.
  • 오라클에서 DB는 실제 물리적인 DB를 의미한다.

MySQL / MariaDB

  • DB와 Schema가 같은 의미로, Table 등의 오브젝트 집합을 의미한다.

PostgreSQL

  • MySQL의 DB가 PostgreSQL의 Schema 이다.
  • DB는 Schema의 상위 개념이다.
  • DB가 다르면 완전히 물리적인 분리로 본다.
  • 다른 Schema와는 JOIN 연산이 가능하지만, 다른 DB와의 JOIN 연산은 불가능하다.

MSSQL

  • DB는 Schema의 상위 개념이다.
  • PostgreSQL과 달리 같은 서버의 DB를 완전히 분리하지 않는다.

URL

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

https://sidorl.tistory.com/10

profile
백엔드 개발자 지망생

0개의 댓글