2. Assertion으로 constraint를 지정하기 ¶
SQL2에서 employee의 봉급이 manager의 봉급보다 높지 않게 하기 위한 assertion
CREATE ASSERTION SALARY_CONSTRAINT
CHECK (NOT EXISTS (SELECT *
FROM EMPLOYEE E, EMPLOYEE M, DEPARTMENT D
WHERE
E.SALARY > M.SALARY AND
E.DNO = D.DNUMBER AND
D.MGRSSN = M.SSN));
3. relational constraints (1) ¶
domain_constraint
key_constraint
SK가 R의 superkey이면, r(R)의 서로 다른 두 tuple t
1과 t
2에 대해, t
1[SK]≠t
2[SK]
ex. 학생(학번, 이름, 전공) 이면
(학번, 전공)은 superkey가 될 수 있다. 하지만 minimal하지는 않다. 즉 minimal superkey가 아니다. 학번만으로 서로 다른 게 보장이 되므로... - chk
mklink :
수퍼키super_key minimal_superkey...
4. relational constraints (2) ¶
5. Participation Constraint ¶
participation_constraint
번역은? 참여제약조건?
total_participation (existence_dependency):
entities의 total set 안의 모든
개체entity가, 한 entity에 relate되어야 함... (? rechk)
ex. EMP - WORKS_FOR - DEPT
partial_participation
ex. EMP - MANAGES - DEPT
그림으로 보면
5.1. ER diagram에서, partial/total participation 기호 ¶
partial participation : 마름모와 직사각형을 연결하는 선이, 단일 선으로.
total participation : 마름모와 직사각형을 연결하는 선이, 이중 선으로.