[DB] 1. 데이터베이스의 기본 개념과 필요성
1. 데이터베이스(Database)란?
데이터베이스는 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터의 집합입니다.
단순히 데이터를 저장하는 것을 넘어서, 조직화되고 체계적으로 관리되는 데이터의 모음이라고 할 수 있습니다.
1.1 파일 시스템과의 차이점
💡 “파일 시스템과 데이터베이스의 차이점은 무엇인가요?”
파일 시스템과 비교하여 데이터베이스의 특징을 이해하면 더 쉽습니다:
비교 항목 | 파일 시스템 | 데이터베이스 |
---|---|---|
데이터 중복 | 많음 | 최소화 |
데이터 일관성 | 보장 어려움 | 보장 |
동시 접근 | 어려움 | 가능 |
보안 | 기본적 | 체계적 |
데이터 독립성 | 없음 | 있음 |
백업과 복구 | 제한적 | 체계적 |
비용 | 저렴 | 비쌈 |
처리 속도 | 빠름 | 상대적으로 느림 |
1.2 데이터베이스의 발전 과정
- 파일 시스템 (1960년대 이전)
- 가장 기본적인 데이터 관리 방식
- 각 응용 프로그램이 독립적으로 파일 관리
- 데이터 중복과 일관성 문제 발생
- 계층형 데이터베이스 (1960년대)
- 트리(Tree) 구조로 데이터 표현
- 부모-자식 관계로 데이터 구성
- IBM의 IMS가 대표적
- 한계: 복잡한 관계 표현이 어려움
- 네트워크형 데이터베이스 (1970년대 초)
- CODASYL DBTG 모델 기반
- 레코드 간의 다대다 관계 표현 가능
- 계층형의 한계 극복
- 한계: 구조 변경의 어려움
- 관계형 데이터베이스 (1970년대 중반~현재)
- E.F. Codd가 제안한 관계 모델 기반
- 테이블 형태로 데이터 저장
- SQL을 통한 직관적인 데이터 조작
- 현재 가장 널리 사용되는 형태
- 대표적 예: Oracle, MySQL, PostgreSQL
- NoSQL 데이터베이스 (2000년대~현재)
- 빅데이터 시대의 새로운 요구사항 충족
- 스키마 없는(Schema-less) 유연한 구조
- 대용량 데이터의 효율적 처리
- 다양한 형태: 문서형, 키-값형, 컬럼형, 그래프형
2. 데이터베이스의 필요성과 장점
2.1 데이터베이스의 필요성
- 데이터 중복 최소화: 동일한 데이터가 여러 곳에 중복 저장되는 것을 방지
- 데이터 일관성 유지: 모든 사용자가 같은 데이터를 보게 됨
- 데이터 무결성 보장: 부적절한 데이터의 입력을 방지
- 데이터 독립성 확보: 데이터와 응용 프로그램을 분리하여 관리
2.2 데이터베이스의 장점
- 데이터 공유
- 여러 사용자가 동시에 같은 데이터에 접근 가능
- 일관된 방식으로 데이터 제공
- 보안 관리
- 중앙 집중식 데이터 관리로 보안 강화
- 사용자별 접근 권한 설정 가능
- 데이터 무결성
- 데이터의 정확성과 일관성을 유지
- 제약조건을 통한 데이터 품질 보장
3. 데이터베이스 관리 시스템(DBMS)
3.1 DBMS의 개념
DBMS(Database Management System)는 데이터베이스를 관리하고 운영하는 소프트웨어입니다.
3.2 DBMS의 주요 기능
- 데이터 정의(DDL)
- 데이터베이스 구조 생성 및 수정
- 테이블, 스키마 관리
- 데이터 조작(DML)
- 데이터 검색, 삽입, 수정, 삭제
- 사용자의 요구에 따른 데이터 처리
- 데이터 제어(DCL)
- 데이터 접근 권한 관리
- 무결성 유지
3.3 DBMS 아키텍처
DBMS는 3단계 계층 구조(Three Schema Architecture)로 구성되어 있으며, 이는 데이터베이스의 물리적 독립성과 논리적 독립성을 보장합니다.
3.3.1 외부 스키마 (External Schema)
- 사용자 관점의 데이터베이스 모습
- 실제 데이터베이스의 일부분을 표현
- 각 사용자나 응용 프로그램마다 다른 뷰 제공
- 예: 학사관리 시스템에서 교수와 학생이 보는 화면이 다름
3.3.2 개념 스키마 (Conceptual Schema)
- 전체 데이터베이스의 논리적 구조
- 실제 저장될 데이터의 구조와 관계 정의
- 접근 권한, 보안 정책, 무결성 규칙 포함
- 데이터베이스 관리자(DBA)의 관점
3.3.3 내부 스키마 (Internal Schema)
- 물리적 저장 구조 정의
- 실제 데이터가 저장되는 방법 표현
- 인덱스, 데이터 압축 방식 등 포함
- 시스템 프로그래머의 관점
💡 3단계 스키마의 각 계층이 제공하는 독립성과 그 장점을 설명할 수 있어야 합니다!
3.3.4 데이터 독립성
- 논리적 독립성
- 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음
- 응용 프로그램의 변경 없이 논리적 구조 변경 가능
- 물리적 독립성
- 내부 스키마가 변경되어도 개념 스키마는 영향받지 않음
- 저장 구조 변경이 상위 계층에 영향을 주지 않음
4. 데이터베이스의 종류
4.1 관계형 데이터베이스(RDBMS)
- 가장 널리 사용되는 데이터베이스 유형
- 테이블 형태로 데이터 저장
- 예: MySQL, Oracle, PostgreSQL
4.2 NoSQL 데이터베이스
- 비관계형 데이터베이스
- 유연한 스키마
- 대용량 데이터 처리에 적합
- 종류:
- 문서형(MongoDB)
- 키-값형(Redis)
- 컬럼형(Cassandra)
- 그래프형(Neo4j)
🎯 정리
- 데이터베이스는 조직화된 데이터의 집합
- DBMS를 통해 효율적인 데이터 관리
- 데이터의 일관성, 무결성, 보안성 보장
- 관계형 DB와 NoSQL로 크게 구분
다음 포스트에서는 관계형 데이터베이스의 개념과 특징에 대해 자세히 알아보겠습니다.
댓글남기기