본문 바로가기

데이터베이스와 SQLD 합격패스 Online31

패스트 캠퍼스 챌린지 23일차 데이터베이스와 SQLD 합격패스 Online Ch 06. 트랜잭션 - 05. 트랜잭션 처리 시 주의 사항 [] 데드락을 최소화 시키는 DBMS 전반적 대책 1. 트랜잭션을 자주 커밋 2. 정해진 순서로 테이블에 액세스하게 함 3. 필요 없는 경우에는 읽기 잠금 획득 사용을 피함 4. 쿼리에 의한 잠금 범위 좁히거나 더 작은 것으로 함 5. 한 테이블 복수 행을 순서 변경 없이 갱신하면 교착 상태 발생 쉬움 6. 테이블 단위 잠금 획득해 갱신 직렬화 [] 자제해야 하는 트랜잭션 처리 (1) Auto Commit - 쿼리 단위로 커밋하는 설정 - 애플리케이션 잠금 실행 시 Commit의 부하가 너무 높음 (2) 긴 트랜잭션 - 데이터베이스 트랜잭션의 동시성이나 자원 유효성 저하 - 타임아웃 및 교착 상태 발생 가능 - 대량 처리를 한 개의 트랜잭션이 .. 2021. 9. 28.
패스트 캠퍼스 챌린지 22일차 데이터베이스와 SQLD 합격패스 Online Ch 06. 트랜잭션 - 04. 락과 데드락 [] 락의 개념 (1) 갱신손실 문제를 해결하려면 상대방 트랜잭션이 데이터를 사용하는지 여부를 알 수 있는 규칙이 필요함. (2) 데이터를 수정 중이라는 사실을 알리는 방법의 잠금 장치임. T1 T2 버퍼의 데이터 값 LOCK(X) A=read_item(X); ① A=A-100; X=1000 LOCK(X) (wait... 대기) X=1000 write_item(A->X); ② UNLOCK(X); X=900 B=read_item(X); ③ B=B+100; write_item(B->X); ④ UNLOCK(X) X=1000 - T1이 버퍼 X에(X는 1000) Lock을 잡고 A에 저장 후 100을 빼기 - T2는 T1이 Lock 을 잡고 있어서 대기 상태에 빠짐 .. 2021. 9. 27.
패스트 캠퍼스 챌린지 21일차 데이터베이스와 SQLD 합격패스 Online Ch 06. 트랜잭션 - 02. 트랜잭션 처리의 필요성 Ch 06. 트랜잭션 - 03. 트랜잭션 격리 수준 [] ANSI 표준 격리 수준(Isolation level) (1) ANSI 표준 격리 수준(직렬화 가능 기능으로 부터 격리 수준 완화) 격리 수준 설명 Read Uncommitted Commit 되지 않은 읽기 트랜잭션에서 처리 중인 아직 Commit 되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용 Read Committed Commit된 읽기 트랜잭션이 Commit 확정된 데이터만 다른 트랜잭션이 읽도록 허용 Repeatable Read 반복 읽기 트랜잭션 내에서 쿼리를 두 번 이상 수행할 때, 첫번째 쿼리에 있던 레코드가 사라지거나 값이 바뀌는 현상을 방지 Serialzable 직렬화 가능.. 2021. 9. 26.
패스트 캠퍼스 챌린지 20일차 데이터베이스와 SQLD 합격패스 Online Ch 05. SQL 기본 - 05. 연습문제 풀이 문제 1. PRODUCTS 테이블에서 LIST_PRICE의 가격이 평균 가격보다 큰 행(집합)의 PRODUCT_ID, PRODUCT_NAME, LIST_PRICE 컬럼을 구하는 SELECT문을 작성하고 PRODUCT_NAME으로 정렬하라. 평균을 구하고 그 PRODUCTS 테이블에서 더 큰 테이블 집합을 구한다. 그리고 PRODUCT_NAME을 정렬한다. 가장 중요한 것은 평균을 구하고 특정 sql의 서브쿼리를 활용해가지고 그 평균보다 큰 집합을 구한 다음에 정렬하면 된다. 문제 2. CUSTOMERS 테이블에서 CREDIT_LIMIT의 값이 가장 큰 10건의 행을 출력하라. (단, CUSTOMERS 테이블의 모든 칼럼을 출력하고 CREDIT_LIMIT이.. 2021. 9. 25.