업무 규칙상 배송 1건은 배송품목 1건 이상과 함께 하나의 트랜잭션으로… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 3회
업무 규칙상 배송 1건은 배송품목 1건 이상과 함께 하나의 트랜잭션으로 등록되어야 한다. 다음 데이터와 모델에 대한 설명으로 옳은 것은?[배송]
| 배송번호 | 회원번호 | 등록일 |
|---|---|---|
| B01 | M7 | 2026-04-01 |
| B02 | M3 | 2026-04-01 |
| B03 | M7 | 2026-04-02 |
[배송품목]
| 배송번호 | 품목순번 | 품목명 | 수량 |
|---|---|---|---|
| B01 | 1 | 머그컵 | 2 |
| B01 | 2 | 텀블러 | 1 |
| B02 | 1 | 우산 | 1 |
1
배송품목은 배송과 따로 커밋해도 된다
2
B03은 품목 없이 등록돼 규칙을 어겼다
3
배송 쪽의 품목 참여는 선택으로 그린다
4
B01은 품목이 두 건이라 규칙을 어겼다
해설
B03 은 배송품목이 한 건도 없으므로 배송과 품목을 하나의 트랜잭션으로 함께 등록하라는 규칙을 어긴 데이터다.
이런 업무 규칙은 모델에서 배송 쪽의 배송품목 관계를 필수 참여로 표현하고, 두 INSERT 를 한 단위로 커밋해 보장한다.
- 품목 1건 이상이면 되므로 두 건인 B01 은 규칙에 맞다.
- 따로 커밋하면 품목 없는 배송이 생길 수 있어 규칙을 깬다.
- 반드시 함께 생기는 관계는 선택이 아니라 필수로 그린다.
오류나 개정된 내용이 보이면 알려주세요