참조 동작
1. Delete (Modify) Action
1) Cascade : Master 삭제 시 Child 같이 삭제
2) Set null : Master 삭제 시 Child 해당 필드 Null
3) Set Default : Master 삭제 시 Child 해당 필드 Default 값으로 설정
4) Restrict : Child 테이블에 PK 값이 없는 경우에만 Master 삭제 허용
5) No Action : 참조 무결성을 위반하는 삭제/수정 Action을 취하지 않음
2. Insert Action
1) Automatic : Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력
2) Set Null : Master 테이블에 PK가 없는 경우 Child 외부 키를 Null 값으로 처리
3) Set Default : Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
4) Dependent : Master 테이블에 PK가 존재할 때만 Child 입력 허용
5) No Action : 참조 무결성을 위반하는 입력 Action을 취하지 않음
트랜잭션의 특성
원자성 (atomicity)
트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아이 있어야 한다. (All or Nothing)
일관성 (consistency)
트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안 된다.
고립성(Isoation)
트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다.
지속성(durability)
트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.
Save Point
Save Point를 정의하면 롤백할 때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 Save Point까지 트랜잭션의 일부만 롤백 할 수 있다.
내장 함수
* 함수의 입력 행 수에 따라 단일행 함수와 다중행 함수로 구분할 수 있다.
* 단일행 함수는 Select, Where Order by Update의 Set절에 사용이 가능하다.
* 1:M 조인이라 하더라도 M족에서 출력된 행이 하나씩 단일행 함수의 입력값으로 사용되므로 사용할 수 있다.
* 다중행 함수도 단일행 함수와 동일하게 단일 값만을 반환한다.
* 다중행 함수는 집계함수, 그룹함수, 윈도우 함수로 구분된다.
┌─────── 함수 ───────┐
사용자함수 ┌─────── 내장함수 ───────┐
다중행함수 단일행함수
├─ 집계함수 (sum, count)
├─ 그룹함수 (Rollup, Cube)
└─ 윈도우함수 (Rank)
* 단일행 함수 (Lower, to_char)
- 단일행 내에 있는 하나의 값 또는 여러 값
* 다중행 함수 (Sum, Count)
- 여러 레코드의 값들을 입력 인수로 사용
'공부는 평생하는 것이다 > SQLP(D)' 카테고리의 다른 글
[IT/SQL] PK 삭제하고 재 생성하기 (0) | 2022.12.16 |
---|---|
[SQLD/SQLP] 국가공인 SQL 전문가 (SQLP) 출제문항 수 (0) | 2022.11.01 |
[SQLD/SQLP] SQL 기본 (Ⅰ) (0) | 2022.10.20 |
[SQLD/SQLP] [노트정리]제2장 데이터 모델과 성능(1) (0) | 2022.10.16 |
[SQLD/SQLP] [노트정리] 제1장 데이터 모델링의 이해(2) (2) | 2022.10.15 |