면접준비, 웍스모바일 DB

Android Chen·2021년 11월 5일
0
post-custom-banner

아직 코테를 보기 전이지만 코테 합격했다 치고 구할 수 있는 웍스모바일 인턴의 모든 면접내용을 정리하려고 함

데이터베이스

  • 트랜잭션 : 하나의 논리적 기능을 수행하기 위한 작업의 단위로 DB의 일관된 상태를 또 다른 일관된 형태로 변환하는 기능을 수행함

  • 트랜잭션의 4가지 성질 (ACID)

  1. Atomicity : 트랜잭션의 연산이 데이터베이스에 모두 반영되거나 아예 반영되지 않아야 한다.

  2. Consistency : 트랜잭션의 연산이 성공적으로 완료되면 언제나 일관성있는 데이터베이스 상태로 변환되어야 한다.

  3. Isolation : 트랜잭션이 수행 중일때는 다른 트랜잭션에서 트랜잭션의 수행 결과를 참조할 수 없다.

  4. Durability : 트랜잭션의 연산이 성공적으로 완료되면 데이터베이스에 영구적으로 반영되어야 한다.

  • 트랜잭션을 병행으로 처리할 때 발생할 수 있는 문제
  1. 갱신 내용 손실 : 동시에 하나의 데이터가 갱신될 때 하나의 갱신이 누락되는 경우

  2. 현황 파악 오류 : 하나의 데이터의 갱신이 아직 끝나지 않은 상태에서 다른 트랜잭션이 해당 데이터를 조회하는 경우

  3. 모순성 : 두 트랜잭션이 동시에 수행될 때 일관성없는 모순된 상태로 남음

  4. 연쇄 복귀 : 두 트랜잭션이 하나의 데이터를 갱신할 때, 하나의 트랜잭션이 롤백하면 다른 하나의 트랜잭션도 함께 롤백되는 문제

@@ 해결방법

-로킹기법 : 하나의 트랜잭션이 DB에 접근할 때 해당 부분에 다른 트랜잭션이 접근할 수 없도록 접근한 일부분의 DB데이터를 Lock하고 연산이 종료되면 Unlock하는 방법.
1. 공유 로킹 : Lock부분을 다른 트랜잭션이 읽기는 가능하지만 쓰기는 불가능함

  1. 배타 로킹 : Lock부분을 다른 트랜잭션이 읽기 쓰기 모두 불가능
  • 로킹 단위를 크게하면 관리가 쉬워지며 병행성이 떨어진다. 단위가 작으면 관리가 어렵고 오버헤드가 증가하지만 병행성이 증가한다.
  • 무결성 : 데이터의 정확성, 일관성, 유효성을 유지하는 것을 말한다.

  • 무결성 종류

  1. 개체 무결성 :
profile
https://github.com/Userz1-redd
post-custom-banner

0개의 댓글