데이터베이스의 개념과 기본용어

Gunju Kim·2025년 3월 20일
0

필수시청 영상

목록 보기
19/32
post-thumbnail

✅ 1. 데이터베이스(Database)란?

데이터베이스는 체계적으로 저장되고 관리되는 데이터의 집합입니다.
백엔드에서는 웹 애플리케이션이 데이터를 저장, 조회, 수정, 삭제(CRUD) 할 때 주로 데이터베이스를 사용합니다.

📌 백엔드에서 데이터베이스가 필요한 이유

  • 데이터를 영구적으로 저장하고 관리할 수 있음
  • 여러 사용자가 동시에 접근 가능
  • 효율적인 검색, 필터링, 정렬 기능 제공
  • 보안, 무결성 유지

✅ 2. 데이터베이스의 유형

🔹 1) 관계형 데이터베이스(RDB: Relational Database)

  • 데이터를 테이블(Table) 형태로 저장하고, 관계(Relationship)를 설정하여 관리하는 데이터베이스.
  • SQL(Structured Query Language)을 사용하여 데이터를 조작함.

🔸 대표적인 RDBMS (관계형 DB 관리 시스템)

  • MySQL
  • PostgreSQL
  • MariaDB
  • Oracle DB
  • Microsoft SQL Server

🔸 예시 (회원 테이블 - Users)

SELECT * FROM Users WHERE id = 1;

🔹 2) NoSQL 데이터베이스

  • 관계형 DB처럼 테이블이 아니라, 유연한 데이터 저장 방식을 사용.
  • 대용량 데이터 처리에 강하며, 확장성이 뛰어남.

🔸 예시 (MongoDB)

{
  "_id": 1,
  "name": "홍길동",
  "email": "hong@example.com"
}
db.users.find({ "name": "홍길동" });

✅ 3. 기본 데이터베이스(DB) 용어 정리

✅ 4. SQL의 주요 명령어

SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 다룰 때 사용하는 언어입니다.

🔹 1) 데이터 조작 (DML - Data Manipulation Language)

  • SELECT 데이터를 조회
  • INSERT 데이터를 삽입
  • UPDATE 데이터를 수정
  • DELETE 데이터를 삭제
SELECT * FROM Users WHERE name = '홍길동';
INSERT INTO Users (name, email) VALUES ('이순신', 'lee@example.com');
UPDATE Users SET email = 'newemail@example.com' WHERE id = 1;
DELETE FROM Users WHERE id = 2;

🔹 2) 데이터 정의 (DDL - Data Definition Language)

  • CREATE 테이블 또는 데이터베이스 생성
  • ALTER 기존 테이블 수정
  • DROP 테이블 삭제
CREATE TABLE Users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100),
    email VARCHAR(255) UNIQUE
);
ALTER TABLE Users ADD COLUMN phone VARCHAR(20);
DROP TABLE Users;

🔹 3) 데이터 제어 (DCL - Data Control Language)

  • GRANT 특정 사용자에게 권한 부여
  • REVOKE 특정 사용자의 권한 제거
GRANT SELECT, INSERT ON Users TO 'admin'@'localhost';
REVOKE INSERT ON Users FROM 'admin'@'localhost';

🔹 4) 트랜잭션 제어 (TCL - Transaction Control Language)

  • COMMIT 변경된 데이터 저장(확정)
  • ROLLBACK 변경된 데이터 취소
  • SAVEPOINT 특정 지점까지 롤백 가능하도록 설정
START TRANSACTION;
UPDATE Users SET email = 'error@example.com' WHERE id = 1;
ROLLBACK; -- 변경 사항 취소
COMMIT; -- 변경 사항 확정

✅ 5. 데이터베이스 설계 시 고려해야 할 점

  1. 정규화(Normalization)
    • 데이터를 중복 없이 효율적으로 저장하는 과정
    • 1NF, 2NF, 3NF 등의 단계가 있음
  2. 인덱스(Index) 사용
    • 자주 검색하는 컬럼에 인덱스를 설정하여 성능 최적화
  3. 보안(Security) 고려
    • SQL Injection 방지
    • 데이터 암호화
    • 최소한의 사용자 권한 부여
  4. 트랜잭션 관리
    • 데이터 일관성을 유지하기 위해 트랜잭션을 사용 (예: 은행 계좌 이체)

🚩 결론: 백엔드에서 데이터베이스가 중요한 이유

백엔드에서 데이터베이스는 웹 애플리케이션의 핵심 데이터 저장소 역할을 합니다.
적절한 데이터베이스 모델링과 SQL 활용이 웹 서비스의 성능, 확장성, 안정성을 결정합니다.

profile
처음이라서 그래 가본적 없던 길에

0개의 댓글