2 분 소요

1. 데이터베이스(Database)란?

데이터베이스는 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 데이터의 집합입니다.
단순히 데이터를 저장하는 것을 넘어서, 조직화되고 체계적으로 관리되는 데이터의 모음이라고 할 수 있습니다.

1.1 파일 시스템과의 차이점

💡 “파일 시스템과 데이터베이스의 차이점은 무엇인가요?”

파일 시스템과 비교하여 데이터베이스의 특징을 이해하면 더 쉽습니다:

비교 항목 파일 시스템 데이터베이스
데이터 중복 많음 최소화
데이터 일관성 보장 어려움 보장
동시 접근 어려움 가능
보안 기본적 체계적
데이터 독립성 없음 있음
백업과 복구 제한적 체계적
비용 저렴 비쌈
처리 속도 빠름 상대적으로 느림

1.2 데이터베이스의 발전 과정

  1. 파일 시스템 (1960년대 이전)
    • 가장 기본적인 데이터 관리 방식
    • 각 응용 프로그램이 독립적으로 파일 관리
    • 데이터 중복과 일관성 문제 발생
  2. 계층형 데이터베이스 (1960년대)
    • 트리(Tree) 구조로 데이터 표현
    • 부모-자식 관계로 데이터 구성
    • IBM의 IMS가 대표적
    • 한계: 복잡한 관계 표현이 어려움
  3. 네트워크형 데이터베이스 (1970년대 초)
    • CODASYL DBTG 모델 기반
    • 레코드 간의 다대다 관계 표현 가능
    • 계층형의 한계 극복
    • 한계: 구조 변경의 어려움
  4. 관계형 데이터베이스 (1970년대 중반~현재)
    • E.F. Codd가 제안한 관계 모델 기반
    • 테이블 형태로 데이터 저장
    • SQL을 통한 직관적인 데이터 조작
    • 현재 가장 널리 사용되는 형태
    • 대표적 예: Oracle, MySQL, PostgreSQL
  5. NoSQL 데이터베이스 (2000년대~현재)
    • 빅데이터 시대의 새로운 요구사항 충족
    • 스키마 없는(Schema-less) 유연한 구조
    • 대용량 데이터의 효율적 처리
    • 다양한 형태: 문서형, 키-값형, 컬럼형, 그래프형

2. 데이터베이스의 필요성과 장점

2.1 데이터베이스의 필요성

  • 데이터 중복 최소화: 동일한 데이터가 여러 곳에 중복 저장되는 것을 방지
  • 데이터 일관성 유지: 모든 사용자가 같은 데이터를 보게 됨
  • 데이터 무결성 보장: 부적절한 데이터의 입력을 방지
  • 데이터 독립성 확보: 데이터와 응용 프로그램을 분리하여 관리

2.2 데이터베이스의 장점

  1. 데이터 공유
    • 여러 사용자가 동시에 같은 데이터에 접근 가능
    • 일관된 방식으로 데이터 제공
  2. 보안 관리
    • 중앙 집중식 데이터 관리로 보안 강화
    • 사용자별 접근 권한 설정 가능
  3. 데이터 무결성
    • 데이터의 정확성과 일관성을 유지
    • 제약조건을 통한 데이터 품질 보장

3. 데이터베이스 관리 시스템(DBMS)

3.1 DBMS의 개념

DBMS(Database Management System)는 데이터베이스를 관리하고 운영하는 소프트웨어입니다.

3.2 DBMS의 주요 기능

  1. 데이터 정의(DDL)
    • 데이터베이스 구조 생성 및 수정
    • 테이블, 스키마 관리
  2. 데이터 조작(DML)
    • 데이터 검색, 삽입, 수정, 삭제
    • 사용자의 요구에 따른 데이터 처리
  3. 데이터 제어(DCL)
    • 데이터 접근 권한 관리
    • 무결성 유지

3.3 DBMS 아키텍처

DBMS는 3단계 계층 구조(Three Schema Architecture)로 구성되어 있으며, 이는 데이터베이스의 물리적 독립성과 논리적 독립성을 보장합니다.

DB3Tier

3.3.1 외부 스키마 (External Schema)

  • 사용자 관점의 데이터베이스 모습
  • 실제 데이터베이스의 일부분을 표현
  • 각 사용자나 응용 프로그램마다 다른 뷰 제공
  • 예: 학사관리 시스템에서 교수와 학생이 보는 화면이 다름

3.3.2 개념 스키마 (Conceptual Schema)

  • 전체 데이터베이스의 논리적 구조
  • 실제 저장될 데이터의 구조와 관계 정의
  • 접근 권한, 보안 정책, 무결성 규칙 포함
  • 데이터베이스 관리자(DBA)의 관점

3.3.3 내부 스키마 (Internal Schema)

  • 물리적 저장 구조 정의
  • 실제 데이터가 저장되는 방법 표현
  • 인덱스, 데이터 압축 방식 등 포함
  • 시스템 프로그래머의 관점

💡 3단계 스키마의 각 계층이 제공하는 독립성과 그 장점을 설명할 수 있어야 합니다!

3.3.4 데이터 독립성

  1. 논리적 독립성
    • 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음
    • 응용 프로그램의 변경 없이 논리적 구조 변경 가능
  2. 물리적 독립성
    • 내부 스키마가 변경되어도 개념 스키마는 영향받지 않음
    • 저장 구조 변경이 상위 계층에 영향을 주지 않음

4. 데이터베이스의 종류

4.1 관계형 데이터베이스(RDBMS)

  • 가장 널리 사용되는 데이터베이스 유형
  • 테이블 형태로 데이터 저장
  • 예: MySQL, Oracle, PostgreSQL

4.2 NoSQL 데이터베이스

  • 비관계형 데이터베이스
  • 유연한 스키마
  • 대용량 데이터 처리에 적합
  • 종류:
    • 문서형(MongoDB)
    • 키-값형(Redis)
    • 컬럼형(Cassandra)
    • 그래프형(Neo4j)

🎯 정리

  • 데이터베이스는 조직화된 데이터의 집합
  • DBMS를 통해 효율적인 데이터 관리
  • 데이터의 일관성, 무결성, 보안성 보장
  • 관계형 DB와 NoSQL로 크게 구분

다음 포스트에서는 관계형 데이터베이스의 개념과 특징에 대해 자세히 알아보겠습니다.

댓글남기기