2014-09-15 3 views
0

참조 무결성을 사용 중이고 두 엔티티 (A와 B) 간의 관계가 있고 양측의 최소 카디널리티가 1이라고 가정 해 봅시다. 이는 테이블 A를 채우기 전에 테이블 B가 레코드를 필요로한다는 것을 의미합니다 A를 연결할 수 있습니다. 그러나 최소 카디널리티가 양면에서 1이기 때문에 같은 방식으로 다른 말로 표현할 수 있습니다. 즉, 테이블 A의 레코드가 있어야 테이블 B에 레코드를 연결할 수 있습니다. 레코드를 테이블에 삽입 할 수 있습니다. B.참조 무결성을 사용하여 최소 카디널리티가 1..1로 채워지는 테이블은 다음 중 어느 것입니까?

올바르게 이해하면 참조 무결성이 두 시나리오의 다른 테이블의 다른 레코드에 레코드를 연결해야하므로 문제가되는 것 같습니다. 어느 테이블에도 레코드를 입력 할 수 없음을 의미합니다.

누군가이 시나리오에서 어떤 일이 일어날 지 설명 할 수 있습니까?

나는이 같은 질문을 선생님에게 물었고, 최소한의 카디널리티 1..1 (이 표기법이 맞습니까?)과의 관계는 가능하지만 내게 어떤 표를 사용해야하는지 설명하지 못했습니다. 먼저 채워지십시오.

죄송합니다. 구체적인 예가 없으므로이 무작위로 생각하고있었습니다. 답안에서 실용적인 예를 사용하여 자세히 설명 할 수 있다면 좋을 것입니다.

답변

1

사례가 올바르지 않습니다.

1 대 1 관계에서 하나의 테이블 부모가 있어야하고 다른 하나는 자식이어야합니다.

고려할 사항 하나의 사용자 테이블과 사용자 프로필 테이블이 있습니다. 이 경우 user_profile은 user에 속합니다. 사용자가있을 때까지는 user_profile을 작성할 수 없습니다. 즉 User 테이블은 parent이고 user_profile은 child입니다. 에 속하며 부모 테이블의 ID를 포함합니다.

user_profile 시나리오에서는 user_profile 테이블에 user_id가 저장되며 사용자 개체를 먼저 생성 한 다음이 ID를 user_profile에 전달하고 user_profile을 생성해야합니다.

그래서 시나리오에서 부모를 만들거나 자녀를 만드는 것을 찾아야합니다. 그렇지 않은 경우 닭고기 계란에 항상 들어갑니다.

+0

아아아 나는 여전히 개념 다이어그램 (erd 's)만을 작성하고 있으므로 관계형 다이어그램으로 변환하면 테이블 중 하나가 부모 테이블이고 다른 하나가 자식 인 시나리오로 변경됩니다. 너무 먼 미래를 생각하고 있었다 : P 고마워. – user1534664

0

이 질문을 통해 사용자 관점에서 보면 DBMS가 한 번에 하나의 테이블 만 조작 할 수 있다는 가정을하고 있습니다.

개념 수준에서 일대일로 카디널리티가있는 두 엔티티를 가질 수 있습니다.

관계형 데이터 모델의 논리 레벨에서 이것은 하나의 관계에있는 후보 키 값 세트가 다른 관계에있는 후보 키 값 세트와 정확하게 같아야 함을 의미합니다.

대부분의 DBMS의 물리적 수준에서이 무결성 제약 조건은 외래 키 제약 조건으로 구현됩니다.

대부분의 DBMS에서 한 번에 하나의 테이블 만 조작 할 수 있습니다.

이 경우 제약 조건이 모든 문 다음에 검사되면 하나의 테이블을 '부모'로 선택하고 하나는 '하위'로 선택해야합니다. 테이블의 조작은 올 Y 른 순서로 수행되어야하며, 외부 키 제한 조건이 명령. 다음에 위]되지 않도록하십시오. 트리트먼트 등에서 각 부모에게는 정확히 한 명의 자식이 있음을 보장하기 위해 추가 검증이 필요할 수 있습니다.

그러나 제약 조건 검사가 지연되어 변경 사항이 커밋 될 때까지 확인되지 않으면 두 개의 외래 키 제약 조건을 지정할 수 있습니다. 하나는 첫 번째 테이블과 두 번째 테이블 사이에 있고 두 번째 테이블과 첫 번째 테이블 사이에는 반대입니다. 테이블 변경은 변경 사항이 커밋 될 때까지 제약 조건을 위반하지 않는 한 어떤 순서로든 수행 할 수 있습니다. 그러나 사용자 관점에서 다중 명령문 트랜잭션의 중간에 제약 조건이 위반됩니다.

다중 할당이라는 개념도 있습니다. 이것은 하나 이상의 테이블 조작이 단일 원자 연산으로 간주되는 것입니다. 이 경우 단일 명령문은 명령문의 끝에서 제한 조건을 위반하지 않도록 두 테이블 모두를 조작해야합니다. 이 경우, 사용자의 관점에서 제약 조건은 위반되며 결코 위반 될 수 없습니다. 이러한 여러 할당을 지원하는 비상업적 인 DBMS가 있습니다.

다중 과제의 개념을 소개 한 Chris Date와 Hugh Darwen의 Third Manifesto를 읽어 볼 수 있습니다.