본문 바로가기
AI 외부 활동🧠/커널아케데미 부트캠프

[핵심] 컴퓨터공학개론 5단원 – 데이터베이스 기초

by Sports Entrepreneur 2025. 6. 27.

1. 데이터베이스(Database)란?

  • 데이터베이스는 논리적으로 조직된 데이터의 집합으로, 여러 사용자가 데이터를 공유하고, 효율적이며 안정적으로 접근할 수 있도록 도와주는 시스템이다.
  • 데이터의 저장, 검색, 갱신, 삭제 등의 작업을 **DBMS(Database Management System)**가 관리함.

DBMS 주요 기능

  • 데이터 정의 (DDL: 구조 생성, 수정, 삭제)
  • 데이터 조작 (DML: 삽입, 수정, 삭제, 조회)
  • 보안, 무결성, 동시성 제어, 백업 복구 등 제공

2. 데이터베이스의 구성요소

구성 요소설명
데이터 실제 저장되는 값
하드웨어 저장 매체, 서버 등 인프라
소프트웨어 DBMS, OS 등
사용자 최종 사용자, 관리자(DBA), 프로그래머 등
 

3. DBMS의 특징

  • 데이터 독립성: 응용 프로그램과 데이터 구조를 분리
  • 데이터 무결성: 정확하고 일관된 데이터 유지
  • 동시성 제어: 여러 사용자의 동시 작업을 안전하게 처리
  • 데이터 보안: 접근 권한에 따라 데이터 보호
  • 데이터 중복 최소화: 저장 공간 절약, 일관성 유지

4. 데이터 모델과 스키마

  • 데이터 모델: 데이터 구조를 정의하는 방식
    • 개념적 모델: 사용자 관점 (ER 모델 등)
    • 논리적 모델: DBMS 관점 (관계 모델 등)
    • 물리적 모델: 실제 저장 형식
  • 스키마(Schema): 데이터베이스의 구조를 정의한 청사진
    • 예: 테이블 이름, 속성, 데이터 타입, 제약조건 등

5. SQL의 기본 구조

  • SQL (Structured Query Language): 데이터베이스와의 상호작용 언어
구분설명예시
DDL 데이터 정의어 CREATE, DROP, ALTER
DML 데이터 조작어 SELECT, INSERT, UPDATE, DELETE
DCL 제어어 GRANT, REVOKE
TCL 트랜잭션 제어어 COMMIT, ROLLBACK, SAVEPOINT
 

예시

-- 테이블 생성
CREATE TABLE student (
  id INT PRIMARY KEY,
  name VARCHAR(100),
  age INT
);

-- 데이터 삽입
INSERT INTO student VALUES (1, '홍길동', 20);

-- 조회
SELECT * FROM student WHERE age > 18;

6. 트랜잭션(Transaction)과 ACID

  • 트랜잭션: 하나의 논리적 작업 단위로, 모두 성공하거나 모두 실패해야 함
  • ACID 특성
    • Atomicity(원자성): 전부 수행되거나 전부 취소
    • Consistency(일관성): 무결성 유지
    • Isolation(고립성): 다른 작업 간 영향 방지
    • Durability(지속성): 작업 완료 후 시스템 장애에도 데이터 보존

트랜잭션 제어 예

BEGIN;
UPDATE student SET age = age + 1;
COMMIT;
-- 또는 ROLLBACK;

7. 정규화(Normalization)

  • 중복 제거, 데이터 일관성 유지, 데이터 구조 간결화를 위한 기법
단계설명
제1정규형(1NF) 반복되는 그룹 제거
제2정규형(2NF) 부분 함수 종속 제거
제3정규형(3NF) 이행적 함수 종속 제거
 

과도한 정규화는 성능 저하를 야기할 수 있으므로, 실무에서는 반정규화도 고려함


8. 실습 포인트

  • MySQL, PostgreSQL 등 오픈소스 DB 활용
  • CLI 또는 DBeaver, Workbench 등 GUI 툴 사용
  • 테이블 생성 → 데이터 삽입 → 쿼리 실습 → 트랜잭션 실습 순서 추천

9. 학습 요약

  • 데이터베이스는 구조적 데이터를 관리하고 여러 사용자와 공유하는 시스템이다.
  • SQL을 통해 테이블 정의, 데이터 조작, 보안 제어, 트랜잭션 관리가 가능하다.
  • ACID 특성과 정규화를 통해 데이터 무결성과 효율성을 확보한다.
  • 실습을 통해 SQL 문법, 트랜잭션, 제약조건 등을 익히는 것이 중요하다.