IT/CS

[DB] 데이터베이스 종류

Terriermon 2021. 7. 14. 23:16

데이터베이스란?

2021.05.27 - [IT/CS] - [DB] 데이터베이스 기초

 

[DB] 데이터베이스 기초

데이터베이스(DataBase)란? 통합하여 관리되는 데이터의 집합체 중복된 데이터 최소화, 자료 구조화, 효율적인 처리를 할 수 있도록 관리 데이터베이스 정의 및 특징 정의 - 통합된 데이터(Integrated

honeywater97.tistory.com

계층형 데이터베이스(HDBMS)

폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식

- 데이터의 관계를 트리 구조로 정의, 부모-자식 형태를 가짐

종류

하드디스크, DVD 파일 시스템 등

장점

- 데이터의 액세스 속도가 빠름

- 데이터의 사용량 쉽게 예측

단점

- 상하 종속적인 관계로 구성되어 초기 세팅 후 프로세스 수용이 어려움

 

네트워크형 데이터베이스(NDBMS)

데이터 구조를 네트워크상의 노드 형태로 논리적이게 표현한 데이터 모델, 각각의 노드를 서로 대등한 관계로 구성한 시스템

장점

- 계층형 데이터베이스의 데이터 중복 문제 해결, 상하 종속적 관계 해결

단점

- 추후 변경 시 복잡한 구조로 인해 변경이 어려움

- 데이터 종속성을 해결하지 못함

 

관계형 데이터베이스(RDBMS)

행(Column)과 열(Row)을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스

- SQL을 이용하여 관리 및 접근

- 관계 대수(Realtional Algebra)에서 착안하여 만들어 짐

 

종류

Oracle

- 오라클에서 개발, 가장 많이 사용하는 RDBMS

- 중앙 집중 방식, Administration Monitoring 가능

- Multiple Databases 튜닝 가능

- 다른 Admin User들과 공유 가능

- 다양한 핸들링 지원

DB2

- IBM이 개발, 한동안 IBM 컴퓨터에서만 구동이 가능했음

SQL Server

- 마이크로소프트에서 개발, 윈도우 플랫폼에서만 동작

PostgreSQL

- 오픈 소스 커뮤니티에서 개발

MySQL

- 오픈소스 커뮤니티에서 개발

- 경량 데이터 베이스 ▶️ 기능이 확장되면서 다른 RDBMS와 비슷

2021.04.12 - [IT/CS] - [DB] MariaDB vs MySQL 차이점

 

[DB] MariaDB vs MySQL 차이점

MariaDB - MySQL이 오라클에 인수되면서 만들어진 오픈소스 RDBMS - MySQL과 완벽 호환 - 라이센스와 오라클로부터 자유로움 MySQL - 오라클에 인수되면서 라이센스 유료화 (학생 및 비상업용은 무료) 결

honeywater97.tistory.com

- 매우 적은 오버헤드 사용 ▶️ 오라클 128mb, MySql 1mb

 

 

장점

- 다양한 용도로 사용 가능(범용성), 높은 성능

- 데이터 무결성 보장, 높은 신뢰성

- 명확한(= 엄격한) 스키마 정의

- 정규화에 따른 갱신 비용 최소화

- 데이터의 분류, 정렬, 탐색 속도가 빠름

- 관계를 통해 각 데이터를 중복없이 한 번만 저장

 

단점

- 대량의 데이터 입력 처리

- 갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경

- 컬럼 확장 어려움 ▶️ 유연성 부족

- 데이터베이스 부하 분석이 어려움

- 수평 확장의 어려움 ▶️ 데이터베이스 저장 방식으로 인해 수직 확장만 지원

수직 확장
데이터베이스 서버의 성능을 향상시키는 것 ex) CPU 업그레이드

수평 확장
서버를 추가하여 데이터베이스를 분산시키는 것. 여러 호스트에서 하나의 데이터베이스가 작동

 

객체지향 데이터베이스(ODBMS)

객체 그대로를 데이터베이스의 데이터에 저장하는 것

- 멀티미디어 데이터의 원활한 처리

- RDBMS의 비지니스형 데이터 타입만 처리되는 제한적 극복

 

NoSQL(Not Only SQL)

키(Key) - 값(Value)의 형태로 저장되는 데이터베이스, 키를 사용해 데이터 관리 및 접근

- 스키마 없음, 관계 없음

- Join이 존재하지 않고 데이터를 가져올 때, 컬렉션에 있는 데이터를 복제하여 필요한 데이터의 일부만 가져옴

- 정확한 데이터 요구 사항을 알 수 없거나 관계를 맺는 데이터가 자주 변경될 때 사용

- 읽기를 자주 하지만 데이터를 자주 변경하지 않는 경우 사용

- RDB와 NoSQL의 차이점

  • NoSQL은 비정형 데이터(메신저 텍스트, 음성, 이미지 등)를 다룰 수 있음
  • 수평 확장이 가능하여 분산형 컴퓨팅(클라우드)에 적합

 

종류

https://bestpractice80.tistory.com/66

Document Database

- 레코드마다 각각 다른 스키마를 가짐(유동적인 스키마)

- XML, JSON과 같은 Document를 이용해 레코드 저장

- 트리형 구조 ▶️ 레코드 저장 및 검색에 용이

- MongoDB(가장 유명), Azure Cosmos DB, CouchDB, MarkLogic, OrientDB 등

Wide Column Database

- 행마다 키와 값을 저장할 때 각각 다른 값의 다른 수의 스키마를 가짐

- Key 값의 스키마가 각각 다르다는 것을 사용자가 알 수 있음

- 대량의 데이터 압축, 분산처리, 집계 처리, 쿼리 동작속도, 확장성이 뛰어남

- Cassandra, HBase, Google BigTable 등

Key Value Database

- 기본적인 패턴, Key와 Value가 하나의 묶음으로 저장되는 단순한 구조

- 빠른 속도, 분산 저장 용이

- Scan에 용이하지 않음

- Redis, Oracle NoSQL Database 등

Graph Database

- 데이터를 노드로 표현하여 노드 사이의 관계를 엣지로 표현

- RDBMS보다 Performance가 좋고 유연

- 유지보수에 용이

- Social Network, Network diagrams 등에 사용

- Neo4j, OrientDB 등

 

장점

- 높은 유연성(스키마X) ▶️ 저장된 데이터를 조정하고 새로운 필드 추가 가능

- 애플리케이션에 필요한 형식으로 저장 ▶️ 데이터를 가져오는 속도가 빠름

- 수직 및 수평 확장 가능

 

단점

- 데이터 구조 결정이 늦어짐

- 복사된 데이터가 변경되면 모든 콜렉션과 문서 수정 필요

'IT > CS' 카테고리의 다른 글

[DB] 데이터 모델링2 - 데이터 독립성  (0) 2021.08.02
[DB] 데이터 모델링1  (0) 2021.07.24
[알고리즘] 네트워크 플로우  (0) 2021.07.08
[알고리즘] 백트래킹  (0) 2021.07.08
[알고리즘] 위상 정렬  (0) 2021.07.07