본문 바로가기

트랜잭션4

[SQLP] 2장. Lock과 트랜잭션 동시성 제어 - 동시성 제어 동시성 제어 (Concurrency Control)1. 비관적 동시성 제어 vs 낙관적 동시성 제어가. 비관적 동시성 제어사용자들이 같은 데이터를 동시에 수정할 것이라고 가정Select 시점에 Lock을 거는 비관적 동시성 제어는 자칫 시스템 동시성을 심각하게 떨어뜨릴 우려가 있음 -> no wait 옵션 사용holdlock, updlock 힌트 사용 권장나. 낙관적 동시성 제어사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정Select 시에는 Lock을 설정하지 않음 -> 수정 시점에 다른 사용자에 의해 값이 변경됐는지 검사 필요2. 다중버전 동시성 제어가. 일반적인 Locking 메커니즘의 문제점값을 읽는 순간에만 공유 Lock을 걸고 다음 레코드로 이동할 때 Lock을 해제함트랜잭션 격리.. 2019. 3. 8.
[SQLP] 2장. Lock과 트랜잭션 동시성 제어 - 트랜잭션 트랜잭션1. 트랜잭션의 특징원자성(Atomicity)트랜잭션은 더 이상 분해가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 한다.일관성(Consistency)일관된 상태의 데이터베이스에서 하나의 트랜잭션을 성공적으로 완료하고 나면 그 데이터베이스는 여전히 일관된 상태여야 한다. 즉, 트랜잭션 실행의 결과로 데이터베이스 상태가 모순되지 않아야 한다.격리성(Isolation)실행 중인 트랜잭션의 중간결과를 다른 트랜잭션이 접근할 수 없다.영속성(Durability)트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 데이터베이스에 영속적으로 저장된다.2. 트랜잭션 격리성가. 낮은 단계의 격리성 수준에서 발생할 수 있는 현상들1) Dirty Read다른 트랜잭션에 의해 수정.. 2019. 3. 7.
[SQLP] 1장. 아키텍처 기반 튜닝 원리 - 데이터베이스 아키텍처 데이터베이스 아키텍처1. 아키텍처 개관가. 모델링의 정의데이터베이스 : 물리적인 디스크에 저장된 데이터의 집합 인스턴스 : 공유메모리와 이를 엑세스 하는 프로세스의 집합나. SQL Server 아키텍처하나의 인스턴스 당 최고 32,767개의 데이터베이스를 정의해서 사용 시스템 데이터베이스가 만들어지면 사용자 데이터베이스를 추가하여 생성하는 구조시스템 데이터베이스 : mster, model, msdb, tempdb 등사용자 데이터베이스 : 데이터파일(mdf), 트랜잭션 로그파일(ldf), 보조데이터파일(ndf)2. 프로세스서버프로세스 : 전면에 나서서 사용자가 던지는 각종 명령을 처리백그라운드프로세스 : 뒤에서 묵묵히 주어진 역할을 수행가. 서버 프로세스Oracle : Server ProcessSQL Se.. 2019. 3. 5.
[SQLD] 정리 1 (데이터 모델링의 이해, SQL 기본) ▶데이터 모델링의 이해◀ 엔티티업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것 (thing) 명사 (관계는 verb)- 기본 (Basic) 엔티티 : 독립적 생성 가능 ( 고객 )- 메인 (Main) 엔티티 : 업무의 중심 ( 계약 )- 행위 (Active) 엔티티 : 두개 이상의 부모 엔티티로 발생 ( 주문목록 ) * 엔티티 특징가. 업무에서 필요로 하는 정보나. 식별이 가능해야 함다. 인스턴스의 집합예)엔티티 : 사건인스턴스 : 사건 2010-011라. 업무프로세스에 의해 이용마. 속성(Attributes)을 포함 ( 사건번호, 사건 발생일 ...)바. 관계의 존재 * 엔티티 분류가. 유무형 ( 유형엔티티 : 사원사건엔티티 : 주문개념엔티티 : 조직 ) 나. 발생시점 ( 기본엔티티 .. 2016. 5. 30.