SQL

[SQL] DB LOCK

라텐느 2024. 9. 9. 11:54
반응형

DB LOCK 개념

DBLock (Database Locking)은 데이터베이스에서 동시성 제어를 위해 사용되는 메커니즘이다. 여러 사용자가 동시에 데이터에 접근할 때 데이터의 무결성을 유지하고 충돌을 방지하기 위해 락을 설정하게 된다.

1)SQLDEVELOPER 에서 실행

CREATE TABLE TABLE1 (
   EMPID	NUMBER(6,0)	NOT NULL PRIMARY KEY,
   ENAME	VARCHAR2(30 BYTE)	NULL,
   TEL	    VARCHAR2(20 BYTE)	NULL,
   EMAIL	VARCHAR2(320 BYTE)	
     );



 INSERT INTO TABLE1(EMPID,ENAME,TEL,EMAIL)
 VALUES(100,'가나','010','KANA');
실행
------------------------------------ 
2)이후 WINDOWS POWERSHELL 실행

 SQLPLUS로 로그인해서 아래 데이터를 추가

SQLPLUS /NOLOG
CONN HDG/1234
INSERT INTO TABLE1(EMPID,ENAME,TEL,EMAIL) VALUES(100,'가나','010','KANA');

 

 이후 엔터를 입력하면 컴퓨터가 멈춘다 -> DB LOCK


∵같은 메모리를 사용하는데 COMMIT을 하지 않은 상태에서 PRIMARY KEY가 겹쳐서
-----------------------------------------
3)SQLDEVELOPER에서 COMMIT;을 실행
=>커밋 완료.

4)SQLPLUS(POWERSHELL)에서 화면이 바뀐다.

∵100번이 입력되어 기본키 위반이 발생하며 저장되지 않는다.

반응형