공부 기록/영상 후기
DB 테이블 설계 잘못하면 어떤 문제가 생길 수 있을까요?
yurison
2023. 3. 15. 19:36
1. 중복 데이터 문제
- Insertion anomalies => 저장 공간 낭비, 실수로 인한 데이터 불일치 가능성, null값을 많이 씀, 임시의 row를 생성하고 삭제하는 번거로움
- Deletion anomalies => 삭제 시 애꿎은 정보까지 같이 삭제될 가능성, null값을 많이 씀
- Update anomalies => 실수로 인한 데이터 불일치 가능성
2. Spurious Tuples
- join하면서 가짜 정보 발생
3. null 값이 많아지면서 발생하는 문제점들
- null값이 있는 column으로 join하는 경우 상황에 따라 예상과 다른 결과 발생
- null값이 있는 column에 aggregate function을 사용 시 주의 필요
- 불필요한 storage 낭비
바른 DB schema 설계
- 의미적으로 관련 있는 속성들끼리 테이블 구성
- 중복 데이터를 최소 허용하여 설계
- join 수행 시 가짜 데이터가 생기지 않도록 설계
- 되도록 null값을 줄일 수 있도록 설계
참고! : 성능 향상을 위해 일부러 테이블을 나누지 않는 경우도 있다.