후니의 IT인프라 사전

[오독완 챌린지] 기술 면접 대비 CS 전공 핵심 요약집 (6일차) 본문

도서리뷰/IT 도서

[오독완 챌린지] 기술 면접 대비 CS 전공 핵심 요약집 (6일차)

james_janghun 2023. 9. 11. 21:11

오늘도 독서완료!

오늘은 데이터 베이스의 트랜잭션 부분부터 학습했습니다!

 

트랜잭션은 데이터베이스에서 매우 매우 매우 중요한 것 중 하나 입니다. 트랜젝션이 문제가 생기면 큰일 나거든요.. 특히 금융시스템이면 돈이 걸린 문제라서 더 그렇겠죠?

 

트랜잭션은 데이터베이스의 상태를 바꾸기 위해 수행하는 작업의 단위 또는 연산을 의미합니다. 원자성 때문에 트랜잭션은 완전히 반영되거나 아니면 아예 실행 자체가 되면 안됩니다. 즉, 중간까지만 실행한다는 것은 있을 수 없다는 것입니다.

 

따라서 이러한 트랜잭션을 보호하기 위한 여러 장치들이 있습니다.

락(lock)은 트랜잭션이 처리되기 위한 순서를 보장하기 위한 방법입니다. 다만 트랜잭션이 동시다발적으로 일어나는 경우가 빈번하기 때문에 프로세스처럼 교착상태(deadlock)이 발생하는 경우도 흔하기 때문에, 이를 위해서 한 트랜잭션이 자신이 처리 중인 데이터에 대해 락을 가진 상태에서 다른 트랜잭션이 걸리지 않도록 예방 기법이나 회피 기법 등을 사용하게 됩니다.

 

다음은 이상 현상으로 트랜잭션을 처리하는 중에 속성 간 종속이나 데이터 중복으로 발생하는 문제를 말합니다.

 

그리고 정규화도 매우 중요한데, 데이터베이스의 이상 현상을 해결하기 위해 테이블을 잘게 쪼개는것을 의미합니다. 정규화한 결과를 정규형이라고 합니다. 정규형은 그 과정이 매우 중요한데 총 5정규형 까지 있습니다.

 

 

마지막으로 조인을 학습하는데, 조인은 여러 테이블을 합쳐 원하는 데이터를 얻는 작업을 말합니다. 내부 조인과 외부 조인이 있습니다.