31 lines
3.7 KiB
Plaintext
31 lines
3.7 KiB
Plaintext
# 데이터베이스 시스템 개요
|
|
|
|
## 데이터베이스의 정의와 역사
|
|
데이터베이스는 조직화된 정보나 데이터의 집합으로, 일반적으로 컴퓨터 시스템에 전자적으로 저장됩니다. 데이터베이스는 보통 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 데이터와 DBMS를 함께 묶어 데이터베이스 시스템이라고 부르며, 짧게는 그냥 데이터베이스라고 합니다.
|
|
|
|
데이터베이스의 역사는 1960년대 초기의 내비게이션 데이터베이스부터 시작해서, 1970년대의 관계형 데이터베이스, 1990년대와 2000년대의 객체 지향 데이터베이스를 거쳐, 현재의 NoSQL, NewSQL 데이터베이스까지 발전해왔습니다.
|
|
|
|
## 관계형 데이터베이스 시스템
|
|
관계형 데이터베이스는 데이터를 테이블 형태로 저장하며, 각 테이블은 행과 열로 구성됩니다. 테이블 간에는 관계가 설정될 수 있으며, 이를 통해 복잡한 데이터 구조를 표현할 수 있습니다. SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 질의하고 조작하는 표준 언어입니다.
|
|
|
|
주요 관계형 데이터베이스 시스템으로는 MySQL, PostgreSQL, Oracle, Microsoft SQL Server, IBM DB2 등이 있습니다. 이들은 트랜잭션, 무결성 제약 조건, 인덱싱 등의 기능을 제공하여 데이터의 일관성과 효율성을 보장합니다.
|
|
|
|
## NoSQL 데이터베이스
|
|
NoSQL 데이터베이스는 관계형 데이터베이스의 한계를 극복하기 위해 등장했으며, 다양한 데이터 모델을 지원합니다. 주요 유형으로는 문서 지향(MongoDB), 키-값 저장소(Redis), 와이드 칼럼 저장소(Cassandra), 그래프 데이터베이스(Neo4j) 등이 있습니다.
|
|
|
|
NoSQL 데이터베이스는 대용량 데이터, 높은 확장성, 분산 아키텍처, 유연한 스키마 등의 특징을 가지고 있어 빅데이터와 실시간 웹 애플리케이션에 적합합니다.
|
|
|
|
## 데이터 모델링과 설계
|
|
데이터베이스 설계는 개념적 설계, 논리적 설계, 물리적 설계의 세 단계로 이루어집니다. 개념적 설계는 비즈니스 요구사항을 파악하여 개체-관계(ER) 다이어그램을 작성하는 단계입니다. 논리적 설계는 ER 다이어그램을 관계형 스키마로 변환하는 단계이며, 물리적 설계는 실제 데이터베이스 구현을 위한 세부사항을 결정하는 단계입니다.
|
|
|
|
데이터 정규화는 데이터 중복을 최소화하고 무결성을 유지하기 위한 과정으로, 제1 정규형부터 제5 정규형까지 다양한 정규화 단계가 있습니다.
|
|
|
|
## 데이터베이스 보안
|
|
데이터베이스 보안은 인증, 권한 부여, 접근 제어, 암호화, 감사 등의 메커니즘을 통해 구현됩니다. 데이터베이스 보안의 주요 목표는 기밀성, 무결성, 가용성을 보장하는 것입니다.
|
|
|
|
데이터베이스 보안 위협으로는 SQL 인젝션, 권한 상승, 데이터 유출, 서비스 거부 공격 등이 있으며, 이에 대응하기 위한 보안 정책과 기술이 지속적으로 발전하고 있습니다.
|
|
|
|
## 빅데이터와 데이터 웨어하우스
|
|
빅데이터는 기존 데이터베이스 관리 도구로는 처리하기 어려운 대용량 데이터세트를 의미합니다. 빅데이터는 볼륨(Volume), 속도(Velocity), 다양성(Variety), 정확성(Veracity), 가치(Value)의 5V 특성을 가집니다.
|
|
|
|
데이터 웨어하우스는 다양한 소스에서 수집된 데이터를 통합하여 분석과 보고를 위한 중앙 저장소입니다. 데이터 마트, 데이터 레이크, OLAP(Online Analytical Processing) 등의 개념과 함께 기업의 의사결정을 지원하는 데이터 인프라를 구성합니다. |