스키마(schema)
데이터베이스를 구성하는 레코드의 크기, 키(key)의 정의, 레코드와 레코드의 관계, 검색 방법 등을 정의한 것
데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명으로 데이터베이스의 청사진과 같다.
스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationshiip),제약 조건 등에 관해 전반적으로 정의하고 데이터사전에 저장된다.
스키마는 사용자 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.
1. 내부 스키마 (Internal Schema)
저장 스키마 (Storage Schema)라고도 불리며, 데이터베이스의 물리적 저장 형태를 기술한다.
실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의한다.
저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서를 표현한다.
시스템 프로그래머나 시스템 설계자가 바라보는 관점의 스키마이다.
2. 개념 스키마 (Conceptual Schema)
전체적인 뷰(View)이며, 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 내용이다.
전체 데이터베이스 구조를 논리적으로 정의하며, 개체 간의 관계와 제약 조건을 표현한다.
데이터베이스의 접근 권한, 보안 및 무결성 규칙에 대한 명세 등을 정의한다.
"스키마" 라는 용어는 일반적으로 개념 스키마를 의미한다.
3. 외부 스키마 (External Schema)
사용자 뷰(View)이며, 사용자나 프로그래머 입장에서 DB의 논리적 구조를 정의한 내용이다.
전체 데이터베이스의 논리적인 한 부분이며 서브 스키마(Sub Schema)라고 불린다.
하나의 데이터베이스 스키마에는 여러 개의 외부 스키마가 존재할 수 있고, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공유할 수 있다.
엔티티(Entity)
업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합으로 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것이다.
엔티티란 실체, 객체라는 의미로 실무적으론 엔티티라고 부른다.
엔터티는 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당된다.
다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
1. 유형 엔터티(Tangible Entity)
- 물리적인 형태가 있다.
- 안정적이며 지속적으로 활용 된다.
- 업무로부터 엔터티를 구분하기 가장 용이 (ex. 사원, 물품, 강사 등)
2. 개념 엔터티(Conceptual Entity)
- 물리적인 형태가 없다.
- 관리해야 할 개념적 정보로 구분된다. (ex. 조직, 보험 상품 등)
3. 사건 엔터티(Event Entity)
- 업무 수행함에 따라 발생되는 엔터티
- 발생량이 많아 각종 통계자료에 이용되기도 한다.(ex. 주문, 청구, 미납 등)
속성 (Attribute)
의미상 더 이상 분리되지 않고, 엔티티를 설명하고 인스턴스의 구성요소가 되는 것
한 개의 엔티티는 두 개 이상의 속성을 갖는다.
한 개의 속성은 한 개의 속성 값을 가진다.
1. 기본 속성
업무로부터 추출한 모든 속성이 여기에 해당하며 엔티티에 가장 일반적이고 많은 속성을 차지한다.
2. 설계 속성
업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화 하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
3. 파생 속성
다른 속성에 영향을 받아 발생하는 속성으로서 보통 계산된 값들이 이에 해당된다.
엔티티를 식별할 수 있는 속성: PK(Primary Key)속성
다른 엔티티와의 관게에서 포함된 속성: FK(Foreign Key)속성
엔티티에 포함되어 있고 PK,FK에 포함되지 않은 속성: 일반 속성
도메인 (Domain)
속성이 가질 수 있는 값의 범위
엔티티 내에서 속성에 대한 데이터타입과 크기, 그리고 제약사항을 지정한 것
테이블의 컬럼 값을 구성할 때 값의 범위, 데이터타입, 제약사항 등을 설정하는데 그 범위 값이 도메인이다.