1. 데이터 중복이 발생하는지 시뮬레이션을 돌려봐라.
DB 설계 핵심 원칙은 "중복 없애기" 이다. 초안으로 구성된 테이블에서 데이터 중복이 발생하는 구성인지 임의로 데이터를 넣고 확인해봐야 한다.
예시)
- posts (게시글)
| id | 제목 | 내용 | 작성자 |
예시를 통해 테이블에 임의의 데이터를 넣어보고 중복 데이터 발생을 확인한다. 이 과정이 익숙해지면 머릿속으로 임의의 데이터를 넣어보고 중복 데이터가 발생할 수 있는 구조인지 생각할 수 있게 된다.
- posts (게시글)
| id | 제목 | 내용 | 작성자 |
| 1 | [속보] 개발자 채용 확대 | 내용1 | 송진성 |
| 2 | 취업 꿀팁 공유합니다! | 내용2 | 송진성 |
| 3 | 어제 면접 보고 온 썰 | 내용3 | 송진성 |
작성자 컬럼에 중복 데이터가 발생했다. "송진성" 이름을 개명하면, 전부 찾아서 고쳐야 하는데 이 과정에서 실수가 발생할 수도 있다.
따라서 특정 컬럼에 데이터 중복 발생시, 테이블 분리로 해결한다.
2. 테이블 분리를 활용해 데이터 중복 제거
테이블을 분리하여 데이터 중복을 없애본다.
- posts (게시글)
| id | 제목 | 내용 | 작성자 id (FK) |
| 1 | [속보] 개발자 채용 확대 | 내용1 | 1 |
| 2 | 취업 꿀팁 공유합니다! | 내용2 | 1 |
| 3 | 어제 면접 보고 온 썰 | 내용3 | 1 |
- users (사용자)
| id | 이름 |
| 1 | 송진성 |
* "FK의 중복"은 중복이라고 판단하지 않는다.
이 구조에서 "송진성" 이름을 개명하면, users 테이블의 1개의 데이터만 수정하면 된다. 그러면 게시글에 표시된 작성자 이름은 전부 실수 없이 바뀐다.
3. 이 경우도 데이터 중복이지 않나?
게시글 테이블의 다른 부분에서 중복 데이터를 확인하기 위해 억지로 중복이 발생하게끔 데이터를 넣는다.
- posts (게시글)
| id | 제목 | 내용 | 작성자 id (FK) |
| 1 | AWS 배포 과정 정리 | 내용1 | 1 |
| 2 | AWS 배포 과정 정리 | 내용2 | 1 |
| 3 | 어제 면접 보고 온 썰 | 내용2 | 1 |
제목과 내용 컬럼에 데이터 중복이 발생한 것처럼 보인다. 이것도 데이터 중복인지 생각해본다.
참고링크 : https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-db-%EC%84%A4%EA%B3%84-%EC%9E%85%EB%AC%B8?cid=335049
비전공자도 이해할 수 있는 DB 설계 입문/실전| JSCODE 박재성 - 인프런 강의
현재 평점 4.9점 수강생 1,505명인 강의를 만나보세요. 비전공자 입장에서도 쉽게 이해할 수 있고, 실전에서 바로 적용 가능한 'DB 설계 입문/실전' 강의를 만들어봤습니다! 복잡한 개념을 몰라도
www.inflearn.com
'강의 실습 > 비전공자도 이해할 수 있는 DB 설계 입문 실전' 카테고리의 다른 글
| [규칙 6] 숨어있는 중복을 찾아라 (0) | 2026.02.27 |
|---|---|
| [규칙 5] 가짜 중복과 진짜 중복을 구별해라 (0) | 2026.02.26 |
| [규칙 3] 헷갈릴 땐 관계(1:1, 1:N, N:M)를 파악해봐라 - 6 (0) | 2026.02.24 |
| [규칙 3] 헷갈릴 땐 관계(1:1, 1:N, N:M)를 파악해봐라 - 5 (0) | 2026.02.23 |
| [규칙 3] 헷갈릴 땐 관계(1:1, 1:N, N:M)를 파악해봐라 - 4 (0) | 2026.02.20 |
댓글