본문 바로가기

DB

[DB] 데이터베이스 설계를 하기 위해 중요한 6가지

안녕하세요! 메로나입니다.

오늘은 데이터베이스 설계를 하기 위해 꼭 알아야 하는 6가지를 공부해 보려고 합니다.

 

데이터베이스 설계를 왜 하는가?

데이터베이스 설계는 데이터를 중복하지 않고 저장하기 위해 필요한 작업이며, 효율적으로 데이터를 관리하기 위함입니다.

 

첫 번째로 체크할 것
  • 한칸에는 한 가지 정보만 담아라, 제1 정규형
  • 콤마로 데이터를 구분하지 마라
  • FK(외래키)를 잘 사용해라
두 번째로 체크할 것
  • 어떤 테이블에 FK를 넣어도 "규칙1"을 못 지킬 때에는 중간 테이블을 생성하라
  • 중간 테이블에 FK를 각각 테이블에서 가져온다.
세 번째로 체크할 것
  • 헷갈릴 땐 관계(1:1, 1:N, N:M)을 파악하라
  • 예시) 가게와 가게상품
    • 하나의 가게는 ___판매 상품을 판다.
      • 하나의 가게는 여러 개의 판매 상품을 판다.
    • 하나의 판매 상품은 ___가게에서 판다.
      • 하나의 판매 상품은 하나의 가게에서 판다(특정 상품)
    • 가게 : 상품 = 1:N
  • 1:N 관계일 때
    • N쪽에 무조건 FK가 들어간다.
  • N:M 관계일 때
    • 중간 테이블이 있어야 한다.
    • FK가 중간 테이블에 들어간다.
  • 1:1 관계일 때
    • FK를 아무 테이블에 넣어도 된다.
    • 1:1 관계는 분리하지 않는 게 좋다.
네 번째로 체크할 것
  • 데이터 중복이 발생하는 칼럼이 있는지 확인해라
  • 임의로 데이터를 넣어봐야 함.
다섯 번째로 체크할 것
  • 진짜 중복인지? 가짜 중복인지? 확인해라
  • 실제 서비스에서 A 데이터 값을 수정하면, B 데이터도 수정해야 하는가?
  • 진짜 중복일 때는 테이블을 분리시켜서 데이터를 넣어줘야 함.
여섯 번째로 체크할 것
  • 숨어있는 중복을 찾아라
  • 게시판에 좋아요 값을 쿼리로 따로 가져온다.

가장 중요한 것은 중복값을 없애는 것입니다.