판단 기준 같은 계산값도 운영 방식은 셋으로 나뉩니다.

파생 속성은 원본 데이터에서 계산되지만, 실제 설계에서는 조회 때 계산, 미리 저장, DB가 계산 중 무엇을 택할지 결정해야 합니다.

출발점은 모두 "기존 컬럼에서 계산되는 값"입니다.

나이
생년월일 → 계산
주문총액
수량 × 단가 합계
재직기간
현재일 - 입사일
비교 축
저장하지 않음 정규화 원칙에 가까움
컬럼으로 저장 반정규화로 조회 속도 확보
가상 / 계산 컬럼 DBMS 기능으로 자동 계산
언제 계산?

조회할 때마다 식을 다시 실행합니다.

SELECT EXTRACT(YEAR FROM AGE(birth_date))

기록을 저장하거나 갱신할 때 값을 함께 써 둡니다.

orders.total_amount = SUM(items.qty * price)

기반 컬럼은 저장하고, 파생 값은 DB가 정의식으로 계산합니다.

GENERATED ALWAYS AS (expr)
무엇이 좋은가?

항상 최신 값을 읽고, 별도 동기화 문제가 없습니다.

조회 성능이 좋아지고 반복 계산을 줄일 수 있습니다.

자동 계산과 함께, DBMS에 따라 인덱싱도 활용할 수 있습니다.

주의할 점

읽을 때마다 계산 비용이 발생합니다.

원본 값이 바뀌면 파생 값도 같이 맞춰야 하므로 일관성 관리가 필요합니다.

지원 문법과 동작 범위가 DBMS마다 다릅니다.

판단 요약: 최신성과 단순함이 우선이면 조회 시 계산, 읽기 성능이 더 중요하면 저장, 두 요구를 절충하고 싶다면 DBMS의 계산 컬럼 지원 여부를 먼저 봅니다.