일시적인 타당성과 기본 / 외국 관계


11

나는 시간적 유효성과 시간 기능을 보여주는 몇 가지 오라클 자습서를 읽었습니다. 그러나 내가 읽은 예제에는 데모 테이블에 사용되는 기본 키가 없습니다.

http://docs.oracle.com/cd/E16655_01/appdev.121/e17620/adfns_design.htm#ADFNS1005 http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm /temporal/temporal.html

이 테이블에 기본 키를 추가해야합니까? 이 임시 테이블 중 하나를 다른 테이블에서 어떻게 참조해야하는지 궁금하기 때문에 묻습니다. 한 임시 테이블에서 다른 임시 테이블로 외래 키를 추가 할 수 있습니까?

pk / 외래 키 구현을 추가 한 다음 pk로 테이블에서 참조를 업데이트하면 fk가있는 테이블이 더 이상 관련이없는 레코드를 가리 킵니다. 임시 데이터가 정상적인 기본 키를 손상 시킵니다. 관계? 그렇다면 이것이 어떻게 성능에 영향을 미치는가? 나는 일반 열을 '외래 키'로 사용하고 쿼리에서 참조 기간에 적합한 열을 선택합니까?

누구든지 정상적인 또는 의사 정규 pk / fk 사용법으로 시간 데이터를 보여주는 편리한 예제 또는 자습서를 알고 있습니까?

감사

답변:


2

불행히도 모든 RDBMS 제품에서 SQL 또는 해당 구현이 일시적인 관계를 완전히 지원하지는 않습니다.

Teradata와 DB2만이 두 개 이상의 열에서 시간이있는 제약 조건을 구현하는 일부 기능이 있습니다.

내 예 :

SCHEMA TEST 설정;

CREATE TABLE PRODUCT (
product_ID INT NOT NULL, 이전
NVARCHAR (50),
PRIMARY KEY (product_ID)
);

CREATE CAMPAIGN (
campaign_ID INT NOT NULL,
product_ID INT NOT NULL,
price DECIMAL,
PRIMARY KEY (campaign_ID)
)
;


대체 테이블 캠페인 추가 제약 조건 XFK_campaign_productid
외부 키 (product_ID) 참조 제품 (product_id)
삭제 작업이 없습니다.

임시 열 business_startdate 및 business_enddate 및 선택적으로
transaction_starttime 및 transaction_endtime을 추가하면 참조 무결성을 더 이상 시행 할 수 없습니다.

다음과 같은 제약 조건을 구현하려면 트리거 또는 저장 프로 시저 또는 응용 프로그램 수준 코딩을 구현해야 할 수 있습니다.

CREATE CAMPAIGN (
campaign_ID INT NOT NULL,
product_ID INT NOT NULL,
business_startdate DATE NOT NULL,
business_enddate DATE NOT NULL,
transaction_starttime TIMESTAMP NOT NULL,
transaction_endtime TIMESTAMP NOT NULL,
price DECIMAL,
PRIMARY KEY (campaign_ID, business_startdate, transaction_starttime
)
;

DB2의 경우 다음 구문에 임시 기본 키 구성 요소가 있습니다.

CREATE CAMPAIGN (
campaign_ID INT NOT NULL,
product_ID INT NOT NULL,
business_startdate DATE NOT NULL,
business_enddate DATE NOT NULL,
가격 DECIMAL,
기간 BUSINESS_TIME (business_startdate, business_enddate),
기본 키 (OVERLAPS없이)
)
;


두 개 이상의 열에서 시간이있는 제약 조건을 구현하는 기능에 대한 링크를 제공 할 수 있습니까?
AK

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