본문 바로가기

CS/DB18

[DB] RAID의 개념 및 각 단계별 특징(0~6단계), 조합(RAID 10) RAID는 여러 디스크를 결합해서 데이터 안전성과 성능을 높이는 기법입니다. 0단계부터 6단계까지 있으며, 이를 조합해서 새로운 단계를 만들기도 합니다. 이러한 RAID 시스템의 각 단계와 특징에 대해서 알아봅니다. [ Contents ] 1. RAID(Redundant Array of Independent Disk) 디스크 고장 시 그대로 복구할 수 있도록 2개 이상의 디스크에 데이터를 저장하는 기법 예전에는 USB 메모리가 1GB, 4GB가 주로 나왔습니다. 지금은 256GB도 2만 원대에 살 수 있더군요. 이처럼 데이터 저장을 위한 디스크는 용량도 많고 쌉니다. 반면 캐시 메모리나 메인 메모리(RAM)처럼 빠른 입출력 속도를 가진 메모리는 용량도 적고 비쌉니다. 그래서 대용량의 데이터를 저장할 때에.. 2023. 9. 29.
[DB] 데이터베이스와 스토리지의 차이: 목적, 기능, 보관 유형, 보관 방식 데이터베이스와 스토리지의 차이점에 대해서 알아봅니다. 이를 위해 데이터베이스와 스토리지의 개념에 대해서 알아보고 각각의 목적과 기능, 보관 유형이나 방식을 살펴봅니다. [ Contents ] 1. 데이터베이스 (관계형) 구조화된 데이터를 검색, 삽입, 갱신, 삭제와 같은 작업을 지원하는 목적으로 사용 일반적으로 데이터베이스는 Oracle, mySql 과 같은 관계형 데이터베이스를 말합니다. 관계형 데이터베이스는 테이블(릴레이션)에 체계적으로 데이터를 축적하며, 테이블 간 연산을 통해 원하는 정보를 탐색하고 조작합니다. 2. 스토리지 (Storage) 데이터 보관 및 백업하며, 필요할 때 데이터를 검색하거나 읽고 쓸 수 있는 환경을 제공 스토리지는 '저장소'라는 뜻을 갖고 있으며, 데이터를 저장하는 물리적.. 2023. 9. 22.
[DB] B-Tree 탐색, 삽입, 삭제 과정 알아보기 데이터베이스의 인덱스를 저장하는 자료구조인 'B-Tree'의 탐색, 삽입, 삭제 과정을 알아봅니다. [ Contents ] 1. B-Tree 탐색 1) 루트 노드부터 위에서 아래로 탐색 2) 해당 노드의 key에 없을 경우, 찾는 값이 속한 포인터의 자식 노드를 탐색 B-Tree는 Balanced Tree의 준말로, 치우침 없는 균형 잡힌 트리 구조를 뜻합니다. B-Tree는 한 노드 내 key가 오름차순으로 정렬되어 있습니다. 왼쪽 자식노드는 key보다 작거나 같고, 오른쪽 자식노드는 key보다 큰 것만 배치됩니다. 2023.08.07 - [CS/DB] - [DB] B-Tree (Balanced Tree): 데이터베이스 인덱스 저장 방식 [DB] B-Tree (Balanced Tree): 데이터베이스 .. 2023. 8. 8.
[DB] B-Tree (Balanced Tree): 데이터베이스 인덱스 저장 방식 데이터베이스에서 인덱스를 저장하는 자료구조로 B-Tree를 주로 씁니다. B-Tree의 개념과 조건에 대해서 알아봅니다. [ Contents ] 1. B-Tree (Balanced Tree) 한쪽으로 치우치지 않도록, 모든 leaf node가 같은 level를 유지하는 트리 B-Tree는 Binary Tree(이진 트리)의 준말이 아닙니다. Balanced(균형잡힌) Tree로서, 한쪽으로 치우치지 않고 좌우가 균등한 트리를 뜻합니다. Tree 형태의 탐색 시간은 O(logN)의 시간복잡도를 갖지만, 극도로 치우쳐져 일자로 나열된 트리는 O(N)의 시간복잡도를 가질수도 있습니다. 따라서 트리의 탐색 효율을 보장하려면 좌우가 균등해야 합니다. 2. B-Tree가 되기위한 조건 1. 모든 노드들은 최대 m개.. 2023. 8. 7.
[DB] 데이터 웨어하우스와 데이터 마트, 그리고 ETL이란? 데이터 웨어하우스는 기업에서 사용하는 업무용 데이터 창고입니다. 그리고 각 업무 담당자는 데이터 마트에서 자료를 찾아서 사용합니다. 이러한 작업이 가능한 이유는 ETL 덕분입니다. 이에 대해서 자세히 알아보겠습니다. [ Contents ] 1. 데이터 웨어하우스 (Data Warehouse) 보다 정보에 입각한 의사결정을 내릴 수 있도록, 다양한 소스의 대량 데이터를 연결하고 통합한 데이터베이스 데이터 웨어하우스는 말 그대로 '창고'입니다. DB의 데이터를 수집해서 모아두는 창고 역할을 합니다. 그리고 업무별, 목적별로 나누어서 데이터 마트로 보냅니다. 업무 담당자는 자신의 업무와 관련있는 정보만 쉽게 찾을 수 있죠. 2. 데이터 웨어하우스의 특징 - 주제별, 분야별로 정리된 데이터 - 통합된 데이터 -.. 2023. 4. 25.
[DB] 데이터베이스 병행(동시성) 제어 기법: 로킹, 기본적 2PL 데이터베이스 병행 작업 시 문제점을 해결하기 위한 로킹과 기본적 2PL에 대해서 알아보겠습니다. [ Contents ] 1. 병행작업의 문제점 운영체제에서 같은 자원을 쓰는 프로세스를 병렬 처리할 때 교착상태(Deadlock)에 빠지듯이, DB에서도 같은 데이터를 동시에 여러 트랜잭션이 처리할 때 문제가 생깁니다. 이를 해결하기 위해서 병행 제어 기법을 사용합니다. 2023.04.25 - [Data Engineering] - [DB] 데이터베이스 동시성 제어(병행 제어)와 문제점 [DB] 데이터베이스 동시성 제어(병행 제어)와 문제점 데이터베이스는 여러 트랜잭션을 번갈아가며 함께 처리합니다. 그러다 보니 서로 얽히는 경우도 생기는데, 이러한 병행수행의 문제점에 대해서 알아보겠습니다. [ Contents .. 2023. 4. 25.
[DB] 데이터베이스 동시성 제어(병행 제어)와 문제점 데이터베이스는 여러 트랜잭션을 번갈아가며 함께 처리합니다. 그러다 보니 서로 얽히는 경우도 생기는데, 이러한 병행수행의 문제점에 대해서 알아보겠습니다. [ Contents ] 1. 동시성 제어 (병행 제어) 동시 실행되는 여러 트랜잭션의 작업에서 문제가 발생하지 않도록 제어하는 기법 트랜잭션은 동시에 실행될 수 있으나, 결과는 독립적으로 연속되어 실행된 결과와 같아야 합니다. (트랜잭션의 고립성/격리성) 흔히 수강신청이나 선착순 예약을 떠올리시면 이해하기 쉽습니다. 동시에 여러 트랜잭션이 수행되지만, 실행순서대로 직렬성이 보장되어야 합니다. 그리고 응답시간을 최소화하면서 데이터의 무결성과 일관성을 보장하는 기법이 '동시성 제어(병행 제어)'라고 보면 되겠습니다. 2. 병행 수행의 문제점 운영체제와 마찬가.. 2023. 4. 25.
[DB] 데이터베이스 로그 회복 기법 (즉시 갱신, 지연 갱신) 데이터베이스 장애 발생 시, 덤프와 로그를 통해 회복하는 기법에 대해 알아보겠습니다. 로그 회복기법에는 '즉시 갱신'과 '지연 갱신'이 있으며 이에 대해 살펴봅니다. [ Contents ] 1. 데이터베이스 회복 작업 데이터베이스에서 장애 발생 시, 완료된 트랜잭션은 다시 실행(Redo)하고 중단된 트랜잭션은 실행 이전으로 돌아가는 작업(Undo)을 '회복'이라고 합니다. 이러한 회복 작업은 DB 갱신 방식에 따라 달라질 수 있습니다. DB 갱신 방식에는 '즉시 갱신'과 '지연 갱신'이 있으며 이는 아래에서 다뤄보겠습니다. 2023.04.25 - [Data Engineering] - [DB] 장애와 회복 기법 (Redo 재실행, Undo 취소) [DB] 데이터베이스 장애와 회복 기법 (Redo 재실행, .. 2023. 4. 25.
[DB] 데이터베이스 장애와 회복 기법 (Redo 재실행, Undo 취소) 데이터베이스에서 일어날 수 있는 장애의 유형에 대해 알아보고, 이를 복구하기 위한 회복기법을 알아보겠습니다. 회복기법에는 Redo(재실행)와 Undo(취소)가 있으며, 덤프(복사본)와 로그를 통해 복구합니다. [ Contents ] 1. 장애 - 실행 장애: 데이터베이스 연산 실패 - 트랜잭션 장애: 프로그램 실행 중지 - 시스템 장애: 하드웨어 결함 - 미디어 장애: 디스크 장치 결함 장애는 트랜잭션을 더 이상 수행할 수 없는 시스템 중단 상태를 말합니다. 장애의 유형에는 '실행 장애', '트랜잭션 장애', '시스템 장애', '미디어 장애'가 있습니다. 일종의 DB오류라고 생각하시면 됩니다. 여기서 중요한 건, 장애가 아니라 이를 대처하는 회복(복구) 조치입니다. 2. 회복 - 덤프(Dump): 주기적.. 2023. 4. 25.