RDBMS(Relational DataBase Management System): 관계형 데이터베이스
표준 언어로 SQL(구조화된 질의 언어: Structured Query Language )을 사용
오라클은 아주 악덕한 기업 (돈에 환장)
스타트업에서는 Postgre SQL을 많이 쓴다
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
NoSQL(Not only SQL): 관계형 데이터베이스가 아닌 dbms
(흔히들 SQL을 안쓴다고 해서 no + sql 로 생각한다)
데이터를 조직하는 방법에는 리스트, 해시 테이블, 트리, 그래프 등이 있고 각각의 장점과 단점이 명확하다
사실 아직까지 NoSQL에 내려진 구체적인 정의는 없다 하지만 NoSQL이라 불리는 데이터베이스들은 대체로 다음과 같은 공통적인 성향을 보인다
-
대부분 클러스터에서 실행할 목적으로 만들어졌기 때문에 관계형 모델을 사용하지 않는다. 그러나 모든 NoSQL 데이터베이스가 클러스터에서 실행되도록 맞춰진 것은 아니다. 예를 들어 NoSQL 데이터 모델 중 하나인 그래프 데이터베이스는 관계형 데이터베이스와 비슷한 분산 모델을 사용한다.
-
대부분 오픈 소스다.
-
보통 21세기 초반 웹 환경의 필요에 기초를 두고 있어서, 이 시기에 개발된 시스템만을 NoSQL이라고 부른다. 따라서 그 이전에 만들어진 ODBMS(Objective Database Management System)은 NoSQL에 해당하지 않는다.
-
스키마 없이 동작하며, 구조에 대한 정의를 변경할 필요 없이 데이터베이스 레코드에 자유롭게 필드를 추가할 수 있다.
요약하자면, 대부분이 오픈소스고, 21세기 초반에 개발되었으며, SQL을 사용하지 않는 Schema-less 데이터베이스를 말한다.
활용 예)
- 페이스북/트위터 같은 SNS 게시글들 저장
- 검색엔진(웹 페이지 내의 텍스트를 형태소 단위 토큰으로 본리 후 URL을 맵핑하는 역 인덱스 구조)