
💻 데이터베이스란?
체계적으로 구성된 데이터의 집합으로, 조직이나 개인이 필요에 따라 데이터를 쉽게 저장, 검색, 수정 및 관리할 수 있게 해주는 시스템
📌 데이터베이스 종류

1. 관계형 데이터베이스 (RDBMS)
- 테이블 형태로 데이터를 저장하고, 각 테이블은 서로 관계를 가진다.
- 테이블은 열(속성)과 행으로 이루어져 있으며, 테이블 간의 관계를 통해 데이터를 조직화한다.
- 대표적으로 Oracle, MySQL가 있음

2. 비관계형 데이터베이스 (NoSQL)
- 데이터를 다양한 형식으로 저장하는 데이터베이스
- 유연한 스키마를 가지며, 대량의 분산 데이터를 처리하거나 다양한 데이터 모델을 다룰 때 효과적
- 대표적으로 MongoDB, Redis, Cassandra가 있음
📌 데이터베이스 용어

스키마 (Schema)란?
- 데이터베이스에서 데이터 구조를 정의하는 개념
- 관계형 데이터베이스에서는 테이블의 열(속성)과 데이터 유형을 정의하는데 사용
- 스키마는 데이터의 구조와 제약 조건을 명시하여 데이터의 일관성과 무결성을 유지하는 역할

쿼리 (Query)란?
- 데이터베이스에서 정보를 검색하거나 조작하기 위해 사용되는 명령어
- SQL(Structured Query Language)은 관계형 데이터베이스에서 쿼리를 작성하기 위한 표준 언어로 널리 사용됨
📌 데이터베이스 관리

인덱스 (Index)
- 데이터베이스에서 검색 속도를 향상시키기 위해 특정 열(속성)에 대한 검색용 자료 구조
- 적절한 인덱스 사용은 데이터 검색 및 조회 성능을 최적화하는 데 도움
트랜잭션 (Transaction)
- 데이터베이스에서 한 단위의 작업 또는 처리 과정
- ACID 원칙(원자성, 일관성, 고립성, 지속성)을 따라 데이터의 무결성과 일관성을 보장
ACID 원칙
원자성 (Atomicity)
트랜잭션이 전체가 실행되거나 전혀 실행되지 않는다. 트랜잭션 중간에서 어떤 문제가 발생하면 이전의 상태로 롤백되어야 함.
일관성 (Consistency)
트랜잭션이 실행을 마치면 데이터베이스는 일관된 상태여야 함, 즉 트랜잭션이 시작 전과 끝난 후에 정의된 일관성 규칙을 지키는 것.
고립성 (Isolation)
여러 트랜잭션이 동시에 실행될 때 각 트랜잭션은 다른 트랜잭션에서 수행 중인 작업에 영향을 주지 않아야 함. 반대의 경우도 같음. (실행 중일 때 방해 받으면 안 된다.)
지속성 (Durability)
트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 한다.