트랜잭션 동시성 제어
2025. 11. 12. 23:14
DB
동시성제어(concurencyControl)란,동시에 실행되는 트랜잭션 수를 최대화 하면서도 입력, 수정, 삭제, 검색시 데이터의 무결성이 유지 될 수있도록 노력하는것을 말한다. 여러개 트랜잭션 이동시에 수행될때, 데이터베이스 애플리케이션은 이들 트랜잭션이 서로 간섭을 일으키는 현상을 최소화하면서 데이터의 일관성과 무결성이 보장되도록 개발되어야 하는것이다. 동시성(Concurrency) : 다중 사용자가 같은 데 이터를 동시에 액세스일관성(Consistency) : 자신이 발생시킨 변경 사항과 다른 트랜잭션의 변경사항( 읽을수 있는 버전만 허용)을 포함해 일관성 있는 상태로 데이터를 제공 동시성 제어가 어려운 이유동시성 과 일관성이 트레이드 오프 관계에 있다는 데에 있다. 즉, 동시성을 높이려고 Lo..
Database Lock 이란?
2024. 6. 18. 21:33
DB
제가 일하고 있는 분야에서 RDBMS 에 보단 NoSql(Elasticsearch) 를 주로 쓰다 보니 공부하는 겸 공유를 하게 되었습니다.예전부터 궁금했던것들중에 하나가 선착순으로 지급해주는 이벤트성은 DB에서 어떻게 처리할까? 였습니다. DB lock에서 어느정도 궁금증을 해소하게 되었습니다. 혹시나 저처럼 이러한 생각을 한 분들은 이미 DB lock에 대해서 공부를 하셨다고 생각이 들지만 그럼에도 글을 공유하게 되었습니다.DataBase는 데이터를 영속적으로 저장하는 시스템입니다. 즉 같은 자원에 대해서 동시에 접근하는 경우가 생길 수밖에 없습니다. Lock 이란 트랜잭션 처리의 순차성을 보장하는 방법이라고 했습니다. 트랜잭션이란 DB의 나누어지지 않는 최소한의 처리 단위입니다. 2가지의 lock ..
N+1 문제 해결: Java 백엔드 개발자를 위한 데이터베이스 쿼리 최적화
2024. 6. 5. 17:57
DB
오늘은 JPA N+1의 문제 해결에 대해서 글을 공유해드리려고 합니다. * Java 백엔드 개발자를 위한 데이터베이스 쿼리 최적화에 적합한 내용입니다.개발자가 직면하는 가장 일반적인 성능 병목 현상 중 하나가 N+1입니다. 애플리케이션이 단 한 번의 쿼리로 동일한 결과를 얻을 수 있는데도 N+1번의 데이터베이스 쿼리를 수행할 때 발생합니다. 과도한 데이터베이스 Hit는 느린 응답 시간, 높은 서버 부하, 열약한 사용자 경험으로 이어질 수 있습니다. 원인을 함께 파악해 보고 개발자가 이러한 문제를 어떻게 완화할지에 대해서 다양한 전략과 기법에 대해서 적어보겠습니다.앞서, N+1 문제가 무엇인지 알아보도록 하겠습니다.N+1 문제란 무엇인가?애플리케이션이 개체목록(예시: 제품, 사용자 또는 게시물 목록)을 가..
PL/SQL 이란
2022. 1. 10. 17:47
DB
PL/SQL의 특징 PL/SQL은 BLOCK 구조로 되어있고 BLOCK 내에는 DML 문장과 QUERY 문장, 그리고 절차형 언어(IF, LOOP) 등을 사용할수 있다. 특징은 저장 모듈 (STORED MODULE)을 이용해서 PL/SQL 을 데이터베이스에 저장하여 독립적으로 실행되거나 다른 프로그램으로부터 실행될 수 있는 완전한 실행 프로그램이다. ORACLE 의 저장 모듈에는 PROCEDURE, USER DEFINED FUNCTION, TRIGGER가 있다. PL/SQL 의 특징은 다음과 같다. -PL/SQL은 Block 구조로 되어있어 각 기능별 모듈화가 가능하다. -변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다. -IF,Loop 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록..
데이터베이스 모델링 -1
2022. 1. 7. 17:25
DB
데이터베이스 모델링 또는 데이터베이스 설계라고도 합니다. (-모델링 과목을 많이 하고 하는 만큼 실력이 늘어난다. 혹은 이해할수 있다. ) 4가지 작업으로 이루어지는 데이터베이스 모델링 1.업무파악 : 무엇을 할수 있는가 무엇을 만들건가를 파악해야한다. 화면을 보고 업무파악 혹은 고객사에서 요구하는 요구사항을 글로 읽고 파악하는 단계가 될수도 있다. 글을 읽고도 무엇이 필요한지 깨달을 필요가 있어야한다. 2.개념적 데이터 모델링 - er 다이어그램으로 어떤것들이 필요할거같은 중요 핵심들을 뽑아내서 추출하는 작업 3. 논리적 데이터모델링 -er 다이어그램을 보고 단계형 데이터베이스에 맞게끔 표로 전환하는 작업 4. 물리적 데이터 모델링 실제 표를 생성하고 만드는 작업 개념적 데이터 모델링에서는.... 개념..