참조 무결성
Referential integrity
artist_id
존재하지 않는 아티스트를 참조하는 앨범 테이블의 값 - 다시 말하면 참조된 테이블에는 해당 기본 키 값이 없는 외래 키 값이 있다. 여기서 일어난 일은 '에로스미스'라는 예술가가 있었는데, 그 예술가가 그 예술가를 데리고 있었다. artist_id
의 4
아티스트 테이블에서 삭제된 . 하지만 앨범 'Eat the Rich'는 이 가수를 지칭했다. 참조 무결성이 시행되었더라면 이것은 가능하지 않았을 것이다.참조 무결성(Reference integrity)은 모든 참조가 유효하다는 것을 나타내는 데이터의 속성이다. 관계형 데이터베이스의 맥락에서, 관계(표)의 한 속성(열)의 값이 다른 속성(동일한 관계 또는 다른 관계)의 값을 참조하는 경우, 참조된 값이 존재해야 한다고 요구한다.[1]
참조 무결성이 관계형 데이터베이스에 유지되기 위해 외부 키로 선언된 기본 테이블의 열에는 null 값이나 상위 테이블의 기본 키 또는 후보 키의 값만 포함할 수 있다.[2] 즉, 외래 키 값을 사용할 때 부모 테이블에서 유효한 기존 기본 키를 참조해야 한다. 예를 들어, 다른 테이블에서 외부 키가 참조하는 값을 포함하는 레코드를 삭제하면 참조 무결성이 깨진다. 일부 관계형 데이터베이스 관리 시스템(RDBMS)은 일반적으로 무결성을 유지하기 위해 외부 키 행도 삭제하거나 오류를 반환하고 삭제를 수행하지 않음으로써 참조 무결성을 강제할 수 있다. 어떤 방법을 사용하는지는 데이터 사전에 정의된 참조 무결성 제약에 의해 결정될 수 있다.
형용사 '역주'는 외래 키가 수행하는 동작을 설명하며, 다른 표의 링크된 열을 '참조'한다. 간단히 말해서, '보존적 무결성'은 표적이 '참조적'임을 보장한다. 데이터베이스에 참조 무결성이 부족하면 관계형 데이터베이스가 불완전한 데이터를 반환하도록 유도할 수 있으며, 일반적으로 오류 징후는 없다.
공식화
스키마에서 S 에 대한 포함 종속성은 [ ,. . . . ] [ 1, . . ]{\ R라고 쓰여 있다., where the , are distinct attributes (column names) of and . It implies that the tuples of values appearing in columns 에 대한 사실의 은(는) 1,. . . . . . }, 열에 있는 값의 튜플로도 한다
그러한 제약조건은 튜플 생성 의존성(TGD)의 특정한 형태로서, 규칙의 양 측면에는 오직 하나의 관계 원자가 있다.[3] 1차 논리에서는 →, y→.( ( →, →)→ → .S( →, → {x로 표현할 수 있다. 서x → 은(는) R{\ 및 이(가) 공유하는 벡터 n이며 그 머리에도 여러 번 나타나는 변수는 없다.
포함 의존성 사이의 논리적 의미는 추론 규칙에[4]: 193 의해 공리화될 수 있으며 PSPAC 알고리즘에 의해 결정될 수 있다. 이 문제는 선형 경계 자동화에 대한 수용 문제로부터의 감소에 의해 PSPACE-완전한 것으로 나타날 수 있다.[4]: 196 그러나 포함 의존성 또는 기능 의존성이 될 수 있는 의존성 사이의 논리적 함축은 모노이드 문제에 대한 단어 문제에서 비롯된 것으로 해석할 수 없다.[4]: 199
선언적 참조 무결성
DRI(Declarative Reference Integrity)는 SQL 데이터베이스 프로그래밍 언어의 데이터 무결성을 보장하는 기법 중 하나이다.
SQL에서 의미(구조화된 질의 언어)
표(참조표라 함)는 외래 키를 사용하여 다른 표(참조표)의 열(또는 열 그룹)을 참조할 수 있다. 참조된 표의 참조된 열은 기본 키와 같은 고유한 제약 조건 아래에 있어야 한다. 또한 자기 참조도 가능하다(MS[5] SQL Server에서는 완전히 구현되지 않았지만). 참조 테이블에 새 행을 삽입할 때 RDBMS(Relational Database Management System)는 입력한 키 값이 참조 테이블에 있는지 여부를 확인한다. 그렇지 않으면 삽입할 수 없다. 또한 CASTAADE(참조 테이블을 참조하는 테이블에서 변경/삭제하기 위해), NO 조치(특정 행을 참조하는 경우 키 변경이 허용되지 않음) 또는 SET NULL/SET DEFAULT(참조된 테이블에서 변경/삭제된 키가 참조 val을 설정하게 됨)와 같은 업데이트 및 DELETE에 대한 DRI 작업을 지정할 수도 있다.ues를 NULL 또는 DEFAULT(기본값(지정된 경우)로 변경).[6]
제품별 의미
Microsoft SQL Server에서 DRI라는 용어는 데이터베이스 개체에 대한 사용자에게 권한을 할당하는 데도 적용된다. 데이터베이스 사용자에게 DRI 권한을 부여하면 테이블에 외래 키 제약 조건을 추가할 수 있다.[7]
참고 항목
참조
- ^ Chapple, Mike. "Referential Integrity". About.com. Retrieved 2011-03-20.
Definition: Referential integrity is a database concept that ensures that relationships between tables remain consistent. When one table has a foreign key to another table, the concept of referential integrity states that you may not add a record to the table that contains the foreign key unless there is a corresponding record in the linked table.
- ^ 코로넬 외 연구진(2013년). 데이터베이스 시스템 10차 개정판 Cengage Learning, ISBN 978-1-111-96960-8
- ^ Kolaitis, Phokion G. "A Tutorial on Database Dependencies" (PDF). University of California Santa Cruz & IBM Research - Almaden. Retrieved 2021-12-10.
- ^ a b c Abiteboul, Serge; Hull, Richard B.; Vianu, Victor (1994). "9. Inclusion Dependency". Foundations of Databases. Addison-Wesley. pp. 192–199.
- ^ Microsoft Support (2007-02-11). "Error message 1785 occurs when you create a FOREIGN KEY constraint that may cause multiple cascade paths". microsoft.com. Retrieved 2009-01-24.
- ^ ANSI/ISO/IEC 9075-1:2003, 정보 기술—데이터베이스 언어—SQL
- 1부: 프레임워크(SQL/Framework)
- 2부: 기초(SQL/기초)
- ^ Chigrik, Alexander (2003-08-13). "Managing Users Permissions on SQL Server". Database Journal. Retrieved 2006-12-17.