데이터 베이스란?
데이터 베이스 정의
데이터 베이스란 구조화된 정보 또는 데이터의 조직화된 모음를 의미하며 일반적으로 컴퓨터 시스템에 전자적으로 저장된다.
일반적으로 DBMS에 의해 제어되며, 연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 한다.
관계형 데이터베이스(Relational Datebase)란?
- 관계형 DB는 데이터를 테이블 형식으로 저장한다.
- 데이터는 여러 테이블에 분산되어 있고, 각 테이블은 열(Column)과 행(Row)으로 구성된다.
- 테이블 간에는 관계를 맺고, 이 관계를 통해 데이터를 연결하고 질의(Query)할 수 있다.
- SQL을 사용하여 데이터를 조작하며, ACID 트랜잭션을 지원하여 데이터의 일관성과 안정성을 보장한다.
- 예시: MySQL, Oracle, SQL Server, PostgreSQL 등
비관계형 데이터베이스(NoSQL Datebase)란?
- 비관계형 DB는 테이블 형식이 아닌 다양한 형식으로 데이터를 저장한다.
- 데이터는 Key-Value Pair, 문서(Document), 열(Column), 패밀리(Column Family), 그래프(Graph) 등의 형태로 저장될 수 있다.
- 스키마가 유연하거나 스키마가 없는 경우가 많아, 데이터의 구조를 자유롭게 변경할 수 있다.
- 대규모 데이터 처리와 분산 시스템을 위해 설계되었으며, 수평적 확장에 용이하다.
- 예시: MongoDB, Redis, Cassandra 등
데이터 추출 방식
관계형 DB의 데이터 추출 방식
- SQL 사용: 데이터를 쿼리, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 관계형 DB에서 사용하는 언어
- 테이블 조인: 복수의 테이블 간에 관계를 설정하고, 이 관계를 활용하여 조인 연산 수행 가능
- 집계 합수: SUM, AVG, COUNT 등 집계함수 사용
- 트랜잭션 지원: ACID 트랜잭션 지원을 이용하여 데이터의 일관성과 안정성을 유지하며 추출 가능
비관계형 DB의 데이터 추출 방식
- 다양한 데이터 모델 사용: Key-Value, 문서(Documnent), 그래프(Graph) 등 다양한 데이터 모델에 따라 데이터를 추출
- 질의 언어의 다양성: SQL이 아닌 DB마다 고유의 질의 언어 또는 API를 사용하여 데이터 추출(MongoDB는 MQL 사용)
- 키 기반 접근: Key-Value 스토어에서는 키를 이용하여 데이터에 접근하고, 문서 DB에서는 문서의 필드를 기준으로 데이터를 쿼리함
- 분산 DB의 특성: DB가 분산 환경에서 동작하기 때문에, 데이터 추출도 분산 환경을 고려하여 처리됨
관계형 DB와 비관계형 DB의 차이점
데이터 저장 방식의 차이
관계형 DB는 데이터를 행과 열이 있는 테이블 형식으로 저장하며, 테이블의 각 행은 기본키라고 부르는 고유 식별자로 표시할 수 있고 여러 테이블에 있는 행들은 외래 키를 사용하여 상호 연결이 가능하다. 테이블을 연결하여 다양한 데이터 포인트 간의 상호 연결에 대한 심층적인 인사이트를 도출할 수 있다.
비관계형 DB는 특정 데이터 모델의 목적에 맞춰 구축하는 DB로서 유연한 스키마를 갖춰 데이터 일관성 제한 일부를 완화한 구조이다. 이러한 DB는 큰 데이터 볼륨, 짧은 지연 시간과 유연한 데이터 모델이 필요한 애플리케이션에 최적화 되어있다.
'개발 지식' 카테고리의 다른 글
[Python] 순열과 조합 (combinations, permutations) (1) | 2024.10.18 |
---|---|
[ElK] Elasticsearch, Logstash, Kibana (0) | 2024.08.08 |
[Python] list와 Numpy array 비교 (0) | 2024.07.24 |
[코테][2023 KAKAO BLIND RECRUITMENT]개인정보 수집 유효 기간 (0) | 2024.02.28 |
APM(Application Performance Management)이란? (0) | 2023.02.24 |