Post

[DB] 데이터베이스 종류

[DB] 데이터베이스 종류

DataBase 종류

구분모델DBMS
1세대파일시스템- ISAM
- VSAM
2세대계층형 (Hierachical) HDBMS- IMS
- System2000
3세대네트워크형 (Network) NDBMS- IDS
- TOTAL
- IDMS
4세대관계형 (Relational) RDBMS- Oracle
- MySql
- DB2
- SQL Server
- Sybase
5세대객체지향 (Object Oriented) ODBMS- Object Store
- UniSQL

계층형 데이터베이스 (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와 비슷
        • 매우 적은 오버헤드 사용 ▶️ 오라클 128mb, MySql 1mb
    • 장점
      • 다양한 용도로 사용 가능(범용성), 높은 성능
      • 데이터 무결성 보장, 높은 신뢰성
      • 명확한(= 엄격한) 스키마 정의
      • 정규화에 따른 갱신 비용 최소화
      • 데이터의 분류, 정렬, 탐색 속도가 빠름
      • 관계를 통해 각 데이터를 중복없이 한 번만 저장
    • 단점
      • 대량의 데이터 입력 처리
      • 갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
      • 컬럼 확장 어려움 ▶️ 유연성 부족
      • 데이터베이스 부하 분석이 어려움
      • 수평 확장의 어려움 ▶️ 데이터베이스 저장 방식으로 인해 수직 확장만 지원

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

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

  • 멀티미디어 데이터의 원활한 처리
  • RDBMS의 비지니스형 데이터 타입만 처리되는 제한적 극복

NoSQL(Not Only SQL)

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

  • 스키마 없음, 관계 없음
  • Join이 존재하지 않고 데이터를 가져올 때, 컬렉션에 있는 데이터를 복제하여 필요한 데이터의 일부만 가져옴
  • 정확한 데이터 요구 사항을 알 수 없거나 관계를 맺는 데이터가 자주 변경될 때 사용
  • 읽기를 자주 하지만 데이터를 자주 변경하지 않는 경우 사용
  • RDB와 NoSQL의 차이점
  • NoSQL은 비정형 데이터(메신저 텍스트, 음성, 이미지 등)를 다룰 수 있음
  • 수평 확장이 가능하여 분산형 컴퓨팅(클라우드)에 적합
This post is licensed under CC BY 4.0 by the author.