정의
여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합
역사
1950년대에 군비의 집중적·효율적 관리를 위해 컴퓨터를 활용한 도서관 개념을 개발하면서 이를 ‘데이터의 기지’라는 뜻의 데이터베이스로 부름
이후 1965년 시스템 디벨로프사가 2차로 개최한 ‘컴퓨터 중심 데이터베이스 시스템’이라는 심포지엄에서 처음 사용
설명
데이터베이스만으로는 할 수 있는게 거의 없고 관리 시스템(DBMS )과 통합되어 제공
특징
동시 공유
계속적인 변화
중복 최소화
실시간 접근성
내용에 의한 참조
보안
3요소
무결성(integrity)
가용성(availability)
기밀성(confidentiality)
접근제어, 암호화 등을 통해 3요소를 만족시켜야 함
설계
요구 조건 분석
개념적 설계
논리적 설계
물리적 설계
저장 알고리즘 등 물리적 장치와 연관된 부분을 설계
구현
운영 및 개선
종류
관계형(Relational)
데이터의 종속성을 관계로 표현
데이터를 행과 열이라는 표 형태로 저장
컬럼의 구조와 데이터의 관계가 스키마로 사전 정의
SQL 을 이용하여 데이터 질의
단점
스키마 수정이 어려움
2차원 표 형태이기에 트리 구조의 객체 형태를 표현하기에는 맞지 않음
객체형(Object)
객체지향 프로그래밍 언어처럼 데이터베이스에 객체 개념을 구현
쿼리 사용법이 복잡
NoSQL
집합-지향(Aggregate-oriented) 모델
키-값형(Key-value)
데이터를 키(Key)와 값(Value)의 쌍으로 매핑
value에 어떠한 형태든 데이터를 넣을 수 있음
RDBMS에 비해 가볍고, 빠르고, 다루기 쉬움
데이터의 그룹화나 정렬 기능은 부족
값에 대한 쿼리 불가능
Memcached, Riak, Redis, Amazon Dynamo DB, LevelDB 등
문서형(Document)
계층 형태의 문서를 저장하는 데이터베이스
관계형과 달리 하나의 객체를 여러 개의 테이블에 나누어서 저장하지 않고 하나로 저장 가능
문서에 대해 쿼리 가능
2차원 초과 데이터 입력 시
관계형은 정규화 가 필요
문서형은 인덱스의 하위 구조로 입력 가능
문서 구조 표현 여부
구조 강제 여부
객체형은 강제(타입에 맞게 데이터를 삽입해야 함)
문서형은 다른 구조 입력 가능
MongoDB, CouchDB, MarkLogic 등
컬럼 패밀리형(Column Family)
컬럼들의 묶음을 지원하는 데이터베이스
HBase, Cassandra, Hypertable 등
그래프(Graph)
실제 세계의 데이터를 관계와 함께 표현하기 위해 디자인된 데이터베이스
RDBMS와 NoSQL
어느 한쪽을 대체하기 위한 것이 아닌 상호 보완할 수 있는 데이터베이스이므로 목적에 맞게 사용하는 것이 중요
수정할 일이 거의 없는 경우에는 ACID 지원이 필요하지 않으므로 꼭 RDBMS를 사용할 필요가 없음
데이터의 일관성이 보장되어야 하거나 여러번의 수정 혹은 조인 연산이 필요한 데이터라면 RDBMS
Tags:
column family store ,
document-oriented store ,
Graph database ,
key–value store ,
NoSQL ,
object database ,
object-oriented database ,
overview ,
RDBMS ,
Relational DataBase Management System
Categories:
database
Updated: March 31, 2023