SQL (관계형 DB) vs NoSQL (비관계형 DB)
SQL | NoSQL | |
종류 | MySQL, PostgreSQL, MariaDB, SQLite | MongoDB, Amazon Dynamo DB, Redis |
특징 | 장점 정해진 Schema와 데이터 관계에 따라 저장 정규화가 잘되어 있음 (데이터 중복에 최적화 됨) 단점 다만, 스키마 변경시 어렵다는 점 |
장점 자유로운 Schema로 비관계형 데이터 저장 형태 데이터 중복(비정규화)이 발생하기 쉬움 스케일링 고려 하기 좋고 가용성이 좋다. 단점 데이터 중복 저장 발생 가능 Join이 힘들 수 있음 (서로 다른 컬렉션의 깊은 depth에 각각 Data 존재) |
역할 | 관계가 중요하고 데이터가 자주 수정되는 경우 | 연관 테이블이 없는 경우, CRUD 읽기(R) 위주고 업데이트가 별로 없을 경우 |
단위 | Database -> Table -> Rows(레코드) -> Columns | Database -> Collecitons -> Documents -> Fields |
SQL vs NoSQL 선택 방법
일반적으로는 SQL (RDBMS)로 설계 해보는 것이 기본. 단, 정규화를 이용한 데이터 중복 해결에 대한 소요가 적을 때는 NOSQL 로 진행
'DB > 이론' 카테고리의 다른 글
[DB] Replication 이란? (Feat. Mysql, Mongo) (0) | 2022.10.03 |
---|---|
[DB] Index란? (0) | 2022.08.11 |
[DB] Transaction 격리 수준 종류 (Isolation Level) (0) | 2022.08.10 |
[DB] PostgreSQL vs MySQL (0) | 2022.08.10 |
[DB] ORM 이란? (0) | 2022.06.02 |