2

나는 여기서 너무 분명한 질문을하지 않기를 바랍니다.계산 열에 대해 비정규화할 때의 절충점은 무엇입니까?

현재 프로젝트에서는 SQL Server 2008을 사용하여 비교적 간단한 데이터베이스를 설계하고 있습니다. 테이블 중 하나에 대해 '계산 된 열'(지속되지 않음)을 도입하기로 결정했습니다. 표현식은 단순히 다른 2 개의 숫자 열의 결과이며, 존재 이유는 편리합니다 (웹 페이지에 일방적으로 데이터 바인딩하는 중입니다).

그러나 계산 된 열을 사용하면 첫 번째 정규 양식을 위반하는 것으로 나타났습니다. 이것은 나에게 궁금하게했다 : Wat는 교환이다? 계산 된 열에 대한 유일한 이유가 편리하면 비정규 화보다 중요합니까?

+4

분명히 다른 계층에서 계산할 수있는 무언가를 계산하고 추가 열을 반환하여 네트워크 트래픽을 약간 추가하는 데이터베이스 서버에 약간의 추가 CPU 오버 헤드가 있습니다. 지속성이 없다면 CUD 작업에 대한 추가 오버 헤드가없고 디스크 공간이 필요하지 않으므로 추가 I/O가 발생하지 않습니다. –

+0

하나 이상의 키가 있고 고유 한 열 이름을 갖고 있고 모든 열이 null이 아닌 경우 SQL 테이블은 1NF에 있습니다. 지속되거나 존재하지 않는 계산 된 열은 1NF를 위반하지 않습니다 – sqlvogel

답변

1

"계산 된 열을 사용하면 첫 번째 정규형을 위반합니다.": 전혀 아닙니다! 저장되지 않고 항상 최신 데이터로 다시 계산됩니다. 따라서보기에서 계산 된 열과 같이 훌륭한 솔루션입니다.

+0

계산 된 열이 지속되지 않는 한 정상화에 영향을주지 않습니다. –

+0

@rewinder : 그건 내가 믿는 것이다. 그렇다! –

0

그것의 표현은 단순히이 다른 숫자 열 및 존재에 대한 유일한 이유의 제품 것은 편리 (I 웹 페이지에 어떤 편도 데이터 바인딩을하고있는 중이 야)입니다.

그런 다음 계산식을 데이터베이스가 아닌 SELECT 문에 넣으십시오.