[DB] 데이터베이스 종류와 장단점
데이터베이스 종류 |
- 계층형 데이터베이스
- 네트워크형 데이터베이스
- 관계형 데이터베이스
- 비관계형 데이터베이스
계층형 데이터베이스 |
데이터의 관계가 트리 구조로 정의된다.
상위 레코드가 복수의 하위 레코드를 가지는 구조. (1:N 관계)
데이터베이스에서 사용되기보단 XML, yaml, 파일 시스템 등에서 사용된다.
장점
1:N 관계를 가지는 데이터를 처리하기에 좋다.
무결성을 유지하기 좋다.
단점
구조변경이 어렵다.
1:N 관계에 한정된다.
네트워크형 데이터베이스 |
네트워크 구조로 정의된다.
N:N 관계를 가진다.
장점
계층 구조에 링크를 추가해되어 모든 데이터에 접근이 가능하다.
단점
구조 변경 시 모든 데이터에 갱신을 해야하여 무결성을 유지하기 힘들다.
관계형 데이터베이스 |
Relation(릴레이션)이란 테이블의 개념으로 관계를 형성하는 구조이다.
SQL (질의어)을 통해서 데이터를 관리하고 접근한다.
데이터 간 1:1 관계를 유지하며
릴레이션이란 테이블과, 튜플(행)과 속성(열)으로 구성된다.
장점
정규화를 통해 이상현상을 제거하고 무결성을 지키기 유리하다.
릴레이션을 연결하여 다양한 데이터 간 상호연결에 대한 인사이트를 얻을 수 있다.
단점
좋은 스키마 설계를 위해 학습장벽이 있다.
Join을 위해 질의어가 복잡해질 수 있다.
릴레이션 간 Join을 위해 비용이 클 수 있다. (성능이 떨어짐)
비관계형 데이터베이스(Nosql) |
분산 환경에서 대용량의(비구조적) 데이터를 빠르게 처리하기 위해 개발되었다.
데이터에 접근하고 관리하기 위해 다양한 데이터 모델을 사용한다. 그래서 데이터 일관성 제한의 일부를 무시하기도 한다.
Key - Value 형식
장점
관계형 데이터베이스보다 유연하고 데이터의 저장 및 검색을 위해 특화되었다.
레코드, 필드에 한 개 이상의 데이터를 가질 수 있다.
데이터 구조를 정확히 알 수 없거나, 변경 딜 수 있는 경우 유용하다.
읽기의 빈도 수가 변경읩 빈도 수 보다 많을 때 유용하다.
Key 값에 따른 Sharding이 쉽다.
단점
고정된 스키마가 없고 Join이 불확신하다.
데이터가 중복 될 수 있다.
참조
https://aws.amazon.com/ko/compare/the-difference-between-relational-and-non-relational-databases/
긴 글 읽어주셔서 감사합니다.
부족한 점이 있다면 부디 알려주시면 감사하겠습니다.