데이터 베이스

ggg Nn·2023년 3월 10일
0
post-thumbnail

NoSQL 등장배경: 관계형 데이터베이스 한계
-빅데이터 등장으로 데이터와 트래픽이 기하급수적으로 증가
-빅데이터를 기존 관계형 DB 관리시스템에서 처리했을 때 문제 발생
(ex) Down time
-빅데이터를 RDB(관계형 DB)의 형식에 맞게 데이터를 입력하면 긴 시간 동안 DB 시스템을 이용할 수 없어 Down time발생
-이러한 Down time 발생을 최소화 하기 위해 NoSQL 등장

No SQL : 나는 SQL이 아니다!(Not only SQL이 진짜 의미지만,,,)

-이름 자체에서도 기존 RDBMS의 독점적인 지위를 반발하는 정신이 담겨있다.

NoSQL 뭐가 좋을까?
-DB의 일관성과 확장성은 상관된 관계입니다.
-1. 확장성으로 성능향상
NoSQL은 일관성을 어느정도 포기! 그대신 확작성으로 성능 향상
ex) 청소, 널려있는 물건을 한 상자에 몰아넣으면 청소는 빨리 가능, 하지만 나중에 물건 찾을때 고생.
이와 같이 데이터 간의 일관성은 포기하고 더 빠르게 데이터 정리

-2.분산 저장
여러 대의 저비용 서버를 수평적으로 확장해 성능 향상.
ex) 책이 많으면 책장이 더 필요하지만 상자에 보관하면 책이 많더라도 책장 없이 보관 가능. 책장 대신 상자 개수만 늘린다.

NoSQL 어떤 업무에 필요할까?

-대용량 데이터 & 트래픽 처리 처리

SQL VS NoSQL

-1.확장성(Scalability)
수평적 확장성 VS 수직적 확장성
(SQL)

-2.쿼리 언어 있는지 없는지
SQL VS no Query Language
(정형데이터) VS (대규모 트래픽)

-3.스키마 유연성
강한 스키마 VS 자유로운 스키마
인덱스 걸기 쉬워 검색 속도 빨라짐 VS 인덱스 걸기가 비교적 비효율적
ex)
애플 카산드라DB(NoSQL) 쓰는데 10페타바이트의 데이터 저장
듀오링고 DynamoDB , 매초 24,000개의 읽기 지원

*인덱스란 노란색 표시한 부분처럼 정보가 어디있는지 찾을 수 있는 처리

NoSQL 종류

1.Key- valu DB: 빠르게 많이 읽고 많이 써야한다
애플 카산드라DB(NoSQL) 쓰는데 10페타바이트의 데이터 저장
듀오링고 DynamoDB , 매초 24,000개의 읽기 지원

2.Document DB:
MongoDB: 데이터를 *json document 형태로 저장
SQL처럼 행과 열 형태의 정해진 데이터형태로 저장할 필요 없이 어떤 형태의 데이터든 저장가능하며 모든 데이터가 같은 모양일 필요 없음

*json document:프로그래밍 언어간의 공용어 (like 바디랭귀지)
ex)자바로 만들어진 데이터를 새로 탄생한 프로그래밍 언어로 전달해야 한다면, 그 언어를 배우지 않아도 json방식을 통해 전달하면 이를 이해할 수 있다. 즉, json방식을 사용한다면 프로그래밍 언어들 사이에서도 쉽게 데이터를 공유하고 의사소통 가능

3.Graph DB
-Column이나 document 필요 없지만 각 노드 사이 관계를 알아야 할때
예를들어 sns 만들때 필요함.
-document column대신 entity를 저장하고 이를 관계망으로 연결

참고: 오늘부터 IT를 시작합니다. 고코더 지음
NoSQL vs SQL (AI Holic)
SQL vs NoSQL 5분컷 설명!(https://www.youtube.com/watch?v=Q_9cFgzZr8Q)
https://sujl95.tistory.com/83

profile
데이터 사이언스에 관심있는 PM

0개의 댓글