# DBMS의 종류


-계층형 데이터베이스
-네트워크형 데이터베이스
-관계형 데이터베이스(RDBMS) => 가장 많이 쓰임(=테이블형 데이터베이스)
-객체지향 데이터베이스
-객체관계형 데이터베이스(ORDBMS)
-NoSQL(Not Only SQL)

# RDBMS?

 

 - RDBMS : Relational Database Management System
 -관계형(Relational) 데이터베이스 시스템
 -테이블(Table based)기반의 DBMS
     1) 테이블-컬럼형태의 데이터 저장 방식
     2) 테이블과 테이블 간의 연관관계(주로 외래키형태)를 이용해 필요한 정보를 구하는 방식
 -모델링은 E-R(Entity Relationship)모델을 사용
 -테이블을 Entity(기본)와 Relationship(유도) 테이블로 구분하는 방식
 -테이블을 테이블(Table)단위로 관리
    =>하나의 테이블은 여러 개의 컬럼으로 구성됨
 -테이블끼리 중복정보는 최소화시킴
    => 동일한 데이터가 여러군데 중복되어 존재하면 데이터의 수정시 문제 발생 확률 높아짐
    => 정규화(Normalize)-> 정규형
 -사용방식
    => 여러 테이블을 합쳐 큰 테이블을 생성(조인 JOIN)해서 필요한 정보를 찾아내는 방식

 

# NoSQL?

 

단어 뜻 그 자체를 따지자면 "Not only SQL"로, SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)을 지칭하는 단어이다. 관계형 데이터베이스를 사용하지 않는다는 의미가 아닌, 여러 유형의 데이터베이스를 사용하는 것이다.

데이터를 조직하는 방법에는 리스트, 해시 테이블, 트리, 그래프 등의 다양한 방법이 있고 각각은 장점과 단점이 명확하기 때문에 단순히 NoSQL이라고만 해서는 너무 뜬구름 잡는 얘기가 된다. NoSQL이라는 단어는 RDBMS가 데이터베이스의 독점적인 지위를 차지하고 있는 현재 상황에 반발하는 정신을 담고 있다.

 

“Not Only SQL” : 데이터를 저장하는 데에는 SQL 외에 다른 방법들도 있다.

NoSQL이라고 하는 말은 No 'English'라고 하는 말과 마찬가지다. 세상에는 영어 말고도 수많은 언어가 존재한다. MongoDB에서 사용하는 쿼리 언어와 CouchDB에서 사용하는 쿼리 언어는 서로 전혀 다르다. 그럼에도 이 두 쿼리 언어는 같은 NoSQL 카테고리에 속한다. 어쨌거나 SQL이 아니기 때문이다. 또한 NoSQL이 No RDBMS를 의미하지는 않는다. BerkleyDB같은 예외가 있기 때문이다. 그리고 No RDBMS가 NoSQL인 것도 아니다. SQL호환 레이어를 제공하는 KV-store라는 예외가 역시 존재한다. 물론 KV-store의 특징상 range query를 where절에 넣을 수 없으므로 완전한 SQL은 못 되고 SQL의 부분집합 정도를 제공한다.

 

[출처 NoSQL 나무위키]

+ Recent posts