cs

[데이터베이스] 데이터베이스 기본 개념

2025-04-22
3분 분량
데이터베이스

1. 데이터베이스 시스템

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

  • 서로 관계 있는 데이터들의 모임과 그 데이터에 접근하기 위한 프로그램의 집합으로 구성됨
  • DBMS의 목적: 데이터베이스에 정보를 저장하고 이를 검색하기 위한 편리하고도 효율적인 환경 제공

2. 데이터베이스 시스템의 응용

2.1 최초의 데이터베이스 시스템

  • 1960년대: 상업용 데이터 관리 목적으로 개발
  • 초기 응용: 단순하고 구조화된 데이터(structured data)

2.2 최신 데이터베이스 응용

  • 세계적인 기업에서 사용
  • 복잡한 관계와 다양한 구조의 데이터 → 약하게 구조화된 데이터와 매우 가변적인 형태

대표적인 데이터베이스 응용:

  • 기업 정보: 판매, 회계, 인적 자원
  • 은행 업무 및 재무: 계좌, 대출, 신용카드, 주식 거래
  • 대학: 학생 정보, 수강 신청, 학점 관리
  • 항공: 예약 및 비행 스케줄
  • 통신: 통화 내역, 통신비 산정
  • 웹 기반 서비스: 소셜 미디어, 온라인 소매, 온라인 광고
  • 문서 데이터베이스: 뉴스 기사, 특허, 논문
  • 내비게이션 시스템: 도로, 철도, 관심 지역 정보

2.3 데이터베이스 두 가지 사용 모드

  1. 온라인 트랜잭션 처리 (OLTP) 지원 모드
  2. 데이터 분석 (Data Analysis) 지원 모드

3. 데이터베이스 시스템의 목적

3.1 기존 파일 처리 시스템의 한계

문제점:

  • 데이터 중복과 비일관성:
  • 데이터 접근의 어려움:
  • 데이터 고립:
  • 무결성 문제:
  • 원자성 문제:
  • 동시 접근 문제:
  • 보안 문제:

4. 데이터의 관점

4.1 데이터 추상화

추상화 단계:

  1. 물리적 단계 (Physical Level):
  2. 논리적 단계 (Logical Level):
  3. 뷰 단계 (View Level):

4.2 데이터베이스 스키마와 인스턴스

  • 스키마 (Schema): 데이터베이스의 전체 설계
  • 인스턴스 (Instance): 특정 시점에 데이터베이스에 저장된 데이터
  • 스키마의 종류:

5. 데이터베이스 언어

5.1 데이터 정의 언어 (DDL)

  • 데이터베이스 스키마 정의
  • 무결성 제약조건, 접근 권한 정의

예시:

sql
CREATE TABLE department (
  dept_name CHAR(20),
  building CHAR(15),
  budget NUMERIC(12,2)
);

5.2 데이터 조작 언어 (DML)

  • 데이터 검색, 삽입, 삭제, 수정
  • 절차적 DML: 데이터 어떻게 구할지 명시
  • 선언적 DML: 어떤 데이터가 필요한지만 명시

SQL 예시:

sql
SELECT instructor.name
FROM instructor
WHERE instructor.dept_name = 'History';

6. 데이터베이스 설계

6.1 데이터베이스 설계 개요

  • 데이터베이스 시스템: 많은 양의 정보를 효율적으로 관리하기 위해 설계됨.
  • 데이터는 기업/조직 운영에 필요한 자료.
  • 데이터베이스 설계: 데이터베이스 스키마 설계와 관련.
  • 설계 시 고려사항:

6.2 데이터베이스 설계 과정

1단계: 요구 사항 분석

  • 장래 사용자가 필요로 하는 데이터를 명확히 규정.
  • 전문가 및 사용자와 상호작용.
  • 결과물: 사용자의 요구 명세서 (specification of use requirements).

2단계: 개념적 설계

  • 사용자 요구를 개념적 데이터 모델로 변환 → 개념적 스키마 생성.
  • 스키마 재검토 및 중복 제거.
  • E-R 다이어그램으로 데이터와 관계를 표현.

3단계: 논리적 설계

  • 개념적 스키마 → 논리적 데이터 모델 (릴레이션 스키마)로 변환.

4단계: 물리적 설계

  • 물리적 속성 (파일 구성 형식, 저장 구조)을 구체화.

5단계: 구현

  • 설계한 스키마를 SQL 문으로 실행하여 DBMS에서 데이터베이스 생성.

7. 데이터베이스 엔진

7.1 데이터베이스 시스템 구성

  • 데이터베이스 시스템은 여러 모듈로 구성되며, 각 모듈은 데이터베이스의 여러 책무를 나눠 맡음
  • 기능적 구성:
  • 기업 데이터베이스 용량:
  • 디스크 저장:

7.2 저장 장치 관리자 (Storage Manager)

  • 저장된 데이터와 응용 프로그램/질의 사이의 인터페이스 제공

구성요소:

  • 권한과 무결성 관리자:
  • 트랜잭션 관리자:
  • 파일 관리자:
  • 버퍼 관리자:

저장 구조:

  • 데이터 파일: 데이터베이스 자체를 저장
  • 데이터 사전 (Data Dictionary):
  • 인덱스: 특정 값의 데이터 항목에 빠르게 접근 (예: 교수 ID 찾기)

7.3 질의 처리기 (Query Processor)

구성요소:

  • DDL 인터프리터:
  • DML 컴파일러:
  • 질의 평가 엔진:

8. 데이터베이스 및 응용 구조

8.1 시스템 구조

  • 중앙화된 서버에서 데이터베이스 시스템 실행

구성:

  • 공유 메모리 (Shared Memory) 서버 구조:
  • 병렬 데이터베이스 (Parallel Database):
  • 분산 데이터베이스 (Distributed Database):

8.2 응용 구조

2계층 구조 (Two-tier Architecture):

  • 초기 데이터베이스 응용에서 사용
  • 클라이언트에서 응용 프로그램 실행 → 서버의 데이터베이스와 직접 통신

3계층 구조 (Three-tier Architecture):

  • 클라이언트 (프론트엔드)는 응용 서버 (Application Server)와 통신
  • 응용 서버가 데이터베이스 시스템과 직접 통신
  • 비즈니스 로직은 응용 서버에 위치 → 보안과 성능 향상

9. 데이터베이스 사용자와 관리자

9.1 사용자 유형

  1. 일반 사용자:
  2. 응용 프로그래머:
  3. 능숙한 사용자:

9.2 데이터베이스 관리자 (DBA)

역할:

  1. 스키마 정의:
  2. 저장 구조 및 접근 방법 정의:
  3. 스키마 및 물리 구조 수정:
  4. 데이터 접근 권한 인정:
  5. 일상적인 유지 보수:

함께 읽으면 좋은 글