2
"There are circumstances in which the deletion of data representing certain facts 
necessitates the deletion of data representing completely different facts. The 
"Faculty and Their Courses" table described in the previous example suffers 
from this type of anomaly, for if a faculty member temporarily ceases to be 
assigned to any courses, we must delete the last of the records on which that 
faculty member appears, effectively also deleting the faculty member. This 
phenomenon is known as a deletion anomaly." 
이상이 관계형 데이터베이스 관리 시스템에 접근 할 삭제하는 방법을

삭제 편차에 접근하는 방법은 무엇입니까?

+3

답은 귀하의 링크입니다. ** 정규화 ** –

+0

@ypercube - 감사 링크는 정의 만 제공합니다. –

+1

섹션 ** 일반 양식 **에는 1NF, 2NF, 3NF, BCNF 등의 링크가 있습니다. 여기에는 정상적인 양식에서 높은 양식으로 정규화하는 방법에 대한 예제가 있습니다. –

답변

4

삭제 예외는 잘못된 데이터베이스 디자인 (트랜잭션이 있다고 가정)의 분명한 징후입니다. 그것들을 없애는 가장 좋은 방법은 모델을 적어도 세번째 정규형 (3NF)으로 정규화하는 것입니다.

좋은 설명은 here입니다.

+0

"멋진 설명". 5NF조차도 캐스케이드를 발행하지 않고 강아지 기록 (강아지 번호, 강아지 이름, 켄넬 코드)을 삭제하면 데이터베이스가 일관성없는 상태가됩니다. * 즉 * 테이블 강아지 트릭은 존재하지 않는 레코드와의 외국 관계를 유지하므로 일치하지 않을뿐만 아니라 키의 절반이 강아지 번호 인 강아지 의상 (특히 접합점 테이블)에 대한 테이블도 일치하지 않습니다. –

+0

그렇습니다. 삭제가 캐스케이드없이 완료되면 DB가 일관성없는 상태에 있지만 삭제 예외를 의미하는지 확실하지 않습니다. Google은 몇몇 엔티티를 삭제하면 간접적으로 삭제를 의미하는 경우를 삭제 저자로 간주하는 것으로 나타났습니다. 다른면에서 필자는 외계인 키가 삭제 예외를 생성 할 수 있다고 생각하는 저자도 발견했다. 그것은 당신이 선택한 정의에 달려 있습니다. –

관련 문제