본문 바로가기

기술면접

RDB와 NoSQL

1. RDB

RDB(Relational Database)는 데이터를 2차원의 테이블에 저장하는 DB이며

SQL(Structured Query Language)를 사용하여 데이터를 검색, 관리합니다.

각 테이블은 외래 키(Foreign Key)를 이용해서 테이블과의 연관 관계를 설정할 수 있고,

Join을 해서 데이터를 참조합니다.

대표적인 RDBMS로는 MySQL, PostgreSQL, Oracle 등이 있습니다. 

 

RDB의 장점은 다음과 같습니다.

- 데이터의 구조를 보장합니다.(테이블마다 정의된 스키마의 존재)

- 데이터의 중복을 허용하지 않으므로 무결성이 보장됩니다.

- 데이터의 UPDATE가 용이합니다.(중복이 없기 때문에)

 

반면에 RDB는 다음과 같은 단점을 갖고 있습니다.

- 경직된 데이터 구조를 갖고 있습니다.

- DB의 크기가 커지면 Join 문이 많아져서 쿼리가 복잡해집니다.

- 수평적 확장(Scale out)이 어려워서 비용이 큰 수직적 확장(Scale up)을 사용합니다.

 

RDB를 활용하기 적합한 경우는 다음과 같습니다.

- 데이터의 구조가 변하지 않고 명확할 경우

- 데이터의 UPDATE가 잦은 경우(중복된 데이터가 없기 때문에)

 

2. NoSQL

NoSQL(Not Only SQL)은 데이터를 Key와 Value로 저장하는 DB입니다.

RDB와 다르게 테이블 사이의 관계를 정의하지 않고 하나의 큰 테이블을 사용합니다.

대표적인 NoSQL로는 MongoDB, Redis 등이 있습니다.

 

NoSQL의 장점은 다음과 같습니다.

- 유연한 데이터 구조를 갖고 있습니다.

- 필드 추가가 자유롭습니다.

- 수평적 확장(Scale out)이 용이합니다.

 

반면에 NoSQL은 다음과 같은 단점이 있습니다.

- 데이터 중복 가능성이 있습니다.

- 데이터 변경 시 중복된 데이터까지 모두 수정해야 합니다.(UPDATE에 불리)

- 데이터 구조를 보장하지 않습니다.

 

NoSQL을 활용하기 적합한 경우는 다음과 같습니다.

- 데이터 구조가 명확하게 정해지지 않은 경우

- 변경이나 확장의 가능성이 높은 경우

- 데이터의 단순 조회가 많은 경우

- 데이터의 양이 방대한 경우

 

참고

https://hyuuny.tistory.com/158

 

[데이터베이스] RDB와 NoSQL의 차이는?

관계형 데이터베이스(RDB)는 사전에 엄격하게 정의된 DB schema를 요구하는 table 기반 데이터를 구조를 갖는데 반해, 비관계형 데이터베이스(NoSQL)는 table 형식이 아닌 비정형 데이터를 저장할 수 있

hyuuny.tistory.com

https://www.saichoiblog.com/rdb-nosql/

 

RDB와 NoSQL 비교하기Saichoiblog

RDB와 NoSQL 비교하기 RDB(Relational Database) 관계형 데이터베이스(Relatio

www.saichoiblog.com

https://s-yeonjuu.tistory.com/51

 

RDB와 NoSQL의 차이점

RDBMS 관계형 데이터베이스 관리 시스템을 의미, 이름과 같이 RDBMS는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태(속성-값)로 표현하는 데이터베이스 각각의 속성과 값을

s-yeonjuu.tistory.com

 

'기술면접' 카테고리의 다른 글

CORS  (0) 2023.04.07
병렬 프로그래밍  (0) 2023.04.06
오버로딩과 오버라이딩  (0) 2023.04.05
시간복잡도와 공간복잡도  (0) 2023.04.05
프로그래밍 패러다임의 종류  (0) 2023.04.04