일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 컴퓨터구조
- 혼공머신
- 데이터베이스
- JSP/Servlet
- 상속
- 데이터분석
- html/css
- SQL
- 디버깅
- 자바 실습
- 연습문제
- 머신러닝
- 중학수학
- 정보처리기사실기
- rnn
- 중학1-1
- c언어
- 개발일기
- JSP
- ChatGPT
- 컴퓨터비전
- 순환신경망
- 자바스크립트심화
- CSS
- 딥러닝
- 자바스크립트
- 파이썬
- 정보처리기사필기
- JDBC
- 자바
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
트랜젝션 제어와 세션 2 - 세션과 읽기 연관성, LOCK에 대하여 본문
새벽 공부할 시간이 30분밖에 남지 않았지만 할 수 있는 데까지 세션을 학습해보려고 한다.
사설은 생략하고 바로 이어서 공부를 진행해본다.
학습 내용
세션과 읽기 일관성의 의미
학습 시간
새벽 6시 반 ~ 7시 10분 <40분 소요>
1. 세션과 읽기 일관성의 의미
세션이란?
세션은 어떤 활동을 위한 시간이나 기간은 뜻한다.
comend창을 사용하면 창이 두 개가 생기는데 이를 세션이라고 한다. 즉 여기서 우리는 세션 2개를 사용하고 있다.
읽기 일관성이란?
실습을 통해 확인 1 - SQL Developter
오라클에서는 삭제가 되었다. 이제 commend 창에서도 동일한 결과가 나오는지 확인해 보자.
실습을 통한 확인 2 - Commend
먼저 hr 계정에 접속을 했다.
그 결과 106개의 행이 나오고 모든 내용이 조회된다.
100번 직원에서 102번 직원으로 넘어가는 것을 보니 101번이 잘 삭제되었음을 볼 수 있다. 100번이 살아있는 이유는 101만 커밋을 했기 때문이다.
오라클에서 COMMIT을 진행했을 때
원래 행은 106개였다. 근데 오라클에서 커밋을 진행하면 다음과 같이 바뀐 것을 볼 수 있다.
행이 1개 줄어든 105개가 되었다. 이것이 바로 읽기 일관성이다.
2. 수정 중인 데이터 접근을 막는 LOCK
LOCK이란?
특정 세션에서 조작 중인 데이터는 트랜잭션이 완료되기 전까지는 다른 세션에서 조작할 수 없는 상태가 된다. 즉 데이터가 잠기는 것이다. LOCK은 조작 중인 데이터를 다른 세션에서 조작할 수 없도록 접근을 보류시키는 것을 뜻한다.
실습을 통해 확인하기 1 - 오라클
이렇게 조회가 되었다.
실습을 통해 확인하기 2 - Commend
100번 행에 AI라는 부서를 하나 등록해 주었다. 그러자 UPDATE가 되었음을 확인할 수 있다.
오라클에서 확인하기
오라클에서 BIGDATE라는 이름의 부서를 100번에 넣어주자 계속해서 작업이 계속되며 끝나지 않는다. LOCK이 걸린 것이다.
COMMIT을 해주었을 때
이때 command 창에서 COMMIT을 해주면 이러한 결과를 볼 수 있다.
이젠 LOCK이 풀려서 업데이트가 잘 되는 것을 확인했다.
동시에 두 개의 접속을 할 수 없기 때문에 생기는 현상이다.
BIGDATE 결괏값도 잘 들어가 있다. 책에 나오는 실습은 수업 중에 소개된 것과 비슷해서 따로 할 필요는 없을 것 같다.
학습을 마치고
이렇게 해서 오늘 불가능할 것 같던 트랜젝션 장까지 학습을 모두 마쳤다. 정말 뿌듯하고 스스로가 대견스러울 정도이다~ 예상보다 10분 정도 초과되었지만 그 정도면 나름 괜찮은 성과이다.
LOCK과 COMMIT에 대한 실습을 진행하며 정말 재미있었다. 11장의 실습문제는 단순한 퀴즈라서 시간 날 때 가볍게 한번 풀어보면 될 것 같다.
'알고리즘 및 자료 관리 > 데이터베이스' 카테고리의 다른 글
트랜잭션 제어와 세션 3 - 단원 마무리 연습문제 풀기 (0) | 2024.08.23 |
---|---|
데이터 정의어 1 - 정의어와 CREAT, ALTER, RENAME, TRUNCATE, DROP 명령어 (0) | 2024.08.23 |
트랜잭션 제어와 세션 1 - 하나의 단위로 데이터를 처리하는 트랜잭션과 트랜잭션을 제어하는 명령어 (0) | 2024.08.21 |
데이터를 추가, 수정, 삭제하는 데이터 조작어 4 - DML 수업 (0) | 2024.08.21 |
데이터를 추가, 수정, 삭제하는 데이터 조작어 3 - 단원 마무리 연습문제 풀기 (0) | 2024.08.21 |