Database 4

[DB] 트랜잭션 (Transaction)의 4가지 속성 - ACID 란

트랜잭션(Transaction)트랜잭션은 데이터베이스에서 하나의 작업 단위를 의미하며, 정합성을 보장하기 위해 다음 4가지 속성을 만족해야 한다.Actomicity (원자성)더보기트랜잭션은 모두 실행에 성공하거나, 모두 실행에 실패해야 한다.중간에 에러가 발생하면 모든 작업을 롤백(Rollback) 하여 아무 일도 없던 것처럼 데이터를 복원 시켜야 한다.마치 "All or Nothing" 원칙과도 같다. 예시-- 계좌 이체 트랜잭션1. A 계좌에서 -1000원 출금2. B 계좌에 +1000원 입금 중간에 B 계좌 입금이 실패한다면 A의 출금도 취소되어야 한다. Consistency (일관성)더보기트랜잭션은 전후에 데이터의 제약 조건이나 규칙이 항상 만족되어야 한다. 트랜잭션이 완료되면 데이터는 항상 유효..

Database 2025.06.30

[DB] CAP 이론

CAP 이론이란?CAP 이론은 분산 시스템에서 세 가지 속성(Consistency, Availability, Partition Tolerance) 중 두 가지만 보장할 수 있다는 이론이다. 이 개념은 2000년 Eric Brewer 교수가 제안한 후 2002년에 정식으로 증명되었다. CAP의 3가지 속성Consistency (일관성)모든 노드에서 항상 같은 데이터를 조회할 수 있는 것을 의미한다.즉, 한 노드에서 데이터가 변경되면 모든 노드에 일관적으로 반영되어야 한다.Availability (가용성)항상 응답을 받을 수 있음을 의미한다.일부 노드가 실패하더라도, 나머지 노드가 사용 가능한 데이터를 반환해야 한다.Partition Tolerance (파티션 내성)네트워크 장애가 발생해도 시스템이 정상적으..

Database 2025.03.16

[DB] 분산 저장 기법 - 2. 샤딩 (Sharding)

샤딩은 데이터베이스에서 데이터를 여러 개의 작은 단위 (Shard, 샤드)로 나누어 저장하는 기법이다. 주로 대규모 시스템에서 성능과 확장성을 개선하기 위해 사용하는 것이 일반적이다. 데이터를 하나의 데이터베이스 인스턴스에 저장하지 않고 여러 개의 독립적인 데이터베이스에 분산하는 방식이다. 이를 통해 트래픽 분산, 성능 향상, 병목 해소, 확장성 확보가 가능하다. 샤딩의 주요 장점확장성 (Scalability) 향상단일 데이터베이스의 성능 한계를 넘을 수 있다.새로운 샤드를 추가하면서 시스템 전체 용량이 증가한다.성능 향상데이터가 여러 샤드에 분산되므로 읽기/쓰기 성능이 향상된다.특정 샤드에서만 쿼리를 처리하므로 부하가 분산된다.고가용성(Hign Availability)하나의 샤드가 장애가 나더라도 전체..

Database 2025.03.09

[DB] 분산 저장 기법 - 1. 파티셔닝(Partitioning)

파티셔닝(Partitioning) 이란?파티셔닝이란 데이터베이스, 하나의 테이블 또는 인덱스를 여러 개의 논리적 조각(파티션)으로 나누는 기법으로, 대용량 데이터를 효율적으로 관리, 검색, 성능 최적화하는 데에 사용된다.  파티셔닝의 사용 목적쿼리 성능 향상특정 파티션에만 접근해 데이터를 조회하므로 검색 속도가 향상불필요한 데이터 스캔을 방지하여 I/O 부하 감소데이터 관리 용이오래된 데이터를 별도의 파티션으로 분리하여 관리 가능특정 파티션만 백업하거나 삭제할 수 있어 관리가 편리병렬 처리 (Parallel Processing)여러 파티션을 동시에 처리하여 성능을 향상시킬 수 있음파티셔닝의 종류1. 해시 파티셔닝 (Hash Partitioning) 특정 컬럼을 해시함수를 사용해 분산 저장하는 방식으로 데..

Database 2025.03.02