RDB와 NoSQL를 알기 전 배경지식
- **Databse**란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미합니다.
- **DBMS**란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어입니다.
- **SQL**이란(Strucured Query Language) 관계형 데이터베이스의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안되었습니다.
- **schema(스키마)**란 데이터베이스를 구성하는 레코드의 크기, 키(key)의 정의, 레코드와 레코드의 관계, 검색 방법 등을 정의한 것이다.
- Join 이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다.
- INNER JOIN(이너 조인)
- 테이블 간의 교집합을 의미 한다.
- 예를들어 A와 B의 테이블이 있다고 한다면 A 테이블과 B테이블이 모두 가지고 있는 데이터만이 검색된다.
- LEFT OUTER JOIN(레프트 아우터 조인)
- LEFT를 포함한 테이블 간의 교집합을 의미 한다.
- 예를들어 A와 B의 테이블이 있다고 한다면 왼쪽 테이블 A 의 모든 데이터와 A와 B 테이블의 중복데이터들이 검색된다.
- left Join은 한쪽 테이블의 모든 데이터를 나타내되 유효하지 않은 값은 null로 표현하게됩니다.
- INNER JOIN(이너 조인)
RDBMS(DataBase Management System)
관계형 데이터베이스 관리 시스템을 의미합니다.
RDB는 서로 관계를 가지고 있는 테이블로 구성되어있고, 이러한 관계를 나타내기 위해 외래키를 사용하고 테이블 간 join이 가능하다는 것이 특징이 있다. **정해진 schema**에 따라 데이터를 저장하기 때문에 데이터의 분류, 정렬, 탐색 속도가 비교적 빠르고 데이터의 중복이 없습니다.
장점
- 정해진 **schema**에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장하고 있습니다.
단점
- **schema**로 인해 데이터가 유연하지 못합니다. 나중에 **schema**가 변경 될 경우 번거롭고 어렵습니다.
NoSQL(Not Only SQL)
RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하고 있습니다.
NoSQL은 데이터 간의 관계를 정의하지 않는 것이 특징입니다. schema가 없기 때문에 유연하고 자유로운 데이터 구조를 가질 수 있어서 확장성이 뛰어납니다. 하지만 **schema**가 없기 때문에 명확한 데이터 구조를 결정하기 어렵고, 데이터 중복이 발생할 수 있습니다.
장점
- NoSQL는 **schema**가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있습니다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있습니다.
단점
- **schema**가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정가 어려울 수 있습니다.
댓글