Database - INSERT / DELETE / UPDATE문

Bomin Seo·2022년 7월 23일
0

INSERT문

  • 기존의 릴레이션에 투플을 삽입한다.
  • 참조되는 릴레이션에 투플이 삽입되는 경우에는 참조 무결성 제약조건 위배가 발생하지 않으나 참조하는 릴레이션에 투플이 삽입되는 경우에는 참조 무결성 제약조건을 위배할 수 있다.
  • 릴레이션에 한 번에 한 투플씩 삽입하는 것과 한 번에 여러 개의 투플들을 삽입하는 할 수 있는 것으로 구분한다.
  • 릴레이션에 한 번에 한 투플씩 삽입하는 INSERT문의 예시
INSERT INTO 릴레이션 (Att1, att2, ...)
VALUES (val1, val2, ...)

  • 릴레이션에 한 번에 여러 개의 투플들을 삽입하는 INSERT문의 예시
INSERT INTO 릴레이션 (ATT1, ATT2, ...)
SELECT ... FROM ... WHERE ...;

DELETE문

  • 한 릴레이션으로부터 1개 이상의 투플들을 삭제한다.
  • 참조되는 릴레이션의 삭제 연산의 결과는 참조 무결성 제약조건을 위배할 수 있으나 참조하는 릴레이션에서 투플의 삭제는 참조 무결성 제약조건을 위배하지 않는다.
  • DELETE문의 구문
DELETE FROM 릴레이션
[WHERE 조건] ;

UPDATE문

  • 한 릴레이션에 들어 있는 투플들의 애트리뷰트 값들을 수정한다.
  • 기본 키나 외래 키에 속하는 애트리뷰트의 값이 수정되면 참조 무결성 제약 조건을 위배할 수 있다.
  • UPDATE문의 구문
UPDATE 릴레이션
SET 애트리뷰트 = 값(OR 식)
[WHERE 조건];

Trigger

  • 명시된 이벤트(데이터베이스의 갱신)가 발생할 때마다 DBMS가 자동적으로 수행하는, 사용자가 정의하는 프로시저
  • 데이터베이스의 무결성을 유지하기 위한 일반적이고 강력한 도구이다.
  • 테이블 정의시 표현할 수 없는 기업의 비즈니슈 규칙들을 시행하는 역할을 한다.
  • 트리거 표현 요소
    • 트리거를 활성화 시키는 사건인 EVENT
    • 트리거가 활성화되었을 때 수행되는 테스트인 CONDITION
    • 트리거가 활성화되고 조건이 참일 때 수행되는 문의 ACTION
    • 트리거를 ECA 규칙이라고도 부른다.

SQL3에서 트리거의 형식

CREATE TRIGGER <트리거 이름>
AFTER <트리거 유발 이벤트(OR로 연결)> ON <릴레이션>
[WHEN <조건>]
BEGIN <수행될 SQL문> END
  • 이벤트의 가능한 예로는 테이블에 투플 삽입, 삭제, 수정 등이 있다.
  • 조건은 임의의 형태의 프레디키트가 입력된다.
  • 동작은 데이터베이스에 대한 임의의 갱신을 지칭한다.
  • 어떤 이벤트가 발생했을 때 조건이 참이 되면 트리거와 연관된 동작이 수행되고, 그렇지 않으면 아무 동작도 수행되지 않는다.
  • 삽입, 삭제, 수정 등이 일어나기 전(BEFORE)에 동작하는 트리거와 일어난 후(AFTER)에 동작하는 트리거로 구분된다.
  • 하나의 트리거문이 다른 트리거 문을 활성화시키는 등 연쇄적인 트리거문을 작성할 수 있다.

주장 (ASSERTION)

  • 트리거는 제약조건을 위반했을 때 수행할 동작을 명시하는 것이고, 주장은 제약조건을 위반하는 연산이 수행되지 않도록 명시하는 것이다.
  • 트리거보다 일반적인 무결성 제약 조건
  • DBMS는 ASSERTION의 프레디키트를 검사하여 만일 참이면 주장을 위배하지 않는 경우이므로 데이터베이스 수정을 허용한다.
  • 일반적으로 2개 이상의 테이블에 영향을 미치는 제약조건을 명시하기 위하여 사용된다.
  • 주장의 구문
CREATE ASSERTION 이름
CHECK 조건;

  • 대부분의 주장은 NOT EXIST를 포함한다.
  • 주장에는 "모든 X가 F를 만족한다"를 이와 동치인 "~F를 만족하는 X가 존재하지 않는다"로 표시한다.
profile
KHU, SWCON

0개의 댓글