문제
데이터베이스 정규화는 데이터베이스 내의 데이터 구조를 조직화하고 최적화하는 과정이다. 정규화를 하는 목적은 데이터 중복을 제거하고, 효율성을 향상시키며, 데이터 무결성을 보장하기 위함이다.
데이터 정규화에는 다음과 같이 여러 단계가 있다.
제 1 정규화 (1NF)
제 2 정규화 (2NF)
제 3 정규화 (3NF)
그 중 제 3 정규화 (3NF)는 제1 정규화와 제 2 정규화를 완료한 테이블에서, 기본 키(primary key)가 아닌 속성(Attribute)들은 모두 기본 키에만 의존하게 만드는 과정이다.
데이터프레임
입력
[
book_id: 책 아이디(int)
genre_id: 장르 아이디(int)
genre_type: 장르 종류(object)
price: 책 판매가격 (float)
예제
[df]
book_id genre_id genre_type price
0 2 1 horror 10.25
1 1 3 comedy 11.99
2 3 2 fantasy 25.49
3 4 2 fantasy 40.00
[book]
genre_id price
book_id
1 3 11.99
2 1 10.25
3 2 25.49
4 2 40.00
[genre]
genre_type
genre_id
1 horror
2 fantasy
3 comedy
df = pd.DataFrame({
'book_id': [2, 1, 3, 4],
'genre_id': [1, 3, 2, 2],
'genre_type': ['horror', 'comedy', 'fantasy', 'fantasy'],
'price': [10.25, 11.99, 25.49, 40.00]
})