Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- IntelliJ IDEA
- continue문
- Thread
- Java데이터 타입
- break문
- 생성자
- 상수
- While
- JAVA객체지향
- function
- java변수
- 접근제어지시자
- 시스템 환경 변수 편집
- 인텔리제이 기초 설정
- 연관관계
- this예약어
- OPP개념
- multi-threading
- JAVA기초
- Java
- 반복문
- 컴파일
- 메서드
- 인텔리제이 한글 깨짐 해결법
- 메서드 오버로딩
- 집합관계
- 포함관계
- 자바 멀티스레딩
- 형 변환
- for문
Archives
- Today
- Total
최원종의 개발 블로그
데이터베이스란? 본문
데이터베이스란 여러 사람이 공유하여 사용할 목적으로 체계적으로 구조화하여 저장된 데이터의 집합을 의미
예시
메시지 전송
↓
카카오 서버의 데이터베이스에 저장
↓
상대방이 접속하면 DB 에서 꺼내서 전달
DB, DBMS, SQL 구분

도서관으로 비유 예시
도서관 비유:
DB = 책이 꽂혀있는 책장
→ 데이터를 실제로 저장하는 공간
DBMS = 책장을 관리하는 사서
→ DB 를 운영하는 소프트웨어 (MySQL, Oracle 등)
SQL = 사서에게 하는 주문서
→ "3번 책장에서 '자바' 책 꺼내줘"
→ DBMS 에 명령을 내리는 언어
실제 동작 흐름
백엔드 서버 (스프링 부트)
↓ SQL 명령어 전달
DBMS ← 명령을 해석하고 처리
↓
데이터베이스 ← 데이터를 저장하거나 꺼냄
관계형 데이터베이스 (RDBMS)
- RDBMS(Relational Database Management System)
- 데이터를 테이블(Table) 형태의 상호 관계로 정의하여 관리하는 관계형 데이터베이스 관리 시스템

데이터를 표(테이블) 형태로 저장
회원(member) 테이블:
| id(PK) | name | email | grade |
|--------|--------|------------------|-------|
| 1 | 김철수 | kim@example.com | VIP |
| 2 | 이영희 | lee@example.com | 일반 |
| 3 | 박민준 | park@example.com | VIP |
행(Row) : 데이터 한 건 → 회원 한 명의 정보
열(Column) : 데이터의 속성 → id, name, email, grade
PK : 각 행을 고유하게 식별하는 값
→ id 가 같은 회원은 절대 존재할 수 없음
엑셀과의 차이
구분 엑셀 RDBMS
─────────────────────────────────────────────────────────
수정 방법 사람이 셀 직접 클릭 SQL 명령어로 처리
동시 접근 어려움 수천 명 동시 접근 가능
데이터 크기 수만 건 이상 느림 수천만 건도 빠르게 처리
안전성 덮어쓰기 위험 트랜잭션으로 안전 보장
대표적인 RDBMS
- MySQL, Oracle, PostgreSQL, MariaDB, MsSql …
| DBMS | 제작사 | 특징 |
| MySQL | Oracle | 오픈소스(무료), 가장 많이 사용됨 |
| MariaDB | MariaDB | MySQL 에서 파생, 오픈소스 |
| PostgreSQL | PostgreSQL | 오픈소스, 고급 기능 강력 |
| Oracle | Oracle | 상용 시장 점유율 1위, 유료 |
| SQL Server | Microsoft | Windows 환경, 기업용 |
실제 서비스에서의 SQL 사용
SQL (Structured Query Language) // 관계형 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 표준 질의 언어
-- 쇼핑몰: 특정 회원의 주문 내역 조회
SELECT * FROM orders WHERE member_id = 1;
-- SNS: 좋아요 수 많은 게시글 TOP 10
SELECT * FROM post ORDER BY like_count DESC LIMIT 10;
-- 회원가입 처리: 새 회원 추가
INSERT INTO member (name, email) VALUES ('홍길동', 'hong@test.com');
-- 비밀번호 변경: 회원 정보 수정
UPDATE member SET password = '새비밀번호' WHERE id = 1;
SQL의 세가지 개념
DDL(Data Definition Language) : 구조를 만든다 → CREATE, ALTER, DROP
DML(Data Manipulation Language) : 데이터를 다룬다 → SELECT, INSERT, UPDATE, DELETE
DCL(Data Control Language) : 권한을 관리한다 → GRANT, REVOKE
핵심 요약
DB : 데이터 저장 공간 (책장)
DBMS : DB 관리 소프트웨어 (사서) → MySQL, Oracle 등
SQL : DBMS 에 내리는 명령 언어 (주문서)
RDBMS
데이터를 표(테이블) 형태로 저장
행(Row) : 데이터 한 건
열(Column) : 속성
PK : 각 행을 고유하게 식별하는 키
왜 DB 를 배우는가?
백엔드 서비스의 모든 데이터는 DB 에 저장됩니다.
스프링 부트 API 도 결국 DB 에서 데이터를 가져옵니다.
'MySQL' 카테고리의 다른 글
| INSERT 구문과 제약 조건 -7 (0) | 2026.04.02 |
|---|---|
| MySQL 데이터 타입 - 6 (0) | 2026.04.02 |
| SQL - DDL, DML, DCL -5 (0) | 2026.04.02 |
| 데이터베이스 설계 시나리오 (0) | 2026.04.02 |
| 데이터와 정보 (0) | 2026.04.01 |