0

많은 테이블 쌍이 있는데 PK-FK 관계로 어떤 테이블 쌍이 서로 관련되어 있는지 효율적으로 결정하고 싶습니다.두 테이블이 관련되어 있는지를 효율적으로 결정하는 방법은 무엇입니까?

  1. PK-FK 관계가 문서화되어 있다면이를 활용할 것이지만 항상 문서화되어 있다고 가정 할 수는 없습니다. (예를 들어 소스가 플랫 파일 인 경우)
  2. 문서화되지 않은 경우 두 테이블이 관련되어 있는지 효율적으로 결정할 방법이 필요합니다.
  3. 쌍의 테이블이 비 복합 키와 관련이없는 경우 복합 키로 작업해야합니다.

    1. 기존 알고리즘 : 내가 무엇을 찾고

    아래의 것들 중 하나입니다.

  4. 연구 논문.
  5. 아이디어/포인터.
  6. 온라인으로 유사한 작품을 이용할 수 있습니다.
  7. 예약 제안 등을 예를 들어

은 : 위의 중

{Table1, Table2} 
{Table3, Table4} 
{Table5, Table6} 

그리고 더 많은 ...

:

가정하자 나는 테이블의 쌍 아래했습니다 쌍 테이블에서 Table3과 Table4가 PK-FK 관계로 서로 관련되어 있으면 {Table3, Table4} 쌍을 반환하고 싶습니다. 올바른 쌍을 반환하려면 테이블이 관련되어 있는지 또는 관계가 문서화되어 있지 않은지를 결정하는 효율적인 방법이 필요합니다.

참고 : 필자는 메타 데이터 기반 검색뿐만 아니라 테이블 간의 PK-FK 관계에 대한 데이터 기반 검색을 찾고 있습니다. 일부 경우 메타 데이터를 사용할 수 없기 때문일 수 있습니다.

미리 감사드립니다.

+0

[데이터베이스에서 사실상 외래 키를 검색하는 데 사용할 수있는 도구는 무엇입니까?] (http://stackoverflow.com/questions/7031203/tools-for-discovering-de-facto-foreign-keys-in-databases) – philipxy

+0

위의 복제 외에도 '(find or discover) ("외래 키"또는 종속성 OR 관계 OR 관계) 데이터베이스에서 인터넷 검색을 계속하십시오.' 또한 메타 데이터 쿼리를 원했던 많은 질문에서 발견에 대한 해답을 얻었습니다. – philipxy

답변

0

면책 조항 : 나는 그러한 알고리즘 중 하나 인 Linkifier의 저자입니다. Linkifier은 메타 데이터 (열 이름과 해당 데이터 유형의 유사성과 같은) 및 열 통계 (예 : 평균 열 너비 (바이트))를 기반으로 FK 제약 조건을 추정합니다.

FK 제약 조건 식별은 일반적으로 어려운 문제이므로 DB가 FK 제약 조건을 유추하지는 않지만 사용자가 제공해야하는 이유가 있습니다. 따라서 예상치가 100 % 정확할 것으로 기대하지 마십시오.

  1. 하면 열이 적절한 데이터 유형 및 이름이 있는지 확인하십시오 당신이 데이터베이스에 제약을 설정하려면

    일반적인

    는 워크 플로우를 권장합니다. DBLint 도움이 될 수 있습니다.
  2. 데이터베이스가 작 으면 데이터베이스의 모든 열에 대한 통계를 계산하도록 데이터베이스에 지시하십시오. PK 및 FK 제약 조건 추정의 정확도가 향상됩니다. 그러나 크고 복잡한 데이터베이스의 통계 계산에는 상당한 시간이 걸릴 수 있습니다.다른 한편으로, 통계는 정확할 필요는 없습니다 (모든 데이터에 대해 계산 됨) - 추정치 (데이터의 서브 샘플을 기반으로 함)만으로 충분합니다. 데이터베이스 공급 업체의 설명서를 참조하십시오.
  3. PK가 데이터베이스에 설정되어 있지 않으면 Linkifier가 PK를 추정하도록하십시오. 예상치를 검토 한 후 데이터베이스에서 생성 된 SQL 변경 쿼리를 실행하십시오. 진정한 PK의 지식은 FK 제약 조건의 한쪽이 정확하다고 알려져 있기 때문에 FK 제약 추정의 정확성을 향상시킵니다. 경고 : PK를 설정하고 적용하는 작업에는 많은 시간이 소요될 수 있습니다 (특히 대규모 트랜잭션 테이블의 경우).
  4. 데이터베이스에 PK를 추가 한 경우 Linkifier를 다시 실행하여 FK 제약 조건의 실제 추정치를 가져옵니다.
  5. FK 제약 조건 견적을주의 깊게 되살린 후 생성 된 alter 쿼리를 데이터베이스에서 실행하십시오. 경고 : 거짓 긍정 (false positive)이 실제로 데이터베이스에 의해 유효한 것으로 받아 들여지므로 예상 FK 제약 조건을 데이터베이스에 맹목적으로 적용하는 것은 바람직하지 않습니다. 또한 FK 제약 조건을 설정하고 적용하는 데 많은 시간이 소요될 수 있습니다.

그냥, 응급실 다이어그램을 생성 YED (ER 다이어그램에 적합한 레이아웃 알고리즘은 BPMN입니다) 또는 오라클 데이터 모델러로를 Linkifier에서 견적을 내 보낸 시각화하려는 경우.