대표적인 DBMS 6개를 쉽고 빠르게 알아보자!
✔️ 가장 많이 쓰이는 무료 데이터베이스
✔️ 속도가 빠르고, 웹사이트, 앱에서 많이 사용됨
✔️ 유명한 사용처: 네이버, 카카오, 유튜브, 페이스북 일부
📌 예시:
네이버에 가입하면 내 정보(이름, 이메일, 비밀번호 등)를 저장할 곳이 필요해.
👉 이런 사용자 정보를 저장하는 데 MySQL이 사용될 수 있어!
✔️ MySQL과 거의 똑같지만, 더 자유롭게 쓸 수 있음
✔️ MySQL이 오라클(Oracle)에 인수된 후, 오픈소스로 만든 DB
✔️ 기업에서도 많이 사용함
📌 예시:
카카오톡 같은 서비스가 있고, MySQL을 쓰던 회사가 비용 부담 없이 더 자유롭게 운영하고 싶다면?
👉 MariaDB로 바꾸면 됨! 기능이 거의 동일해.
✔️ 데이터를 정밀하게 관리해야 할 때 사용
✔️ 데이터를 안전하게 보호하는 기능이 뛰어남
✔️ 은행, 금융, 연구소에서 많이 사용
✔️ 무료인데도 강력한 기능 제공
📌 예시:
은행에서 고객의 계좌 잔액을 정확하게 관리해야 해.
👉 PostgreSQL은 실수 없이 데이터를 저장하고 보호하는 데 강점이 있어!
✔️ 마이크로소프트(Microsoft)에서 만든 DB
✔️ 윈도우 환경에서 최적화되어 있음
✔️ 기업에서 많이 사용하며, 보안이 강력함
📌 예시:
회사 내부에서 직원 정보, 매출 데이터를 관리하려면?
👉 MS SQL이 많이 사용됨. 특히 MS Office(엑셀, 워드)와도 연동이 쉬움!
✔️ 엑셀처럼 칸(표)으로 데이터를 저장하지 않고, JSON 형태로 저장
✔️ 빠르게 변경할 수 있는 데이터에 적합
✔️ SNS, 쇼핑몰, 게임 데이터에 많이 사용됨
📌 예시:
인스타그램 같은 SNS에서 게시글, 댓글, 좋아요 수가 계속 바뀌지?
👉 이런 데이터를 MongoDB가 빠르게 저장하고 관리할 수 있어.
✔️ 가장 가벼운 DB, 설치 없이 파일 하나로 동작
✔️ 스마트폰, 작은 앱, 소규모 프로젝트에서 사용됨
✔️ 네트워크 연결 없이 단독으로 동작
📌 예시:
휴대폰 앱에서 메모 앱 같은 간단한 기능을 만들 때, 서버가 없어도 저장이 필요할 때!
👉 SQLite는 별도 서버 없이 파일 하나로 DB를 쓸 수 있음.
🗂 엑셀처럼 칸으로 정리할 거면? → MySQL, PostgreSQL, MS SQL
📄 자유롭게 저장하고 싶다면? → MongoDB
📱 작은 앱에서 쓴다면? → SQLite
| DB 종류 | 특징 | 대표 사용처 |
|---|---|---|
| MySQL | 빠르고 많이 사용됨 | 웹사이트, 앱 (네이버, 유튜브) |
| MariaDB | MySQL 대체, 무료 | 오픈소스 기반 서비스 |
| PostgreSQL | 정밀하고 안전 | 은행, 금융, 연구소 |
| MS SQL Server | 기업용, MS 제품과 호환 | 기업 내부 시스템 |
| MongoDB | 유연하고 빠름 | SNS, 쇼핑몰, 게임 |
| SQLite | 가벼움, 파일 하나로 동작 | 모바일 앱, 간단한 프로젝트 |
✅ 데이터 정리 & 관리 → 파일로 저장하면 관리하기 어려움
✅ 빠른 검색 & 수정 → 필요한 정보를 빠르게 찾고, 수정 가능
✅ 동시 접속 & 보안 → 여러 사람이 동시에 사용할 수 있고, 보안 설정 가능
✅ 데이터 무결성 보장 → 잘못된 데이터가 들어가는 걸 방지
예를 들어,
📌 웹사이트 회원 정보를 파일에 저장하면? → 파일이 커지고, 검색이 느려짐
📌 DBMS를 사용하면? → 데이터가 체계적으로 정리되고, 빠르게 찾을 수 있음!
DBMS를 이해하려면, 데이터가 어떻게 저장되는지 먼저 알아야 해.
📌 1. 데이터베이스 (Database)
✔️ 여러 개의 테이블(표)로 구성된 데이터 저장 공간
✔️ 하나의 웹사이트(서비스)는 하나의 데이터베이스를 가짐
💡 예시:
KINS_DB (KiNS 서비스의 데이터베이스)
E_COMMERCE_DB (쇼핑몰 데이터베이스)
✔️ 데이터가 저장되는 표 형태의 구조
✔️ 행(Row) = 데이터 한 줄, 열(Column) = 속성(이름, 나이, 이메일 등)
💡 예시: 회원 테이블(User Table)
| ID | 이름 | 나이 | 이메일 |
|---|---|---|---|
| 1 | 홍길동 | 30 | hong@example.com |
| 2 | 김영희 | 25 | kim@example.com |
✔️ 데이터베이스와 소통하는 언어
✔️ 데이터를 추가, 수정, 삭제, 조회하는 데 사용됨
💡 예시
-- 회원 테이블에서 모든 데이터 조회
SELECT * FROM users;
-- 회원 추가
INSERT INTO users (이름, 나이, 이메일) VALUES ('박철수', 28, 'park@example.com');
-- 회원 정보 수정
UPDATE users SET 나이 = 29 WHERE ID = 1;
-- 회원 삭제
DELETE FROM users WHERE ID = 2;
| 기능 | 설명 |
|---|---|
| 데이터 저장 | 데이터를 테이블에 저장하고 구조적으로 관리 |
| 데이터 조회 | 필요한 데이터를 빠르게 찾고 검색 |
| 데이터 수정 | 기존 데이터를 업데이트 |
| 데이터 삭제 | 불필요한 데이터를 제거 |
| 보안 & 권한 관리 | 사용자별 데이터 접근 권한 설정 |
| 트랜잭션 관리 | 데이터가 정확하고 안정적으로 저장되도록 보장 |
💡 트랜잭션(Transaction)이란?
✅ 데이터의 일관성을 유지하기 위해 작업 단위를 묶어서 처리하는 것
✅ 중간에 오류가 나면 모두 취소(ROLLBACK) 되거나,
✅ 성공하면 완전히 저장(COMMIT) 됨.
예시: 은행 송금
A의 계좌에서 100만 원을 출금
B의 계좌에 100만 원을 입금
✔️ 둘 다 성공해야 완료! (트랜잭션이 보장됨)
✔️ 하나라도 실패하면? 다시 원상복구(Rollback)
🔹 RDBMS(MySQL, PostgreSQL 등) = 엑셀
➡️ 칸(테이블) 안에 데이터를 정리해서 저장
➡️ 모든 데이터가 체계적이고 명확한 관계를 가짐
🔹 NoSQL(MongoDB, Redis 등) = 포스트잇
➡️ 자유롭게 데이터를 붙이고 수정 가능
➡️ 빠르게 저장하고 변경해야 할 때 유용
데이터베이스는 우리가 사용하는 모든 웹 서비스의 핵심이야!
🚀 DBMS를 이해하면, 데이터를 더 효율적으로 다룰 수 있어! 💡