데이터베이스 사용 NOT TO-DO

anonymous·2022년 4월 30일
0

최악의 DB를 만들기 위한 규칙

트렌젝션

클리어언트 요청을 서버에서 처리(상호작용) 하는 독립적 (단위적) 결과.

트렌젝션 특징

Non-Atomicity

트렌젝션-원자성-실패 상황-부분만-실행-데이터-불교칙 불완전함

트렌젝션(데이터 제어) 관련 작업은 부분적으로 실행되다가 중단 될 수 있어
데이터는 불규칙하고 불완전 형태로도 저장이 가능하다.

Non-Consistency

트렌젝션-특징-일관성-실패 상황-데이터-불일치-다른 출력값

트렌젝션(데이터 제어) 실행에 성공해도 데이터는 일관되지 않고 조회할 때 매번 다른 값이 출력될 수 있다.

Dependency

트렌젝션-특징-격리성-실패 상황-다른 트렌젝션에서 작업에 끼어듬

트렌젝션 수행 시 다른 트렉젝션 연산 작업도 끼어들 수 있다. 트렌젝션끼리 영향을 준다

Non-Durability

트렌젝션-특징-영구성-실패 상황-서버를 껏다 키면 초기화됨

수행된 트렌젝션이 서버를 껏다 키면 초기화된다.

병행유지 (Concurrency Keeping) 기법 사용

  • 트렌젝션이 어떤 데이터에 접근하려할 때 로킹하지 않고 다른 트렌젝션이 전부 접근할 수 있게함

2 단계 로킹 규약 파기

  • lock, unlock이 동시에 이뤄지게끔 각 단계를 구분하지 않기

타임스탬프 역행

  • 데이터에 접근하는 시간을 랜덤으로 하고 시간의 순선ㄴ 랜덤하게
    데이터 접근

무식한+ 병행제어

트렌젝션 수행 동안엔 검사를 하지 않고 트렌젝션 종류 후에도
데이터에 대한 검사를 하지 않기

지연갱신 회복불가 기법

  • 트렌젝션 부분 완료 상태에서 변경 내용은 절대 저장하거나 기록하지 않함

즉시갱신 회복불가 기법

  • 트렌젝션 수행 도중 변경 내용도 DB에 기록하지 않음.
    장애 발생시 날라감.

검사점 회복불가 기법

  • 장애 발생시 검사점(checkpoint) 에대한 기록 없고 회복 진행도 하지 않음.
    undo, redo는 전부 불가

참고

https://jordy-torvalds.tistory.com/121

profile
기술블로거입니다

0개의 댓글