[SQL] 결정 요인 및 후보 키 동일하거나 다른 일이 있습니까?
SQL결정 요인 및 후보 키 동일하거나 다른 일이 있습니까?
여기이 발견 :
정의도 후보 키가 적용되지 않습니다?
해결법
-
==============================
1.테이블이 완전히 정상화되지 않은 경우 나의 이해에서, 행렬식은 후보 키하지 않을 수 있습니다. 더욱 유용한 형태로 규격화되지 않은 정상 데이터를 취득하는 처리를 설명 할 때 실제로 워드 결정이 사용된다.
테이블이 완전히 정상화되지 않은 경우 나의 이해에서, 행렬식은 후보 키하지 않을 수 있습니다. 더욱 유용한 형태로 규격화되지 않은 정상 데이터를 취득하는 처리를 설명 할 때 실제로 워드 결정이 사용된다.
이 (분명히 아닌 일반) 테이블을 고려 :
CREATE TABLE US_Address ( AddressID int, Streetline varchar(80), City varchar(80), State char(2), ZIP char(5), StateName varchar(80), StateTax DECIMAL(5,2) )
국가는 StateName 및 StateTax에 대한 결정이지만, 행에 대한 후보 키가 아닙니다. 적절한 정상화, 따라서 US_Address 테이블에서와 미국 테이블에 StateName 및 StateTax 이동합니다.
자세한 내용은 여기를 참조하십시오.
-
==============================
2.TL; DR 없음 "결정"과 "후보 키는"동일한 개념이 아니다. 행렬식은 FD이다. 재 생은 테이블이다. 우리는 또한 합리적 그것에서 모든 열 및 열 집합을 결정하기 때문에 CK는 테이블의 (A FD의)을 결정이라고 엉성하게 말할 수 있습니다.
TL; DR 없음 "결정"과 "후보 키는"동일한 개념이 아니다. 행렬식은 FD이다. 재 생은 테이블이다. 우리는 또한 합리적 그것에서 모든 열 및 열 집합을 결정하기 때문에 CK는 테이블의 (A FD의)을 결정이라고 엉성하게 말할 수 있습니다.
다음의 모든 조건 / 개념 테이블 값과 변수 병렬로 정의된다. 테이블 변수는 FD (함수 종속성) (가변 의미에서) 결정, 퍼키, CK (후보 키) 또는 PK (기본 키)의 인스턴스를 갖는 경우 지정된 비즈니스 / 애플리케이션에 대해 발생할 수있는 모든 테이블 값 (테이블 의미에서) 해당 인스턴스가 있습니다.
우리는 X가 결정 / 판단 세트라고 말할> Y. Y 및 기능적 의존성 /의 결정된 세트 (FD)이다 X - - X 및 Y 컬럼 세트를 위해 우리는 X를 작성할 수> Y.
우리는 C 기능적 Y.에서 X를 결정 말할> Y - -> Y.의 {C} - 우리는 X는 X의 행렬식 말하는 X 기능적 Y 및 Y 기능적 X. 의해 결정되는 결정 말할> {C}는 우리는 말할 X > Y 사소한 - X 우리가 X 말 Y의 상위 집합 인 경우 기능적 C.를 결정합니다.
X는 일부 FD의 결정이있을 때> Y T.에서 /의 FD입니다 - X 각 subrow 값은 Y에 대한 하나 개의 특정 subrow 값으로 표시 또는 우리는 X가 말할 때> Y 테이블 T에 보유 - 우리는 X 말 테이블 T에 우리는 테이블이 보유의 X는 T. 모든 사소한 FD에 /의 결정 말한다.
테이블 T의 퍼키 기능적 모든 열을 결정하는 칼럼의 세트이다. 후보 키 (CK)은 더 작은 퍼키를 포함하는 퍼키이다. 우리는 기본 키 (PK) 하나 CK를 선택하고 다른 CKs의 대체 키 (AKS)을 호출 할 수 있습니다. 그것은 어떤 CK에있을 때 열은 소수.
행렬식은 테이블 (에 보유 FD)에, 엉성하게하는 FD의 수 또는 수 없습니다. 모든 CK는 테이블의 결정이다. (그러나, 테이블의 컬럼의 모든 세트는 결정은 다음과 같습니다. 자신의, 사소와 유사하게 모든 열.)
(이러한 정의는 정규화에 의존하지 않는다. FDS 및 CKs의 테이블이 정규화에 사용된다. 그 안에 유지하는 비 단순 FD의 모든 결정은 퍼키 때 테이블 BCNF이다.)
SQL 테이블은 관계없는 및 SQL 운영자는 관계형 / 수학 대응하지 않습니다. 무엇보다도, SQL은 중복 행, 널 (null) 및 3 값 논리의 종류를 가지고있다. 당신이 용어를 빌려하고 SQL의 의미를 줄 수 있지만, 당신은 단지 다른 RM 정의 나 정리에 그 의미를 대체하고 분별 또는 실제 무언가를 얻을 수 없습니다. 우리는 관계형 디자인에 SQL 디자인을 변환해야합니다 그래서, 관계형 개념은, 다음 SQL로 다시 변환 적용됩니다. 우리는 우리가 변환을 한 경우에 무슨 일이 일어날 지 알고 있기 때문에 우리가 직접 SQL에서 어떤 일을 할 수있는 특별한 경우가 있습니다, 적용 및 변환 다시.
-
==============================
3.여기에서 예를 복용, 다음과 같은 열이있는 테이블이있을 수 있습니다 :
여기에서 예를 복용, 다음과 같은 열이있는 테이블이있을 수 있습니다 :
과의는 영업 담당자 # 유일하게 영업 담당자 이름을 결정할 수 있다고 가정 해 봅시다. 따라서, 영업 담당자 #은 영업 담당자 이름에 대한 결정하지만,이 테이블에 대한 후보 키가 아닙니다.
from https://stackoverflow.com/questions/16706637/are-determinants-and-candidate-keys-same-or-different-things by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 안드로이드 - 어떻게 내 응용 프로그램에서 만든 SQL 데이터베이스를 볼 수 있나요? 나는 이클립스에서 안드로이드 에뮬레이터를 실행 해요 (0) | 2020.07.06 |
---|---|
[SQL] 정확한 배수 관계가 존재 SQL 만 선택 행 (0) | 2020.07.06 |
[SQL] 데이터베이스 오브젝트가 이미 존재하기 때문에 업데이트-Database 명령은 ASP.Net 코어 / 엔티티 프레임 워크 코어에서 작동하지 않습니다 (0) | 2020.07.06 |
[SQL] LINQ 조합 사용? (0) | 2020.07.06 |
[SQL] 동적 SQL와 열 이름을 통해 루핑 (0) | 2020.07.06 |