[HUFS/Database] Query Processing, Transactions, integrity Constraint

박경민·2023년 5월 25일
0

[CS/Database]

목록 보기
15/16

Basic Steps

  1. Parsing and translation
  2. Optimization
  3. 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

profile
Mathematics, Algorithm, and IDEA for AI research🦖

0개의 댓글