반응형

논리 테이블

ERD를 그릴때 필요한 객체와 관계, 속성 등을 명시해주는 테이블 구조이다.

 

고려사항

객체, 관계, 속성, 기본키, 후보키, 논리적 ER 모델 및 정규화 과정, 논리적 제약사항을 명시한다.

 

물리 테이블

논리 테이블을 실제 DBMS 벤더에 적용시킬 때, 필요한 과정이다.

특정 데이터베이스를 선정하고, 해당 제품에 맞는 방식으로 논리테이블을 설계해나가는 방식이다.

논리테이블을 실제 DBMS 제품의 특성에 맞도록 적용하는 과정이다.

 

고려사항

기초테이블 설계, 확장성, 분산성 고려, 트랜잭션 분석, 논리적 제약사항을 DB제품의 무결성 제약사항으로 선정, 물리적 정규화, 인덱스, 뷰, 저장 프로시저 등을 DB 제품의 개체를 설계한다.

반응형
반응형

 

 

 

 

블로킹(Blocking)

DBMS의 가장 작은 실행단위인 트랜잭션이 실행될 때,

접근하는 자원의 고유성을 보장하기 위해, 잠시 다른 트랜잭션의 개입을 막는 것을 의미한다.

 

최적의 성능을 위해서는 이런 트랜잭션을 최대한 짧게 진행해야한다.

 

블로킹 상태가 많을 수록, 사용자의 Latency는 길어지고, 불편함을 호소한다.

이것을 방지하지 위해 아래의 명령어를 사용한다.

 

SELECT * FROM USERS

SET LOCK_TIMEOUT 10000
GO

 

10000는 10초이다. (1000 = 1초)

 

아래의 정보를 꼭 기억하자

- set lock_timeout 0 : 블로킹이 걸려있으면 곧바로 종료

- set lock_timeout -1 : 블로킹이 걸려있으며 해지될 때까지 무작정 기다림(기본값)

 

 

데드락(Deadlock)

서로 다른 트랜잭션이 거의 동시에 발동하여

각각의 자원을 블로킹하고 있는 상태일 때, 두 트랜잭션이 서로 상대의 블로킹된 정보에 접근하고자 할 때,

서로 하염없이 기다리는 상태이다.

 

이것을 방지하기 위해 

데드락 걸렸을 때, 아래와 같이 우선순위를 미리 정해준다.

트랜잭션 쿼리 안에 아래의 내용을 기입한다.

SET DEADLOCK_PRIORITY

 

반응형

+ Recent posts