관계형 데이터베이스
데이터들이 서로상호관련성을 가진 형태로 표현한 데이터
use case : 전자상거래 정보, 은행 계좌정보, 거래정보 등에 사용
ex: mysql, postreSQL
테이블 상호 관련성 종류
1) one to one
ex: 국가와 수도 경우, 각 국가당 수도는 하나다.
2) one to many
ex: 하나의 사용자느 여러 tweet을 가질 수있다.
3) many to many
ex: 한사용자는 여러 사용자가 팔로우 할 수 있고, 해당 사용자는 여러 사용자가 팔로우 할 수 있다.
정규화
중복을 최소화하게 데이터를 구조화흔느 프로세스 (=normalization)
국가테이블과 수도테이블을 하나로 하면 간단하지 않나?
=> 불필요한 정보 중복되어 저장, 더 많은 디스크 용량 차지, 키값만 사용하면 디스크공간 효율적 사용
트랜젝션
일련의 작업들이 마치 하나의 작업처럼 취급되어서 모두 다 성공하거나 아니면 모두 다 실패하는 것을 말함
트랜젝션을 보장하기 위해 ACID 성질이 있다.(트랜젝션:4가지 일련의 작업을 하나의 unit으로 실행하는것)
Atomicity(원자성)
Consistency(일관성)
Isolation(고립성)
Durability(지속성)
비관계형 데이터베이스
NoSQL : 관계형 데이터베이스 처럼 테이블들을 스키마와 테이블들의 관계를 미리 구현 할 필요 없이 데이터가 들어오는 그대로 그냥 저장한다
use case : 로그 데이터 자장
ex:MongoDB, Redis, Cassandra
관계형 데이터베이스 vs 비관계형 데이터 베이스
관계형 데이터베이스 장점
- 데이터를 더 효율적이고 체계적으로 저장 및 관리
- 미리 저장하는 데이터들의 구조를 정의함으로써 데이터의 완전성이 보장
- 트랜젝션 기능 제공
관계형 데이터베이스 단점
- 테이블을 미리 정의해야 하므로 테이블 구조 변화 등에 덜 유연하다.
- 확장이 쉽지 않다, 테이블 구조를 미리 정의해야하고 ACID를 보장해야 하기 때문에 서버 증가 및 성능이 높아야함.
- 서버에 분산 저장이 쉽지 않다. 주로 스케일업(scale up)으로 확장해야 한다.
비관계형 데이터베이스 장점
- 데이터 구조를 미리 정의 하지 않아도 되므로 저장하는 데이터 구조 변화에 유연하다.
- 데이터베이스 시스템 확장하기가 비교적 쉽다. 스케일 아웃(scale out)으로 시스템 확장이 가능
- 확장이 쉽고 데이터 구조에 유연하다보니 방대한 양의 데이터를 저장하는데 유리
비관계형 데이터베이스 단점
- 데이터의 완전성이 덜 보장
- 트랜젝션이 안 되거나 되더라도 비교적 불안정
'DBMS' 카테고리의 다른 글
RDBMS- MySQL (0) | 2020.11.11 |
---|