2017-02-15 6 views
0

자연 키에서 대리 키를 명시 적으로 정렬해야하는지 여부를 알고 싶습니까? 잘라내 기와 재로드가 사용될 때 같은 대리 키가 항상 자연 키와 바인딩되어야합니까? 또는 중요하지 않습니다, 기본적으로 단지 삽입 및 업데이트를 수행하는 델타로드를 사용하는 큰 테이블이 있습니다. 대리 키와 자연 키가 필요하지 않으면 항상 바인딩되도록 데이터를 주문하고 싶지 않습니다. 그들이 말도 안되는 열쇠 인 이유는 무엇입니까?대리 키를 자연 키순으로 정렬해야 함

답변

2

서로 게이트 키의 실제 숫자 값은 자연 키 또는 레코드의 다른 필드와 아무 관련이 없습니다. 즉, 레코드에 대리 키를 할당하면 해당 링크를 끊거나 고아 레코드를 데이터에 남겨 두지 않아야합니다.

자연스러운 키의 버전이 여러 개인 천천히 변하는 차원 테이블에서 가장 명확하게 볼 수 있습니다.

sur_key nat_key description version valid_from valid_through 1 105 UK Office 1 1900-01-01 2017-02-16 2 108 FR Office 1 1900-01-01 2099-12-31 3 109 NL Office 1 1900-01-01 2099-12-31 4 105 UK/IRL Office 2 2017-02-16 2099-12-31 5 102 DK Office 1 1900-01-01 2099-12-31

당신이 볼 수 있듯이, 자연 키 (105)의 새 버전은 다음 대리 키를 가져오고 오래된 기록은 제자리에 유지됩니다. 늦게 도착한 키 (102)는 또한 다음 키를 얻는다.

임의의 순서 키 자연 키는 해당 열의 인덱스에서만 발생하며 테이블 자체에서는 발생하지 않습니다.

0

인 몬 (Inmon)은 데이터웨어 하우스가 주체 지향적 인 것으로 통합 인 것으로 설명했으며 데이터의 시간 변형 및 비 휘발성 컬렉션을 제공했습니다.

통합 구현의 경우 서로 게이트 키 개념을 이해해야합니다.

즉. 소매점 그룹을 위해 DWH를 작성해야하므로 다른 상점에서 데이터 세부 정보 데이터를 가져와야합니다. 우리가 자연 키 (항목 ID)와에 창고에 shope를 통해 데이터를 가져 오는 경우

Shope 1 

    Item 
    Itemid Name 
    1  Tea 
    2  suger 

    Sales 
    orderid  Itemid tola 

    1    1  100 
    2    1  100 
    3    2  300 

    Shope 2 

    Item 
    Itemid Name 
    1  cofee 
    2  tea 

    Sales 
    orderid  Itemid tola 

    1    1  100 
    2    1  100 
    3    2  300 

없음 항목 ID 1은 지금 우리가 견인 필드 항목 ID 및 Shope을 필요로 이제 우리는 항목 ID로 기록을 식별 할 수없는, shopes에서 diffrent 항목이 없을 수 아니오 (자연 키 + 데이터 소스 식별자). 관계를 설정하기 위해 끌어낼 트랜잭션 데이터 (판매)가 있다면 성능을 저하시키는 두 개의 열 (자연 키 + 데이터 원본 식별자)에 대해 조인해야한다고 생각합니다.

두 번째 시나리오에서는 SCD를 구현해야하며 대리 키가 필요합니다.

In nut shell surrogate keys is improve performance (read) and helps to implement [SCD][1] 

질문에 대한 답변.

   Just wanted to know whether surrogate keys need to be ordered explicitly on the natural key? no 

잘라 내기 및 다시로드를 사용할 때 동일한 대리 키가 항상 자연 키와 바인딩되어야합니까? SCD를 implementaion 에 따라 또는 상관 없어요, 기본적으로 단지 삽입 및 업데이 트를 수행 델타로드를 사용하여 큰 테이블이 있습니다. 대리 키와 자연 키가 필요하지 않으면 항상 바인딩되도록 데이터를 주문하고 싶지는 않습니까? 당신은 데이터를 연결할 수 없습니다 왜 그들은 말도 안되는 열쇠입니까? 읽기

1

대리 키와 자연 키는 일반적으로 직접적인 관계가 없어야합니다. 그것들을 정렬 상태로 유지하려는 유지 보수의 악몽 일 것이고 새로운 데이터가 추가 될 때마다 키를 다시 할당해야 할 필요가있을 것입니다.

키 테이블을 자르고 다시로드 한 후에 희미한 레코드가 다른 SK로 끝날 수 있으므로 팩트 레코드를 업데이트/다시로드해야합니다.

반복되는 시나리오 인 경우 자연어 키를 사실 테이블에 포함시킬 수 있습니다. 더 많은 공간을 차지하지만 재로드 및 문제 해결이 쉬워집니다.