#RDBMS
- 관계형 DBMS(관계형이 아닌 DB도 있대요.. ㄷ ㄷ ㄷ)
- 보통 우리가 DB라고 생각하는 형태를 다루는 DBMS
- 그 기능엔 크게 JOIN(INNER, OUTER, ...)이 있음
JOIN 기능이란..
TABLE 간의 공통된 COLUMN을 찾아서 엮어주는 기능
JOIN 결과로 나온 TABLE은 각 모델 간의 관계가 1:1이냐 1:N이냐 M:N이냐에 따라 다르다.
("달라질 것이다 | 다를 수도 있다 | 다를 수밖에 없다")
JOIN 예제 with Flask
from .models import Employee, Department
position_list = Department.query.join(Employee).filter(Employee.name == "Jack")
position_list에는 Jack이라는 이름을 가진 사원(Employee)들이 속한 부서(Department)들이 담기게 된다.
<"distinct()로 position_list 안의 중복된 객체 소거 가능">
- RDBMS 예) MySQL, PostgreSQL, ...
#NoSQL
- data간의 JOIN이 불가능한 비관계형 DBMS(비관계형 아닌 NoSQL이 존재할 수도..)
- 빅데이터 다루는 데에는 NoSQL이 쓰인다네요,,
- python dictionary의 형태를 떠올리면 편한 semantic
<"key: value 형태" - value값에는 어떤 NoSQL을 쓰냐에 따라 할당되는 종류가 상이함)>
<"근데 데이터끼리 서로 관계(이어짐)은 없음">
- 대충 API로 서버에 JSON 형태로 request 보내던 거 생각하면 될 듯한 느낌..??
- NoSQL 예) MongoDB, CouthDB, Redis, HBase
#정리
RDBMS | NoSQL | |
장점 | · 데이터 구조가 명확함 · 데이터 간의 중복이 없음(중복 안되게 설계됨) |
· 데이터 구조가 자유로움 · 데이터 분산이 용이 Scale up/out |
단점 | · 데이터가 방대해지면 JOIN 형태 짜기 어려움 · 명확한 대신 유연하지 못한 구조 |
· 데이터 중복의 발생 · 데이터 구조 결정이 어려움(불명확성) |
대충 한쪽의 장점이 다른 한쪽의 단점인 느낌..
(Scale up은 data storage의 수준↑, Scale out은 data storage의 머릿수↑)
#참고
https://m.blog.naver.com/cjhol2107/221758883924
[DB] JOIN의 개념, INNER JOIN, OUTER JOIN 차이와 개념, SELF JOIN
JOIN 이란? JOIN(조인)은 여러 테이블에 흩어져 있는 정보 중 사용자가 필요한 정보만 가져와서 가...
blog.naver.com
https://khj93.tistory.com/entry/Database-RDBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90
[Database] RDBMS와 NoSQL의 차이점
이번 포스팅에서는 RDBMS와 NoSQL의 차이점을 알아보려고 합니다. 그전에 RDBMS는 무엇이고 왜 사용하며 NoSQL은 무엇이고 왜 사용을 할까요? 그리고 그 두 DB의 차이점은 무엇이며 서로에 대한 장단점
khj93.tistory.com
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788968480591
이것이 레디스다 - 교보문고
초고속 읽기 쓰기를 제공하는 인메모리 기반 NoSQL Redis | 이 책은 레디스를 실전 환경에서 사용할 수 있도록 설치부터 확장과 분산 기법 및 운영 시 고려사항과 튜닝 기법을 제시한다. 루아 스크
www.kyobobook.co.kr
'대학생활' 카테고리의 다른 글
Docker란 무언인가.. (What is Docker??) (1) | 2022.10.03 |
---|---|
[C++] Static Polymorphism & Dynamic Polymorphism (0) | 2022.09.26 |
터미널 git 다루면서 어려웠던 점 (0) | 2022.08.24 |
[C++] auto 타입 (0) | 2022.08.07 |
[Django] User에 포인트 추가하기 (0) | 2022.02.20 |