컴퓨터과학 챕터 6 약 3분

데이터베이스 기초 — 데이터를 체계적으로 관리하는 법

O
OIYO 편집부 기여자
6/10

데이터베이스란

데이터를 구조화하여 저장·관리·검색할 수 있는 시스템입니다.

DBMS (Database Management System):
→ 데이터베이스를 관리하는 소프트웨어
→ Oracle, MySQL, PostgreSQL, MS SQL Server, SQLite

왜 파일이 아닌 DB를 쓰는가:
→ 동시 접근 처리 (여러 사용자 동시 사용)
→ 데이터 무결성 보장
→ 빠른 검색 (인덱스)
→ 트랜잭션으로 원자성 보장

관계형 데이터베이스 (RDBMS)

핵심 개념:
테이블: 행(레코드) + 열(필드/속성)
기본 키(PK): 각 행을 유일하게 식별
외래 키(FK): 다른 테이블의 PK 참조 → 관계 표현

예: 주문 테이블
주문ID(PK) | 고객ID(FK) | 상품ID(FK) | 주문일 | 금액
001       | C001       | P005      | 2026-01-01 | 50,000

SQL 기초

-- 데이터 조회 (SELECT)
SELECT 이름, 나이 FROM 고객
WHERE 나이 >= 30
ORDER BY 나이 DESC
LIMIT 10;

-- 데이터 삽입 (INSERT)
INSERT INTO 고객 (이름, 나이, 이메일)
VALUES ('홍길동', 30, 'hong@example.com');

-- 데이터 수정 (UPDATE)
UPDATE 고객
SET 나이 = 31
WHERE 고객ID = 'C001';

-- 데이터 삭제 (DELETE)
DELETE FROM 고객
WHERE 고객ID = 'C001';

-- 테이블 조인 (JOIN)
SELECT 주문.주문ID, 고객.이름, 주문.금액
FROM 주문
INNER JOIN 고객 ON 주문.고객ID = 고객.고객ID
WHERE 주문.금액 > 100000;

정규화 (Normalization)

중복을 줄이고 데이터 무결성을 높이는 설계 원칙:

제1정규형 (1NF): 각 컬럼은 원자값만 (배열 금지)
제2정규형 (2NF): 부분 함수 종속 제거
제3정규형 (3NF): 이행 함수 종속 제거

예: 비정규화된 주문 테이블
주문ID | 고객명 | 고객주소 | 상품명 | 상품가격
→ 고객 정보와 상품 정보를 각자 테이블로 분리

정규화의 장점: 중복 제거, 일관성
역정규화의 장점: 조인 줄여 읽기 성능 향상 (트레이드오프)

인덱스 (Index)

목적: 특정 컬럼 빠른 탐색 (도서관 색인과 같음)

B-Tree 인덱스 (가장 일반적):
→ 균형 잡힌 트리 구조
→ 탐색·삽입·삭제: O(log n)

인덱스 사용 시점:
→ WHERE 절에 자주 쓰이는 컬럼
→ JOIN에 사용되는 외래키
→ ORDER BY에 사용되는 컬럼

인덱스 주의:
→ 쓰기(INSERT/UPDATE/DELETE) 성능 저하
→ 디스크 공간 추가 사용
→ 모든 컬럼에 인덱스 = 역효과

트랜잭션 (Transaction) — ACID

원자성 (Atomicity):
→ 모두 성공 or 모두 실패 (부분 성공 없음)
→ 은행 이체: 출금 성공 + 입금 성공 or 둘 다 취소

일관성 (Consistency):
→ 트랜잭션 전후 데이터 무결성 유지
→ 총 잔액은 변화 없음

격리성 (Isolation):
→ 동시 실행 트랜잭션들이 서로 영향 최소화

지속성 (Durability):
→ 커밋된 데이터는 장애 후에도 유지

SQL 트랜잭션:
BEGIN;
UPDATE 계좌 SET 잔액 = 잔액 - 100000 WHERE 계좌ID = 'A';
UPDATE 계좌 SET 잔액 = 잔액 + 100000 WHERE 계좌ID = 'B';
COMMIT;  -- 또는 ROLLBACK (오류 시)

NoSQL vs 관계형 DB

관계형 DB: 정형 데이터, 스키마 고정, 복잡한 관계, ACID
NoSQL: 비정형/반정형, 유연한 스키마, 수평 확장

NoSQL 유형:
문서 DB: MongoDB — JSON 문서 저장 (유연한 스키마)
키-값 DB: Redis — 캐시, 세션 저장 (초고속)
컬럼 DB: Cassandra — 대규모 시계열 데이터
그래프 DB: Neo4j — 소셜 네트워크, 추천 시스템

선택 기준:
→ 데이터 구조가 명확하고 관계 복잡: RDBMS
→ 빠른 확장, 유연한 스키마: NoSQL
→ 실무: 하이브리드 사용 일반적

핵심 암기 포인트

SQL CRUD: SELECT(조회)·INSERT(삽입)·UPDATE(수정)·DELETE(삭제) ACID: 원자성·일관성·격리성·지속성 — 트랜잭션의 4가지 보장 인덱스: 읽기 O(log n), 쓰기 성능 저하 트레이드오프 NoSQL: 유연한 스키마, 수평 확장, 비정형 데이터에 적합

O

OIYO 편집부

Content Editor

지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.