Databse란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미
:DBMS란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어
:SQL이란(Strucured Query Language) 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었다.
- RDBMS
관계형 데이터베이스는 서로 관련된 데이터 포인트에 대한 액세스를 저장 및 제공하는 데이터베이스 유형이다. 관계형 데이터베이스는 테이블에 데이터를 직관적이고 간단하게 표현하는 방법인 관계형 모델을 기반으로 한다. 관계형 데이터베이스에서 테이블의 각 행은 키라는 고유 ID가 포함된 레코드이다. 테이블의 열에는 데이터의 속성이 들어 있으며, 각 레코드에는 일반적으로 각 속성에 대한 값이 있으므로 데이터 포인트 간의 관계를 손쉽게 설정할 수 있다.
관계형 데이터베이스(RDMBS)에서는 이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용합니다.이러한 테이블간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능하다는 게 RDBMS의 가장 큰 특징입니다.
장점
RDBMS는 정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장하며, 관계는 각 데이터를 중복없이 한 번만 저장할 수 있다.
단점
테이블간테이블 간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있다. 성능 향상을 위해서는 서버의 성능을 향상 시켜야하는 Scale-up만을 지원하며, 이로 인해 비용이 기하급수적으로 늘어날 수 있다.
스키마로 인해 데이터가 유연하지 못함. 나중에 스키마가 변경 될 경우 번거롭고 어렵다.
NoSQL
RDBMS, NoSQL 언제 사용해야 될까?
RDBMS는 데이터 구조가 명확하며 변경 될 여지가 없으며 명확한 스키마가 중요한 경우 사용하는 것이 좋다. 또한 중복된 데이터가 없어(데이터 무결성) 변경이 용이하기 때문에 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합.
NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋다. 또한 단점에서도 명확하듯이 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 시에는 모든 컬렉션에서 수정을 해야 한다. 이러한 특징들을 기반으로 Update가 많이 이루어지지 않는 시스템이 좋으며 또한 Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야해서 Database를 Scale-out해야되는 시스템에 적합하다.
참조:
링크텍스트