본문 바로가기
728x90
반응형

데이터베이스4

[Spring] DB Lock DB 락 - 개념 이해  세션1이 트랜잭션을 시작하고 데이터를 수정하는 동안 아직 커밋을 수행하지 않았는데, 세션2에서 동시에 같은 데이터를 수정하게 되면 여러가지 문제가 발생한다. 바로 트랜잭션의 원자성이 깨지는 것이다.여기에 더해서 세션1이 중간에 롤백을 하게 되면 세션2는 잘못된 데이터를 수정하는 문제가 발생한다. 이런 문제를 방지하려면, 세션이 트랜잭션을 시작하고 데이터를 수정하는 동안에는 커밋이나 롤백 전까지 다른 세션에 서 해당 데이터를 수정할 수 없게 막아야 한다. 세션1은 memberA 의 금액을 500원으로 변경하고 싶고, 세션2는 같은 memberA 의 금액을 1000원으로 변경하고 싶다.데이터베이스는 이런 문제를 해결하기 위해 락(Lock)이라는 개념을 제공한다.다음 예시를 통해 동시.. 2024. 12. 18.
[Spring boot] 06. 스프링 부트 H2 Database 트랜잭션 확인하기 안녕하세요 이번 포스팅은 프로젝트에 내장된 H2 Database를 이용해서 트랜잭션이 일어났는지 확인해보도록 하겠습니다. 먼저, src > main > resources > application.properties 파일을 엽니다 spring.h2.console.enabled=true 를 입력하고 저장합니다. application.properties 파일을 저장하고 서버를 재시작 해야한다. localhost:8080/h2-console 을 입력하면 이와같은 화면이 뜬다. JDBC URL이 매번 바뀌게 되어서 서버를 재시작할 때 인텔리제이 툴 창에서 'jdbc'를 검색해줘야 한다. 드래그 된 부분을 복사해서 JDBC URL 부분에 붙여 넣는다. 사용자 명을 입력하고 연결을 누르면 다음과 같은 화면이 뜬다. .. 2021. 6. 2.
[SYBASE] 사이베이스와 오라클의 자주 쓰는 함수 비교 ORACLE SYBASE NVL(col, '') IsNull(col, '') REPLACE(col, 'beforeStr', 'afterStr') STR_REPLACE(col, 'beforeStr', 'afterStr') TO_NUMBER, TO_CHAR, TO_DATE CONVERT(VARCHAR, col, 번호) sysdate getDate() SUBSTR(col, 1,2) SUBSTRING(col,1,2) convert 참조 사이트 : blog.benelog.net/1478801.html Sybase 날짜형(datetime)의 문자열 변환시 style number - 개발수양록 sybase에서 select convert(varchar,getdate(),112)로 찍어보면 오늘 날짜가 20070831 .. 2020. 12. 9.
[ SYBASE] 사이베이스에서 삭제여부 컬럼을 사용하는 이유 Sybase는 자동으로 오토커밋을 하기 때문에 DELETE 문을 실행하면 Commit 과정 없이 바로 영구히 삭제된다. 그러므로 삭제여부 컬럼을 'Y' -> 'N'으로 혹은 'N' -> 'Y'으로 UPDATE를 실행하여 데이터를 관리한다 2020. 12. 9.
728x90
반응형