2011-05-12 6 views
0

특성 범주가있는 테이블이 있습니다. 예 : 속성이있는 노래를 저장하는 테이블 장르 :디자인은 세 번째 정규형입니까?

Songs(
ID (INT), 
Name (STRING), 
Genre: (STRING) 
) 

표가 세 번째 정규형입니까?

Songs(
ID (INT), 
Name (STRING), 
Genre_ID: (INT) 
) 

Genre(
ID (INT), 
Name (String) 
) 

Songs.Genre_ID = Genre.ID :

나는 내가 다른 테이블의 Genre을 저장하고 같은 테이블 간의 관계를하는 것이 더 알고 의미한다.

하지만 첫 번째 사례 (한 테이블 사용)가 3 차 정규형 규칙을 위반하는지 확인할 수 없습니다!

그렇다면 어느 것입니까?

감사합니다, 마이크

답변

1

열쇠는 무엇인가? 테이블이 만족해야하는 것은 무엇입니까? 그것들은 우리가 당신의 질문에 대답하기 위해 알아야 할 것들입니다.

내 생각 엔 ID가 유일한 키이고 그 ID가 -> {Name, Genre}이고 다른 중요한 부분이 아닌 것으로 생각됩니다. 맞다면 노래가 3NF에 있습니다. 더 중요한 것은 BCNF와 5NF에 있습니다.

문자열 속성 Genre를 정수 Genre_ID로 바꾸는 것은 일반 형식과 전혀 관련이 없습니다.

+0

위의 모든 테이블의 키가 맞으면 ID입니다. 나는 언급하는 것을 잊었다. 답변 감사합니다! – Mike

2

나를 따라 반복하십시오.

"ID 번호는 정규화와 아무 관련이 없습니다. ID 번호는 정규화와 관련이 없습니다 .ID 번호는 정규화와 관련이 없습니다." 당신의 목표는 SONG_NAME가 기본 키 노래 이름 당 하나 개의 장르, 다음이 테이블

song_name   genre 
-- 
Toxic    Pop 
Itsy Bitsy Spider Children's 

를 저장하는 경우

, 5NF입니다. (그리고 4NF, 3NF 등).

+0

알았습니다! 고맙습니다! – Mike

관련 문제