참여 여부를 먼저 본다
이 개체의 모든 인스턴스가 관계에 반드시 참여해야 하는가?
이 질문의 답이 ERD에서는 선의 종류로, SQL에서는 외래키의 NULL 가능 여부로 이어집니다.
전체 참여
모든 인스턴스가 관계에 반드시 들어가야 함
부분 참여
관계에 아직 참여하지 않은 인스턴스가 있어도 됨
ERD 표현
이중 실선
직원 ════ 소속 ════ 부서
단일 실선
회원 ──── 주문 ──── 상품
읽는 법
빠질 수 없는 관계

모든 직원은 반드시 하나의 부서에 소속되어야 합니다.

빠져도 되는 관계

주문하지 않은 회원이 있어도 규칙 위반이 아닙니다.

저장 결과
연결 없이 저장 불가

직원 레코드는 부서 참조가 없으면 완전한 상태가 아닙니다.

연결 없이도 저장 가능

회원 레코드는 주문 관계가 없어도 먼저 존재할 수 있습니다.

SQL 반영
외래키를 필수로 둔다
dept_id INT NOT NULL
외래키에 NULL 허용
관계가 아직 없을 수 있으므로 FK 컬럼 NULL 허용
핵심: 참여 제약은 선 모양을 외우는 규칙이 아니라, 관계가 필수인지 선택인지를 정하고 그 결과를 저장 가능한 행 상태와 NULL 제약으로 이어지게 만드는 규칙입니다.