객체 모델 → 관계형 모델

같은 주문 데이터도 표현 규칙이 달라지면 다섯 지점에서 어긋납니다.

객체는 참조를 따라 그래프처럼 탐색하고, 관계형 DB는 키와 조인으로 행을 연결합니다. ORM은 이 차이를 계속 번역해야 합니다.

객체 쪽 표현

도메인 구조를 코드 안에서 그대로 유지

행보다 객체의 역할과 연결이 먼저 보입니다.

Order.user.address
세분성 값 객체를 별도 타입으로 둡니다.
연결 외래 키 대신 객체 참조를 가집니다.
탐색 점(.)을 따라 필요한 대상을 바로 찾습니다.

ORM이 번역하는 5개 지점

같은 데이터가 저장 모델로 바뀌는 순간

세분성
값 객체와 중첩 필드
컬럼 묶음과 평평한 행
상속
타입 계층으로 역할 표현
단일/조인 테이블 전략 선택
동일성
참조 비교와 값 비교가 다름
기본 키 하나로 같은 행 판별
연관
객체가 서로를 직접 참조
외래 키로 관계를 저장
탐색
객체 그래프를 따라 이동
JOIN과 조회 계획으로 수집
관계형 쪽 표현

저장은 행과 키 중심으로 정규화

실제 저장 단위는 참조가 아니라 테이블과 식별자입니다.

orders.user_id = 7 users.id = 7
저장 구조는 컬럼과 제약 조건으로 고정됩니다.
연결 관계는 외래 키와 조인 규칙으로 복원합니다.
조회 필요한 시점에 SQL이 경로를 다시 계산합니다.