일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- ubuntu
- ubuntu 패스워드
- Spring
- file i/o
- N:N
- O(log n)
- Spring MVC
- git 설정
- Spring 예외처리
- 리눅스 사용권한
- ubuntu passwd
- mapstruct
- 코드스테이츠
- set-version
- http 응답코드
- 탐욕 알고리즘
- 스키마 디자인
- AOP
- RestControllerAdvice
- 스키마 설계
- 배열 탐색
- 함수형 인터페이스
- root passwd
- char to int
- git workflow
- Java
- REST HTTP API
- 자료구조
- custom exception
- JAVA 재귀함수
Archives
- Today
- Total
개발소설
[DataBase] NoSQL 그리고 SQL과 비교 본문
NoSQL
- NoSQL DB는 비관계형 데이터베이스 이다.
- 관계형 데이터베이스는 SQL 기반이다.
- NoSQL DB는 말그대로 SQL을 통해 데이터베이스를 다루지 않는다.
- SQL은 구조화된 데이터를 다루기때문에 Nosql DB는 구조화되지 않은 데이터 베이스라고도 볼 수 있다.
- 대용량의 데이터, 대용량의 트래픽을 다룰때 용이 하다.
대표적인 데이터 베이스
- 관계형데이터베이스(RDB) - MySQL, Oracle, PostgerSQL등
- 비관계형데이터베이스(NoSQL DB) - MongoDB, Casandra, Redis 등
SQL DB(RDB)와 Nosql DB의 차이점
SQL | NoSQL | |
데이터 저장 | sql을 통해 테이블에 저장 (정해진 형식이 있음) | key-value, wide-column, graph등 |
스키마(Schema) | 고정된 형식의 스키마가 필요 스키마 변경시 오프라인 작업이 필요 할 수 있다. |
동적으로 스키마의 형태를 관리 즉시 새로운 데이터형식(필드) 추가 가능 |
쿼리 | 테이블 형식에 맞춰 데이터를 요청 (구조화) | 데이터 그룹 자체를 조회하기 때문에 구조화 되지 않은 쿼리로도 데이터 요청 가능 (비구조화) - UnQL(UnStructured Query Language) |
확장성 | 수직적 확장, 자원(메모리, CPU)을 추가하는 확장으로 Scale Up 형태이다. 비용이 많이 상대적으로 많이 든다. |
수평적 확장으로 클라우드 서비스를 사용하거나 추가적인 서버 증설을 통해 확장. Scale Out의 형태 비용이 상대적으로 적게 든다. |
SQL 기반 데이터베이스를 사용하는 케이스
- ACID 성질을 준수해야하는 경우 - 안정성 중시
- 주로 금융 서비스와 관련된 애플리케이션 개발시 사용
- 애플리케이션에서 사용하는 데이터가 구조적이고 일관적인경우
NOSQL 기반의 데이터베이스를 사용하는 케이스
- 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
- 클라우드 시스템을 사용 하는 경우 - 확장성 고려
- 빠르게 서버를 구축하거나, 데이터 구조를 자주 업데이트 하는 경우 - 스키마를 준비하지 않아도 되고, 데이터구조를 자주 바꿔야되는경우 ( sql은 스키마를 매번 변경해줘야 한다. 또, 오프라인 작업으로 해야 할 수 있다.)
'CS > DataBase' 카테고리의 다른 글
[DataBase] 스키마(Schema) 설계 (0) | 2023.03.29 |
---|---|
[DataBase] 트랜잭션 (transaction), ACID (0) | 2023.03.28 |
[DataBase] SQL(Structured Query Language) (0) | 2023.03.28 |
Comments