SQL을 활용한 데이터 분석
제약조건
카테고리 : SQL을 활용한 데이터 분석
제약조건
무결정 제약조건
- 데이터 무결성
- 데이터의 정확성 또는 유효성을 의미
- 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적으로 또는 명시적으로 정의한다.
- 무결성 제약조건은 데이터베이스 상태가 만족시켜야 하는조건이다. 사용자에 의한 데이터베이스 갱신이 데이터베이스 일괄성을 깨지 않도록 보장하는 수단이다. 일반적으로 데이터베이스 상태가 실세계에 서용되는 상태만 나타낼 수 있도록 제한한다.
- 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사하므로 응용 프로그램들은 일관성 조건을 검사할 필요가 없다.
- TABLE LEVEL 에서 적용되는 RULE
- 제약조건은 데이터의 무결성 유지를 위하여 사용자가 지정 가능하다.
- 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 ALTER 명령어를 통해서도 추가가 가능
- NOT NULL
- 컬럼을 필수 필드화
- UNIQUE
- 데이터의 유일성을 보장
- 중복되는 데이터가 존재할 수 없다.
- 기본 키(Pirmary Key)
- 릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널값을 가질 수 없다.
- 사용자가 릴레이션을 생성하는데 데이터 정의문에서 어떤 애트리뷰트가 릴레이션의 기본 키의 구성요소인가를 DBMS에게 알려준다.
- 외래 키(Foreign Key) 와 참조 무결성 제약조건(referential integrity constraint)
- 참조 무결성 제약조건을 두 릴레이션의 연관된 튜플들 사이의 일괄성을 유지하는데 사용된다.
- 관계 데이터베이스가 포인터 없이 오직 릴레이션들로만 이루어지고, 릴레이션 사이의 관계들이 다른 릴레이션의 기본 키를 참조하는 것을 기반으로 하여 묵시적으로 표현되기 때문에 외래 키의 개념이 중요하다.
- 릴레이션 R2의 외래 키가 릴레이션 R1의 기본 키를 참조할 때 참조 무결성 제약조건은 아래의 두 조건중 하나가 성립되면 만족 된다.
- 외래 키의 값은 R1의 어떤 튜플의 기본 키 값과 같다.
- 외래 키가 자신을 포함하고 있는 릴레이션의 기본 키를 구성하고 있지 않으면 NULL 값을 가진다.
- 무결성 제약조건 유지
- 데이터베이스에 대한 갱신 연산의 수행 결과에 따라서는 무결성 제약조건이 위배될 수 있다.
- 데이터베이스에 대한 갱신 연산은 삽입 연산, 삭제 연산, 수정 연산으로 구분한다.
- DBMS는 각각의 갱신 연산에 대하여 데이터베이스가 무결성 제약조건들을 만족하도록 필요한 조치를 취한다.
- DBMS는 외래 키가 갱신되거나, 참조된 기본 키가 갱신되었을 때 참조 무결성 제약조건이 위배되지 않도록 해야한다.
- 참조무결성 제약에 의해 참조 관계 컬럼은 데이터형이 일치해야함
- ON DELETE CASCADE 연산자와 함께 정의된 외래키의 데이터는 그 기본키가 삭제 될 때 같이 삭제
- 외래 키(Foreign Key) 삭제
- 참조되는 릴레이션에서 튜플이 삭제되면 참조 무결성 제약조건을 위해하는 경우가 생기거나 생기지 않을 수 있다.
- CHECK
- 컬럼의 값을 어떤 특정 범위로 제한
- DEFAULT
- 데이터를 입력 하지 않아도 지정된 값이 기본으로 입력