[Database]이상현상에 대해 말해주세요

이상현상

데이터베이스 설계를 잘못하게 되었을 경우 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입 갱신 삭제 연산 수행시에 부작용이 발생하는 것

삽입이상

  1. 삽입시에 불필요한 데이터도 삽입해야하는 문제

  2. 예시

    • 사용자(User) 테이블:

    | 사용자 ID | 사용자 이름 | 주문 ID | | --- | --- | --- | | 1 | John | 1 | | 2 | Lisa | 2 | | 3 | David | ❌ |

    • 사용자 정보를 삽입할 때 주문 ID를 함께 삽입하지 않은 경우, 세 번째 사용자(David)는 주문 정보가 없습니다. 이로 인해 데이터의 일관성이 훼손된다.

갱신이상

  1. 중복 레코드가 있는 있는 경우 일부만 변경해서 데이터가 불일치 하는문제

  2. 예시

    • 주문(Order) 테이블:

    • David가 이름을 David Pru 로 바꾸려고 하는경우 주문 3의 사용자 이름만 변경되고 다른 중복 컬럼들의 값이 변경되지 않아서 발생하는 문제

    | 주문 ID | 주문 내역 | 사용자 ID | 사용자 이름 | | --- | --- | --- | --- | | 1 | 상품 A | 1 | John | | 2 | 상품 B | 2 | Lisa | | 3 | 상품 C | 3 | David Pru | | 4 | 상품 D | 3 | David |

삭제이상

  1. 레코드를 삭제하는 경우 필요 데이터까지 삭제되는 문제

  2. 예시

    • 주문(Order) 테이블:

    | 주문 ID | 주문 내역 | 사용자 ID | 사용자 이름 | | --- | --- | --- | --- | | 1 | 상품 A | 1 | John | | 2 | 상품 B | 2 | Lisa | | 3 | 상품 C | 3 | David |

    • 특정 주문(ID 3)을 삭제할 때 해당 주문에 연결된 사용자 정보가 함께 사라진다. 주문만 삭제하려 하였는데 사용자 ID와 이름이 함께 사라진다.

⇒ 이러한 이상현상을 해결하기 위해서 데이터 베이스 설계 단계에서 정규화과정이 필요함

Last updated