집계
집계는 엔터티에 있는 서브타입subtype별로 속성을 지원하는 패턴이다. 관계형 데이터베이스에서는 여러 가지 방식으로 서브타입을 처리할 수 있다. 즉, 모든 서브타입의 모든 속성이 있는 단일 테이블을 만들 수 있다.
또한, 모든 서브타입의 공통 속성이 있는 테이블을 만들고 각 서브타입에 특화된 속성이 있는 테이블을 추가할 수도 있다.
콘서트 티켓 판매 시스템이 있다고 가정해 보자. 많은 콘서트가 예약 좌석이 있는 대형 경기장에서 열리고 일부 콘서트는 예약 없이 이용할 수 있는 작은 공연장에서 열리며, 나머지 콘서트는 여러 날에 걸쳐 여러 무대에서 좌석 없이 열리는 축제 형태다. 표 5-2에 여러 콘서트 유형별 속성이 나와 있다.
▼ 표 5-2 콘서트 유형별 속성
속성 |
콘서트 서브타입 |
콘서트 일자 |
경기장과 작은 공연장 |
축제 시작 일자 |
축제 |
축제 종료 일자 |
축제 |
위치 정보 |
전체 |
예약석 |
경기장 |
시작시간 |
경기장과 작은 공연장 |
가격 |
전체 |
공연자 이름 |
경기장과 작은 공연장 |
축제 이름 |
축제 |
속성 2개는 모든 콘서트 유형에서 사용되고, 속성 3개는 경기장과 작은 공연장에서 사용되며, 속성 3개는 축제에서만, 속성 1개는 경기장에서만 사용된다.