정보관리기술사/데이터베이스

데이터베이스 (DB) 개요

알로그 2025. 5. 19. 10:51
반응형

1. 데이터베이스 개요

● 데이터베이스란?

데이터베이스(Database)는 데이터를 효율적이고 체계적으로 저장하고 관리하는 시스템입니다. 수많은 데이터를 중복 없이 저장하며, 다양한 사용자들이 동시에 안전하게 데이터를 사용할 수 있게 도와줍니다.

Database

예: 은행의 고객정보, 계좌정보, 거래내역 등은 모두 데이터베이스에 저장되어 있고, 이를 여러 시스템이 동시에 안전하게 사용하는 구조입니다.


 

2. 데이터 모델링과 구조

● 데이터 모델링 계층 설명

  • 개념적 모델: 현실 세계를 추상화하여 데이터 구조를 표현합니다. ERD(Entity-Relationship Diagram)로 설계되며, 개체(Entity), 속성(Attribute), 관계(Relationship) 등으로 구성됩니다.
  • 논리적 모델: 개념 모델을 릴레이션(Relation)으로 구조화한 것입니다. 이 단계에서 정규화를 적용하여 이상현상(Anomaly)을 제거합니다.
  • 물리적 모델: 논리 모델을 DBMS가 이해할 수 있는 실제 테이블, 인덱스 등의 구조로 구현합니다.

● 스키마 3계층 구조

  • 외부 스키마: 사용자 관점에서 보는 뷰(View)
  • 개념 스키마: 데이터베이스 전체의 논리적 구조
  • 내부 스키마: 데이터의 물리적 저장 구조 (파일, 블록 등)

 

3. 정규화와 반정규화

● 정규화란?

정규화(Normalization)는 데이터의 중복을 최소화하고 무결성을 높이기 위한 테이블 구조 설계 방식입니다. 이를 통해 삽입, 삭제, 갱신 이상 현상을 방지합니다.

주요 단계

단계 설명 예시
1NF 원자값으로 분해 복수 전화번호 → 별도 행 분리
2NF 부분 함수 종속 제거 복합키의 일부분에만 종속된 속성 제거
3NF 이행 함수 종속 제거 비키 속성이 다른 비키 속성에 종속된 경우 제거
BCNF 결정자이지만 후보키가 아닌 것 제거 고급 정규형
 

● 반정규화란?

반정규화(Denormalization)는 정규화를 해제하거나 일부 중복을 허용하여 조회 성능을 향상시키는 기법입니다. 실무에서는 조인 성능 이슈, 보고서 최적화를 위해 자주 활용됩니다.


 

4. 트랜잭션과 동시성 제어

● 트랜잭션이란?

트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적 작업 단위입니다. 여러 SQL 문이 하나의 트랜잭션으로 묶이며, 모두 성공하거나 전부 실패해야 합니다.

● ACID 4대 특성

특성 설명
Atomicity (원자성) 전부 수행 또는 전부 무효
Consistency (일관성) 일관된 상태 유지
Isolation (고립성) 동시 실행 시 간섭 없음
Durability (지속성) 성공한 트랜잭션은 영구 반영
 

● 동시성 제어 기법

  • Lock 기반: Shared Lock, Exclusive Lock, 2PL(2단계 잠금)
  • 타임스탬프 순서 기법: 트랜잭션 타임스탬프를 기준으로 순서 결정
  • 낙관적/비관적 제어: 충돌 가능성 여부에 따라 접근 방식 다름

 

5. 무결성과 키 설계

● 무결성이란?

무결성 제약(Integrity Constraint)은 데이터의 정확성과 일관성을 보장하는 규칙입니다.

주요 무결성 제약

  • 개체 무결성: 기본키는 NULL이거나 중복될 수 없음
  • 참조 무결성: 외래키는 반드시 참조 대상이 존재해야 함
  • 도메인 무결성: 값이 허용된 범위 내에 있어야 함 (예: 나이는 0 이상)

● 키의 종류

  • 기본키(Primary Key): 각 행(Row)을 유일하게 식별하는 키
  • 예: 주민등록번호, 사번 등
  • 후보키(Candidate Key): 기본키로 사용할 수 있는 모든 키 후보들
  • 슈퍼키(Super Key): 유일하게 식별할 수 있는 속성 집합 (후보키 + 여분 속성 포함 가능)
  • 외래키(Foreign Key): 다른 테이블의 기본키를 참조하여 관계를 맺는 키
  • 예: 주문 테이블의 고객ID → 고객 테이블의 기본키 참조

 

6. 성능 최적화 설계

● 인덱스란?

인덱스(Index)는 데이터 검색 속도를 향상시키기 위한 자료구조입니다. 책의 목차와 유사한 개념입니다.

  • B-tree 인덱스: 범위 검색에 유리
  • Bitmap 인덱스: 중복도가 높은 컬럼에 유리

● 파티셔닝

파티셔닝(Partitioning)은 대용량 테이블을 논리적으로 분할하여 관리 성능을 높이는 기법입니다.

  • Range Partitioning: 날짜 등 연속 범위 기준
  • List Partitioning: 명확한 목록 기반
  • Hash Partitioning: 해시 함수를 이용한 균등 분할

● 조인 알고리즘

  • Nested Loop Join: 소규모 테이블에 적합
  • Sort-Merge Join: 양 테이블 정렬 후 병합
  • Hash Join: 메모리 기반 해시 테이블 생성

 

7. 데이터베이스 관리와 운영

● 백업과 복구

  • Full Backup: 전체 데이터를 백업
  • Incremental Backup: 변경된 데이터만 백업
  • Differential Backup: 마지막 전체 백업 이후 변경된 전체 내용 백업

복구 시에는 로그 파일(Redo/Undo), 체크포인트, 아카이브 로그 등이 활용됩니다.

● 보안과 접근제어

  • 인증(Authentication): 사용자 신원 확인
  • 인가(Authorization): 권한 부여 (RBAC 등)
  • 암호화: 저장 데이터 또는 전송 데이터 보호
  • 감사 로그(Audit Log): 모든 행위 기록

 

8. NoSQL과 최신 트렌드

● NoSQL이란?

NoSQL은 RDBMS의 한계를 극복하고 대규모 데이터 처리와 비정형 데이터를 저장하기 위해 등장한 시스템입니다.

유형 설명 예시
Document JSON 기반 문서 저장 MongoDB
Column 열 기반 스토리지 Cassandra
Key-Value 단순 키/값 저장 Redis
Graph 노드-엣지 구조 Neo4j
 

● CAP 이론

  • Consistency(일관성): 모든 노드가 같은 데이터 보장
  • Availability(가용성): 응답 가능성 유지
  • Partition Tolerance(분산 허용성): 네트워크 분할 시에도 동작 보장

→ 이 세 가지 중 두 가지를 보장하는 구조만 가능

● BASE 이론

NoSQL에서 전통적인 ACID 대신 사용

  • Basically Available
  • Soft state
  • Eventually consistent

 

9. 실무 연계 흐름도 (학습 로드맵)

데이터 모델링 → 정규화 → 무결성 → 키 설계 → 트랜잭션 → 동시성 제어 → 성능 최적화 → 보안 → 최신 기술 연계

 

반응형

'정보관리기술사 > 데이터베이스' 카테고리의 다른 글

RDBMS vs NoSQL  (1) 2025.05.12