본문 바로가기

반응형

개발/DB&SQL

(15) GITHUB 방명록
데이터베이스 시스템의 동시성 제어 (MVCC, Lock-Based) 개발/DB&SQL / 2024. 12. 18. 대표적인 동시성 제어 방식으로 MVCC(Multi-Version Concurrency Control) 와 Lock-Based Concurrency Control이 있습니다.MVCC(Multi-Version Concurrency Control)MVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식입니다. 각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않습니다.데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있습니다. 트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못합니다.또한 읽기 작업 시 잠금을 사용하지 않아 높은 동시성을 제공합니..
[SQL] ORACLE UNION과 UNION ALL의 차이 개발/DB&SQL / 2024. 11. 20. SQL 에서 UNION/UNION ALL은 두 개 이상의 조회 결과를 하나로 합치는 연산자입니다. JOIN과의 차이점은 JOIN은 가로 방향으로 합친다면, UNION은 세로 방향으로 합칩니다.이제 UNION과 UNION ALL 두 연산자의 차이를 보겠습니다.SELECT 10 DATA FROM SYS.DUALUNION SELECT 10 DATA FROM SYS.DUALUNIONSELECT 20 DATA FROM SYS.DUAL-----SELECT 10 DATA FROM SYS.DUALUNION ALLSELECT 10 DATA FROM SYS.DUALUNION ALLSELECT 20 DATA FROM SYS.DUAL위 쿼리를 수행하면,UNION은 10과 20으로 2개 데이터만 출력됩니다. 반면, UNION ..
[SQL] ORACLE CONNECT BY 사용법 (계층형 쿼리) 개발/DB&SQL / 2024. 11. 13. 오라클 SQL에서 CONNECT BY 절은 부서 조직도, 메뉴 트리 등 계층적 구조를 만들 때 주로 사용하는 방법이다. 그리고 CONNECT BY 절과 LEVEL을 사용하면 순차적인 데이터를 생성할 수가 있어서, 특정 값만큼 행을 늘리거나 시작일자와 종료일자 사이의 날짜를 채워서 행을 늘리는 등의 가상의 데이터를 만들 때 유용하게 사용할 수 있다. CONNECT BY 절의 사용법은 광범위하기 때문에, 아래는 실무에서 자주 사용하는 예시 몇 가지를 사용하여 설명하였다.계층형 쿼리 조회 하는 법SELECT empno , ename , mgr , job , LEVEL FROM empCONNECT BY PRIOR empno = mgr START WITH mgr IS NULL   ..
[SQL] Oracle 그룹 함수 (ROLLUP, CUBE, GROUPING 등) 개발/DB&SQL / 2024. 11. 11. 오라클에 있는 다양한 그룹함수에 대한 내용이다.CREATE TABLE 월별매출 ( 상품ID VARCHAR2(5), 월 VARCHAR2(10), 회사 VARCHAR2(10), 매출액 INTEGER ); INSERT INTO 월별매출 VALUES ('P001', '2019.10', '삼성', 15000);INSERT INTO 월별매출 VALUES ('P001', '2019.11', '삼성', 25000);INSERT INTO 월별매출 VALUES ('P002', '2019.10', 'LG', 10000);INSERT INTO 월별매출 VALUES ('P002', '2019.11', 'LG', 20000);INSERT INTO 월별매출 VALUES ('P003', '2019..
[SQL] ORACLE MERGE INTO 사용 개발/DB&SQL / 2024. 11. 7. 오라클에서 쿼리문을 작성하다 보면, 하나의 쿼리문으로 INSERT, UPDATE, DELETE 작업을 해야 하는 경우가 있습니다. 이럴 때에는 MERGE 문을 사용하면 간단하게 쿼리문을 작성할 수 있습니다. 오라클 9i부터 MERGE 문을 사용할 수 있으며, DELETE 절은 10g부터 사용할 수 있습니다. 1. 동일한 테이블 구조를 가지고 있는 테이블로부터 데이터를 옮기는 쿼리MERGE INTO TABLE1 T1 USING TABLE2 T2 ON (T1.COLUMN1 = T2.COLUMN1 AND T1.COLUMN2 = T2.COLUMN2) WHEN MATCHED THEN UPDATE SET T1.COLUMN3 = T2.COLUMN3 WHEN NOT MATCHED THEN INSERT (T1.CO..
[Firebase] 데이터베이스 비교 (Realtime vs Cloud Firestore) 개발/DB&SQL / 2024. 10. 4. 최근에 Flutter 기반 1인 앱을 개발하면서 서버리스(Serverless)에 대해 알아보게 되었습니다. 보통은 서버를 직접 개발했기 때문에, 관련 플랫폼인 Firebase나 Supabase 등은 저의 관심 밖이었습니다. 하지만 혼자 개발을 하다보니 전체 영역을 다루는 것은 쉽지 않았습니다. 특히 Flutter의 빠른 개발을 특징으로, 프로토타입 단계를 목표할 때에는 서버를 직접 개발하는 것이 전략상 맞지 않음을 느꼈습니다.뿐만 아니라 Firebase의 다양한 서비스(Analysis, 보안, Database 등)를 실습해보니, 놀랍고 편리한 기능이 정말 많았습니다. 오늘은 Firebase에서 제공하는 2가지의 데이터베이스 솔루션에 대해서 알아보겠습니다.[Realtime Database(실시간 데이터베..

반응형