- 데이터베이스의 구조와 제약 조건에 대한 명세를 기술한 메타데이터의 집합
- 데이터베이스를 구성하는 개체(Entity), 속성(Attribute), 관계(relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의
- 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.
- 특정 데이터 모델을 이용해서 만들어진다.
- 시간에 따라 불변인 특성을 갖는다.
- 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
데이터베이스 관리 시스템은 외부적 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태로 변경하고, 이를 다시 내부적 스키마에 적합한 형태로 변환한다.
외부 스키마( = 사용자 뷰)
- 사용자가 보는 개인적인 DB에 관한 것
- 사용자나 응용프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 모습으로 구조를 정의한 것
- 전체 데이터베이스안의 데이터 중 사용자가 사용하려는 한 논리적인 부분으로 볼 수 있으므로 서브 스키마(Sub Schema)라고도 한다.
- 하나의 데이터베이스 시스템에는 여러개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러개의 응용 프로그램이나 사용자가 공용할 수도 있다.
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용한다.
- 일반 사용자는 SQL을 이용하여 DB를 쉽게 사용할 수 있다.
- 외부 스키마는 개념스키마의 부분집합에 해당한다.
개념 스키마( = 전체적인 뷰)
- 데이터베이스의 전체적인 논리적 구조로서, 시스템 전체를 볼 수 있는 스키마로 단 하나만 존재한다.
- 개체간의 관계와 제약 조건을 나타내고, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타낸다. 단순히 스키마라고 할 땐, 개념 스키마를 의미한다
- 기관이나 조직체의 관점에서 데이터베이스를 정의한 것이다.
- 데이터베이스 관리자(DBA)에 의해서 구성된다.
내부 스키마( = 저장 스키마)
- 물리적 저장장치의 입장에서 본 데이터베이스 구조, 물리적인 저장장치와 밀접한 계층이다.
(개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술)- 실제로 데이터베이스에 저장될 레코드의 물리적인 구조를 정의, 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
: 개체-관계 모델. 테이블간의 관계를 보여주는 그림(Entity-Relationship Diagram)
프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다는 장점을 가진다.직사각형, 다이아몬드, 타원형 및 연결선과 같은 정의된 기호 집합을 사용하여 Entity, Relationships 및 해당 속성의 상호 연결성을 나타낸다.
개체를 명사로, 관계를 동사로 사용하여 문법 구조를 반영한다.Entity 란?
- 테이블을 구성하는 객체 구성성분
예시 : 상품(product)의 Entity, 상품id, 상품명, 상세설명, 가격, 판매여부, 카테고리 등등으로 구성되어 있다.
관계형DB에서 주로 사용된다. 엔티티와 속성들을 테이블과 컬럼들로 변환할 수 있다. 위에서 DB의 구조를 한눈에 알 수 있다는 장점처럼 테이블과 관계들을 시각화할 수 있기 때문에, 설계 문제점을 빨리 파악할 수 있다.
ERD를 작성할 때는, 1:1, 1:n, n:m 관계가 있다.
1:1 관계(일대일)
관계가 있는 엔티티의 값이 서로 한개의 관계를 갖는것
1:n 관계(일대다)
관계가 있는 한쪽 엔티티의 하나의 값이 다른 엔티티의 여러 값을 참조하고 있는것
n:m 관계(다대다)
관계가 있는 양쪽 엔티티의 값들이 서로 1:N 관계를 갖는것