데이터베이스

JOPO·2025년 3월 20일
0

데이터베이스

목록 보기
1/7
post-thumbnail

📌 데이터베이스 기초 개념 정리


📖 목차

  1. 📂 데이터베이스란?
  2. 🛠 DBMS
  3. ⚡ 데이터베이스의 주요 특징
  4. 🏗 데이터 모델링
  5. 📝 SQL
  6. 🏗 정규화 (Normalization)
  7. 🚀 인덱스 (Index)
  8. 🎯 트랜잭션과 ACID 특성
  9. ✨ 느낀 점

📂 데이터베이스(Database)란?

데이터베이스는 정보를 체계적으로 저장하고 관리하는 시스템이다. 쉽게 말하면, 필요한 데이터를 안전하고 효율적으로 보관하는 거라고 보면 된다.

✅ 데이터베이스 활용 예시

📚 도서관 - 책 목록, 대출 기록 관리
🛒 온라인 쇼핑몰 - 상품 정보, 주문 내역 저장
🎮 게임 - 유저 데이터, 랭킹 관리
이러한 데이터베이스 시스템은 우리가 일상에서 접하는 거의 모든 서비스에서 사용된다.

데이터베이스는 단순한 저장소를 넘어 빠른 검색, 데이터 일관성 유지, 실시간 처리를 가능하게 하며, 다양한 산업에서 핵심 기술로 활용된다. 빠르고 정확한 정보 검색과 실시간 데이터 처리를 가능하게 해준다. 우리 주변의 다양한 서비스들이 원활하게 운영될 수 있도록 하는 핵심 기술이라고 할 수 있다.


🛠 DBMS(Database Management System)

데이터베이스를 관리해주는 프로그램을 DBMS라고 한다.

💡 대표적인 DBMS

  • 🐬 MySQL - 가장 많이 쓰이는 오픈 소스 관계형 데이터베이스
  • 🐘 PostgreSQL - 기능이 강력한 오픈 소스 DBMS
  • Oracle - 기업 환경에서 많이 사용되는 DBMS

⚡ 데이터베이스의 주요 특징

데이터 무결성 - 데이터의 정확성과 일관성을 유지
🔒 데이터 보안성 - 권한이 없는 사용자의 접근을 막음
📌 데이터 중복 최소화 - 같은 데이터를 여러 번 저장하지 않도록 관리
🔄 데이터 독립성 - 데이터 구조 변경이 프로그램에 미치는 영향을 최소화


🏗 데이터 모델링

데이터를 효율적으로 저장하고 관리하기 위해 설계하는 과정이다.

📌 모델링 단계
1️⃣ 개념적 모델링 - 현실 세계의 개체(Entity)와 관계를 정리
2️⃣ 논리적 모델링 - 테이블, 컬럼 등을 설계
3️⃣ 물리적 모델링 - 실제 DBMS에 적용할 구조 구성


📝 SQL(Structured Query Language)

데이터베이스에서 데이터를 검색하거나 추가, 수정, 삭제할 때 사용하는 언어다.

📌 주요 SQL 문법

  • 📂 데이터 정의(DDL): CREATE TABLE, ALTER TABLE
  • 데이터 조작(DML): SELECT, INSERT, UPDATE, DELETE
  • 🛑 데이터 제어(DCL): GRANT, REVOKE

💡 예제: 컴퓨터공학 전공 학생 찾기

SELECT * FROM 학생 WHERE 전공 = '컴퓨터공학';

🏗 정규화 (Normalization)

정규화는 데이터를 깔끔하게 정리하는 과정이다. 중복을 없애고, 유지보수를 쉽게 만들어준다.

✅ 1NF (제1정규형)

한 칸에 여러 개의 값이 들어가면 안 된다!

비정규형 테이블
주문번호 고객명 상품명
1001 철수 노트북, 마우스

1NF 적용 후 (상품을 개별 행으로 분리)

주문번호 고객명 상품명
1001 철수 노트북
1001 철수 마우스

✅ 2NF (제2정규형)

기본 키에 부분적으로 종속된 데이터를 따로 분리한다.

📌 2NF 적용 후 (상품 정보를 별도 테이블로 관리)

📂 주문 테이블

주문번호 고객명
1001 철수

📂 상품 테이블

상품번호 상품명
P001 노트북
P002 마우스

🚀 인덱스 (Index)

인덱스는 데이터베이스의 '책갈피' 역할을 한다. 데이터 검색 속도를 높이는 데 도움을 준다!

📌 인덱스 적용 전후 성능 비교

쿼리 실행 시간 인덱스 없음 인덱스 있음
1,000개 데이터 검색 1.2초 0.1초
10,000개 데이터 검색 10초 0.8초

💡 예제: 학번에 인덱스 추가

CREATE INDEX idx_student_id ON 학생(학번);

🎯 트랜잭션과 ACID 특성

트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적 작업 단위를 의미한다. 쉽게 말해, 여러 개의 데이터 처리 과정을 하나로 묶어서 실행하는 것이다.

💎 ACID 원칙

  • 원자성(Atomicity) - 트랜잭션은 전부 실행되거나, 전혀 실행되지 않아야 한다
  • 📊 일관성(Consistency) - 실행 전후 데이터의 무결성이 유지되어야 한다
  • 🚧 격리성(Isolation) - 동시에 실행되는 트랜잭션 간 간섭이 없어야 한다
  • 💾 지속성(Durability) - 성공적으로 완료된 트랜잭션은 영구적으로 저장된다

✨ 느낀 점

📌 이걸 정리하면서 정규화랑 인덱스 개념이 더 명확해진 것 같다!

  • 처음엔 왜 데이터를 이렇게 쪼개야 하는지 이해가 안 됐는데, 직접 예제를 만들어보니까 데이터가 훨씬 깔끔해지고 중복이 줄어든다는 걸 느꼈다.
  • 인덱스도 그냥 검색을 빠르게 하는 게 아니라, 잘못 사용하면 성능이 저하될 수도 있다는 점이 흥미로웠다.

아직 부족한 부분이 있을 수도 있지만, 하나씩 실습하면서 익혀가야겠다! 😆

0개의 댓글