인덱스(B-Tree, B+Tree)
·
👶🏻 CS/Database
데이터베이스의 성능을 향상시키기 위해서는 디스크 I/O를 줄이는 것이 가장 중요하다. 디스크 I/O란 데이터를 읽고 쓰는 작업으로, 데이터를 작성하거나 수정할 때 디스크에 저장되는 과정을 의미한다. 디스크 접근은 시간이 많이 걸리기 때문에 디스크 I/O를 최소화하는 것이 데이터베이스 성능을 높이는 핵심이다. 인덱스를 활용하면 데이터를 더 빠르게 조회할 수 있어 디스크 I/O를 줄이는 데 효과적이다.인덱스는 데이터베이스가 테이블의 모든 데이터를 탐색하지 않고도 원하는 정보를 빠르게 찾을 수 있도록 설계되어 있다. 이를 통해 불필요한 디스크 I/O 작업을 줄이고 빠르게 조회할 수 있다. 인덱스란?간단히 말해 인덱스는 책의 목차와 비슷한 개념이다. 책의 내용을 "데이터"라고 하고, 페이지 번호를 "인덱스"라고..
정규화와 비정규화
·
👶🏻 CS/Database
정규화정규화란 ERD 내에서 중복요소를 찾아 제거해 나가는 과정을 말한다.함수의 종속성을 이용해 속성들 간의 연관성을 분석하고, 데이터를 논리적으로 나누어 이상 현상(Anomaly)을 방지하는 것이다.이상 현상(Anomaly)정규화를 거치지 않으면 데이터베이스에 불필요한 데이터 중복이 발생하여 여러 문제가 생길 수 있다. 이를 이상 현상이라고 하며, 대표적으로 삽입 이상, 갱신 이상, 삭제 이상이 있다. 1. 삽입 이상 (Insertion Anomaly)데이터를 삽입할 때 원하지 않은 값들도 함께 삽입되는 현상이다. 2. 갱신 이상 (Update Anomaly)데이터를 수정할 때 일부만 갱신되어 정보가 불일치하게 되는 현상이다. 3. 삭제 이상 (Deletion Anomaly)데이터를 삭제할 때 의도치 ..
NoSQL이란?
·
👶🏻 CS/Database
NoSQL이란?NoSQL은 Not Only SQL의 약자로 단순히 기존 관계형 DBMS가 갖고 있는 특성뿐만 아니라, 다른 특성들을 부가적으로 지원한다는 것을 의미한다. 관계형 데이터베이스가 테이블 간의 관계를 기반으로 데이터를 저장하는 방식과 달리, NoSQL은 빠르게 바뀌는 대량의 비정형 데이터를 처리하는 데 적합한 구조를 제공한다. 과거에는 회원 정보나 매출 기록처럼 일정한 형식과 구조를 가진 정형 데이터만 처리했기 때문에, RDBMS로 데이터를 쉽게 관리할 수 있었다. 그러나 문서, 이미지, 동영상 파일, SNS 데이터 등 고정된 형식이 없는 비정형 데이터가 많아지면서, 더 유연한 스키마를 제공하는 NoSQL이 필요하게 되었다.  NoSQL의 특징1. 비정형 데이터 저장NoSQL은 구조화되지 않은..
트랜잭션 - ACID 원칙, Problem 3가지
·
👶🏻 CS/Database
트랜잭션(Transaction)이란트랜잭션은 데이터베이스에서 하나의 작업 단위를 의미한다. 예제은행에서의 계좌이체를 생각해 보자. 만약 한 계좌에서 다른 계좌로 1,000원을 이체하는 작업은 다음과 같은 단계로 나눌 수 있다.A 계좌에서 1,000원을 출금한다.B 계좌에 1,000원을 입금한다.계좌이체라는 행위를 출금, 입금이라는 두 작업으로 이루어진다.이 두 작업은 반드시 함께 수행되어 둘 다 성공하거나 둘 다 실패해야 한다. 만약 A 계좌에서 돈이 빠져나갔는데 B 계좌에 입금되지 않는다면, 데이터가 불일치하게 되어 문제가 발생할 것이다.이 과정을 동시에 묶는 방법이 바로 트랜잭션이다. 트랜잭션의 주요 특성 (ACID)트랜잭션은 데이터의 무결성을 보장하기 위해 ACID 특성을 만족해야 한다.ACID는..