Post

1. DB 개념과 구조

1. DB 개념과 구조

데이터베이스란?

데이터베이스(Database)는 조직에 필요한 데이터를 통합하여 저장하고, 여러 사용자가 공유하여 사용할 수 있도록 관리하는 데이터의 집합이다.

핵심 특성

1
2
3
4
5
6
7
8
9
10
11
12
1. 통합 데이터 (Integrated Data)
   - 중복을 최소화한 데이터의 집합
   - 완전한 중복 제거는 불가능하므로 "최소한의 통제된 중복" 허용

2. 저장 데이터 (Stored Data)
   - 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터

3. 공유 데이터 (Shared Data)
   - 여러 사용자가 동시에 사용할 수 있는 데이터

4. 운영 데이터 (Operational Data)
   - 조직의 기능을 수행하기 위해 반드시 필요한 데이터

파일 시스템 vs DBMS

파일 시스템의 문제점

1
2
3
4
5
6
7
8
파일 시스템 (File System)
├── 데이터 종속성: 파일 구조가 바뀌면 프로그램도 수정
├── 데이터 중복성: 같은 데이터가 여러 파일에 존재
│   ├── 일관성 (Consistency) 훼손
│   ├── 보안성 (Security) 관리 어려움
│   └── 경제성 (Economy) 저하 (저장 공간 낭비)
├── 동시 접근 제어 불가
└── 회복 기능 부재

DBMS의 장점

1
2
3
4
5
6
7
8
DBMS (Database Management System)
├── 데이터 독립성: 프로그램과 데이터 분리
├── 데이터 중복 최소화: 통합 관리
├── 동시성 제어 (Concurrency Control)
├── 데이터 무결성 (Integrity) 보장
├── 보안 (Security) 관리
├── 백업과 회복 (Backup & Recovery)
└── 데이터 일관성 (Consistency) 유지

비교 요약

구분파일 시스템DBMS
데이터 중복중복 허용중복 최소화
데이터 독립성낮음높음
동시 접근제한적동시성 제어 지원
보안파일 단위레코드/필드 단위
회복불가트랜잭션 기반 회복
무결성프로그램 의존DBMS 레벨에서 보장
비용낮음높음 (초기 도입)

DBMS의 구성

DBMS의 주요 기능

1
2
3
4
5
6
7
8
9
10
11
1. 정의 기능 (Definition)
   - 데이터의 타입, 구조, 제약 조건 정의
   - DDL (Data Definition Language) 사용

2. 조작 기능 (Manipulation)
   - 데이터의 검색, 삽입, 삭제, 수정
   - DML (Data Manipulation Language) 사용

3. 제어 기능 (Control)
   - 동시성 제어, 보안, 무결성, 회복
   - DCL (Data Control Language) 사용

DBMS 사용자

1
2
3
4
5
6
7
8
9
1. 데이터베이스 관리자 (DBA)
   - 스키마 정의, 접근 권한, 성능 모니터링
   - 백업/회복 전략 수립

2. 응용 프로그래머
   - DML을 사용하여 DB 접근 프로그램 작성

3. 최종 사용자 (End User)
   - SQL 또는 응용 프로그램을 통해 DB 사용

3단계 스키마 구조 (ANSI/SPARC)

데이터베이스를 3개의 추상화 단계로 분리하여 데이터 독립성을 확보한다.

구조

1
2
3
4
5
6
7
8
9
10
11
┌─────────────────────────────────────────────┐
│              외부 스키마 (External Schema)      │
│  사용자 뷰 1    사용자 뷰 2    사용자 뷰 3       │
│  (View)        (View)        (View)          │
├─────────────── 논리적 독립성 ──────────────────┤
│              개념 스키마 (Conceptual Schema)    │
│  전체 DB의 논리적 구조 (테이블, 관계, 제약 조건)   │
├─────────────── 물리적 독립성 ──────────────────┤
│              내부 스키마 (Internal Schema)      │
│  물리적 저장 구조 (인덱스, 해시, 파일 구조)       │
└─────────────────────────────────────────────┘

각 스키마의 역할

1
2
3
4
5
6
7
8
9
10
11
12
13
1. 외부 스키마 (External Schema) = 사용자 뷰
   - 개별 사용자/프로그래머가 보는 DB의 부분적 논리 구조
   - 하나의 DB에 여러 외부 스키마 존재 가능
   - View를 통해 구현

2. 개념 스키마 (Conceptual Schema) = 논리 스키마
   - 조직 전체의 DB 구조를 기술
   - 엔티티, 데이터 타입, 관계, 제약 조건, 접근 권한 정의
   - 하나의 DB에 하나의 개념 스키마만 존재

3. 내부 스키마 (Internal Schema) = 물리 스키마
   - 물리적 저장 장치에서의 실제 저장 방법
   - 인덱스, 레코드 형식, 저장 순서, 압축 등

데이터 독립성

논리적 데이터 독립성

1
2
3
4
5
6
7
외부 스키마 ←→ 개념 스키마 사이의 독립성

- 개념 스키마가 변경되어도 외부 스키마는 영향받지 않음
- 예: 테이블에 컬럼 추가 → 기존 View는 변경 불필요

개념/외부 매핑 (Conceptual/External Mapping)
→ 외부 스키마의 각 항목이 개념 스키마의 어떤 부분에 대응되는지 정의

물리적 데이터 독립성

1
2
3
4
5
6
7
개념 스키마 ←→ 내부 스키마 사이의 독립성

- 내부 스키마가 변경되어도 개념 스키마는 영향받지 않음
- 예: 인덱스 추가/삭제 → 테이블 구조는 변경 불필요

개념/내부 매핑 (Conceptual/Internal Mapping)
→ 개념 스키마의 각 항목이 내부 스키마의 어떤 부분에 대응되는지 정의

독립성 비교

구분논리적 독립성물리적 독립성
매핑외부-개념개념-내부
변경 대상개념 스키마 변경내부 스키마 변경
영향 없는 대상외부 스키마, 응용 프로그램개념 스키마, 외부 스키마
구현 난이도어려움상대적으로 쉬움
예시컬럼 추가/삭제인덱스 변경, 저장 방식 변경

데이터 모델

데이터 모델의 분류

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. 개념적 데이터 모델 (Conceptual)
   - 현실 세계를 추상화하여 표현
   - ER 모델 (Entity-Relationship Model)
   - 사용자의 관점

2. 논리적 데이터 모델 (Logical)
   - DBMS에 의존하는 논리적 구조
   ├── 관계 데이터 모델 (Relational) → 테이블
   ├── 계층 데이터 모델 (Hierarchical) → 트리
   ├── 네트워크 데이터 모델 (Network) → 그래프
   └── 객체지향 데이터 모델 (Object-Oriented)

3. 물리적 데이터 모델 (Physical)
   - 실제 저장 장치에서의 데이터 표현
   - 레코드 구조, 접근 경로 등

데이터 모델의 구성 요소

1
2
3
4
5
데이터 모델 = 구조 (Structure) + 연산 (Operation) + 제약 조건 (Constraint)

- 구조: 데이터의 정적 성질 (논리적 구조)
- 연산: 데이터의 동적 성질 (CRUD 등)
- 제약 조건: 데이터의 논리적 제약

데이터베이스 언어

SQL의 분류

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-- DDL (Data Definition Language): 스키마 정의
CREATE TABLE Student (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    dept VARCHAR(30)
);
ALTER TABLE Student ADD COLUMN grade INT;
DROP TABLE Student;

-- DML (Data Manipulation Language): 데이터 조작
SELECT name FROM Student WHERE dept = 'CS';
INSERT INTO Student VALUES (1, '홍길동', 'CS');
UPDATE Student SET dept = 'EE' WHERE id = 1;
DELETE FROM Student WHERE id = 1;

-- DCL (Data Control Language): 권한 제어
GRANT SELECT ON Student TO user1;
REVOKE SELECT ON Student FROM user1;

-- TCL (Transaction Control Language): 트랜잭션 제어
COMMIT;
ROLLBACK;
SAVEPOINT sp1;

데이터베이스 시스템 아키텍처

중앙 집중식 vs 분산

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. 중앙 집중식 (Centralized)
   - 하나의 서버에 DB 존재
   - 관리 용이, 단일 장애점 (SPOF)

2. 클라이언트-서버 (Client-Server)
   - 2-tier: 클라이언트 ←→ DB 서버
   - 3-tier: 클라이언트 ←→ 응용 서버 ←→ DB 서버
   ┌──────────┐    ┌──────────┐    ┌──────────┐
   │ Client   │←──→│ App      │←──→│ DB       │
   │ (Web)    │    │ Server   │    │ Server   │
   └──────────┘    └──────────┘    └──────────┘

3. 분산 (Distributed)
   - 여러 노드에 DB 분산 저장
   - 가용성 높지만 일관성 유지 어려움

질의 처리 과정

1
2
3
4
5
6
7
8
9
10
11
SQL 질의
  ↓
구문 분석 (Parsing)
  ↓
최적화 (Optimization)
  ↓
실행 계획 생성 (Execution Plan)
  ↓
실행 (Execution)
  ↓
결과 반환

핵심 정리

1
2
3
4
5
6
1. DB = 통합, 저장, 공유, 운영 데이터
2. DBMS = 정의 + 조작 + 제어 기능
3. 3단계 스키마 = 외부 / 개념 / 내부
4. 데이터 독립성 = 논리적 독립성 + 물리적 독립성
5. 파일 시스템 → DBMS: 중복 최소화, 독립성, 동시성, 무결성
6. 데이터 모델 = 구조 + 연산 + 제약 조건

면접 포인트

자주 나오는 질문

Q1. 데이터베이스와 파일 시스템의 차이는?

  • 파일 시스템: 데이터 중복, 비일관성, 동시 접근 어려움
  • DBMS: 중복 최소화, 일관성 유지, 동시성 제어, 보안, 회복 지원
  • DBMS는 추가적인 오버헤드가 있지만, 데이터 무결성과 관리 효율성에서 우위

Q2. 3단계 스키마 구조와 데이터 독립성을 설명하라.

  • 외부(사용자 뷰) → 개념(전체 논리) → 내부(물리 저장)
  • 논리적 독립성: 개념 변경 → 외부 영향 없음
  • 물리적 독립성: 내부 변경 → 개념 영향 없음
  • 매핑(Mapping)을 통해 스키마 간 변환

Q3. 스키마와 인스턴스의 차이는?

  • 스키마 (Schema): 데이터베이스의 구조 정의 (메타데이터). 자주 변경되지 않음
  • 인스턴스 (Instance): 특정 시점에 DB에 저장된 실제 데이터. 수시로 변경
  • 스키마 = 설계도, 인스턴스 = 현재 상태

Q4. DBA의 역할은?

  • 스키마 정의 및 변경
  • 접근 권한 관리 (보안)
  • 무결성 제약 조건 관리
  • 백업/회복 전략 수립
  • 성능 모니터링 및 튜닝

Q5. 데이터 모델의 종류를 설명하라.

  • 개념적 모델: ER 모델 (현실 세계 → 추상화)
  • 논리적 모델: 관계형(테이블), 계층형(트리), 네트워크형(그래프)
  • 물리적 모델: 실제 저장 구조 (레코드 형식, 접근 경로)
  • 현재 가장 널리 사용되는 것은 관계형 데이터 모델 (RDBMS)
This post is licensed under CC BY 4.0 by the author.