'''''see [[키key#s-6]]''''' [[관계데이터모델]]에서 정의하는 기본적인 제약은 키와 관련한 '''[[무결성제약조건integrity_constraint]]'''이다. [[무결성integrity]]은 data에 결함이 없는, 정확하고 유효하게 유지하는 것이다. DB의 상태가 변하더라도 '''무결성 제약조건'''은 반드시 지켜져야 한다. 보안과의 비교 보안security: 권한이 없는 사용자로부터 data를 보호하는 것 무결성integrity: 권한이 있는 사용자의 잘못된 요구에 의해 data가 부정확해지는 것을 방지하는 것 [[개체무결성제약조건entity_integrity_constraint]] { [[기본키primary_key]]를 구성하는 모든 [[속성attribute]]은 null 값을 가질 수 없다. 가지면 안 된다. 는 규칙. [[관계데이터모델]]에선, [[릴레이션relation]]에 포함된 tuple들을 유일하게 구별할 수 있도록 각 relation마다 기본키를 정의한다. 그런데 기본키를 구성하는 [[속성attribute]] 전체나 일부가 null 값이 되면 tuple의 유일성을 판단할 수 없으므로 기본키의 목적을 상실하게 된다. 이 조건을 만족시키려면, * 새 tuple 삽입 연산 * 기존 tuple의 기본키 속성 값을 변경하는 연산 이 발생할 때, 기본키에 null 값이 포함되면 연산 수행을 거부해야 한다. (DBMS가 자동으로 수행함.) Ref. [[https://terms.naver.com/entry.naver?docId=3431154&cid=58430&categoryId=58430&expCategoryId=58430 DB개론: 개체 무결성 제약조건]] } ---- [[참조무결성제약조건referential_integrity_constraint]] { [[외래키foreign_key]]는 참조할 수 없는 값을 가질 수 없다. [[https://terms.naver.com/entry.naver?docId=3431155&cid=58430&categoryId=58430&expCategoryId=58430 DB개론: 참조 무결성 제약조건]] } ---- ||개체무결성 ||참조무결성 || ||기본키에 대한 규칙:[[br]]각 relation마다 적용됨 ||외래키에 대한 규칙:[[br]] 연관된 relation들에 적용됨 || || ---- Ref. [[https://terms.naver.com/entry.naver?docId=3431153&cid=58430&categoryId=58430&expCategoryId=58430 DB개론: 관계 데이터 모델의 제약]] ---- Up: [[database]]