본문 바로가기
면접공부/DB

SQL || NOSQL

by Box 2021. 5. 21.
728x90
  RDBMS(mysql ...)
(Relational DataBase
Mangement System)
NoSql(MongoDB...)
관계형 데이터 베이스 관리 시스템 Not Only Sql 의 약자로써 관계형 db와 반대되는 방식을 사용하며, 데이터, 테이블 간의 관계를 정의 하지 않습니다.
(주로 key-value 많이 쓰임)
장점 -명확하게 정의된 스키마, 데이터 무결성 보장
-관계는 각 데이터를 중복없이 한번만 저장
-스키마가 없어서 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
-RDBMS 보다 복잡도가 떨어져, 훨씬 대용량의 데이터를 저장,관리 할수있다.
-수평적 확장이가능(비용이 비교적 저렴)
     
단점 -덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 함
-관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
-수평적확장이 어려워, 대체로 수직적확장만 가능
(비용이 비쌈)
-데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함 
-스키마가 정해져있지않아 , 데이터에 대한 규격화가 되어있지않음
-DATA를 UPDATE하는데 비교적 느림

스키마 (Schema) 란?

-데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한것입니다.

-DB내에 어떤 구조로 데이터에 저장되는가를 나타내는 데이터베이스구조를 스키마 라고 합니다.

 

Transaction

-데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위

 

트랜젝션 특징

원자성(Atomicity)

트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 된다.

일관성(Consistency)

트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다.

독립성(Isolation)

둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때, 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.

지속성(Durability)

트랜잭션이 성공적으로 완료되었으면, 결과는 영구적으로 반영되어야 한다.




SQL 데이터베이스 사용이 더 좋을 때
1. 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우

        NoSQL에서는 여러 컬렉션을 모두 수정해야 하기 때문에 비효율적.     

2.변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우

NoSQL 데이터베이스 사용이 더 좋을 때
1. 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
2. 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
3. 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)

'면접공부 > DB' 카테고리의 다른 글

MongoDB  (0) 2021.05.27