데이터베이스
데이터베이스는 여러 사용자나 응용 프로그램이 공유하고 사용할 목적으로, 조직적으로 통합, 관리되는 데이터의 집합이다. 데이터베이스는 이론적으로 데이터의 무결성, 일관성, 보안성 등을 유지하기 위해 설계되어야 하며, 이를 위해 다양한 종류의 데이터베이스가 개발되어 왔다.
계층형 데이터베이스
데이터를 트리 구조로 저장하는 데이터베이스로, 데이터를 검색할 때 계층 구조를 따라야 하므로 검색 속도가 느리다는 단점이 있다.
- 테이블 구조들 사이에 명확한 링크가 있기 때문에 사용자가 데이터 추출을 빠르게 할 수 있다.참조 무결성이 내장되어 있고 이것이 자동적으로 강화된다.
- 단점복잡한 관계를 지원할 수 없고, 따라서 중복 데이터로 인해 종종 문제가 발생한다.
IBM 정보관리 시스템(IMS)
관계형 데이터베이스
테이블 간의 관계를 이용해 데이터를 저장하는 데이터베이스로, 테이블 간의 조인 등 다양한 연산이 가능하며, 데이터의 일관성과 무결성을 유지하기 위한 기능을 제공하며 현재 가장 보편적인 데이터베이스이다.
MySQL, MSSQL, Oracle 등
객체지향 데이터베이스
객체 지향 프로그래밍의 개념을 데이터베이스에 적용한 것으로, 객체 단위로 데이터를 저장하고 관리할 수 있다.
그래프형 데이터베이스
데이터를 노드와 엣지의 그래프 형태로 저장하며, 노드 간의 관계를 다양한 방식으로 나타낼 수 있다. 복잡한 관계를 가진 데이터를 저장하고 분석하는 데 적합하며, NoSQL 데이터베이스의 일종이다.
ArangoDB
NoSQL 데이터베이스
관계형 데이터베이스의 단점을 보완하고 확장성과 가용성을 높이기 위해 개발된 데이터베이스로, 스키마가 자유롭고 다양한 종류의 데이터를 처리할 수 있다. NoSQL은 Not Only SQL의 약자로 RDB가 아닌 다양한 DBMS를 포함하는 포괄적인 개념이다.
각 데이터베이스의 특성은 데이터의 저장 방식, 검색 속도, 보안성 등에서 차이가 있으며, 데이터베이스 설계 시 이러한 특성을 고려해야 한다.
NoSQL의 종류
- MongoDB
- Couchbase
- Redis
- Elasticsearch