DB7 [DB] index **인덱스(Index)**는 데이터베이스에서 데이터 검색 속도를 높이기 위해 사용하는 자료 구조입니다. 대량의 데이터가 저장된 테이블에서 원하는 데이터를 빠르게 찾기 위해 인덱스를 설정하며, 이는 마치 책의 목차와 비슷한 역할을 합니다. 인덱스를 사용하면 데이터베이스가 테이블의 모든 행을 순차적으로 검색할 필요 없이, 인덱스 구조를 통해 필요한 데이터로 바로 접근할 수 있습니다. 인덱스의 원리와 구조 1. 인덱스의 기본 원리 • 인덱스는 특정 열(column) 또는 열들의 조합을 기반으로 정렬된 자료 구조를 만들어 데이터베이스가 빠르게 검색할 수 있게 도와줍니다. • 인덱스를 통해 데이터베이스는 테이블의 전체를 스캔하지 않고도, 특정 값을 가진 행을 빠르게 찾을 수 있습니다. 2. 인덱스의 자료 구조 .. 2024. 11. 15. [DB] Undo, Redo Undo 로그와 Redo 로그는 데이터베이스에서 트랜잭션의 무결성 및 일관성을 유지하고, 장애가 발생했을 때 데이터를 복구하는 데 중요한 역할을 합니다. 이 두 로그는 트랜잭션의 롤백과 복구를 각각 지원하며, MVCC와 트랜잭션 관리의 핵심 요소로 작동합니다. 각각의 역할과 작동 방식을 구체적으로 설명하겠습니다. 1. Undo 로그 Undo 로그는 트랜잭션 롤백과 MVCC(Multi-Version Concurrency Control)를 지원하기 위해, **데이터의 변경 전 상태(과거 버전)**를 저장하는 로그입니다. Undo 로그의 역할 1. 트랜잭션 롤백 지원: • 트랜잭션이 데이터 변경 작업을 수행할 때, 변경 이전의 데이터 상태를 Undo 로그에 저장합니다. • 만약 트랜잭션이 실패하거나 롤백(R.. 2024. 11. 15. [DB] MVCC **MVCC (Multi-Version Concurrency Control, 다중 버전 동시성 제어)**는 데이터베이스에서 여러 트랜잭션이 동시에 접근할 때 락 없이 동시성 제어를 가능하게 하며, 트랜잭션의 일관성과 데이터의 무결성을 보장하는 기술입니다. MVCC는 주로 Oracle과 **MySQL(InnoDB 엔진)**과 같은 데이터베이스에서 사용되며, 동시성 문제를 해결하면서도 높은 성능을 유지하기 위해 설계되었습니다. MVCC는 각 트랜잭션이 데이터의 **스냅샷(시작 시점의 상태)**을 사용하여 작업을 수행하도록 합니다. 즉, 트랜잭션이 실행될 때마다 데이터의 특정 시점 버전을 사용해 일관성을 유지하며 읽기 작업을 수행할 수 있게 합니다. 이를 위해 MVCC는 데이터의 여러 버전을 저장하고 관리하는.. 2024. 11. 15. [DB] Isolation & Lock 트랜잭션과 관련된 락과 격리 수준(Isolation)은 데이터 일관성과 무결성을 유지하기 위한 핵심적인 개념들입니다. 이 두 가지를 이해하면 동시에 여러 트랜잭션이 실행될 때 데이터 충돌이나 불일치 상황을 어떻게 방지할 수 있는지 파악할 수 있습니다. 트랜잭션과 락, 격리 수준에 대한 카테고리를 다음과 같이 정리해보겠습니다: 1. 트랜잭션의 기본 개념 • 트랜잭션: 데이터베이스의 논리적인 작업 단위로, 트랜잭션은 완전하게 수행되거나 완전히 수행되지 않아야 합니다. 이는 ACID 특성(Atomicity, Consistency, Isolation, Durability)을 지키는 것을 목표로 합니다. • Atomicity(원자성): 트랜잭션 내 모든 작업이 성공하거나 모두 실패해야 함. • Consisten.. 2024. 11. 13. [DB] 데이터베이스의 확장 데이터베이스 확장(Scaling)은 데이터의 양이 증가하거나 시스템의 사용량이 많아져 성능 저하가 발생할 때 데이터베이스의 처리 능력을 개선하기 위해 사용하는 방법입니다. 확장 방식에는 **수직 확장(Vertical Scaling)**과 **수평 확장(Horizontal Scaling)**이 있으며, 각각의 방식은 특정한 데이터베이스 구조와 요구사항에 따라 선택됩니다. 1. 데이터베이스 확장의 방식 1.1 수직 확장 (Vertical Scaling) • 정의: 기존 서버의 하드웨어 자원을 업그레이드하는 방식으로, 서버 자체의 성능을 높여 데이터베이스 처리 능력을 향상시킵니다. • 방법: 더 많은 CPU, RAM, 디스크 성능을 가진 고사양 서버로 업그레이드합니다. • 장점: • 구현이 단순합니다. 서버.. 2024. 11. 12. [DB] 관계형 데이터베이스(RDBMS) vs 비관계형 데이터베이스(NoSQL) 관계형 데이터베이스와 비관계형 데이터베이스는 각각 데이터를 저장하고 관리하는 구조와 방식이 다르며, 주로 사용되는 상황이나 장점에도 차이가 있습니다. 관계형 데이터베이스 (RDBMS: Relational Database Management System) 정의 및 특징 • 정형 데이터 구조: 관계형 데이터베이스는 **테이블 형태(행과 열)**로 데이터를 저장합니다. 각 테이블은 고정된 스키마를 따르며, 특정 데이터 형식으로 저장해야 합니다. • 관계와 제약 조건: 데이터 간의 관계를 정의하고, 테이블 간의 외래 키 등을 통해 참조 관계를 설정해 데이터의 무결성을 유지합니다. • SQL 사용: 관계형 데이터베이스는 데이터 질의를 위해 **SQL (Structured Query Language)**을 사.. 2024. 11. 12. 이전 1 2 다음