데이터베이스
여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합이다.
데이터베이스 종류
- 계층형 데이터베이스 거의 안 쓰임
- 데이터가 계층적, 상하 종속적인 관계로 구성.
- 빠르지만 한 번 구축 후 변경이 어렵다.
- 네트워크형 데이터베이스 거의 안 쓰임
- 망형이라 불리고 계층형 단점을 보완하고자 트리 구조를 확장한 형태
- 계층형에 비해 유연하고 접근성이 높지만 복잡하게 연결되어있어 유지 보수가 어렵다.
관계형 데이터베이스(Relational DataBase)
하나 이상의 열과 행의 테이블에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음이다.
장점
- 제약 조건과 규칙을 사용하여 데이터 일관성과 무결성을 적용 및 강화할 수 있다.
- SQL을 사용하여 데이터 작업 프로세스를 단순화 할 수 있다.
- 지속적인 최신 기술 도입 및 인덱스를 활용하여 대용량 데이터 및 트랜잭션을 효율적으로 처리할 수 있다.
즉, 데이터 일관성 및 무결성, 쉬운 데이터 검색 및 조작, 확장성과 성능, 유연성과 적응성 등등 개발에 이상적인 선택이 될 수 있는 수많은 이점을 제공한다.
단점
- 테이블간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있다.
- 데이터가 방대해지며 처리하는 속도가 느려진다.
비관계형 데이터베이스(NoSQL)
Not Only SQL 혹은 Non-Relational Operational DataBase의 약자로 비관계형 데이터베이스를 의미하며,
관계형 데이터 모델을 지양하며 대량의 분산된 데이터를 저장하고 조회하는데 특화된 데이터베이스로 스키마 없이 사용하거나 느슨한 스키마를 제공한다.
장점
- 비정형 데이터 구조 설계로 설계 비용이 감소한다.
- 가변적인 구조로 데이터 저장이 가능.
단점
- 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생.
- 데이터 일관성이 항상 보장되지 않는다.
RDB와 NoSQL의 차이점
- NoSQL은 RDB와 달리 데이터 간의 관계를 설정하지 않는다.
- RDB는 데이터 간의 관계를 외래키로 정의하고 Join 연산을 수행할 수 있지만 NoSQL은 key : value 형태로 저장되기 때문에 Join 연산이 불가능하다.
- NoSQL은 RDB 에 비해 대용량의 데이터를 저장할 수 있다.
- NoSQL은 분산 데이터베이스 구조와 유연한 스키마로 대용량 데이터를 저장할 수 있다.
- 고정되어 있지 않은 테이블 스키마를 갖는다.
- NoSQL 은 RDB 와 달리 테이블의 스키마가 유동적이고 데이터를 저장하는 컬럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용된다.
RDB와 NoSQL 선택 방법
저장될 데이터의 형태와 처리 목적에 더 적합한 것을 선택하면 된다.
RDB 선택
데이터의 일관성과 안전성을 중시하는 경우에 적합하고, 스키마가 확실하고 정형화된 데이터를 다룰 때 선택하면 된다.
NoSQL 선택
대량의 비정형 데이터를 다루거나 확장성과 유연성이 필요한 경우에 적합하다.
즉, 선택할 때는 데이터의 특성과 요구 사항을 고려하여 적합한 DB 를 고르는 것이 중요하다.
'CS > 데이터베이스' 카테고리의 다른 글
저장 프로시저, 트리거 (0) | 2024.03.27 |
---|---|
Schema (0) | 2024.03.26 |
트랜잭션 격리 수준 (0) | 2024.03.14 |
동시성 제어 (1) | 2024.03.14 |
트랜잭션 (0) | 2024.03.13 |