RDBMS (관계형 DB): 정해진 데이터 스키마에 따라 테이블에 데이터가 저장이 되고, 데이터는 관계를 통해서 분산되어 저장된다. 장점은 정해진 스키마로 인해서 데이터의 무결성이 보장되고 각 데이터를 관계를 통해 중복 없이 저장할 수 있다. 즉 정해진 데이터 공간을 효율적으로 활용할 수 있다. 하지만 스키마를 미리 정해야하고 관계가 되어있는 데이터들 간에 조인으로 인해 쿼리문이 복잡해질 수 있다.
대표적으로는 MySQL, PostgreSQL
NoSQL(비관계형 DB) : SQL을 제외한 모든 방식의 DB이다. SQL과 반대로 데이터 간의 관계가 없고 다른 자료구조를 같은 컬렉션에 추가할 수 있다. 그래서 장점은 일반적으로 속도가 빠르고 데이터의 형식이 비교적 자유롭지만 그로 인해 데이터가 중복될 수도 있고 여러 컬렉션에 중복된 데이터가 있다면 데이터 수정시 모든 컬렉션에 중복된 데이터를 수정해줘야 한다.
대표적으로 MongoDB, Redis
크게 두 가지로 구분이 되지만 정답은 없다. 그래서 사용자에 따라 각각에 맞는 방식을 선택해야하며 NoSQL은 서비스 방식이 다양해서 필요한 방식의 서비스를 판단해야 한다. 때론 일반적론 NoSQL이 빠르지만 상황에 따라 SQL이 빠른 경우도 있으며 SQL을 NoSQL처럼 사용하거나 그 반대인 경우도 있다. 무엇보다 하나만 사용하기 보다는 각각의 장점을 살려서 두 가지 모두를 사용하는 경우가 많다.
그리고 추가적으로 SQL은 RDBMS에서 데이터를 조작하고 쿼리하기 위한 언어. SQL을 사용하여 데이터를 삽입, 수정, 삭제, 조회할 수 있으며, 테이블을 생성하거나 수정하고, 데이터 간의 관계를 설정할 수 있다.
'오늘 뭐했냐 > 개발에 대한 주저리' 카테고리의 다른 글
23.08.18 프로세스 (Process) (0) | 2023.08.26 |
---|---|
23.08.17 OAuth (0) | 2023.08.25 |
23.08.15 아키텍쳐 설계 (0) | 2023.08.22 |
23.08.14 passport.js (0) | 2023.08.21 |
23.08.13 Access token과 Refresh token (0) | 2023.08.19 |