이것은 내가 만든 예입니다. 가정이 내가 가지고있는 관계입니다 : 자동차 이 기능 종속성이 맞습니까?
0NF
(CarID PK (TireID, Tire_Colour, Tire_Punctured), 안전) TireID, Tire_Colour, Tire_Punctured가 반복 그룹의 일부입니다.타이어에 구멍이 뚫리지 않으면 자동차는 안전하다고 판단됩니다.
다음과 같은 기능 의존성이 올바른 다음과 같습니다CardID, TireID, Tire_Punctured -> {안전} 내가 정상화를 계속했고, 내가 종속성을 표시 할 방법을 별도의 테이블로 관계를 분해하면
테이블 전체에 걸친 안전. 당신이 (TireID, Tire_Colour, Tire_Punctured)를 * 단일 * 속성/컬럼을 나타내는 등 스키마의 일부, 그리고 그 속성/컬럼을 생각하는 경우에만
Sample Data
------------
CarID | TireID | Tire_Colour | Tire_Punctured | Safe |
1 23 black false true
1 11 blue false true
1 29 black false true
1 1 black false true
2 4 red false false
2 34 purple false false
2 24 black true false
2 64 black false false
안전은 타이어가 아닌 자동차의 속성입니다 : CarID -> Safe. BCNF 솔루션에 대한 나의 시도는 Car {CarID *, Safe}, Tire {TireID *, CarID, Tire_Colour, Tire_Punctured}입니다. * = 열쇠. – sqlvogel
안전은 계산 필드가 되겠습니까? 또는 데이터베이스를 사용하는 사용자에게 각 행의 안전 값을 수동으로 설정하도록 남겨 두겠습니다. – Jafnee
항상 타이어 상태에서 직접 파생되는 경우 계산하는 것이 더 좋습니다. – sqlvogel