DBMS

DBMS이론

sysman 2020. 11. 20. 09:41

관계형 데이터베이스

데이터들이 서로상호관련성을 가진 형태로 표현한 데이터

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