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 문법, 트랜잭션, 제약조건 등을 익히는 것이 중요하다.
'AI 외부 활동🧠 > 커널아케데미 부트캠프' 카테고리의 다른 글
[핵심] 컴퓨터공학개론 7단원 – 자료구조와 알고리즘: 트리(Tree) & 그래프(Graph) (0) | 2025.06.27 |
---|---|
[핵심] 컴퓨터공학개론 6단원 – 자료구조 알고리즘 기초: 스택(Stack)과 큐(Queue) (0) | 2025.06.27 |
[핵심] 컴퓨터공학개론 4단원 – 네트워크 기초 (0) | 2025.06.27 |
[핵심] 컴퓨터공학개론 3단원 – 리눅스 기초 (0) | 2025.06.27 |
[핵심] 컴퓨터공학개론 2단원 – AWS 기초: EC2 인스턴스 생성 및 접속 (1) | 2025.06.27 |