💡 핵심 인사이트
매핑 룰(Mapping Rule)은 논리적 설계 단계에서 자유분방하게 그려진 ER 다이어그램(그림)을 깐깐한 2차원 표(관계형 릴레이션 스키마)로 강제 번역하는 공식적인 수학적 규칙입니다.
이 룰을 따라야만 그림 속의 개체와 관계가 1:1, 1:N, M:N 비율에 맞춰 완벽한 테이블과 외래 키(FK)로 탈바꿈합니다.


Ⅰ. 기본 매핑 룰 (개체와 속성의 변환)

그림의 기본 기호들은 기계적으로 테이블의 뼈대로 바뀝니다.

  1. 개체(사각형) ➔ 릴레이션(테이블)
    • 예: [학생] 사각형은 학생이라는 이름의 테이블이 됩니다.
  2. 단일 속성(타원) ➔ 컬럼(열)
    • 예: 사각형에 달린 이름 타원은 학생 테이블의 2번째 열(Column)이 됩니다.
  3. 키 속성(밑줄 친 타원) ➔ 기본 키(Primary Key)
    • 예: 학번은 테이블의 절대 식별자인 PK로 지정됩니다.
  4. 다중값 속성(이중 타원) ➔ 새로운 릴레이션(테이블)으로 찢어내기 ★
    • 관계형 DB는 칸 하나에 값이 2개 들어가는 걸 극도로 혐오합니다. 따라서 취미(이중 타원)는 아예 짐을 싸서 [학생_취미]라는 새로운 독립 테이블로 쫓겨나며, 원본의 학번을 가져와 복합키로 씁니다.

Ⅱ. 관계(마름모)의 변환 룰 ★시험 단골★

개체 간의 연결 비율(카디널리티)에 따라 외래 키(FK)를 꽂는 위치가 완전히 달라집니다.

1. 1 : 1 관계

  • 양쪽 다 파워가 같습니다. A 개체의 기본 키를 B 릴레이션의 외래 키로 꽂든, 반대로 B의 키를 A에 꽂든 논리적으로 상관없습니다.
  • 단, 정보가 더 자주 쓰이는 쪽에 꽂는 것이 유리합니다.

2. 1 : N (일대다) 관계 ★핵심 룰

  • 부서(1)와 사원(N)의 관계입니다.
  • 절대 룰: 무조건 N(다) 쪽 테이블에 1(일) 쪽 테이블의 기본 키를 외래 키(FK)로 밀어 넣어야 합니다.
  • 잘못된 맵핑: 부서(1) 테이블에 사원번호(N)를 FK로 넣으려 하면 사원이 100명이면 칸 1개에 사번 100개를 우겨 넣어야 하므로 제1정규형(1NF) 위반 에러가 폭발합니다.
  • 올바른 맵핑: 사원(N) 테이블 끄머리에 부서코드(FK) 칸을 하나만 뚫어주면 사원 1명당 소속된 부서 1개씩이 깔끔하게 저장됩니다.

3. M : N (다대다) 관계 ★새로운 생명 탄생

  • 학생(M)과 과목(N)의 관계입니다. 양쪽 다 양다리를 걸치고 있어 외래 키를 꽂을 공간이 파탄 납니다.
  • 절대 룰: 이 마름모는 아예 펑 터져서 **제3의 새로운 교차 릴레이션(매핑 테이블)**으로 강제 진화합니다.
  • 새로 태어난 [수강] 테이블은 학생의 학번(PK)과 과목의 과목코드(PK) 두 개를 몽땅 훔쳐와서 외래 키(FK)로 삼고, 동시에 이 둘을 묶어 자신의 복합 기본 키(PK)로 삼아 1:N 두 개의 관계로 찢어냅니다.

📢 섹션 요약 비유: 매핑 룰은 자유분방한 그림을 엄격한 군대식 관물대로 쑤셔 넣는 **'정리정돈 공식'**입니다. 1:N 관계에서는 방이 많은 놈(N)의 관물대 서랍 한 켠에 방이 하나인 놈(1)의 이름표(FK)를 슬쩍 붙여놓는 게 가장 효율적이며, M:N 관계처럼 짐이 너무 이리저리 꼬여 쑤셔 넣을 수 없으면, 아예 **새로운 창고(교차 테이블)**를 하나 임대해서 두 사람의 물건(외래 키)을 다 모아놓고 관리하는 것이 RDBMS의 유일한 생존 공식입니다.