본문 바로가기
개발 공부

관계형 데이터베이스와 비관계형 데이터베이스

by MiaCoder 2024. 2. 26.

데이터베이스를 공부하다 보면 관계형 데이터베이스 ,비관계형 데이터베이스를 만나게 됩니다.

 

이 둘의 차이에 대해 다루어 보겠습니다.

 

1. 관계형 데이터베이스

의미 

관계형 데이터베이스는 엑셀과 같은 테이블로 이루어져 있습니다. 행과 열로 이루어진 데이터입니다.

 SQL언어를 사용하여 테이터를 조작합니다.

 

종류 

유명한 데이터베이스로는 My SQL, Postgre SQL, OracleSQL등이 있습니다.

My SQL은 오픈소스이며 가볍고 높은 성능을 보여줍니다. Postgre SQL는 확장성이 강력며, Oracle은 대규모 및 기업에서 사용하는 경우가 많습니다.

 

특징

관계형 데이터베이스는 수직적 확장을 사용합니다.

 

수직적 확장이란 단일 서버에 추가로 리소스(램, cpu)등을 장착하거나, 더 성능이 좋은 하드웨어로 업그레이드 하여 성능을 향상시키는 것을 의미합니다.

 

데이터가 하나의 시스템에 집중되므로 일관성이 유지되고, 서버간 통신 및 동기화가 필요하지 않아 유지보수가 쉽습니다.

 

히지만 물리적으로 서버를 확장하는 것에대한 큰 비용 부담이 발생하며, 물리적으로 확장하지 않으면 한게에 봉착하는 문제점이 있습니다.

 

 

2. 비관계형 데이터베이스

 

의미

데이터를 테이블이나 스키마로 구성하지 않고 다영한 형식으로 데이터를 처리하는 것을 의미합니다.

NoSQL의 개념을 사용합니다. 이는 Not Only SQL을 의미하며 다양한 형태로 데이터를 저장하는 모델을 의미합니다.

대용량 데이터 저리, 분산 데이터처리에 유리합니다.

 

종류

유명한 데이터 베이스로는 MongoBD, Cassandra, Redis 등이 있습니다.

 

MongoBD는 JSON과 유사한 BSON방식을 사용합니다, Cassandra은 대규모 데이터처리에 특화되어 있고, Redis는

키-값 을 쌍으로 이루어 데이터를 저장하여 빠르 읽기 쓰기가 특징입니다.

 

특징

스키마가 일정하게 정해져 있지 않기 데이터 모델을 동적으로 변경하여 최적화에 유리합니다.

 

수평적인 확장을 지원하며 이는 여러 서버를 추가하여 시스템 전체의 성능을 향상시키는 방법입니다.

서버를 분산시키거나 클러스트링을(여러 서버를 하나처럼 작동) 하는 것을 의미합니다. 


각 서버는 전체 시스템의 일부 역할을 하며 이를 합쳐 하나의 시스템을 구성합니다.

 

자원을 동적으로 추자, 제거가 가능하여 확장성이 좋습니다.

하지만 데이터의 일관성을 유지하기 어려울 수 있고, 서버간 통신, 동기화 등이 복잡한 단점이 있습니다.

 

 

 

각각 데이터베이스에는 장단점이 있습니다.

은행과 같이 일관성이 매우 중요한 서비스가 있을 수 있고, 사용자가 계정에 때라 변해 동적인 서버가 필요할 수도 있습니다.

자신이 목표로하는 기업의 사업에 적합한 데이터베이스를 공부해보시는 것도 좋은 전략이라고 생각합니다 :)