Table of contents

⭐️ 데이터베이스의 용어와 기술
- OLTP ( Online Transaction Processing ) : 온라인 트랜잭션 처리
OLTP 시스템은 일반적으로 매우 빠른 응답 시간과 대규모 데이터베이스의 동시 접근을 지원하는데 사용됩니다.
OLTP 데이터베이스는 보통 매우 정형화된 데이터를 다루며, 데이터베이스 스키마는 테이블, 컬럼, 제약 조건 등으로
구성됩니다.
OLTP 시스템은 주로 온라인 판매, 은행 거래, 항공 예약 등과 같은 일상적인 업무 프로세스를 처리하는 데 사용됩니다.
OLTP 시스템은 데이터의 정확성과 일관성을 유지하기 위해 트랜잭션을 사용하며,
ACID(원자성, 일관성, 고립성, 지속성) 원칙을 준수합니다.
이러한 특징 때문에 OLTP 시스템은 데이터의 실시간 처리와 동시 접근이 필요한 다양한 업무 분야에서 사용됩니다.
- DW ( Data Warehouse ) : 거대한 데이터 저장소
데이터 웨어하우스는 기업이나 조직에서 생성된 대량의 데이터를 수집, 통합, 저장, 관리하고,
이를 분석하여 의사 결정에 활용하는 데이터베이스입니다.
DW는 여러 시스템에서 추출한 데이터를 통합하여 중복을 제거하고 일관성을 유지하며, 분석에 필요한 형태로 변환합니다.
이렇게 변환된 데이터는 다양한 BI(Business Intelligence) 도구를 사용하여 분석, 시각화하고 의사 결정에 활용됩니다.
DW는 주로 기업 내부에서 사용되며, 매출, 재고, 인사 등의 업무 분야에서 사용됩니다.
DW는 데이터의 정합성과 일관성을 유지하면서 대량의 데이터를 처리하기 때문에,
OLAP(Online Analytical Processing)과 같은 분석 기능을 지원합니다.
- Data Mart
데이터 웨어하우스(Data Warehouse)의 일종으로, 기업이나 조직에서 특정 업무 분야에
'대한 데이터를 수집, 저장, 관리하고 분석하는 데이터베이스입니다.
Data Mart는 데이터 웨어하우스와 유사하지만, 보다 작은 규모의 데이터베이스입니다.
Data Mart는 특정 업무 분야에 대한 데이터만을 수집, 저장하고, 이를 분석하여 의사 결정에 활용합니다.
이러한 특징 때문에 Data Mart는 특정 부서나 그룹에서 사용되는 경우가 많습니다.
Data Mart는 주로 OLAP(Online Analytical Processing)과 같은 분석 기능을 지원하며, BI(Business Intelligence) 도구를 사용하여 데이터를 시각화하고 분석합니다.
Data Mart는 대규모의 데이터 웨어하우스보다 구축 및 운영이 쉽고 빠르며, 비교적 적은 비용으로
구축할 수 있다는 장점이 있습니다.
- OLAP (Online Analytical Processing)
대규모 데이터를 다차원적으로 분석하고 조회하는 기술입니다.
OLAP은 데이터 웨어하우스(Data Warehouse)나 데이터 마트(Data Mart)와 같은 데이터베이스에서
데이터를 추출하여 다차원적으로 분석하고 시각화할 수 있습니다.
OLAP은 다차원 데이터베이스 모델을 사용하여 데이터를 저장하고, 다차원 데이터 큐브를 생성하여
이를 분석합니다.
다차원 데이터 큐브는 여러 차원의 데이터를 포함하며, 예를 들어 시간, 지역, 제품, 고객 등의 차원을 포함할 수 있습니다.
OLAP은 다양한 분석 기능을 제공하며, 예를 들어 피봇 테이블(Pivot Table), 드릴 다운(Drill Down),
슬라이스-앤-다이스(Slice-and-Dice) 등의 기능을 지원합니다.
이러한 기능을 통해 사용자는 다양한 관점에서 데이터를 분석하고 시각화할 수 있습니다.
OLAP은 데이터 마이닝(Data Mining), 예측 분석(Predictive Analysis), 비즈니스 인텔리전스(Business Intelligence) 등의 분야에서 활용되며, 데이터 분석과 의사 결정에 매우 유용합니다.
- SQL (Structured Query Language) - 데이터베이스를 위한 프로그래밍 언어
관계형 데이터베이스 관리 시스템(RDBMS)에서 사용되는 데이터베이스 질의 언어입니다.
SQL은 데이터베이스에서 데이터를 검색, 삽입, 수정, 삭제하는 등의 작업을 수행할 수 있습니다.
SQL은 ANSI(미국 국립 표준 협회)와 ISO(국제 표준화 기구)에서 표준화되어 있으며, 대부분의 RDBMS에서 지원됩니다. SQL은 명령어가 짧고 직관적이며, 다양한 데이터베이스에서 사용할 수 있기 때문에 매우 널리 사용됩니다.
🌙 SQL은 크게 다섯 가지 유형으로 분류할 수 있습니다.
DDL(Data Definition Language):
데이터베이스 스키마를 정의하고 관리하는 데 사용됩니다.
CREATE, ALTER, DROP 등의 문을 사용하여 테이블, 인덱스, 제약 조건 등을 생성, 수정, 삭제할 수 있습니다.
DML(Data Manipulation Language):
데이터를 삽입, 수정, 삭제하는 데 사용됩니다.
INSERT, UPDATE, DELETE 등의 문을 사용하여 데이터를 조작할 수 있습니다.
DQL(Data Query Language):
데이터를 조회하는 데 사용됩니다.
SELECT 문을 사용하여 데이터를 검색하고, WHERE 절을 사용하여 조건을 지정할 수 있습니다.
DCL(Data Control Language):
데이터베이스에 대한 권한을 관리하는 데 사용됩니다.
GRANT, REVOKE 등의 문을 사용하여 데이터베이스 사용자에게 권한을 부여하거나 취소할 수 있습니다.
TCL(Transaction Control Language):
트랜잭션을 관리하는 데 사용됩니다.
COMMIT, ROLLBACK 등의 문을 사용하여 트랜잭션을 완료하거나 취소할 수 있습니다.
각각의 SQL 유형은 데이터베이스를 다루는 데 필요한 다양한 기능을 제공합니다. 이들을 조합하여 복잡한 데이터베이스 작업을 수행할 수 있습니다.
- NoSQL
🌙 NoSQL이란?
관계형 데이터베이스가 아닌 다양한 형태의 데이터를 저장하고 처리하는 데이터베이스를 의미합니다.
NoSQL 데이터베이스는 기존의 RDBMS와는 다른 구조와 특징을 가지고 있습니다.
NoSQL은 대용량 분산 데이터 처리, 고속 처리, 비정형 데이터 처리 등의 요구사항에 적합합니다.
NoSQL은 다양한 데이터 모델을 지원하며, 예를 들어 key-value, document, graph, column-family 등의
모델을 사용할 수 있습니다.
NoSQL 데이터베이스는 수평적인 확장이 가능하며, 여러 대의 서버에 데이터를 분산하여 저장하고
처리할 수 있습니다. 이러한 구조는 대규모 데이터 처리에 적합하며, 높은 성능과 가용성을 제공합니다.
NoSQL 데이터베이스는 ACID(원자성, 일관성, 격리성, 지속성) 특성을 보장하지 않는 경우가 많습니다.
대신 BASE(Basically Available, Soft State, Eventually Consistent) 모델을 따르며,
일관성보다 가용성과 분할 용이성을 중시합니다.
NoSQL 데이터베이스는 대규모 분산 시스템에서 사용되며,
예를 들어 소셜 미디어, 온라인 게임, 로그 분석 등의 분야에서 활용됩니다.
🌙 NoSQL의 등장 배경
기존의 RDBMS는 대부분 ACID 특성을 보장하며, 정형화된 데이터를 처리하는 데 적합합니다.
하지만 대규모 분산 시스템에서는 수평적인 확장과 높은 가용성이 요구되며, 이러한 요구사항을 만족시키기 위해서는
새로운 데이터베이스 모델과 구조가 필요했습니다.
둘째, 대규모 데이터 처리와 분석에 적합한 기술들이 등장하면서 NoSQL 데이터베이스의 필요성이 대두되었습니다.
예를 들어 Hadoop과 같은 분산 데이터 처리 프레임워크와 같은 기술들이 등장하면서, 대규모 데이터 처리와 분석이 가능해졌습니다.
셋째, 비정형 데이터의 증가와 함께 관계형 데이터베이스의 한계가 드러나면서 NoSQL 데이터베이스가 등장하게 되었습니다.
예를 들어 소셜 미디어, 로그 데이터, 센서 데이터 등은 비정형 데이터이며, 이러한 데이터를 관계형 데이터베이스에 저장하고 처리하는 것은 어렵습니다.
데이터의 증가 > 데이터 트랜잭션 증가 > 데이터 트래픽 증가로 데이터의 처리비용이 당연하게 증가하는 문제와
더 많은 데이터를 처리하기 위해서 추가적인 데이터베이스를 늘려야 하기 때문에 하드웨어적인 비용의 문제 등의 한계를
극복하고자 새로운 데이터 저장 기술이 필요했습니다.
🌙 NoSQL의 종류
NoSQL 데이터베이스는 다양한 종류가 있으며, 주요한 종류는 다음과 같습니다.
Key-Value Store: 키와 값으로 이루어진 데이터를 저장하는 데이터베이스입니다.
키를 이용하여 값을 검색하므로, 매우 빠른 검색 속도를 가지고 있습니다.
대표적인 예로는 Redis, Riak, DynamoDB 등이 있습니다.
Document Store: JSON, XML과 같은 문서 형태의 데이터를 저장하는 데이터베이스입니다.
문서 내부에 필드와 값으로 이루어진 데이터를 저장하며, 복잡한 구조의 문서도 저장할 수 있습니다.
대표적인 예로는 MongoDB, Couchbase 등이 있습니다.
Column-Family Store: 컬럼 패밀리 단위로 데이터를 저장하는 데이터베이스입니다.
여러 개의 컬럼 패밀리를 가지고 있으며, 각 컬럼 패밀리는 여러 개의 컬럼으로 이루어져 있습니다.
대표적인 예로는 HBase, Cassandra 등이 있습니다.
Graph Database: 노드와 엣지로 이루어진 그래프 형태의 데이터를 저장하는 데이터베이스입니다.
그래프 형태의 데이터를 저장하므로, 복잡한 관계를 효율적으로 처리할 수 있습니다.
대표적인 예로는 Neo4j, OrientDB 등이 있습니다.
NoSQL 데이터베이스는 각각의 종류마다 특징과 장단점이 있으며, 적절한 종류를 선택하여 사용해야 합니다.
또한 NoSQL 데이터베이스는 ACID 특성을 보장하지 않는 경우가 많으므로,
데이터 일관성과 가용성을 적절히 균형있게 유지해야 합니다.
🌙 NoSQL vs RDBMS
각 언어의 장점이 있고, NoSQL이 RDBMS의 한계를 극복하고자 나왔다고 하지만 오랜 기간 사용해온 RDBMS 또한
익숙하기에 NoSQL이 RDBMS를 완벽히 대체하기는 어려움이 있을 것으로 예상합니다.
그러나 많은 사용자들을 위한 서비스이며, 한번 생성되어 저장하면 수정할 일이 없는 데이터, 불변 데이터들을 다루는 기업
중 많은 기업이 NoSQL을 사용하고 있다. 앞으로의 점유율도 궁금해지고, 추후에 NoSQL을 학습하는 것도 좋을 것 같다.
'데이터베이스' 카테고리의 다른 글
데이터베이스 기초 (1) - DBMS, DAC (0) | 2023.07.19 |
---|