💡 핵심 인사이트
매핑 룰(Mapping Rule)은 논리적 설계 단계에서 자유분방하게 그려진 ER 다이어그램(그림)을 깐깐한 2차원 표(관계형 릴레이션 스키마)로 강제 번역하는 공식적인 수학적 규칙입니다.
이 룰을 따라야만 그림 속의 개체와 관계가 1:1, 1:N, M:N 비율에 맞춰 완벽한 테이블과 외래 키(FK)로 탈바꿈합니다.
Ⅰ. 기본 매핑 룰 (개체와 속성의 변환)
그림의 기본 기호들은 기계적으로 테이블의 뼈대로 바뀝니다.
- 개체(사각형) ➔ 릴레이션(테이블)
- 예:
[학생]사각형은학생이라는 이름의 테이블이 됩니다.
- 예:
- 단일 속성(타원) ➔ 컬럼(열)
- 예: 사각형에 달린
이름타원은학생테이블의 2번째 열(Column)이 됩니다.
- 예: 사각형에 달린
- 키 속성(밑줄 친 타원) ➔ 기본 키(Primary Key)
- 예:
학번은 테이블의 절대 식별자인 PK로 지정됩니다.
- 예:
- 다중값 속성(이중 타원) ➔ 새로운 릴레이션(테이블)으로 찢어내기 ★
- 관계형 DB는 칸 하나에 값이 2개 들어가는 걸 극도로 혐오합니다. 따라서
취미(이중 타원)는 아예 짐을 싸서 [학생_취미]라는 새로운 독립 테이블로 쫓겨나며, 원본의학번을 가져와 복합키로 씁니다.
- 관계형 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의 유일한 생존 공식입니다.