데이터베이스 관리 시스템(DBMS)

Yuno·2025년 3월 22일

데이터 사이언스

목록 보기
8/25

1️⃣ DBMS (Database Management System)

  • 데이터베이스를 생성, 관리, 운영할 수 있도록 돕는 소프트웨어
  • 기존 파일 시스템의 문제점(중복성, 종속성) 을 해결하기 위해 개발됨
  • 대표적인 DBMS : MySQL, PostgreSQL, Oracle, Microsoft SQL Server, MongoDB 등

2️⃣ DBMS 의 주요 기능

기능설명
데이터 정의(DDL: Data Definition Language)데이터의 구조 및 형식 정의 (테이블 생성, 변경 등)
데이터 조작(DML: Data Manipulation Language)데이터의 삽입, 삭제, 수정, 조회
데이터 제어 (DCL: Data Control Language)보안, 무결성, 동시성 관리
트랜잭션 관리 (TCL: Transaction Control Language)데이터의 정확성 및 일관성 유지

3️⃣ DBMS의 주요 장점과 단점

✨ DBMS의 장점

  • 데이터 중복 최소화 → 동일한 데이터를 여러 곳에 저장하지 않음
  • 데이터 무결성 유지 → 데이터가 논리적으로 일관되도록 관리
  • 데이터 독립성 제공 → 데이터와 응용 프로그램을 분리
  • 데이터 동시 공유 가능 → 여러 사용자가 동시에 접근 가능
  • 데이터 보안 강화 → 권한 관리 및 접근 제어 기능

✨ DBMS의 단점

  • 초기 비용이 높음 → 하드웨어 및 소프트웨어 구축 비용 발생
  • 운영 및 유지보수 필요 → 데이터 관리에 대한 전문가 필요
  • 중앙 집중식 관리로 인한 보안 위험 → 해킹 시 전체 데이터 유출 가능

4️⃣ DBMS의 발전 과정

세대특징대표적인 DBMS
1세대 (계층형 DBMS)계층 구조 (트리 형태)IMS, IDS
2세대 (관계형 DBMS, RDBMS)테이블(표) 기반의 데이터 저장MySQL, PostgreSQL, Oracle, MS SQL
3세대 (객체지향 DBMS, OODBMS)객체(Object) 기반 데이터 모델MongoDB, db4o

5️⃣ 관계형 DBMS (RDBMS) 와 SQL

✨ 관계형 DBMS 의 기본 개념

데이터를 테이블 형식(표) 으로 저장하고, 각각의 테이블을 키(KEY) 로 연결하여 관리

  • 예시

⭐️ 학생 테이블

학번이름학과
251111홍길동컴퓨터공학
251112김영희경영학

⭐️ 과목 테이블

과목코드과목명담당교수
CS101데이터베이스박교수
MG102마케팅이교수

6️⃣ SQL (Structured Query Language)

✨ SQL 의 종류

SQL 분류기능주요 명령어
DDL (데이터 정의 언어)테이블 및 구조 정의CREATE, ALTER, DROP
DML (데이터 조작 언어)데이터 삽입, 수정, 삭제, 조회SELECT, INSERT, UPDATE, DELETE
DCL (데이터 제어 언어)데이터 접근 권한 관리GRANT, REVOKE
TCL (트랜잭션 제어 언어)데이터 변경의 트랜잭션 처리COMMIT, ROLLBACK, SAVEPOINT

📌 SQL 예제

-- 학생 테이블 생성 (DDL)
CREATE TABLE students (
  student_id INT PRIMARY KEY,
  name VARCHAR(50),
  department VARCHAR(50)
);

-- 학생 테이블 삽입 (DML)
INSERT INTO students (student_id, name, department)
VALUES (251111, '홍길동', '컴퓨터공학');

-- 학생 정보 조회 (DML)
SELECT * FROM students WHERE department = '컴퓨터공학';

-- 학생 정보 수정 (DML)
UPDATE students SET name = '김영희' WHERE student_id = 251111;

-- 학생 정보 삭제 (DML)
DELETE FROM students WHERE student_id = 251111;

7️⃣ SQL의 실행 과정 (DBMS 내부 흐름)

  • 사용자가 SQL 문 실행
  • SQL 문이 Query Parser 로 전달됨 → 구문 분석
  • SQL Optimizer 가 실행 계획 수립 → 최적화된 실행 경로 설정
  • Query Executor 가 SQL 실행 → 데이터 저장소에서 검색
  • 사용자에게 결과 반환

8️⃣ 트랜잭션

  • 데이터베이스에서 여러 작업을 하나의 단위로 묶어 처리하는 것
  • ACID 특성을 만족해야 함

✨ 트랜잭션의 4가지 특징 (ACID)

특성설명
Atomicity (원자성)트랜잭션의 모든 작업이 성공적으로 완료되거나, 전부 실패해야 함
Consistency (일관성)트랜잭션이 완료되면 데이터의 정합성이 유지 되어야 함
Isolation (고립성)트랜잭션 간의 작업이 서로 간섭하지 않아야 함
Durability (지속성)트랜잭션이 성공적으로 완료되면 데이터가 영구적으로 저장되어야 함

📌 트랜잭션 SQL 예제

-- 트랜잭션 시작
BEGIN;

-- 데이터 삽입
INSERT INTO students (student_id, name, department)
VALUES (251113, '이순신', '해양학');

-- 오류 발생 시 롤백 (데이터 원래대로 되돌림)
ROLLBACK;

-- 변경 사항 확정 (데이터 저장)
COMMIT;

9️⃣ DBMS 아키텍처 (MySQL 구조)

✨ MySQL 내부 구조

  • SQL 처리 엔진
    • SQL 문을 분석하고 실행하는 역할
    • Parser (파서) : SQL 문법 확인
    • Optimizer (옵티마이저) : 최적 실행 계획 수립
    • Execution Engine (실행 엔진) : SQL 실행
  • 스토리지 엔진
    • 데이터를 물리적으로 저장하는 엔진
    • 대표적인 스토리지 엔진 : InnoDB, MyISAM

🔟 프로그래밍 언어에서 DBMS 연동

📌 Python 에서 MySQL 연결 예제

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='test_db',
    charset='utf8'
)

cursor = conn.cursor()

cursor.execute("SELECT * FROM students")

rows = cursor.fetchall()
for row in rows:
  print(row)
  
conn.close()

💡 코드에서 DB와 연결하여 SQL 실행 가능
💡 쿼리를 사용하여 데이터 삽입, 삭제, 조회 가능


🚀 정리

✅ DBMS 는 데이터베이스를 관리하는 시스템
✅ 파일 시스템보다 중복 제거, 보안성, 일관성 등의 장점이 있음
✅ 관계형 DBMS (RDBMS) 는 테이블을 활용하여 데이터 저장
✅ SQL을 사용하여 데이터를 정의(DDL), 조작(DML), 제어(DCL), 관리(TCL) 가능
✅ 트랜잭션은 ACID 원칙을 준수하여 데이터의 신뢰성을 보장
✅ DBMS 는 SQL 처리 엔진 + 스토리지 엔진으로 구성됨
✅ Python, Java 등 프로그래밍 언어에서 DBMS 연동 가능

profile
Hello World

0개의 댓글