Día de Ruru
20230304 TIL (Node.js 기초 공부 day4) 본문
☆오늘 알게 된 것★
관계형 데이터베이스와 비관계형 데이터베이스
1. 관계형 데이터베이스
- MySQL이나 Oracle과 같이 고정된 행과 열로 구성된 테이블에 데이터를 저장한다. 관계형 데이터베이스에서는 테이블의 구조와 데이터 타입 등을 미리 정의하고 테이블에 정의된 내용에 맞는 형태의 데이터만 넣을 수 있다. 그러므로 관계형 데이터베이스에서는 테이블 간의 관계를 직관적으로 알 수 있다.
- 데이터의 분류, 정렬, 탐색속도가 빠르며 데이터의 무결성을 보장한다. 하지만 기존에 작성한 스키마를 수정하기가 어렵다는 단점이 있으며 빅데이터를 처리하는데 비효율적이다.
2. 비관계형 데이터베이스
- 비관계형 데이터베이스는 관계형 데이터베이스 외의 모든 데이터베이스를 말한다. 비관계형 데이터베이스는 표형식이 아니며 데이터 모델에 따라 유형이 다양하다. 비관계형 데이터베이스에서는 유연한 스키마를 제공하며 손쉽게 확장이 가능하다는 장점이 있다.
- 비관계형 데이터베이스의 형태로는 Key-Value 타입, 문서형 데이터베이스( MongoDB), Wide-Column Strore 데이터베이스, 그래프 데이터베이스가 있다.
3. 차이점
- 관계형 데이터베이스에서는 데이터를 입력할 때 스키마에 맞게 입력해야 하지만 비관계형 데이터베이스에서는 데이터를 읽어올 때 스키마에 따라 읽어온다!! 관계형 데이터베이스에서 스키마를 수정하려고하면 데이터베이스 전체를 수정하거나 오프라인으로 전환해야하지만 비관계형 데이터베이스에서는 좀 더 동적으로 스키마를 관리할 수있다.
- 일반적으로 관계형 데이터베이스는 수직적으로 확장되며 비관계형 데이터베이스는 수평적으로 확장된다. 수직 확장은 단순히 데이터베이스 서버의 성능을 향상시키는 것을 말한다. 반면에 수평 확장은 서버가 추가되고 데이터베이스가 전체적으로 분산되는것을 말한다.
NoSQL과 SQL의 활용
- SQL은 명확한 스키마가 중요하고 데이터 구조가 극적으로 변경되지 않는 경우, 데이터가 크게 쌓이지 않는 경우에 사용한다.
- NoSQL은 지속적으로 새로운 기능들이 추가되고 변경되어 데이터셋을 사전 정의하기 어려운 경우, 읽기 처리는 자주하지만 한번 입력한 데이터를 자주 변경하지는 않는 경우 ( NoSQL에서는 한번 입력한 데이터를 변경하려고 하면 관련 collection의 내용을 다 변경해줘야 한다.) 에 사용한다.
'항해99 > TIL' 카테고리의 다른 글
20230307 TIL (0) | 2023.03.08 |
---|---|
20230306 TIL (0) | 2023.03.07 |
20230303 TIL (Node.js 기초 공부 day3) (0) | 2023.03.04 |
20230301 TIL (0) | 2023.03.01 |
20230228 TIL (0) | 2023.03.01 |