1. 데이터베이스의 역할
데이터베이스는 데이터를 체계적으로 저장하고 관리하여 사용자의 요구에 따라 정보를 제공하는 시스템이다.
- 데이터 중복을 최소화하고, 데이터 무결성과 일관성을 보장
- 다중 사용자가 데이터를 공유하고 동시 접근 가능
- 데이터를 안전하게 저장하고 보안 관리 가능
2. 데이터 단위
데이터의 크기는 다음과 같은 단위로 구분된다.
단위 크기
bit | 데이터의 최소 단위 (0 또는 1) |
byte (B) | 8bit (한 개의 문자) |
kilobyte (KB) | 1,024 byte |
megabyte (MB) | 1,024 KB |
gigabyte (GB) | 1,024 MB |
terabyte (TB) | 1,024 GB |
petabyte (PB) | 1,024 TB |
exabyte (EB) | 1,024 PB |
zettabyte (ZB) | 1,024 EB |
yottabyte (YB) | 1,024 ZB |
3. 데이터 검색과 웹 기반 정보 시스템 구성
데이터 검색
- 데이터베이스에서 사용자가 원하는 데이터를 효율적으로 찾는 과정
- **SQL(Structured Query Language)**을 사용하여 검색 수행 (SELECT 문 사용)
웹 기반 정보 시스템 구성
웹 시스템은 계층적인 구조로 이루어지며, 다음과 같은 흐름을 가진다.
L4 스위치 <-> Web 서버 <-> WAS (Web Application Server) <-> Database Server
- L4 스위치: 네트워크 트래픽을 부하 분산하는 장치
- Web 서버: 클라이언트(웹 브라우저)의 요청을 처리하는 서버 (예: Apache, Nginx)
- WAS(Web Application Server): 웹 서버와 데이터베이스 간의 비즈니스 로직을 처리하는 서버 (예: Tomcat, Spring Boot)
- DB 서버: 데이터 저장 및 관리 (예: MySQL, PostgreSQL, Oracle DB)
4. 데이터 관리의 역사
데이터 관리 방식은 컴퓨터 기술 발전과 함께 지속적으로 변화해왔다.
연도 주요 변화
1946년 | 최초의 컴퓨터 개발 |
1956년 | 자기 디스크(하드디스크) 저장장치 등장 |
1960년대 | 파일 처리 시스템 (File Processing System) 사용 |
1970년대 | IBM에서 SQL(Structured Query Language) 발표 |
1980년대 | 데이터 웨어하우스(Data Warehouse) 개념 등장 |
1990년대 | 인터넷과 웹(Web) 기술 발전, 웹 기반 데이터 관리 활성화 |
2000년대 중반 | 클라우드 컴퓨팅(Cloud Computing) 도입 |
2000년대 후반 | 빅데이터(Big Data) 분석 기술 발전 |
2015년 이후 | 사물인터넷(IoT)과 인공지능(AI)을 활용한 데이터 분석 기술 활성화 |
5. 전통적 데이터 관리 방식 - 파일 처리 시스템
파일 처리 시스템 (File Processing System)
- 데이터를 개별적인 파일로 저장하고, 응용 프로그램이 직접 처리하는 방식
- 데이터를 관리하기 위한 별도의 DBMS 없이 운영
파일 처리 시스템의 특징
- 단순한 데이터 저장 및 관리 방식
- 응용 프로그램 중심의 데이터 관리
- 데이터 중복 발생 가능
- 데이터 무결성(Integrity) 및 보안 유지 어려움
파일 처리 시스템의 단점
단점 설명
데이터 중복 및 불일치 | 동일한 데이터가 여러 파일에서 관리됨 |
데이터 독립성 부족 | 데이터 구조 변경 시 프로그램도 수정 필요 |
무결성 훼손 가능성 | 데이터의 일관성을 유지하기 어려움 |
동시 접근 문제 | 여러 사용자가 동시에 접근할 경우 데이터 충돌 발생 |
→ 데이터베이스 관리 시스템(DBMS)이 등장하여 이러한 문제를 해결
6. 데이터베이스(DBMS) 개념과 특징
데이터베이스 (Database)
- 특정 기관이나 시스템에서 사용하는 데이터의 집합
- 데이터를 중앙 집중적으로 저장 및 관리
DBMS (Database Management System)
- 데이터베이스를 효율적으로 저장, 검색, 관리하는 소프트웨어 시스템
- 데이터 중복 최소화, 무결성 보장, 보안성 강화
데이터베이스의 특징
- 자기 기술성(Self-describing): 메타 데이터(metadata)를 포함하여 데이터 자체를 설명
- 데이터와 프로그램의 독립성: 응용 프로그램이 데이터 구조 변경과 무관하게 동작 가능
- 다중 뷰 제공: 사용자의 요구에 따라 서로 다른 데이터 뷰(View) 제공
- 데이터 공유 및 동시 트랜잭션 처리 가능
7. DBMS의 3단계 구조
DBMS는 데이터의 독립성을 확보하기 위해 3단계 구조로 구성된다.
단계 설명
외부 단계 (External Level, 외부) | 사용자가 데이터를 어떻게 볼 것인지 정의 (예: 특정 학생의 성적만 조회) |
외부-개념 사상 과정에서 논리적 데이터 독립성이 확보 | |
논리적 단계 (Logical Level, 개념) | 테이블, 관계(Relation), 속성(Attribute) 등 전체 데이터 구조 정의 |
개념-내부 사상을 통해 물리적 데이터 독립성이 확보 | |
물리적 단계 (Physical Level, 내부) | 데이터가 실제로 디스크에 저장되는 방식 |
8. 트랜잭션 (Transaction)과 ACID 원칙
트랜잭션이란?
트랜잭션은 데이터베이스에서 하나의 논리적인 작업을 수행하는 일련의 명령 집합이다.
트랜잭션의 ACID 원칙
원칙 설명
원자성 (Atomicity) | 모든 작업이 완전히 수행되거나, 전혀 수행되지 않아야 함 |
일관성 (Consistency) | 트랜잭션 실행 전후의 데이터베이스 상태가 일관성을 유지해야 함 |
격리성 (Isolation) | 트랜잭션 실행 중 다른 트랜잭션이 영향을 미치지 않도록 해야 함 |
지속성 (Durability) | 트랜잭션이 완료된 후 변경된 데이터는 영구적으로 저장됨 |
트랜잭션 실행 예시
START TRANSACTION; -- 트랜잭션 시작
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
COMMIT; -- 변경사항 저장 (트랜잭션 완료)
- COMMIT: 데이터 변경 사항을 영구 저장
- ROLLBACK: 오류 발생 시 트랜잭션 이전 상태로 복구
9. 데이터베이스 언어 (SQL)
1) DDL (Data Definition Language) - 데이터 정의 언어
- 데이터베이스 객체(테이블, 인덱스 등) 생성 및 수정
- 예제:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(100),
age INT
);
2) DML (Data Manipulation Language) - 데이터 조작 언어
- 데이터 검색, 삽입, 수정, 삭제 수행
- 예제:
SELECT * FROM students WHERE age > 20;
INSERT INTO students (id, name, age) VALUES (1, 'Alice', 22);
데이터베이스 시스템 아키텍처 (Database System Architecture)
데이터베이스 시스템 아키텍처는 데이터 저장, 처리, 접근 방식에 따라 다양한 구조로 설계될 수 있다.
주요 아키텍처로는 중앙 집중 방식, 클라이언트-서버 방식, 분산 데이터베이스 방식 등이 있다.
1. 중앙 집중 방식 (Centralized Database System)
DBMS 서버가 모든 데이터를 중앙에서 관리하고, 사용자(클라이언트)가 원격으로 접속하여 데이터를 처리하는 방식
특징
- 단일 서버가 모든 데이터 저장 및 처리 담당
- 사용자는 원격 터미널(Thin Client)로 접속하여 데이터 요청 및 조회 수행
- 모든 데이터가 하나의 중앙 서버에서 유지 관리됨
장점
데이터 일관성(Consistency) 보장
보안 관리 용이 (단일 서버에서 접근 제어)
유지보수가 간편 (모든 데이터가 한 곳에 저장)
단점
중앙 서버 과부하 발생 가능 (동시 접속 사용자 증가 시 성능 저하)
서버 장애 발생 시 전체 시스템 마비
확장성 부족 (데이터 증가 시 성능 저하 가능)
적용 사례
소규모 시스템 및 단일 서버 환경 (대학 학사관리 시스템, 소규모 ERP 시스템)
2. 클라이언트-서버 방식 (Client-Server Architecture)
데이터베이스 서버와 클라이언트(사용자) 간에 네트워크를 통해 데이터가 처리되는 방식
- 서버는 데이터 저장과 처리를 담당하고,
- 클라이언트는 데이터 요청 및 결과 표시 역할을 수행
구성 방식
2계층 (Two-Tier) 클라이언트-서버 구조
사용자 애플리케이션 (Client) <--> DBMS (Server)
- 클라이언트가 DBMS와 직접 연결되어 SQL 요청을 처리
3계층 (Three-Tier) 클라이언트-서버 구조
사용자 애플리케이션 (Client) <--> 애플리케이션 서버 <--> DBMS (Server)
- **애플리케이션 서버(Application Server)**를 중간 계층으로 두어 비즈니스 로직 수행
- 웹 기반 애플리케이션에서 많이 사용됨
특징
- 클라이언트는 데이터 요청 및 사용자 인터페이스(UI) 처리
- 서버는 데이터 저장 및 관리를 담당
- 클라이언트와 서버 간 네트워크를 통해 통신
장점
클라이언트 성능 향상 (데이터 저장과 처리를 분리하여 부담 감소)
부하 분산 가능 (다중 클라이언트가 서버를 공유)
소프트웨어 유지보수 용이 (서버에서 일괄 업데이트 가능)
보안성 강화 가능 (서버에서 중앙 관리)
단점
네트워크 속도에 영향을 받음 (서버와 클라이언트 간 대량 데이터 전송 시 지연 가능)
서버 장애 시 다수의 클라이언트 영향받음
설치 및 초기 설정이 중앙 집중 방식보다 복잡할 수 있음
적용 사례
대규모 기업 시스템, 웹 기반 애플리케이션 (전자상거래, 은행 시스템, ERP, CRM)
3. 분산 데이터베이스 시스템 (Distributed Database System)
데이터베이스가 여러 서버에 분산 저장되며, 각 지역에서 독립적으로 운영되는 구조
특징
- 데이터가 여러 서버에 분산되어 저장됨
- 중앙 서버 없이 여러 노드(Node)가 협력하여 데이터 관리
- 네트워크를 통해 데이터를 동기화(Synchronization) 및 복제(Replication) 가능
장점
확장성(Scalability) 우수 (데이터 증가 시 서버 추가 가능)
성능 향상 (여러 서버에서 분산 처리)
데이터 중복 저장으로 장애 대비 가능
단점
데이터 동기화 문제 발생 가능
설정 및 유지보수 복잡
네트워크 비용 증가
적용 사례
클라우드 데이터베이스 (AWS RDS, Google Cloud SQL)
글로벌 서비스 (페이스북, 넷플릭스, 유튜브 등)
4. 데이터베이스 시스템 아키텍처 비교
비교 항목 중앙 집중 방식 클라이언트-서버 방식 분산 데이터베이스 방식
구조 | 단일 서버 | 클라이언트-서버 네트워크 연결 | 여러 서버에 분산 저장 |
확장성 | 낮음 | 중간 | 높음 (노드 추가 가능) |
성능 | 서버 부하 집중 | 부하 분산 가능 | 데이터 분산 처리로 성능 향상 |
데이터 접근 | 중앙 서버에서 직접 제공 | 클라이언트가 서버에 요청 | 각 지역 서버에서 독립적으로 처리 |
보안성 | 높음 (중앙 집중 관리) | 중간 | 분산된 보안 관리 필요 |
설정 및 유지보수 | 단순 | 상대적으로 복잡 | 매우 복잡 |