NoSQL 기초
2023. 5. 9. 14:59ㆍSQL
NoSQL
- Key Value DB
Key와 Value의 쌍으로 데이터가 저장되는 가장 단순한 형태의 솔루션으로 Amazon의 Dynamo Paper에서 유래되었습니다. Riak, Vodemort, Tokyo 등의 제품이 많이 알려져 있습니다.
- Wide Columnar Store
Big Table DB라고도 하며, Google의 BigTable Paper에서 유래되었습니다. Key Value 에서 발전된 형태의 Column Family 데이터 모델을 사용하고 있고, HBase, Cassandra, ScyllaDB 등이 이에 해당합니다.
- Document DB
Lotus Notes에서 유래되었으며, JSON, XML과 같은 Collection 데이터 모델 구조를 채택하고 있습니다. MongoDB, CoughDB가 이 종류에 해당합니다.
- Graph DB
Euler & Graph Theory에서 유래한 DB입니다. Nodes, Relationship, Key-Value 데이터 모델을 채용하고 있습니다. Neo4J, OreientDB 등의 제품이 있습니다.
- 관계형 모델을 사용하지 않으며 테이블간의 조인 기능 없음
- 직접 프로그래밍을 하는 등의 비SQL 인터페이스를 통한 데이터 액세스
- 대부분 여러 대의 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성
- 관계형 데이터베이스에서는 지원하는 Data처리 완결성(Transaction ACID 지원) 미보장
- 데이터의 스키마와 속성들을 다양하게 수용 및 동적 정의 (Schema-less)
- 데이터베이스의 중단 없는 서비스와 자동 복구 기능지원
- 다수가 Open Source로 제공
- 확장성, 가용성, 높은 성능
일관성의 장단점
강력한 일관성(최신데이터를 가져올수 있긴 하나 대기시간이 필요함)
결과적 일관성(응답속도가 빠르긴 하나 오래된 데이터를 보게될 수 있다.)
MongoDB
1.Join이 없으므로 Join이 필요 없도록 데이터 구조화가 필요
2.다양한 종류의 쿼리문을 지원(필터링, 수집, 정렬, 정규표현식 등)
3.관리의 편의성
4.스키마 없는(Schemaless) 데이터베이스를 이용한 신속 개발. 필드를 추가하거나 제거하는 것이 매우 쉬워짐
5.쉬운 수평 확장성
6.인덱싱 제공
mongoose: node.js기반 MongoDB와 프로그램 사이 데이터를 변환해주는 ODM
ORM: Object Relation Mapping
SQL에 연결하는 라이브러리
종류: sequalize(js 기반에서 많이 사용), typeorm(ts기반에서 많이 사용), prisma
ODM: Object Document Mapping
NoSQL에 연결하는 라이브러리
종류: Mongoose(MongoDB에서 사용)
728x90
'SQL' 카테고리의 다른 글
✔️Mysql ERROR 1205, Lock 현상 (버튼으로 데이터 삭제할 경우) (0) | 2023.11.01 |
---|---|
NoSQL MongoDB-Compass에 data import 시키기 (0) | 2023.05.16 |
Day13_MYSQL_ INDEX (9) | 2023.03.21 |
Day13_MYSQL_ 사용자 추가하기, 권한 부여, 삭제 (0) | 2023.03.21 |
Day13_MYSQL_ truncate 구문 (0) | 2023.03.21 |