반응형
1. 데이터베이스(DB) 란?
데이터베이스는 여러 사람이 동시에 사용해도 안전하고 빠르게 데이터를 저장·관리·조회할 수 있게 만든 시스템
2. 왜 데이터베이스를 써야 할까
파일 저장만 쓰면 안 되나?
- 동시 접속 시 충돌 발생
- 특정 데이터 찾기가 어려움
- 삭제/수정 추적(로그)이 없음
- 데이터 무결성 보장 어려움
데이터베이스는 이런 문제를 해결
- 동시성 제어(Lock/Transaction)
- 빠른 검색 (Index)
- 무결성 보장 (PK·FK 제약, UNIQUE 등)
- 데이터 백업·복구 가능
- 대량 데이터 처리 가능
- SQL이라는 표준 언어로 조작
3. 데이터베이스의 종류
관계형 데이터베이스(RDBMS)
테이블 기반
MySQL, MariaDB, PostgreSQL, Oracle, MSSQL
특징
- SQL 사용
- 정형 데이터(표 형태)에 강함
- 트랜잭션 처리에 뛰어남
NoSQL 데이터베이스
테이블이 아닌 구조
MongoDB, Redis, Cassandra 등
특정
- JSON 형태에 가까움
- 스키마 유연
- 대규모 트래픽 서비스에서 많이 씀
4. 데이터베이스의 핵심 개념
(1) 테이블 (Table)
데이터가 저장되는 기본 단위
엑셀 Sheet처럼 생김
(2) 행(Row), 열(Column)
- Row = 한 레코드 (회원 1명 정보)
- Column = 속성 (이름, 이메일, 나이, 주소)
(3) Primary Key (PK)
- 테이블의 "유일한 식별자"
- 중복 X, NULL X
예: 주문 테이블의 USER_ID → 사용자 테이블 PK 참조
(4) Foreign Key (FK)
- 다른 테이블의 PK를 참조하는 키
예: 주문 테이블의 USER_ID → 사용자 테이블 PK 참조
(5) Index (인덱스)
- 검색 속도를 극적으로 빠르게 하는 구조
- 단, 인덱스가 많으면 Insert/Update 비용 증가
(6) Transaction (트랜잭션)
여러 SQL 묶음을 하나의 작업 단위로 취급
예: 송금
- 내 계좌에서 출금
- 상대 계좌로 입금
둘 중 하나라도 실패하면 전체 rollback
5. SQL의 기본 4대 명령
SELECT (조회)
SELECT * FROM users WHERE age > 30;
INSERT (추가)
INSERT INTO users(name, age) VALUES('홍길동', 25);
UPDATE (수정)
UPDATE users SET age = 26 WHERE name = '홍길동';
DELETE (삭제)
DELETE FROM users WHERE age < 20;
6. JOIN의 개념
JOIN은 두 개 이상의 테이블을 묶어서 조회하는 것
INNER JOIN
두 테이블에서 일치하는 데이터만
SELECT u.name, p.project_nm
FROM user u
INNER JOIN project p ON u.user_id = p.user_id;
LEFT JOIN
왼쪽 테이블은 모두 보여줌
SELECT u.name, p.project_nm
FROM user u
LEFT JOIN project p ON u.user_id = p.user_id
여러 개의 JOIN도 가능
SELECT a.col, b.col, c.col
FROM A a
JOIN B b ON a.id = b.a_id
JOIN C c ON b.id = c.b_id
WHERE a.status = 'Y';
7. ORDER BY
결과 집합(Result Set)을 특정 기준으로 정렬
예:
SELECT * FROM users ORDER BY age DESC;
ASC : 오름차순(생략 가능) // ASCEND : 오르다, 위로 상승, 1,2,3,4,~, a,b,c,d~, A,B,C,D ~
DESC : 내림차순(명시적으로 표기) // DESCEND : 내려가다, 하강
대용량 데이터 처리를 위해 DB는 필수적이며, 처음부터 잘 만들어야 나중에 서비스를 다 뜯어고치는 불상사가 발생하지 않음
기업 데이터는 용량이 크기 때문에 사소한 쿼리에 엄청난 성능 차이를 보임
반응형
'데이터베이스' 카테고리의 다른 글
| 정규화(Normalization) (1) | 2025.11.22 |
|---|