DB 종류별 특색과 장단점
oracleDB
특징
Oracle DB는 관계형 데이터베이스 시스템으로서 대규모 데이터 처리에 강점을 가지고 있습니다. 트랜잭션의 안정성과 병행성 제어 기능이 강력하여 다중 사용자 환경에서 효율적으로 작동합니다.
장점
고성능: 대용량 데이터베이스 처리와 복잡한 쿼리에 탁월한 성능을 발휘합니다.
안정성: ACID(원자성, 일관성, 고립성, 지속성)를 준수하여 데이터 일관성을 유지합니다.
확장성: 클러스터링과 파티셔닝을 지원하여 데이터베이스의 확장이 가능합니다.
단점
비용: 상용 데이터베이스로써 라이선스 및 유지보수 비용이 높을 수 있습니다.
복잡성: 배우고 사용하기가 다른 데이터베이스 시스템에 비해 상대적으로 어려울 수 있습니다.
사용 시기: 대규모 데이터 처리와 엔터프라이즈 환경에서의 안정성과 확장성이 필요한 경우 Oracle DB를 선택할 수 있습니다.
mySQL
특징
MySQL은 오픈 소스 기반의 관계형 데이터베이스 시스템으로 가벼우면서도 높은 성능을 제공합니다. 웹 응용 프로그램 개발에 많이 사용되며, 다양한 플랫폼에서 지원됩니다.
장점
가볍고 빠른 처리: 소규모 프로젝트나 웹 애플리케이션에서 효과적으로 동작합니다.
커뮤니티 지원: 활발한 개발자 커뮤니티로 인해 사용자들 간 지원과 정보 공유가 활발합니다.
비용: 오픈 소스이기 때문에 무료로 사용할 수 있습니다.
단점
확장성: 대규모 데이터 처리나 복잡한 쿼리에 대한 성능이 다른 데이터베이스 시스템에 비해 떨어질 수 있습니다.
기능: 고급 기능이나 기업 환경에서 요구되는 기능들이 상대적으로 부족할 수 있습니다.
사용 시기: 소규모 프로젝트나 웹 애플리케이션 개발에 적합하며, 비용을 절감하고자 할 때 MySQL을 선택할 수 있습니다.
PostgreSQL
특징
PostgreSQL은 오픈 소스 관계형 데이터베이스 시스템으로 다양한 기능과 확장성을 제공합니다. ACID를 준수하며, 복잡한 데이터 모델과 대용량 데이터 처리에 적합합니다.
장점
확장성: 대규모 데이터 처리와 복잡한 쿼리에 효과적입니다.
다양한 기능: 다양한 데이터 유형, 지리 정보 시스템(GIS), 풀 텍스트 검색 등 고급 기능을 제공합니다.
안정성: ACID를 준수하여 데이터 일관성을 보장합니다.
단점
성능: 다른 데이터베이스 시스템에 비해 처리 속도가 상대적으로 느릴 수 있습니다.
관리: 복잡한 설정과 관리가 필요할 수 있습니다.
사용 시기: 대규모 데이터 처리와 고급 기능, 데이터 모델링의 유연성이 필요한 경우 PostgreSQL을 선택할 수 있습니다.
MongoDB
특징
MongoDB는 NoSQL 기반의 문서 지향적 데이터베이스 시스템입니다. 유연한 스키마와 확장성을 가지며, 대량의 비정형 데이터를 처리하는 데 적합합니다.
장점
확장성: 수평적으로 확장이 용이하며, 대용량 데이터 처리에 강점을 가집니다.
유연성: 스키마가 없거나 유연한 스키마를 사용하여 데이터 구조를 변경하고 확장하기 쉽습니다.
속도: 읽기 및 쓰기 작업에 빠른 속도를 제공합니다.
단점
트랜잭션: ACID 트랜잭션을 지원하지 않으며, 일관성 보장에 제한이 있습니다.
복잡한 쿼리: 관계형 데이터베이스에 비해 복잡한 쿼리 작성이 어렵습니다.
사용 시기: 비정형 데이터 처리와 유연성이 필요한 경우 MongoDB를 선택할 수 있습니다. 예를 들어, 로그 데이터, 센서 데이터, 소셜 미디어 데이터 등을 저장하고 조회하는 경우 유용합니다.
ACID란
ACID는 Atomicity, Consistency, Isolation, Durability의 약자로, 관계형 데이터베이스에서 데이터의 일관성을 보장하기 위한 네 가지 속성입니다.
Atomicity
데이터베이스 트랜잭션은 성공적으로 완료되거나 실패해야 합니다. 트랜잭션이 중간에 중단되면 데이터베이스는 트랜잭션이 시작되기 전의 상태로 되돌아 가야 합니다.
Consistency
데이터베이스는 항상 일관된 상태여야 합니다. 트랜잭션이 데이터베이스에 데이터를 추가하거나 수정하면 데이터베이스는 항상 일관된 상태를 유지해야 합니다.
Isolation
트랜잭션은 다른 트랜잭션의 영향을 받지 않아야 합니다. 트랜잭션이 실행되는 동안 다른 트랜잭션은 트랜잭션이 완료될 때까지 트랜잭션의 결과를 볼 수 없습니다.
Durability
트랜잭션이 성공적으로 완료되면 데이터베이스의 변경 사항은 영구적으로 저장되어야 합니다. 트랜잭션이 실패하면 데이터베이스는 트랜잭션이 시작되기 전의 상태로 되돌아 가야 합니다.
-> ACID는 관계형 데이터베이스의 데이터 일관성을 보장하는 데 중요한 역할을 합니다. ACID를 준수하지 않으면 데이터베이스의 데이터가 손상되거나 일관성이 없을 수 있습니다.