반응형

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

+ Recent posts