1. 기본
1.1 DB란?
- DB(Database)는 데이터를 구조적으로 저장하고 관리하기 위한 체계적인 저장소
- 단순한 데이터의 집합이 아닌, 여러 사용자가 동시에 접근하고 데이터를 효율적으로 처리할 수 있도록 구성된 시스템
- 데이터를 저장하는 그릇 역할
- 반복 사용 가능, 검색 및 수정 용이
- 대표적인 예: 학생 명단, 상품 재고, 은행 거래 기록 등
※ RDB(Relational Database, 관계형 데이터베이스) : 표(테이블) 형태로 데이터를 저장하며, 각 테이블은 열(Column)과 행(Row)으로 구성됨. (e.x. MySQL, Oracle, PostgreSQL)
1.2. 용어
- 데이터(Data): 의미 있는 정보의 단위 (예: 이름, 전화번호)
- DBMS(Database Management System): 데이터베이스를 관리하는 소프트웨어. 사용자의 요청에 따라 데이터를 저장, 검색, 수정, 삭제함. (예: Oracle, MySQL)
- 테이블(Table): 데이터를 저장하는 구조. 행(Row)과 열(Column)로 구성됨.
- 쿼리(Query): DB에게 데이터를 요청하는 명령어. SQL을 사용하여 작성함.
- 스키마(Scheme) : 테이블이 어떠한 구성으로 되어 있는지, 어떤 정보를 가지고 있는지에 대한 기본적인 구조를 정의
※ 관계형 데이터 모델과 DB 용어의 대응

1.3. ACID 원칙
- ACID는 데이터베이스 트랜잭션이 안전하게 처리되기 위한 4가지 기본 원칙을 의미한다.
- 트랜잭션(Transaction)이란 하나의 작업 단위를 의미하며, DB에서는 여러 작업이 하나로 묶여 모두 성공하거나 모두 실패해야 한다.
- A (Atomicity, 원자성)
- 트랜잭션의 모든 작업은 전부 수행되거나 전혀 수행되지 않아야 한다.
- 예: 송금 시 A의 돈이 빠지고 B에게 입금되는 과정은 둘 다 성공해야 함.
- C (Consistency, 일관성)
- 트랜잭션 수행 전과 후에 DB의 상태가 일관성을 유지해야 한다.
- 예: 외래키 제약조건, 데이터 타입 조건 등 규칙이 항상 지켜져야 함.
- I (Isolation, 고립성)
- 여러 트랜잭션이 동시에 실행될 때 서로 간섭하지 않아야 한다.
- 예: 동시에 송금하더라도 각 작업은 서로 영향을 미치지 않아야 함.
- D (Durability, 지속성)
- 트랜잭션이 완료되면, 시스템 장애가 발생해도 결과는 보존되어야 한다.
- 예: 전원이 꺼져도 DB는 완료된 트랜잭션의 결과를 기억해야 함.
1.4. 정규화