본문 바로가기
DB

[DB] 과연 3년차 비전공 개발자도 이해할 수 있을까? 인프런 DB 설계 강의 - 9, 10 한 칸에는 한 가지 정보만

by woorix2 2025. 1. 5.

정보를 설명하기 위한 신문 이미지
출처 픽사베이

1. 한 칸에는 한 가지 정보만 들어가도록 만들어라.

데이터베이스 테이블을 설계할 때 ‘한 칸에는 한 가지 정보만 들어가야 한다.’라는 규칙을 지켜야 한다. 이 규칙이 뭔지 알아보기 위해 이 규칙을 안 지킨 사례 먼저 살펴보자.

출처:인프런 JSCODE 강의 수업자료

 

“왜 한 칸에 2가지 이상 정보가 들어가면 안 되는 걸까?”
외우지 말고 이해를 해보자. 판매 상품을 조회해서 사용할 때마다 중간에 있는 콤마(,)를 제거하고 배열에 집어넣는 로직을 넣어야 한다. 판매 상품을 삽입할 때든 삭제할 때든 항상 콤마(,)를 신경 써서 작업해야 한다. 그리고 한 칸에 데이터를 여러 개 집어넣다 보면 실수로 데이터를 중복해서 넣어버리기도 한다. 따라서 한 칸에는 한 가지의 정보만 넣으려고 하는 것이다.

 

2. 한 칸에 2개 이상의 정보가 들어가 있을 땐?

한 칸에 2가지 이상의 정보가 들어가있을 때는 테이블을 분리하면 된다. 테이블을 분리함으로써 한 칸에 한 가지 정보만 들어가도록 해야 한다.

출처:인프런 JSCODE 강의 수업자료
출처:인프런 JSCODE 강의 수업자료

한 칸에 두 가지 이상의 정보가 들어가 있을 땐, 테이블을 분리해서 FK를 활용해 한 칸에 한 가지의 정보만 들어가게 만들어야 한다.
이 과정을 보고 데이터베이스 이론에서는 제1 정규형이라고 부른다. 이런 학구적인 용어는 DB 설계를 할 수 있게 됐을 때 배워도 늦지 않다. 중요한 건 DB 설계를 하는 능력이다. 정확한 용어를 외우고 익히는 건 나중에 해라.

 

 

3. '한 가지 정보'라는 게 관점에 따라 달라질 수 있다.

출처:인프런 JSCODE 강의 수업자료

 

4. 요약

한 칸에는 한 가지 정보만 들어가야 한다.
한 칸에 두 가지 이상의 정보가 들어가 있을 땐, 테이블을 분리해서 FK를 활용하면 된다.
특정 테이블에 FK를 도입했을 때 규칙 1이 안 지켜진다면, 다른 테이블로 FK를 옮겨보자.
‘한 가지 정보’의 기준은 절대적이지 않다. 따라서 서비스에 맞게 판단해야 한다.

이번에 챗봇 프로젝트의 DB를 설계하면서도 한 컬럼에 '1,2'식으로 두 개의 정보를 넣으려는 나를 발견했다.

아 이게 아닌데 싶어 얼른 취소하고 별도 테이블을 만들었더랬다.

 

정보처리기사 실기보다 이렇게 강의의 예제를 통해 배우니 훨씬 쉽게 이해가 된다.


'인프런 - 비전공자도 이해할 수 있는 DB 설계 입문/실전' 강의를 수강하며 내용 정리를 위해 작성한 포스팅입니다.

인용은 JSCODE님 수업자료에서 퍼온 것입니다.