본문 바로가기

Database8

데이터베이스에서의 Transaction (트랜잭션) Transaction(트랜잭션) 이란? 데이터베이스 트랜잭션(Transaction)은 데이터베이스에서 논리적인 작업 단위를 묶어서, 하나의 논리적인 작업으로 처리하기 위한 것이다. 트랜잭션은 여러 개의 쿼리나 명령어를 수행할 때, 그룹 단위로 묶어서 하나의 작업으로 처리한다. 따라서 작업이 끝까지 수행되거나, 전혀 수행되지 않도록 보장(All or Nothing)하는 것이 특징이다. 은행 계좌의 데이터베이스를 생각해 봤을 때, "Alice가 Bob에게 100$ 이체"라는 하나의 event에 대해서 아래 4개의 update 쿼리가 필요하다고 하자. UPDATE accounts SET balance = balance - 100.00 WHERE name = 'Alice'; --잔액 테이블에서 앨리스 잔액 - .. 2023. 4. 23.
Window Function (윈도우 함수) 사용하기 윈도우 함수란? 윈도우 함수는 행의 집합을 대상으로 계산하는 함수이다. 행의 집합을 계산한다는 점에서 집계함수와 비슷하지만, 윈도우 함수는 각 행마다 처리 결과가 출력된다. 또한 윈도우 함수는 '윈도우 프레임'을 사용하여 처리하고자 하는 행의 범위를 지정 한다. 윈도우 함수 기본 구조 윈도우 함수는 OVER 구문이 필수로 정의되어야 하며, OVER 구문에서 윈도우 함수를 적용 할 데이터셋에 대한 구체적인 정보가 나열된다. (argument) OVER ( [PARTITION BY ] [ORDER BY ] [{ROWS | RANGE} ] ) window function: 윈도우 작업을 수행하는 함수. SUM(), RANK() 등 argument: 함수에 필요한 인수. 인수가 포함된 함수도 있고, 그렇지 않은.. 2023. 4. 9.
Amazon RDS Proxy 사용하기 AWS Lambda를 이용해서 서버리스 어플리케이션을 구성하여 RDS에 접속하려고 하면, 잦은 Lambda 호출로 인한 데이터베이스 커넥션 급증 문제가 발생 할 수 있다. 이러한 문제를 해결하기 위한 방법으로 AWS의 RDS Proxy를 이용 할 수 있다. Amazon RDS Proxy? RDS 프록시를 사용하여 예기치 않은 데이터베이스 트래픽 급증을 처리할 수 있습니다. 급증을 처리하지 않으면 연결 초과 구독 또는 빠른 속도의 새 연결 생성으로 인한 문제가 발생할 수 있습니다. RDS 프록시는 데이터베이스 연결 풀을 설정하고 이 풀에서 연결을 재사용합니다. 이 접근 방식은 매번 새 데이터베이스 연결을 여는 데서 오는 메모리 및 CPU 오버헤드 를 방지합니다. 과다 구독으로부터 데이터베이스를 보호하기 위.. 2023. 1. 1.
AWS RDS 인스턴스 생성 및 외부 접속 설정 아마존 AWS에서 관계형데이터베이스 RDS를 사용하기 위하여 RDS 인스턴스 생성 및 Mysql 워크벤치 연동을 해보자. RDS 인스턴스를 생성하기 위해선 AWS에 로그인 후, RDS 콘솔에 접속하여 데이터베이스 페이지에서 데이터베이스 생성 버튼 클릭한다. 먼저, 데이터베이스 생성방식을 선택한다. 이번에는 손쉬운 생성으로 인스턴스를 생성하며, 이에 따른 설정은 추후에 변경 가능하다. 표준생성은 구성 옵션을 직접 입력/설정할 수 있다. (버전 선택 가능) 간편생성은 가용성, 보안, 백업 및 유지 관리 등의 구성 옵션에 대하여 기본 설정을 사용한다. 데이터베이스 엔진을 선택한다. 나는 MariaDB를 사용하며, 무료로 사용가능한 프리티어 인스턴스 크기를 선택했다. 엔진 유형 중, Amazon Aurora는 .. 2022. 4. 10.