목차
개요
데이터베이스의 종류를 알아보기 전에 용어 정리를 먼저 하고 가겠습니다.
데이터베이스(Database, DB)
데이터베이스(Database, DB)는 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합입니다. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색 및 갱신의 효율을 높인다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다. 같은 데이터라 할지라도 사용자는 각각의 응용 목적에 따라 다르게 사용할 수 있다. 사무 계산을 할 경우 각각의 업무 전용 데이터 파일을 사용하고 있지만 각 파일에는 중복된 정보가 들어있는 것이 많다. 이 중복을 피하여 정보를 일원화하여 처리를 효율적으로 하기 위해서 서로 관련성을 가지며, 중복이 없는 데이터의 집합이 데이터베이스인 것이다.
데이터베이스는 데이터의 집합입니다.
자료의 모음을 구조화함으로 검색, 갱신의 효율을 높힙니다.
중복을 피해 정보를 일원화하여 처리를 효율적으로 하게 합니다.
데이터베이스 관리 시스템 (DataBase Management System, DBMS)
DBMS는 DB를 조작하는 별도의 소프트웨어로 DBMS를 통해 DB를 관리해 응용 프로그램들이 DB를 공유하고, 사용할 수 있는 환경을 제공합니다. DBMS는 DB를 구축하는 틀을 제공하고, 효율적으로 데이터를 검색하고 저장하는 기능을 제공합니다. 또한 응용 프로그램들이 DB에 접근할 수 있는 인터페이스를 제공하고, 장애에 대한 복구 기능, 사용자 권한에 따른 보안성 유지 기능 등을 제공합니다. 즉 DB내의 정보를 구성하는 컴퓨터 프로그램 집합으로서, 자료의 중복성을 제거하고 다른 특징들 중에 무결성, 일관성, 유용성을 보장하기 위해 자료를 제거하고 관리하는 소프트웨어 체계이다.
DBMS는 DB를 운영하고 관리하는 소프트웨어 입니다.
DB 구축 틀 제공, 효율적인 검색, 저장 기능 제공합니다.
응용 프로그램들이 DB에 접근할 수 있는 인터페이스 제공, 장애 복구, 보안성 유기 기능 제공합니다.
자료의 중복 제거, 무결성, 일관성, 유용성을 보장합니다.
여러 명의 사용자나 응용 프로그램이 공유하고 동시에 접근을 가능하게 합니다.
DBMS의 종류
DBMS와 같은 소프트웨어는 특정 목적을 처리하기 위한 프로그램입니다. 데이터베이스를 사용하기 위해선 소프트웨어인 DBMS를 설치해야 하는데 대표적으로 MySQL, Oracle, SQL 서버, MariaDB 등이 있습니다. 소프트웨어 각각의 사용 방법과 특징이 다르지만 특정 목적을 위해서는 어떤 것을 사용해도 무방합니다.
DBMS의 분류
DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류됩니다. 현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, MySQL도 관계형 DBMS에 포함됩니다.
DBMS의 종류 :
계층형
망형
관계형
객체지향형
현재는 주로 관계형인 관계형 데이터베이스(Relational DataBase Management System, RDBMS)가 널리 쓰입니다.
계층형 DBMS (Hierarchical DBMS, HDBMS)
계층형 DBMS(Hierarchical DBMS)는 처음으로 등장한 DBMS 개념으로 1960년대에 시작되었습니다. 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식 입니다. 계층형 DBMS의 문제는 처음 구성을 완료한 후에 이를 변경하기가 상당히 까다롭다는 것 입니다. 또한 다른 구성원을 찾아가는 것이 비효율적입니다. 지금은 사용하지 않는 형태입니다.
종류
하드디스크, DVD 파일 시스템 등등...
장점
- 데이터의 엑세스 속도가 빠르다
- 데이터의 사용량을 쉽계 예측할 수 있다.
단점
- 상하 종속적인 관계로 구성되어 초기 세팅 후 프로세스 수용이 어렵다. (변경히 힘들다)
망형 DBMS (Network DBMS)
망형 DBMS(Network DBMS)는 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 등장했습니다. 데이터 구조를 네트워크상의 노드 형태로 논리적으게 표현한 데이터 모델입니다. 각각의 노드를 서로 대등한 관계로 구성한 시스템입니다. 하지만 망형 DBMS를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재합니다. 역시 지금은 거의 사용하지 않는 형태입니다.
장점
- 계층형 데이터베이스의 데이터 중복 문제 해결, 상하 종속적 관계 해결
단점
- 추후 변경 시 복잡한 구조로 인해 변경이 어려움
- 데이터 종속성을 해결하지 못함
데이터 종속성이란?
응용 프로그램과 데이터 간의 상호 의존 관계를 말한다. 데이터를 저장하려면 데이터의 구성 방법이나 접근 방법에 맞게 작성되어야 한다. 데이터의 구성 방법이나 접근 방법을 변경 시킬 때는 자연스레 응용 프로그램도 같이 변경해야 하는데 이것을 데이터 종속성이라 한다.
데이터만 바꾸고 싶은데 응용 프로그램도 바꿔야 하니 일이 늘어나버려서 좋지 않은 것
관계형 DBMS (Relational DBMS, RDBMS) ★
관계형 DBMS(Relational DBMS)는 줄여서 RDBMS라고 부릅니다. MySQL뿐만 아니라, 대부분의 DBMS가 RDBMS 형태로 사용됩니다. RDBMS의 데이터베이스는 테이블(table)이라는 최소 단위로 구성됩니다. 이 테이블은 하나 이상의 열(column)과 행(row)을 가지는 표 형식 데이터를 저장하는 데이터베이스 입니다.
SQL을 이용하여 관리 및 접근합니다.
관계 대수(Relational Algebra)에서 착안해 만들어 졌습니다.
관계대수란?
관계형 DB에 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어입니다.
장점
- 다양한 용도로 사용 가능 (범용성) , 높은 성능
- 데이터무결성 보장, 높은 신뢰성
- 명확한 스키마 정의
- 정규화에 따른 갱신 비용 최소화
- 데이터의 분류, 정렬, 탐색 속도가 빠름
- 관계를 통해 각 데이터를 중복없이 한 번만 저장
단점
- 대량의 데이터 입력 처리
- 갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
- 컬럼 확장 어려움 > 유연성 부족
- 데이터베이스 부하 분석이 어려움
- 수평 확장이 어려움 > 데이터베이스 저장 방식으로 인해 수직 확장만 지원
수직 확장(scale up)
DB 서버의 성능을 향상시키는 것 ex) CPU 업그레이드
수평 확장(scale out)
서버를 추가해 DB를 분산시키는 것, 여러 호스트에서 하나의 DB가 작동
RDBMS 종류
Oracle
미국 오라클사에서 개발한 RDBMS로 가장 많이 쓰이는 대표 주자 입니다.
가격은 비싸지만, 성능이 뛰어나 대량의 데이터를 처리하기에 좋습니다.
MySQL
무료 버전과 사용 버전으로 나뉩니다.
처리 속도가 빠르며, 유연하고 간단한 구조로 이루어져 있습니다.
SQL Server
마이크로스포트에서 만든 상용 RDBMS 입니다.
마이크로소프트 제품인 만큼 .NET 환경, 윈도우 서버와 연동하기 좋습니다.
PostgreSQL
무료 RDBMS로 꾸준히 인기가 늘고 있씁니다.
SQL 표준을 잘 따르고 있고, 확장성이 좋아 사용자의 충성도가 높습니다.
MariaDB
MySQL을 포크한 오픈소스 RDBMS 입니다.
커뮤니티가 활발하고 최신 버전 릴리스도 빠르게 이루어지고 있습니다.
SQLite
응용 프로그램에 쓰는 가벼운 RDBMS 입니다.
안드로이드, iOS, macOS 운영체제에 기폰으로 포함되어 있습니다.
객체지향 데이터베이스(Object-oriented DBMS, ODBMS)
객체지향 데이터베이스에 대한 아이디어는 1985년에 시작되었으며 객체지향 데이터베이스는 객체 지향 프로그래밍(OOP)의 개체를 기반으로 합니다. 개체에는 필드, 속성 및 메소드와 같은 멤버가 있고 객체 생성, 사용 및 삭제를 포함하는 라이프 사이클이 있습니다. OOP에는 캡슐화, 상속 및 다형성이라는 주요 특성이 있습니다. 개체 데이터베이스는 일반적으로 고성능, 계산 및 더 빠른 결과가 필요한 응용 프로그램에서 사용됩니다. 개체 데이터베이스를 사용하는 일반적인 응용 프로그램 중 일부는 실시간 시스템, 3D 모델링을 위한 건축 및 엔지니어링, 통신, 과학 제품, 분자 과학 및 천문학입니다.
현재에는 많이 사용되지 않습니다.
종류
InterSystems의 Cache, 컨셉베이스, Object store, UniSQL
장점
- 프로그램에서 만든 객체를 있는 그대로 저장하고 다시 읽을 수 있습니다.
- 객체를 영구 저장소에 영원히 저장할 수 있습니다.
- 데이터를 읽고 객체에 매핑하는 것을 API, OR 도구 없이 직접 수행해 데이터 액세스가 빠르고 성능이 향상됩니다.
단점
- RDBMS 만큼 보편적으로 쓰이지 않습니다.
- 많은 프로그래밍 언어가 개체 데이터베이스를 지원하지 않습니다.
- 개체 데이터베이스에는 표준이 없습니다. (SQL 지원 X)
NoSQL(Not Only SQL)
NoSQL은 행과 테이블을 사용하는 관계형(SQL) DB보다 다양한 방식으로 빠르게 바뀌는 대량의 비정형 데이터를 처리할 수 있습니다. 이로 인해 비관계형, NoSQL, non-SQL이라 불립니다.
1960년대부터 다양한 이름으로 존재해 온 NoSQL 기술은 데이터 환경이 변화하고 개발자들이 클라우드, 모바일, 소셜 미디어와 빅 데이터로부터 생성되는 다양한 대규모 데이터를 처리해야 할 필요가 늘어남에 따라 그 인기가 급증하고 있습니다.
유형
키 - 값
키-값은 해시 테이블을 사용하여 키와 값의 쌍을 저장합니다. 키는 알려졌지만 키 값은 알려지지 않은 경우에 키-값 유형이 가장 적합합니다.
문서
문서 데이터베이스는 문서 전체를 컬렉션이라 불리는 그룹으로 구성하여 키-값 데이터베이스의 개념을 확장합니다. 문서 데이터베이스는 중첩된 키-값 쌍을 지원하며, 문서 내에 있는 모든 속성에 대한 쿼리를 허용합니다.
열형식
열 형식, 와이드 열 또는 열 패밀리 데이터베이스는 희소 데이터 행에 걸쳐 데이터와 쿼리를 효율적으로 저장하며 데이터베이스의 특정 열에 대한 쿼리 실행 시 이점을 제공합니다.
그래프
그래프 데이터베이스는 노드 및 에지 기반 모델을 바탕으로 상호 연결된 데이터(예: 소셜 네트워크를 사용하는 사용자들 간의 관계)를 표현하고 복잡한 관계를 간단하게 스토리지하고 살펴볼 수 있도록 지원합니다.
장점
- 스키마가 없기 떄문에 유연하며 자유로운 데이터 구조를 가질 수 있습니다.
- 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있습니다.
- 데이터 분산이 용이하며 성능 향상을 위한 수직확장(scalue-up) 뿐만 아니라 수평확장(scale-out) 또한 가능합니다.
단점
- 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행해야 한다.
- 스키마가 존재하지 않기 때문에 명확한 데이터 구조를 보장하지 않으며 데이터 구조를 결정하기가 어렵습니다
참고 사이트
[데이터베이스 이해하기] Database(DB), DBMS, SQL의 개념
데이터베이스(Database, DB)란? : 데이터의 저장소. DBMS(Database Management System, 데이터베이스 관리 시스템)란? 데이터베이스를 운영하고 관리하는 소프트웨어. 계층형, 망형, 관계형 DBMS 중 대부분의 DBM
hongong.hanbit.co.kr
https://honeywater97.tistory.com/174
[DB] 데이터베이스 종류
데이터베이스란? 2021.05.27 - [IT/CS] - [DB] 데이터베이스 기초 [DB] 데이터베이스 기초 데이터베이스(DataBase)란? 통합하여 관리되는 데이터의 집합체 중복된 데이터 최소화, 자료 구조화, 효율적인 처
honeywater97.tistory.com
https://m.blog.naver.com/sundooedu/221301384166
데이터베이스 관리 시스템(DBMS)의 정의와 종류
데이터들이 모여있는 데이터들의 집합인 데이터베이스(Database)를 관리할 수 있는 데이터베이스 관리시스...
blog.naver.com
https://hsc-tech.tistory.com/2
계층형 & 네트워크 데이터베이스 모델 Hierarchical and Network Database Model
Hierarchical DB Model Hierarchical DB, 계층형 데이터베이스의 특징 * 뒤집힌 트리 구조 (Reversed Tree-like structure) - 데이터베이스에 있는 하나의 테이블이 뿌리 역할을 한다. - 다른 테이블은 뿌리에서..
hsc-tech.tistory.com
데이터베이스 처리에서 Oracle과 그 기능, 강점 및 약점 이해
컴퓨터 세계의 발전은 매우 빠릅니다.인간이 수행하는 모든 활동을 지원하는 데 매우 유용한 기능을 가진 많은 새로운 기술이나 프로그램을 유발합니다. 다양한 컴퓨터 지원 프로그램의 개발로
altitudetvm.com
https://www.inflearn.com/tag-curation/skill/316
DBMS/RDBMS - 인프런 | 학습하기
데이터도 꿰어야 보배! 데이터를 공유하고, 관리할 수 있도록 도와주는 데이터베이스 관리 시스템을 만나보세요. 지금 인프런에서 학습해 보세요! - 학습하기 | 인프런...
www.inflearn.com
객체 지향 데이터베이스란 무엇이며 장점 - GraphGuide.org
객체 지향 데이터베이스(OODBMS) 또는 객체 데이터베이스 관리 시스템(ODBMS)은 객체 지향 프로그래밍(OOP)을 기반으로 하는 데이터베이스입니다. 데이터는 객체의 형태로 표현되고 저장됩니다. OODBM
graphguide.org
https://azure.microsoft.com/ko-kr/resources/cloud-computing-dictionary/what-is-nosql-database/
NoSQL 데이터베이스 - NoSQL이란? | Microsoft Azure
NoSQL 데이터베이스 시스템에 대한 자세한 내용과 함께 이 시스템이 기존 관계형(SQL) 데이터베이스와 어떻게 다른지 알아보세요. 기능의 개요를 확인하고 시작 방법을 알아보세요.
azure.microsoft.com
https://pythontoomuchinformation.tistory.com/528
RDBMS와 NoSQL의 차이점 및 장단점
들어가기 전에 DBMS DataBase Management System 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어. SQL Strucured Query Language 관계형 데이
pythontoomuchinformation.tistory.com