데이터베이스 엔진(Database Engine)은 데이터베이스 관리 시스템(DBMS)의 핵심 요소로, 데이터를 저장, 관리, 처리, 검색하는 역할을 수행하는 소프트웨어 구성 요소입니다. 사용자가 데이터베이스와 상호 작용할 수 있도록 하는 기본적인 백엔드 역할을 하며, 데이터를 처리하는 모든 작업의 중심에 있다고 할 수 있습니다. 아래에 Database Engine의 주요 기능과 개념을 설명합니다.Database Engine의 주요 기능1. 데이터 저장 및 관리:데이터베이스 엔진은 데이터를 효율적으로 저장하고 관리하는 역할을 합니다. 테이블, 인덱스, 트리거, 뷰 등 데이터 구조를 생성하고 유지합니다.2. 데이터 쿼리 처리:SQL(Structured Query Language)을 사용해 데이터를 검색하고 ..
마스터/스탠바이 복제 마스터(Master) 서버:데이터베이스의 원본 데이터를 보유하고 있으며, 모든 쓰기(INSERT, UPDATE, DELETE) 작업이 이 서버에서 이루어집니다.클라이언트는 일반적으로 마스터 서버에 데이터를 변경하기 위한 요청을 보냅니다.스탠바이(Standby) 서버:마스터 서버로부터 데이터를 복제하여 보유하며, 읽기 작업을 수행하거나 장애 발생 시 마스터 역할로 승격(failover)될 수 있습니다.보통 두 가지 유형으로 나뉩니다:핫 스탠바이(Hot Standby): 거의 실시간으로 마스터와 동기화되며, 필요 시 빠르게 마스터로 전환할 수 있습니다.콜드 스탠바이(Cold Standby): 복제는 이루어지지만, 활성화까지 시간이 더 걸릴 수 있습니다. 다중 마스터 복제다중 마스터 복..
파티셔닝이란?수직 파티셔닝 vs 수평 파티셔닝수직 파티셔닝수직 파티셔닝은 테이블을 컬럼 단위로 분할하여 관리, 수평 파티셔닝은 행 단위로 나누어 확장성과 성능을 개선합니다.개념: 테이블의 컬럼을 기준으로 데이터를 분할합니다. 테이블의 특정 컬럼들을 분리하여 별도의 테이블로 만들어, 각 테이블이 전체 데이터의 일부를 갖도록 합니다.장점:데이터를 더 잘 관리하고 보안 수준을 높일 수 있습니다. 예를 들어, 민감한 데이터를 별도 테이블에 두고 접근 권한을 다르게 설정할 수 있습니다.자주 조회되는 컬럼들만 모아서 별도 테이블로 만들면 메모리 사용을 최적화할 수 있습니다.단점:조인 연산이 필요할 수 있어 성능 저하가 발생할 수 있습니다.테이블 간 데이터 일관성을 유지하기 어려울 수 있습니다.사용 예:고객의 개인정..
Row Oriented Database디스크에 테이블이 Rows로 저장됩니다.하나의 IO block read는 테이블에서 여러개의 Rows를 읽어옵니다.특정 Row를 찾으려면 많은 양의 IO가 필요합니다. 예시일반적으로 우리가 사용하는 Row-Oriented Database의 예시입니다.사용자 입장에서는 위와 같이 보일 텐데 이를 실제 디스크에 저장한다면 아래와 같은 예시로 저장될 것입니다.회색은 하나의 block 에 있는 데이터를 의미하고 빨간 세로선 3개로 해당 Row가 끝났음을 명시했습니다. 검색 예시Select first_name from emp where ssn=666을 실행하면 아래와 같이 순서대로 페이지들을 검색합니다.1번 block -> 없음2번 block -> 없음3번 block -> 있..
매번 복습 할 때마다 새롭고 자주 까먹는 영역이 Transacion과 ACID인데요.한번 제대로 정리를 해두고 이를 자주 보면서 까먹지 않기 위해서 글을 써두려고합니다.Transaction 이란?SQL Query의 모음하나의 작업 단위여러 개의 Query가 하나의 작업 단위에 포함 될 수 있습니다. 실제 예제로는 돈을 맡기는 케이스가 있습니다.SELECT, UPDATE, UPDATE 와 같이 3개의 쿼리가 순서대로 필요합니다. 하나의 예시는 아래와 같습니다.계좌 1에서 계좌 2로 돈을 보내는 경우 아래와 같이 Transaction이 동작하죠.Transaction LifespanTransaction BEGIN을 통해서 Transaction을 시작할 수 있습니다.Transaction COMMIT을 통해서 실..