본문 바로가기

Develop Study/Database3

(25.05.13) SQL 재귀 WITH RECURSIVE SQLD 자격증을 공부하면서 습득했던 구문들과 문법들을 나름 다 활용하고 있다고 생각했는데,Java 기반의 알고리즘 프로그래밍에서나 볼 수 있었던 "재귀" 에대해서 SQL구문을 활용을 하는 예제를 맞닥드렸다.만약, 재귀법 없이 하나하나 구해야한다면 무한의 조건문을 만들어야 하기 때문에,반드시 알아둬야하는 CTE 구문을 간단하게 정리하고 이를 활용하는 예제도 정리했다. 단! CTE (Common Table Expressions) 기능은 MySQL 8.0 버전부터 지원하기 때문에 ( MySQL 8.0 이상, PostgreSQL, SQL Server 2005 이상, Oracle 11g 이상 )비교적 최신 구문으로, SQLD 자격 부분에 대해서는 쉽사리 다루지 않았던 것 같다.이전 버전의 SQL 서버에서는 동작.. 2025. 5. 13.
(24.12.18) MVCC 매커니즘 최근 몸살과 장염으로 컨디션이 안좋은 가운데에서도, 저번에 학습했던 DB 격리수준의 연장선으로 Read  Lock을 걸지 않고도 동시성 제어를 하는 매커니즘으로 MVCC에 대해서 한번 정리하면서DB의 CS 지식에 대해서 간단히 찾아보고 정리하고자 했다.MVCC, Multi-Version Concurrency Control데이터베이스에서 락을 최소화 하면서, 동시성 제어를 위한 메커니즘MySQL의 InnoDB 엔진에서 사용하는 주요 기법 (아래 다시 정리)읽기 작업 read 과 쓰기 작업 write 이 충돌하지 않도록 데이터를 변경할 때 데이터의 복사본(버전)을 생성하여 관리하는 방식레코드 단위로 여러 데이터 버전을 관리하며, 데이터 읽기 시 락을 최소화하여 동시성을 높이는 구조읽기 작업을 Lock을 거는.. 2024. 12. 18.
(24.12.12) 관계형 DB의 격리수준 채용 공고를 보거나 RDB를 충분히 다룰 수 있다는 있는 역량을 보는 것과 동시에,Spring Framework 에서의 JPA를 활용하면서, Transaction 전파 전략(Propagation)  설정하는 선에서 Transaction 을 다루고자 했다. 하지만, SQL을 활용해서 DB 내에서 Transaction간 격리수준을 설정하는 것만으로 Session 별 또는 Global로 Transaction간 읽기 쓰기에 대한 동시성 제어가 가능할 수 있기 때문에,  Spring 단이 아닌 DB 단에서 격리 수준을 다루기 위해 찾아보고 정리를 했다. 관계형 DB의 격리수준DB의 격리 수준트랜잭션 간 동시성 제어를 위한 독립성 보장하는 설정여러 트랜잭션이 동시에 실행될 때 서로의 작업에 간섭하지 않도록 조정데이.. 2024. 12. 12.