5

SQL Server 2008을 사용하여 성경적 비율의 관계형 데이터웨어 하우스를 구축해야한다면 외래 키를 사용하여 데이터 무결성을 유지하겠습니까? 아니면 다른 방법을 사용 하시겠습니까?관계형 데이터웨어 하우스의 참조 무결성. 그만한 가치가 있니? 대안은 무엇입니까?

외래 키가 좋아요. 단지 한 번만 가져와야하기 때문에 항상 무결성을 보호합니다. 나는 무능하게 가고, 적재하고, 가능하게하는 길을 생각하고 있었다.

의견이 있으십니까?

미리 감사드립니다.

+1

[** 비슷한 질문/답변 **] (http://stackoverflow.com/questions/2819424/in-a-star-schema-are-foreign-key-constraints-between-facts)을보십시오. - 및 - 치수 - necce/2822941 # 2822941). –

+1

여기에 또는 비슷한 질문에 추가해야하는지 확신 할 수 없지만 ... 무결성이 문제인 경우 "고아"사실을 찾는 저장 프로 시저 또는 올바른 무결성 기능을 항상 수행 할 수 있습니다. (외래 키가 이해되지 않는 행). 그런 다음 데이터베이스의 다음 순환주기 이후/이후/전에 정리할 수 있습니다. – Markus

+0

/right/write .... –

답변

1

아, 나는 확실히 것입니다! 데이터베이스가 데이터 저장소라는 사실을 기억해야합니다. 프런트 엔드 용 데이터 저장소는 이 아닙니다. 이것은 미묘한 차이점이지만 미래를 고려하기 시작할 때 중요합니다. 지금은 (아마도) 관리 응용 프로그램을 소유하고있을 것입니다.하지만 누가 미래에 이것이 계속 될 것이라고 말할 것입니까?

데이터베이스에 가능한 한 많은 유효성 검사를 수행하면 응용 프로그램을 미래에 어느 정도 검증 할 수 있습니다. 적어도 다른 누군가가 데이터베이스에 대해 개발하려고 시도하면 더 많은 가정이 유지됩니다.

데이터베이스 측에서 이러한 단점을 갖는 단점은 삽입이 느려지므로 응용 프로그램이 읽기 및 쓰기에 비해 얼마나 무거울지를 고민해야합니다. 직장에서 우리는 쓰기보다는 읽기에 대한 요구가 훨씬 많기 때문에 참조 무결성이 분명해 보입니다. 그러나 우리의 테이블은 크고 (그리고 자유롭게 가져올 수 있습니다.) 그래서 우리는 테이블을 만들고, 데이터를 삽입하고, 인덱스를 생성 한 다음 외래 키와 다른 제약 조건을 생성하는 여러 단계의 가져 오기 경로를 사용합니다.

도움이 되었기를 바랍니다.

+0

@ aCiD2, OP는 ** 데이터웨어 하우스 **에 대해 묻습니다. –

+0

@ 마크, 알겠습니다.하지만 그건 내 anwser에 영향을 줍니까? – ocharles

+0

@ aCiD2, 프론트 엔드에 대한 언급이 데이터웨어 하우스와 관련이 없다고 생각합니다. "소스 시스템"이 더 적절할 것입니다. 또한 ETL 프로세스가 참조 무결성을 적용해야하는지에 대한 질문이 있습니다. 일반적으로 DB 스키마에서이를 적용하는 것이 불필요합니다.그러나, 나는 정상적으로 데이터웨어 하우스의 기초로서 완전히 표준화 된 스키마를 사용하지 않을 것이라고 생각합니다. –

2

처음에는 관계형 스키마를 (물리적으로) 준수하는 데이터웨어 하우스를 구축하지 않았습니다. 제안 된 데이터웨어 하우스가 완전히 정규화 되었습니까? 아니면 질문에서 "관계형"이라는 단어가 단순히 SQL 데이터베이스에 구축 될 것임을 나타 냅니까?

+0

모든 세부 정보를 캡처하는 정규화 된 레이어가 있습니다. 분석을 위해 요약 데이터가로드되는 이후에 하나 이상의 레이어가 작성됩니다. – David

+0

웨어 하우스의 잠재적 인 크기와 앞으로이 (의료) 데이터가 어떻게 사용될 지 모르기 때문에 첫 번째 레이어에 세부 사항을 정규화 된 형식으로 저장해야합니다. – David

+0

별표 스키마는 관계형으로 저장된 동일한 데이터보다 * 크게 * 크게 클 수는 없습니다. 이는 별표 스키마를 만드는 데 관련된 비정규 화가 일반적으로 사실 테이블보다 작은 크기의 차원에만 적용 가능하기 때문입니다. –

1

예 일반적으로 외래 키를 사용합니다. 이는 데이터베이스에서 중요하지만 특히웨어 하우스가 많은 테이블을 가진 복잡한 테이블 인 경우 특히 그렇습니다.

웨어 하우스에서 무결성 제약 조건을 사용하는 이유는 다른 데이터베이스와 거의 같습니다. 잘못된 데이터가 데이터베이스에 들어갈 위험을 최소화합니다. 그것은 매우 자주 그러한 무결성 규칙을 구현하는 가장 경제적이며 실행 가능한 방법입니다. 이는 쿼리 성능을 향상시키기 위해 최적화 프로그램에서 사용할 수있는 제약 조건을 의미합니다. 제약 조건은 데이터를 소비하고 구조 해석이 필요한 개발 도구 및 사용자에게도 사용할 수 있습니다.