1장. 데이터베이스 소개

학습 목표

  • 데이터베이스와 DBMS의 개념을 이해한다
  • 데이터베이스 시스템의 장점과 특징을 파악한다
  • 3단계 데이터 추상화를 이해한다
  • 데이터 모델의 종류와 특징을 학습한다
  • 데이터베이스 시스템의 구조와 역사를 알아본다

1.1 구성 요소

데이터베이스(DB, Database)

  • 정의: 서로 관련 있는 데이터의 모임
    - 특징:
    • 컴퓨터에 데이터 관리에 필요한 기능을 제공 (MySQL이 DBMS)
    • 대표적으로는 데이터베이스 정의하고 생성하고 변경하고 삭제하고 접근하고 조작하는 기능적인 언어기능을 제공

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

  • 정의: 사용자에게 데이터 관리에 필요한 기능을 제공
    - 주요 기능:
    • 데이터 추상화 제공
    • 독립적인 데이터 구조를 사용자가 간단하게 사용할 수 있게 하는 개념
    • 데이터 독립성을 통해 사용자에게 데이터베이스 관리에 도움을 주는 다양한 기능을 제공

DBS(데이터베이스 시스템)

  • 정의: 데이터베이스와 데이터베이스 관리 시스템을 함께 통칭하는 용어(DB + DBMS)

1.2 데이터 추상화 및 데이터 모델

인스턴스 및 스키마

인스턴스(Instance)

  • 정의: 특정 시점에서 데이터베이스에 저장된 정보의 집합
  • 특징: 자주 변경되는 데이터의 실제 값들

스키마(Schema)

  • 정의: 데이터베이스의 논리적 구조
    - 특징:
    • 데이터베이스 구조와 제약 조건에 관련한 전반적인 명세를 기술한 메타데이터
    • 거의 변경되지 않는 데이터베이스의 설계도

추상화 3단계

1. 물리적 레벨(Physical Level)

  • 설명: 데이터가 실제로 저장되는 방법을 기술
  • 특징: 복잡한 저장 구조 설명, 파일 조직과 액세스 경로

2. 논리적 레벨(Logical Level)

  • 설명: 데이터베이스에 저장되는 데이터와 그들 간의 관계를 기술
  • 특징: 물리적 저장 구조를 숨기고 개념적 구조만 표현

3️. 뷰 레벨(View Level)

  • 설명: 사용자에게 오직 관심 있는 데이터베이스 부분만 기술
  • 특징: 보안과 편의성 제공, 사용자별 맞춤 인터페이스

3단계 스키마 구조

image

1.3 데이터베이스 특징

관계형 데이터 모델의 기본 특성

  1. 객체 지향 개념과 기존 데이터베이스의 특성을 포함하여 관계형 데이터 모델을 확장한다.
  2. 튜플의 속성이 독립 단위로서 기능할 수 있도록 허용하며, 중첩된 관계 및 비원자(non-atomic) 값들을 포함할 수 있다.
  3. 데이터에 대한 선언적 접근(declarative access)을 포함한 관계형의 기본 원리를 유지하면서, 모델링 능력을 확장한다.
  4. 기존 관계형 언어와의 상위 호환성을 제공한다.

데이터베이스 설계

  • 목적: 개념적 설계 → 논리적 설계 → 물리적 설계
    - 단계별 설계:
    • 논리적 설계 및 물리적 설계로 구분
    • 데이터베이스 시스템 목적에 따라 설계 방향 결정
    • 스키마 설계를 통해 데이터베이스 구조를 정의

1.4 데이터베이스 언어

Entity-Relationship (ER) 다이어그램 예제

image

DBMS 구성 요소

  • Storage Manager: 디스크로부터 데이터를 읽어 주 메모리로 가져오는 역할
  • Query Processor: 사용자가 작성한 SQL문을 DB가 이해할 수 있는 저수준 구조로 변환하는 역할

DBS 단순 구조도

image

1.5 데이터베이스 설계

데이터베이스 설계는 데이터베이스 구조를 설계하는 작업

  • 사용자 요구사항을 분석하여 충족하는 좋은 스키마를 생성하는 것
  • 논리적 설계 및 물리적 설계로 구분
  • 데이터베이스 시스템 목적에 따라 설계 방향 결정
  • 스키마 설계를 통해 데이터베이스 구조를 정의

1.6 데이터베이스 시스템의 역사

발전 과정

  • 50/60년대: 최초 파일 시스템을 이용하여 데이터 저장 및 처리
  • 70년대: 네트워크 모델과 계층 모델의 등장(예: legacy systems)
  • 1970년 E.Codd: 관계형 데이터 모델을 제안
  • 80년대: 초기 관계형 모델을 지원하는 상용 데이터베이스 시스템이 처음 출시
  • 80년대 중반: 실시간 데이터베이스 시스템에 대한 개념 정립
  • 90년대: 실시간 데이터 웨어하우스 및 데이터 마이닝 연구 개발이 이루어짐, 객체 관계형 데이터 모델 정립
  • 2000년대: XML 기술이 중요해짐
  • 2010년대: 빅 데이터 시대로 데이터 대용량 처리 시스템 또는 데이터 분산 처리 시스템 개발이 활발해짐
  • NOSQL: 전통적인 DBMS보다는 다른 형태의 데이터 관리를 요구하는 응용 분야에서 사용
📝 Note

이 글은 이상호 교수님의 데이터베이스 I 이론 및 실제 교재를 토대로 공부한 내용을 정리한 것입니다.