Basic Steps
- Parsing and translation
- Optimization
- Evaluation
- 쿼리
- 파싱하고, assembly lg.(SQL > relation algebra expression) 로 바꾸는 작업을 한다. 절차적 언어로 바꾸는 것.
- optimizer: 사람들이 관심있는 데이터를 먼저 찾아본다. 통계정보를 활용하여 접근횟수 줄임
- execution plan
- evaluation engine
- query output
Parsing and translation
- 인풋 쿼리를 relation algebra 로 변환.
- Parser 가 grammar check.
Optimization
- 더 정확하고 빠르게 검색할 수 있도록 algebra 변환.
- 디스크 접근 횟수 줄임, 중간 결과물의 사이즈를 줄임
Transaction issues in Fund Transfer
Atomicity issue
- 오류 후 결과는 all or nothing 이어야 함.
- A-50만 기록되고 B+50이 기록되지 않는 상태가 없도록
Consistency issue
- 트랜잭션 전후의 일관성 유지
- 이체 전 후 A+B 합은 유지되어야 한다.
- 수강신청 된 석 + 여석 = 전체 인원 유지
Isolation issue
- 여러 트랜잭션이 동시에 수행될 때 영향을 주지 않으면서 완료되어야 한다.
- 트랜잭션을 순차적으로 수행하는 방법 사용
Durability issue
- 지속성: 완료된 결과는 계속 유지되어야 한다.
- 휘발성 메모리보다는 하드디스크에 저장
: ACID Properties 라 한다!
- Active / Partially commited / Failed / Aborted / Commited
Integrity Constraints
- 도메인 무결성 제약: 값의 범위에 제약
- 참조무결성 제약: 다른 테이블의 att 에 포함된 값만 가져옴 (참조하는 쪽의 테이블을 create 할 때 설정)
Domain Constraint
- 테이블을 만들기 전 제약조건 정의하고 creat 테이블에서 사용하거나(재사용할 때 사용할만함)
- 만들고 create 할 때 줄 수 있다
도메인 제약 조건을 정의하는 방법을
create domain 제약조건 이름 타입(자리 수)
constraint value-test check(value > 또는 value in())
Refrential Integrity
참조 당하는 테이블 primary key(참조 당할 att)
참조하는 테이블: foreign key(참조할 att) references 참조할 테이블 이름
on delete cascade
on update cascade