티스토리 뷰
주장은 데이터 정의문의 CREATE ASSERTION 문을 사용.
WHAT?(무엇인가?)
제약조건 명시를 위해서 사용하는 선언적 주장을 일반적인 제약조건이 아니여도 설정할 수 있고 이것을 제약조건을 명시한다고 CREATE ASSERTION한다고 한다.
이것은 WHERE절에서 조건을 명시하는 것과 비슷한 맥락으로 이해하면 쉽다.
HOW?(어떻게사용하는가?)
- 제약조건의 이름을 설정하고 제약조건의 사용을 위해서 해당 이름을 이용한다.
- CHECK와 함께 사용되며 CREATE ASSERTION에 적힌 제약조건 명을 만족한다면 CHECK를 통해 참인지 판단하고 만약 참이라면 그 뒤의 문장들을 실행한다(SELECT-FROM-WHERE문 등)
- 대부분의 제약조건은 EXISTS나 NOT EXISTS를 사용해서 명시하고 WHERE절을 사용하기도 한다.
- 제약조건을 만족하는 투플들이 집합이 단 하나도 없어야 제약조건을 만족한다고 한다(참이된다).
CHECK절의 적용 범위
=> 개별 속성, 도메인들에 대한 제약조건으로 사용
=> 개별 투플에 대한 제약조건을 명시하기 위해서 사용될 수 있음.
CREATE ASSERTION문과 개별 도메인 제약 조건 및 개별 투플들에 대한 CHECK절의 차이점
=> CHECK절만 사용했을 때는 투플이 삽입되거나 수정될때만 SQL에서 검사된다.
=> 투플을 삽입하거나 수정할 때만 제약조건이 위반될 수있을 것을 확신할 수 있을 때 애트리뷰트, 도메인, 투플에 대해서 CHOECK를 사용해야한다는 것이다.
=> CHECK를 사용할 수 없을 경우에만 CREATE ASEERTION을 사용해야한다.
적용방법
CREATE ASSERTIONS SALARY_CONSTRAINT
CHECK (NOT EXISTS
( SELECT ~~ FROM ~~ WHERE ~~ ) )
=> SELECT FROM WHERE을 통한 문장에서 만족하는 집합이 하나도 없다면 참이다.
즉, SELECT FROM WHERE을 통한 집합이 공집합일 경우에만 참으로 CHECK되고 공집합이 아니라면 CHECK가 거짓에 되어 SALARY_CONSTRAINT 제약조건을 만족하지 않는것이된다.
- Total
- Today
- Yesterday
- 4963 섬의개수
- DRF 회원관리
- 온라인프로필 만들기
- 백준 숫자놀이
- 백준 11053 파이썬
- 모듈 사용법
- 핀테크 트렌드
- 스택 파이썬
- 백준 15650 파이썬
- 효율적인방법찾기
- LAMBDA
- 시뮬레이션 c
- 소프트웨어공학설계
- stack 컨테이너
- 파이썬 알아두면 유용
- CREATE ASSERTION
- 기사작성 대외활동
- 13886
- c++덱
- 딥러닝입문
- 백트래킹(1)
- 10866 백준
- 11053 백준
- mm1queue
- 백준 4963
- 코딩월드뉴스
- 백준 10866
- 영화 리뷰 긍정 부정 분류
- CSMA/CD란?
- 기본 텍스트 분류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |