본문 바로가기

Computer Science/DB

(5)
DB 기본 : Raid 1. RAID 0 (Striping) 목적: 주로 성능 향상에 초점을 맞춤. 작동 원리: 데이터를 여러 드라이브에 걸쳐 분할하여 저장함으로써, 여러 드라이브가 동시에 데이터를 읽고 쓸 수 있게 합니다. 이는 데이터를 빠르게 처리할 수 있게 해주어 읽기 및 쓰기 속도를 크게 향상시킵니다. 장점: 최대의 성능 향상을 제공합니다. 단점: 신뢰성이 낮습니다. 어느 하나의 드라이브라도 실패하면 RAID 배열의 모든 데이터가 손실될 수 있습니다. 적용 사례: 고성능이 필요하고 데이터 손실에 대한 위험을 감수할 수 있는 환경(예: 일시적인 작업 파일, 캐시 데이터 저장 등). 2. RAID 1 (Mirroring) 목적: 주로 데이터의 신뢰성 및 가용성 향상에 초점을 맞춤. RAID 1을 제공하는 제조사들이 누누이 ..
DB 심화 : B-Tree, Hash-Table 1. B-트리(B-Tree) B-트리는 균형 잡힌 트리 기반의 데이터 구조로, 주로 데이터베이스 및 파일 시스템에서 인덱싱에 사용됩니다. B-트리는 데이터를 정렬된 상태로 유지하며, 검색, 삽입, 삭제 작업을 로그 시간 복잡도(O(logn))로 수행할 수 있습니다. 특징 및 장점 균형 유지: B-트리는 모든 리프 노드가 같은 레벨에 위치하도록 트리의 균형을 자동으로 유지합니다. 이는 데이터가 추가되거나 제거될 때 트리의 높이를 최소화하여 효율적인 검색, 삽입 및 삭제를 가능하게 합니다. 분할 및 병합: 노드가 너무 커지면 자동으로 분할되고, 반대로 너무 작아지면 인접 노드와 병합됩니다. 이 과정은 B-트리가 효율적으로 데이터를 관리하고 검색 시간을 단축하는 데 도움이 됩니다. 페이지 단위로 데이터 처리 ..
DB 기본 : 트랜잭션 1. 개념 트랜잭션은 데이터베이스 관리 시스템(DBMS)에서 데이터의 무결성을 보장하기 위해 사용되는 기본 단위입니다. 트랜잭션은 하나 이상의 데이터베이스 작업을 묶어서, 이들이 전체적으로 하나의 작업으로 처리되도록 합니다. 모든 작업이 성공적으로 완료되면 트랜잭션은 커밋되어 데이터베이스 변경사항이 영구적으로 저장되며, 만약 작업 중 하나라도 실패하면 트랜잭션은 롤백되어 모든 변경사항이 취소됩니다. 2. 트랜잭션의 특성 (ACID) 트랜잭션은 ACID 속성을 기반으로 합니다. 이는 다음과 같은 네 가지 주요 특성을 의미합니다: 원자성(Atomicity): 트랜잭션 내의 모든 작업은 하나의 단위로 처리되어야 합니다. 모든 작업이 성공적으로 완료되거나, 아니면 전혀 실행되지 않아야 합니다. 즉, 트랜잭션은 ..
DB 심화 : 인덱스를 사용하면 발생하는 영향 1. 인덱스를 사용하면 좋은 경우 자주 읽는 컬럼 데이터베이스에서 특정 컬럼이 검색 조건으로 자주 사용된다면, 해당 컬럼에 인덱스를 생성하는 것이 좋습니다. 인덱스가 있으면 데이터베이스는 전체 테이블을 스캔하는 대신 인덱스를 통해 필요한 데이터를 훨씬 빠르게 찾을 수 있습니다. JOIN 조건에 사용되는 컬럼 여러 테이블을 JOIN할 때 사용되는 컬럼에 인덱스가 있으면, 데이터베이스는 관련 행을 더 신속하게 찾아내고 JOIN 작업의 성능을 향상시킬 수 있습니다. 데이터의 범위 검색 특정 범위 내의 데이터를 자주 검색하는 경우(예: 특정 날짜 사이의 기록 조회), 해당 데이터 범위에 대한 인덱스 생성이 유용할 수 있습니다. 범위 검색에 최적화된 인덱스(예: B-트리)는 이러한 쿼리의 처리 속도를 대폭 개선할..
DB 기본 : 인덱스 데이터베이스에서 인덱스(Index)는 데이터 검색 속도를 향상시키기 위해 사용되는 데이터 구조입니다. 인덱스는 데이터베이스 관리 시스템(DBMS)의 성능을 최적화하는 데 중요한 역할을 합니다. 1. 서론 데이터베이스 시스템은 다양한 애플리케이션에서 정보를 저장, 검색, 수정 및 관리하는 데 사용됩니다. 데이터의 양이 증가함에 따라 이를 효율적으로 관리하는 것은 매우 중요해졌습니다. 이러한 맥락에서, 인덱스는 데이터 검색 시간을 단축시켜 성능을 향상시키는 핵심 기술로 자리 잡았습니다. 2. 인덱스의 기본 개념 인덱스는 데이터베이스 테이블의 한 컬럼 또는 여러 컬럼에 대한 포인터를 포함하는 데이터 구조입니다. 이 구조는 데이터 검색을 빠르게 할 수 있도록 도와줍니다. 인덱스는 주로 B-트리(B-Tree)나 ..