TIL-230801(NoSQL,RDBMS)
📝오늘 공부한 것
- 데이터베이스 유형(NoSQL, RDBMS)
알게 된 점❗
NoSQL VS RDBMS
주요 차이점은 데이터를 저장하고 구성하는 방법이다. 관계형 데이터베이스(RDBMS)는 규칙 기반의 테이블 형식 방식으로 데이터를 저장한다. 비관계형 데이터베이스(NoSQL)는 데이터를 연결되지 않은 개별 파일로 저장하며, 문서 또는 리치 미디어 파일과 같은 복잡하고 구조화되지 않은 데이터 유형에 사용할 수 있다. 또한, 유연한 데이터 모델을 따르므로 자주 변경되는 데이터를 저장하거나 다양한 유형의 데이터를 처리하는 애플리케이션에 적합하다.
NoSQL
Riak, Vodemort, Tokyo, ScyllaDB, MongoDB, CoughDB, Redis 등
대용량 데이터 처리와 비정형 데이터에 적합
정의 :
비관계형 데이터베이스 유형을 가리키며 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장한다.
어디에 사용되는 지 :
높은 확장성과 가용성이 주요 장점으로 실시간 웹 애플리케이션 및 빅데이터에 널리 사용된다.
NoSQL을 사용하면 데이터는 보다 직관적이고 이해하기 쉬운 방식 또는 애플리케이션이 사용하는 것에 가까운 방식으로 저장된다.
선택해야하는 경우 :
유연한 스키마를 제공하고, 대량의 데이터 및 낮은 대기시간 또는 응답시간을 요구하는 애플리케이션 구축에 이상적인 다양한 데이터 모델을 지원한다. 온라인 게이밍 및 전자상거래 웹 어플리케이션이 해당된다.
선택해서는 안 되는 경우 :
NoSQL DB는 단일 테이블에 대한 쿼리 작업에 아주 잘 작동한다. 그러나 쿼리의 복잡성이 높아지는 경우, 관계형 데이터베이스가 더 나은 선택이다. 복잡한 Join, 하위 쿼리 및 WHERE절에서의 중첩 질의를 제공하지 않는다.
이점 :
1. 유연성
데이터는 엄격한 스키마 없이도 훨씬 더 자유로운 형식으로 저장될 수 있다. 하나의 데이터 저장소에서 구조적, 반구조적, 비구조적 데이터 등 모든 형식의 데이터를 손쉽게 처리할 수 있다.
2. 확장성
서버를 증설해 확장하는 대신 상업용 하드웨어를 사용해 확장할 수 있다. 덕분에 증가한 트래픽을 지원하고 다운타임 없이 수요를 충족시킬 수 있다. 확장을 통해 더 큰 용량과 상능을 갖출 수 있다.
3. 고성능
데이터를 수집하여 이를 빠르고 안정적으로 제공한다.
4. 가용성
여러 서버, 데이터센터, 클라우드 리소스 전반의 데이터를 자동으로 복제한다. 그 결과 사용자의 위치와 상관없이 사용자 대기시간이 최소화된다. 이 기능은 DB 관리 부담을 줄이는 데에도 효과적이다.
5. 고도의 기능성
데이터 저장 수요가 엄청나게 큰 분산형 데이터 저장소를 위해 설계되었다. 이와 같은 특성 덕분에 빅 데이터, 실시간 웹 앱, 360도 고객 정보, 온라인 쇼핑, 온라인 게이밍, 사물인터넷, 소셜네트워크, 온라인 광고 애플리케이션 등을 처리하기에 이상적인 DB 옵션이다.
단점 :
1. 데이터 업데이트 중 장애가 발생하면 데이터 손실이 발생가능하다.
2. 데이터 일관성이 항상 보장되지 않는다.
https://www.oracle.com/kr/database/nosql/what-is-nosql/
개발자가 NoSQL 데이터베이스를 선호하는 이유
NoSQL 데이터베이스는 변화하는 요구사항에 빠르게 적응하기에 애자일 개발 방법론에 자연스럽게 부합합니다.
www.oracle.com
https://aws.amazon.com/ko/nosql/
NoSQL이란? | 비관계형 데이터베이스, 유연한 스키마 데이터 모델 | AWS
수십 년간, 애플리케이션 개발을 위해 가장 많이 사용된 데이터 모델은 Oracle, DB2, SQL Server, MySQL, PostgreSQL과 같은 관계형 데이터베이스에서 사용하는 관계형 데이터 모델이었습니다. 2000년대 중반
aws.amazon.com
RDBMS(Relational DataBase Management System)
Oracle, DB2, SQL Server, MySQL, PostgreSQL 등
ACID 트랜잭션과 정형 데이터 모델을 제공하여 데이터 일관성과 무결성을 강조
정의 :
관계형 DB에 저장된 데이터의 저장, 관리, 쿼리 및 조회에 사용되는 소프트웨어
- 데이터 저장, 액세스 및 성능을 관리하기 위한 기능 뿐만 아니라, 사용자와 애플리케이션 및 DB간에 인터페이스를 제공
- RDBMS의 데이터는 테이블이라고 불리는 데이터베이스 객체에 저장되어 있다.
- 관계형 DB에서 테이블의 각 행은 키라는 고유 ID가 포함된 레코드이다. 테이블의 열에는 데이터의 속성이 들어있으며, 각 레코드에는 일반적으로 각 속성에 대한 값이 있으므로 데이터 포인트 간의 관계를 손쉽게 설정할 수 있다.
이점 :
직관적인 데이터 표현 방법을 제공하고 관련 데이터 포인트에 쉽게 액세스 할 수 있다는 점이다. 그래서 관계형 데이터베이스는 인벤토리 추적부터 트랜잭션 데이터 처리 및 애플리케이션 로깅에 이르기까지 대량의 구조화된 데이터를 관리해야 하는 조직에서 가장 많이 사용한다.
1. 유연성
전체 DB구조를 변경하거나 기존 애플리케이션에 영향을 주지 않고 필요할 때마다 간편하게 테이블, 관계를 추가 또는 삭제하고 데이터를 변경할 수 있다.
2. ACID 규정 준수
ACID(원자성, 일관성, 격리, 내구성) 성능을 지원하므로 오류, 실패, 기타 잠재적 오작동에 관계없이 데이터 유효성을 검사할 수 있다.
3. 사용 편의성
기술자가 아닌 사용자도 DB와 상호작용하는 방법을 배울 수 있는 SQL을 사용하여 복잡한 쿼리를 쉽게 실행할 수 있다.
4. 공동작업
여러 사용자가 동시에 데이터를 운영하고 액세스할 수 있다. 기본 제공되는 잠금 기능으로 업데이트 도중 데이터에 동시 액세스할 수 없다.
5. 내장된 보안 기능
역할 기반 보안을 통해 데이터 액세스가 특정 사용자로 제한된다.
6. 데이터베이스 정규화
관계형 DB는 데이터 중복성을 줄이고 데이터 무결성을 개선하는 정규화라는 설계 기법을 사용한다.
https://www.oracle.com/kr/database/what-is-a-relational-database/
관계형 데이터베이스란?
관계형 데이터베이스의 정의와 이를 비즈니스에 이용하는 방법을 알아봅니다.
www.oracle.com
https://cloud.google.com/learn/what-is-a-relational-database?hl=ko
관계형 데이터베이스(RDBMS)란 무엇인가요? | Google Cloud
관계형 데이터베이스의 작동 방식, 관계형 데이터를 사용하여 조직 데이터를 저장하는 경우의 이점, 비관계형 데이터베이스의 비교에 대해 알아봅니다.
cloud.google.com
느낀 점🤔
기술들을 사용할 때 항상 써왔으니까, 다른 사람들이 많이 쓰니까, 이것만 배웠으니까, 라고만 생각하고 왜 이기술을 사용해야하는지 생각하지 않았다. 이제는 당연하게 써왔던 것들에 대해 공부하고 다른 종류로는 어떤 것들이 있으며, 어떠한 상황에서 이 것들을 사용해야 하는지에 대해 알고 써야겠다는 생각이 들었다.