페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#6225
인터랙티브

[DA] 제 3 정규화 (Third Normal Form, 3NF) 1s 1024MB

문제

데이터베이스 정규화는 데이터베이스 내의 데이터 구조를 조직화하고 최적화하는 과정이다. 정규화를 하는 목적은 데이터 중복을 제거하고, 효율성을 향상시키며, 데이터 무결성을 보장하기 위함이다.

데이터 정규화에는 다음과 같이 여러 단계가 있다.

  • 제 1 정규화 (1NF)

  • 제 2 정규화 (2NF)

  • 제 3 정규화 (3NF)

그 중 제 3 정규화 (3NF)는 제1 정규화와 제 2 정규화를 완료한 테이블에서, 기본 키(primary key)가 아닌 속성(Attribute)들은 모두 기본 키에만 의존하게 만드는 과정이다.

데이터프레임 df가 주어졌을 때, 이를 제 3 정규화 시킨 데이터프레임으로 변환시켜 출력하는 함수 solve(df)를 작성하시오.


입력

[df]

  • 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]
})

출처

klee
로그인해야 코드를 작성할 수 있어요.