[Database] DB 설계시 필수 덕목 (이상현상 -> 정규화)

2025. 5. 1. 16:05·DataBase/Database Modeling

DB 설계시 가장 중요한 대 원칙은 다음과 같다

DB 설계의 핵심은 중복(Duplicated) 을 없애는 것이다

위와 같이 게시글 데이터가 DB에 있다고 가정하자.

이때, 박재성 이란 사람이 박지성으로 개명하게 되어 모든 테이블의 데이터를 변경해야하는 상황이 발생했다.

우리는 이럴때 그러면 ctrl+F 로 모든 데이터를 찾아 일일히 수정해줘야한다.

열심히 데이터를 수정하다가, 실수로 뒷쪽 순번의 데이터 수정을 누락하게 되어 박재성으로 남겨둔다면 어떻게 될까?

시간이 많이 지난후, 만약 132번 게시글에 대한 신고가 접수되어 작성자를 찾으려고 검색해도 박재성이란 사람은 검색되지 않을 것이다.

이러한 상황이 발생한 궁극적인 이유는 데이터 중복이 많기 때문인데, 중복되는 데이터가 많으면 많을 수록 데이터 수정시 중복되는 데이터를 일일히 다 찾아서 변경해줘야한다. 이때 실수로 중복된 데이터를 누락하여 수정하지 않으면 데이터베이스 안에서 큰 모순이 발생해버린다. (이때 발생하는 경우를 갱신 이상(Update Anomaly) 라고 한다).

이를 해소하기 위한 방법으로는 정규화가 존재하는데, 1 ~ 5 정규형 과 보이스코드 정규형이 존재한다.

간단히 설명하면 1정규형은 한칸에는 무조건 하나의 데이터만 작성, 2정규형은 1정규형을 만족하고 부분함수종속성을 제거한 정규형이다.

3정규형은 2정규형을 만족하고 이행적 종속을 제거한 정규형이다.

4 , 보이스코드, 5 정규형은 잘 사용하지는 않는다. -> 정도로만 알아두자 !

 

결론적으로, 데이터베이스에서 데이터 중복이 발생하지 않도록 테이블을 잘 설계 해야한다 !

'DataBase > Database Modeling' 카테고리의 다른 글

[Database] 데이터 베이스 네이밍 규칙  (0) 2025.05.01
[Database] Primary Key (PK), Foreign Key(FK)  (0) 2025.05.01
[Database] 데이터베이스 모델링 (Database Modeling)  (0) 2025.05.01
'DataBase/Database Modeling' 카테고리의 다른 글
  • [Database] 데이터 베이스 네이밍 규칙
  • [Database] Primary Key (PK), Foreign Key(FK)
  • [Database] 데이터베이스 모델링 (Database Modeling)
xub2
xub2
//given //when //then
  • xub2
    xublog
    xub2
  • 전체
    오늘
    어제
    • 전체 글 모아보기 (115) N
      • 잡담 (10)
      • 도전 , 자격증 (2)
      • Java (22)
        • Java (19)
        • Collections (3)
      • Spring (4) N
        • Core (3)
        • MVC (1) N
      • DataBase (6)
        • SQL (2)
        • Database Modeling (4)
      • Computer Science (28) N
        • Network (22) N
        • Software Engineering (3)
        • Operating System (3)
      • Algorithm (14)
        • CT (12)
      • Project (9)
        • Web (0)
        • iOS (8)
        • Python (1)
      • A.I (13)
      • Linux (5)
      • Stack OverFlow (2)
  • 블로그 메뉴

    • 홈
  • 링크

    • Github
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
xub2
[Database] DB 설계시 필수 덕목 (이상현상 -> 정규화)
상단으로

티스토리툴바