«primary-key» 태그된 질문

관계형 데이터베이스 디자인에서 기본 키는 테이블의 각 행을 고유하게 식별 할 수 있습니다. 기본 키는 단일 열 또는 열 집합으로 구성됩니다.

5
기본 키에 자체 이름이있는 이유는 무엇입니까?
수학적 관점에서 볼 때, 테이블에 기본 키가 하나 이상 있다고 가정하면 간단한 테이블 속성 대신 임의의 이름으로 기본 키를 참조하는 근시안적인 디자인 결정 인 것 같습니다. 결과적으로 기본 키를 비 클러스터형에서 클러스터형으로 또는 그 반대로 변경하면 먼저 키를 삭제 한 다음 읽기보다는 이름을 검색해야합니다. 내가 보지 않은 임의의 이름을 사용하는 …

8
기본 키 값이 변경되는 이유는 무엇입니까?
나는 ROWGUID의 최근의 개념을 연구하고 건너 온 한 이 질문입니다. 이 답변은 통찰력을 주었지만 기본 키 값을 변경한다는 언급으로 다른 토끼 구멍을 내 렸습니다. 필자는 항상 기본 키를 변경할 수 없다는 것을 이해하고 있으며,이 답변을 읽은 후 검색하면 모범 사례와 동일한 답변 만 제공했습니다. 어떤 상황에서 레코드 작성 후 기본 …

4
GUID를 기본 키로 사용하여 데이터베이스 디자인을 수정하는 최상의 솔루션
성능이 좋지 않은 데이터베이스를 수정하거나 데이터베이스가있는 경우 더 나은 제안을하기 위해이 아이디어를 확인한 후 있습니다. 더 나은 제안에 항상 열려 있습니다. GUID를 PK로 사용하는 매우 큰 데이터베이스 (하루에 약 2 천만 개가 증가하는 2 천만 건의 레코드)가 있습니다. 내 부분에 대한 감독이지만 PK는 SQL Server에 클러스터되어 성능 문제를 일으 킵니다. …


2
복합 키의 첫 부분으로 DATETIME을 갖는 기본 키 인덱스는 사용되지 않습니다
PRIMARY KEY의 첫 번째 부분으로 DATETIME (또는 날짜)을 INDEXING하는 데 문제가 있습니다. 나는 MySQL 5.5를 사용한다 여기 내 두 테이블이 있습니다. -- This is my standard table with dateDim as a dateTime CREATE TABLE `stats` ( `dateDim` datetime NOT NULL, `accountDim` mediumint(8) unsigned NOT NULL, `execCodeDim` smallint(5) unsigned NOT NULL, …


4
테이블의 모든 열을 구성하는 기본 키의 이점이 있습니까?
나는 널이 불가능한 네 개의 열이있는 테이블을 가지고 있으며 데이터는 고유 한 레코드를 구별하는 데 필요합니다. 이것은 기본 키를 만들려면 모든 열을 구성해야 함을 의미합니다. 테이블에 대한 쿼리는 거의 항상 단일 레코드를 가져와야합니다. 즉, 모든 열이 쿼리에서 필터링됩니다. 모든 열을 검색해야하므로 기본 키를 갖는 것이 전혀 도움이되지 않습니까 (레코드의 고유성을 …

2
단순 조인에 사용되지 않은 기본 키 인덱스
다음과 같은 테이블 및 인덱스 정의가 있습니다. CREATE TABLE munkalap ( munkalap_id serial PRIMARY KEY, ... ); CREATE TABLE munkalap_lepes ( munkalap_lepes_id serial PRIMARY KEY, munkalap_id integer REFERENCES munkalap (munkalap_id), ... ); CREATE INDEX idx_munkalap_lepes_munkalap_id ON munkalap_lepes (munkalap_id); 다음 쿼리에서 munkalap_id의 인덱스가 사용되지 않는 이유는 무엇입니까? EXPLAIN ANALYZE SELECT ml.* …

4
왜 키를 명시해야합니까?
나는 데이터베이스의 주제에 대해 매우 익숙하지 않으므로 무지하게 들릴 수 있지만 키가 테이블 내에서 명시되어야하는 이유가 궁금합니다. 이것은 주로 주어진 열 값이 각 행 내에서 고유해야한다는 것을 사용자에게 알리는 것입니까? 언급되지 않더라도 독창성은 여전히 ​​존재해야합니다.

4
SQL Server 교착 상태 보고서의 키를 값으로 변환하려면 어떻게해야합니까?
waitresource = "KEY : 9 : 72057632651542528 (543066506c7c)"와 관련하여 충돌이 발생했음을 알려주는 교착 상태 보고서가 있는데이를 볼 수 있습니다. <keylock hobtid="72057632651542528" dbid="9" objectname="MyDatabase.MySchema.MyTable" indexname="MyPrimaryKeyIndex" id="locka8c6f4100" mode="X" associatedObjectId="72057632651542528"> <resource-list> 내에 있습니다. 키의 실제 값을 찾을 수 있기를 원합니다 (예 : id = 12345). 해당 정보를 얻기 위해 어떤 SQL 문을 사용해야합니까?

4
기본 키에 지정된 정렬 순서이지만 정렬은 SELECT에서 실행됩니다.
센서 데이터를 테이블 SensorValues 에 저장하고 있습니다. 테이블 및 기본 키는 다음과 같습니다. CREATE TABLE [dbo].[SensorValues]( [DeviceId] [int] NOT NULL, [SensorId] [int] NOT NULL, [SensorValue] [int] NOT NULL, [Date] [int] NOT NULL, CONSTRAINT [PK_SensorValues] PRIMARY KEY CLUSTERED ( [DeviceId] ASC, [SensorId] ASC, [Date] DESC ) WITH ( FILLFACTOR=75, DATA_COMPRESSION = …

2
관계형 데이터베이스의 조회 테이블에 대한 모범 사례는 무엇입니까?
조회 테이블 (또는 일부 사람들이 호출하는 코드 테이블 )은 일반적으로 특정 열에 제공 할 수있는 가능한 값의 모음입니다. 예를 들어, party두 개의 열이있는 (정당에 대한 정보를 저장하기 위한) 룩업 테이블이 있다고 가정 하십시오. party_code_idn시스템 생성 숫자 값을 보유하며 ( 비즈니스 도메인 의미 가 부족함 ) 실제 키에 대한 대리 역할을합니다. …

5
'거대한'데이터베이스 테이블 PK의 순차적 GUID 또는 bigint
이런 유형의 질문이 많이 나온다는 것을 알고 있지만 아직 결정을 내리는 데 도움이되는 강력한 주장을 읽지 않았습니다. 저를 참아주세요! 나는 거대한 데이터베이스를 가지고 있습니다-하루에 약 10,000,000 개의 레코드가 증가합니다. 데이터는 관계형이며 성능상의 이유로 BULK COPY로 테이블을로드합니다. 이러한 이유로 행의 키를 생성해야하며 IDENTITY 열에 의존 할 수 없습니다. 64 비트 정수-bigint는 …

4
기존 PK에 자동 증분 추가
다른 DB에 이미 존재하는 DB에 테이블을 만들었습니다. 처음에는 이전 DB 데이터로 채워졌습니다. 테이블의 PK는 해당 레코드에 이미 존재하는 값을 수신해야하므로 자동 증가 할 수 없었습니다. 이제 자동 증분으로 PK를 가지려면 새 테이블이 필요합니다. 그러나 PK가 이미 존재하고 데이터가있는 후에 어떻게해야합니까?

5
데이터베이스에서 단일 기본 키 시퀀스를 공유 하시겠습니까?
주어진 테이블에서 고유 한 기본 키 대신 모든 테이블에서 고유 한 단일 키 대신 모든 테이블에서 단일 시퀀스를 기본 키로 사용하는 것이 허용 되는가? 그렇다면, 테이블에서 단일 기본 키 시퀀스를 사용하는 것보다 객관적으로 낫습니다. 저는 DBA가 아닌 주니어 소프트웨어 개발자이므로 여전히 훌륭한 데이터베이스 디자인의 많은 기초를 배우고 있습니다. 편집 : …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.