데이터베이스
기본 정보
- 명칭: 데이터베이스
- 영문명: Database (DB)
- 약칭: DB
- 분류: 데이터 저장 및 관리 시스템
- 주요 용도: 데이터 저장, 조회, 수정, 삭제
- 관련 주제: #데이터베이스 #DB #DBMS #SQL #백엔드
개요
데이터베이스(Database)는 데이터를 체계적으로 저장하고 관리하기 위한 저장소이다.
웹사이트, 모바일 앱, ERP, 쇼핑몰, 게임 서버 등 대부분의 정보 시스템은 데이터베이스를 사용하여 회원 정보, 게시글, 주문 내역, 재고 정보 등을 저장하고 관리한다.
데이터베이스는 단순한 저장소를 넘어 검색, 수정, 삭제, 백업, 보안, 동시성 관리 등의 기능을 제공한다.
데이터베이스 구조
Database
↓
Table
↓
Row (Record)
↓
Column (Field)
↓
Data
기본 구성
Database
여러 개의 테이블을 포함하는 가장 큰 단위이다.
예시
쇼핑몰 DB
회원 DB
ERP DB
Table
같은 성격의 데이터를 저장하는 공간이다.
예시
member
board
order
product
Row (레코드)
한 개의 데이터 행을 의미한다.
예시
| id | name |
|---|---|
| 1 | 홍길동 |
Column (컬럼)
데이터의 속성을 의미한다.
예시
| id | name | age |
CRUD
데이터베이스의 기본 기능
| 기능 | 설명 |
|---|---|
| Create | 데이터 생성 |
| Read | 데이터 조회 |
| Update | 데이터 수정 |
| Delete | 데이터 삭제 |
관계형 데이터베이스(RDBMS)
데이터를 테이블 간 관계(Relation)로 관리하는 방식이다.
대표 제품
NoSQL 데이터베이스
테이블 구조가 아닌 다양한 형태로 데이터를 저장한다.
대표 제품
SQL
관계형 데이터베이스에서 사용하는 표준 언어이다.
조회
SELECT *
FROM member;
추가
INSERT INTO member(name)
VALUES('홍길동');
수정
UPDATE member
SET name='김철수'
WHERE id=1;
삭제
DELETE
FROM member
WHERE id=1;
기본 키(Primary Key)
member_id
각 데이터를 고유하게 식별하는 값이다.
외래 키(Foreign Key)
order.user_id
↓
member.user_id
테이블 간 관계를 연결하는 역할을 한다.
인덱스(Index)
검색 속도를 높이기 위한 자료구조이다.
CREATE INDEX idx_name
ON member(name);
JOIN
여러 테이블을 연결하여 조회할 수 있다.
SELECT *
FROM member
JOIN point
ON member.id=point.id;
트랜잭션(Transaction)
여러 작업을 하나의 논리적 단위로 처리하는 기능이다.
START TRANSACTION;
COMMIT;
오류 발생 시
ROLLBACK;
을 사용하여 이전 상태로 되돌릴 수 있다.
정규화(Normalization)
데이터 중복을 최소화하고 무결성을 유지하기 위한 설계 기법이다.
목적
- 중복 제거
- 저장 공간 절약
- 유지보수 향상
- 데이터 일관성 확보
ERD(Entity Relationship Diagram)
데이터베이스 구조를 시각적으로 표현한 설계도이다.
Member
↓
Order
↓
Product
개발 전 ERD 설계가 일반적이다.
데이터베이스 설계 순서
요구사항 분석
↓
ERD 작성
↓
테이블 설계
↓
Primary Key 설정
↓
Foreign Key 설정
↓
Index 생성
↓
개발
↓
운영
대표 활용 분야
- 회원관리
- 게시판
- 쇼핑몰
- ERP
- CRM
- 게임 서버
- 모바일 앱
- 금융 시스템
- 예약 시스템
관계형 DB와 NoSQL 비교
| RDBMS | NoSQL |
|---|---|
| 테이블 구조 | 문서·Key-Value 구조 |
| SQL 사용 | SQL 미사용 또는 확장 |
| 관계 표현 강점 | 확장성과 유연성 강점 |
| 데이터 무결성 우수 | 대용량 분산 처리 강점 |
| JOIN 지원 | 대부분 JOIN 제한 |
장점
- 데이터 체계적 관리
- 빠른 검색
- 동시 접근 지원
- 백업 및 복구 기능
- 데이터 무결성 유지
- 권한 관리 가능
단점
- 초기 설계 중요
- 구조 변경 비용 발생
- 대용량 처리 시 최적화 필요
- 운영 및 관리 비용 발생
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- Primary Key 반드시 지정
- 필요한 컬럼에 Index 생성
SELECT *사용 최소화- 정규화 우선 설계 후 필요 시 비정규화
- 외래 키 관계 명확히 정의
- Slow Query 점검
- 정기 백업 수행
- SQL Injection 방지
- UTF-8(
utf8mb4) 사용 - ERD 문서 최신 상태 유지
데이터베이스와 함께 사용하는 기술
대표 관리 도구
- DBeaver
- MySQL Workbench
- phpMyAdmin
- HeidiSQL
- Navicat
- DataGrip
관련 문서
출처
- Oracle Database Documentation
- Database 관련 국제 표준 문서
- 위키백과 「Database」