• 검색 결과가 없습니다.

• 제약조건

N/A
N/A
Protected

Academic year: 2022

Share "• 제약조건"

Copied!
7
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

• 뷰의 갱신에 대한 요약

– 하나의 기본 릴레이션을 사용해서 정의된 뷰가 기본 릴레이션 의 기본 키를 포함하면, 뷰의 각 투플을 기본 릴레이션의 한 투플과 정확하게 대응하므로 뷰의 갱신이 가능함

– 일반적으로 다수의 테이블을 조인하여 정의한 뷰는 뷰의 투플 과 기본 테이블의 투플간에 대응 관계를 찾기가 어려우므로 갱신할 수 없음 (모호함 발생)

뷰의 구현과 갱신(cont.)

갱신할 수 없음 (모호함 발생)

– 그룹화와 집단함수를 사용하여 정의된 뷰도 베이스 테이블에 대한 갱신으로 매핑하는데 모호성이 있으므로 갱신할 수 없 음

(2)

• 제약조건

• 권한관리

기타 기능들

(3)

SQL2에서는 선언적 주장으로 확장된 제약조건을 명시할 수 있음

– 선언적 주장은 DDL의 CREATE ASSERTION문을 이용함

– 각 주장문은 제약조건 이름을 가지며, SQL 질의의 WHERE 절과 유 사한 조건 형태로 지정됨

예) "종업원 봉급이 부서 관리자 봉급보다 많으면 안된다."라는 제약 CREATE ASSERTION SALARY_CONSTRAINT

CHECK (NOT EXISTS (SELECT * FROM EMPLOYEE E,

주장(Assertion)으로 추가적인 제약조건 명시

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)) ;

– 제약조건 이름 SALARY_CONSTRAINT 다음에 키워드 CHECK가 오며, 그 다음의 조건을 데이터베이스 상태가 만족하면 참이 됨

(4)

– CHECK 키워드 다음에는 어떠한 WHERE 절도 사 용될 수 있지만 대부분의 경우 EXISTS나 NOT EXISTS를 사용해서 명시함

– 초기의 SQL 버전에서 제약조건 선언문은 ASSERT문과 TRIGGER 문을 사용하였음

주장(Assertion)으로 추가적인 제약조건 명시 (cont.)

ASSERT문과 TRIGGER 문을 사용하였음

– ASSERT 문은 구문상의 차이가 있을 뿐 SQL2의 CREATE ASSERTION 문과 유사함

– TRIGGER는 조건과 그 조건이 만족되는 경우에

취할 행동을 명시함 (21장에서 자세하게 설명 )

(5)

예) 어떤 부서에 있는 종업원이 그 부서의 관리자보다 봉급이 많다면 그 부서의 관리자를 표시하는 트리거는 다음과 같이 지정된다.

DEFINE TRIGGER SALARY_TRIGGER

ON EMPLOYEE E, EMPLOYEE M, DEPARTMENT D :

E.SALARY>M.SALARY AND E.DNO=D.DNUMBER AND D.MGRSSN=M.SSN

ACTION_PROCEDURE INFORM_MANAGER (D.MGRSSN) ;

설명

– 위의 트리거는 트리거 조건이 발생할 때마다 INFORM_

MANAGER를 실행할 수 있도록 지정함

ASSERT문은 주장조건을 위반하는 갱신을 금지시키는 반

주장(Assertion)으로 추가적인 제약조건 명시 (cont.)

MANAGER를 실행할 수 있도록 지정함

– ASSERT문은 주장조건을 위반하는 갱신을 금지시키는 반 면에, TRIGGER문은 갱신을 수행하고 나서 트리거 조건이 발생하면 ACTION_PROCEDURE를 실행한다는 점에서 차이 가 있음

– 트리거는 무결성 제약조건을 구현하기 위해 선언적 접근과

절차적 접근을 결합한 것으로 볼 수 있음; 트리거의 조건은

선언적인 반면에, 이들의 행동은 절차적임

(6)

• 권한 기능

– SQL은 데이타베이스 사용자에게 권한을 부여하고 취소하는 기 능을 제공함

– GRANT/REVORK

• 호스트 언어와 결합되어 사용

– SQL은 C, C++, COBOL, JAVA, PASCAL 등과 같은 범용 프로그래 밍 언어 내에서 사용될 수 있음

SQL의 부가적인 기능들

밍 언어 내에서 사용될 수 있음

– Embedded SQL/C, C++, COBOL, JAVA, PASCAL

• 트랜잭션 기능

– SQL은 트랜잭션 제어 명령문을 가짐

• 기타 유용한 명령어

– 상용 DBMS는 SQL 명령 이외에도 물리적 데이터베이스 설계 매 개변수와 릴레이션들을 위한 파일 구조, 그리고 인덱스와 같은 접근경로를 명시하기 위한 명령어의 집합을 가지고 있음

(7)

• SQL2에서 데이터 정의어, 제약조건 및 스키마 변경

• SQL에서의 기본질의

Select/From/Where 절의 사용

• 더 복잡한 SQL 질의들

요 약

중첩질의, 집단함수, 집합과 널, 그루핑 연산, Select/From/Where 절의 사용

• SQL에서 삽입, 삭제, 갱신 구문

• SQL 뷰

• 주장으로 추가적인 제약조건 명시

참조

관련 문서

[r]

[r]

[r]

모두 합동이므로 밑면인 원의 반지름의 길이는  DN이고, 높이는 회전축을 포함하는 평면으로 자른. 단면의 세로의 길이와

저장구조의 차이점 때문에 리스트를 다양한 형태로 구분3. 연속적으로 저장되는 고정된

정부 기업 활동을 규제하고 조세정책을 결정하며 국민 소득이나 이와 유사한 통계자료의 근거로 사용하기 위해 정보를

·RUN Mode로 전환시 Disable Program 명령(DPGM)이 입력(실행)되지 않으면 모든 프로그램의 동작은

[r]