Database
여러 사람이 공유하고 사용할 목적으로 한 곳에서 관리되는 데이터의 조직화된 집합으로, 데이터를 소프트웨어에서 효율적으로 관리하기 위한 저장소이다.
데이터베이스 관리 시스템(DBMS)에 의해 제어된다.
DBMS(Database Management System)
Database를 관리하고 운영하는 시스템
데이터를 정의, 저장, 검색, 수정, 삭제하는 등의 작업을 효율적으로 수행할 수 있게 해준다.
다수의 사용자들이 동시에 데이터에 접근하고, 데이터를 안전하게 관리할 수 있도록 다양한 기능을 제공한다.
SQL이라는 언어로 DBMS에 데이터 관리를 요청하면 DBMS가 요청을 처리한다.
DBMS의 주요 기능
1.데이터 정의
데이터베이스 구조를 정의할 수 있는 기능을 제공한다.
2.데이터 관리
데이터를 물리적으로 저장하고, 관리하는 역활을 수행한다.
데이터를 저장하기 위한 최적화된 구조와 파일 시스템을 관리합니다.
사용자가 데이터를 다룰 수 있도록 쿼리 언어(SQL)을 제공한다
3.데이터 보안
사용자 권한 관리, 암호화, 감사 로그 등을 통해 데이터를 보호한다.
4.트랜잭션 관리
DBMS는 여러 사용자가 동시에 데이터에 접근할 때, 데이터의 일관성을 유지하기 위한 트랜잭션 관리 기능을 제공한다.
ACID 속성 보장
Atomicity: 트랜잭션의 모든 작업이 성공적으로 완료되거나, 실패 시 모든 작업이 롤백
Consistency: 트랜잭션이 데이터베이스를 일관된 상태로 유지
Isolation: 동시에 실행되는 트랜잭션 간의 영향을 최소화
Durability: 트랜잭션이 완료된 후 데이터의 변경 사항을 영구적으로 저장
5.백업 및 복구
DBMS는 데이터 손실에 대비해 백업 및 복구 기능을 제공한다.
정기적인 백업을 통해 데이터를 보호하며, 장애 발생 시 데이터 복구가 가능하다.
6.동시성 제어
다수의 사용자가 동시에 데이터베이스에 접근하더라도 데이터 일관성이 유지되도록 동시성 제어를 제공한다.
이를 통해 충돌이나 데이터 불일치를 방지할 수 있다.
DBMS의 종류
1. 관계형 DMBS(RDBMS)중요!
가장 많이 사용하는 데이터베이스
데이터를 테이블 형태로 구조화 하여 저장하고 관리하는 시스템이다.
테이블 간의 관계를 이용해 데이터를 연결한다.
ex) Oracle, MySQL, PostgreSQL, Microsoft SQL Server 등
2. 비관계형 DBMS(NoSQL)
테이블이 아닌 key-value, document, graph 등의 다양한 형태로 데이터를 저장하고 관라한다.
스키마가 고정되지 않고, 대규모 데이터 처리와 높은 확장성을 제공한다.
ex) MongoDB, Cassandra, Redis 등
3. 다중 모델 DBMS
하나의 데이터베이스 관리 시스템에서 여러 데이터 모델을 지원하는 시스템이다.
동일한 DBMS에서 관계형 데이터뿐만 아니라 문서형, 그래프형 데이터를 함께 관리할 수 있다.
ex) Amazon DynamoDB, Microsoft Azure Cosmos DB
트랜잭션
데이터베이스에서 하나의 논리적인 작업 단위를 뜻하며 트랜잭션으로 묶여있는 작업들은 모두 성공 적으로 완료되거나 하나라도 실패하면 전체가 취소된다.
RDBMS
관계형 데이터베이스 RDB(Relational DataBase)를 관리할 수 있는 소프트웨어로 데이터를 테이블 형식으로 관리한다. RDBMS는 데이터 간의 관계를 정의하고,
이러한 관계를 바탕으로 복잡한 Query를 실행할 수 있는 기능을 제공한다.