🧩 배경 요약트랜잭션끼리 동시에 실행되면 성능이 좋아지지만, 격리성이 깨질 위험이 있음이를 막기 위해 DB는 concurrency control(동시성 제어)을 함동시에 처리하면서도 정합성을 보장하려면 Serializability와 Recoverability를 지켜야 함그런데, 이 둘을 완벽히 지키려면 동시 처리가 어려워져 성능이 떨어짐 → 그래서 성능과 정합성의 절충안으로 격리 수준(Isolation Level)을 둠🧨 격리 수준이 낮을 때 생기는 이상 현상1️⃣ DIRTY READ (더티 리드)커밋되지 않은 변경 내용을 다른 트랜잭션이 읽는 것예: A 사용자가 키를 171 → 177로 수정했지만 아직 커밋 안됨. 그런데 B 사용자가 177로 읽음2️⃣ NON-REPEATABLE READ (반복 불..
Data/[ DB ]2025. 6. 21. 15:51
#04 트랜잭션 2편
✅ 트랜잭션 Isolation 심화 정리✔ Isolation 속성 다시 보기트랜잭션 간의 독립성(격리성)을 보장하는 것이 Isolation입니다.두 개 이상의 트랜잭션이 동시에 실행되더라도 결과에 문제가 없어야 한다는 것을 의미합니다.이를 위해서는 두 가지를 고려해야 합니다:Serializability (직렬 가능성)Recoverable (회복 가능성)참고로 DBMS의 concurrency control(동시성 제어)이 이 두 가지를 제공해야 합니다.🔸 1. Serializability (직렬 가능성)📌 개념→ 여러 트랜잭션이 동시에 실행되더라도 순차적으로 실행한 것과 같은 결과를 보장해야 함.✔ Serial Schedule (직렬 스케줄)트랜잭션을 한 번에 하나씩만 실행 (정합성 보장)성능은 떨어짐..
Data/[ DB ]2025. 6. 21. 15:45
#03 트랜잭션 1편
✅ 트랜잭션(Transactions)이란?"관련된 작업들을 하나로 묶어서, 전부 성공하거나 전부 실패하게 만드는 것!"여러 SQL 쿼리를 하나의 작업 단위로 묶은 것.하나라도 실패하면 전체를 취소(rollback), 전부 성공해야만 DB에 반영(commit).💡 왜 필요할까?중간에 실패하면 DB 데이터가 틀어지는 것을 막기 위해.예: 계좌 이체 시 출금만 되고 입금이 안 되면 큰일!📌 주요 명령어✅ COMMIT지금까지 성공한 모든 작업을 DB에 영구 저장트랜잭션을 정상 종료COMMIT;예: 은행 이체 후 → 돈 실제로 이동❌ ROLLBACK지금까지 한 모든 작업을 취소트랜잭션 시작 전 원래 상태로 복원트랜잭션 비정상 종료ROLLBACK;예: 오류 발생 → 출금했지만 입금 실패 → 되돌림⚙️ AUTOC..
Data/[ DB ]2025. 6. 21. 15:36
#02 ERD와 정규화 과정
🧱 ERD란?ERD(Entity Relationship Diagram)는 데이터베이스의 설계도입니다.프로젝트에서 어떤 데이터(=엔티티)를 다루고, 그것들이 서로 어떤 관계를 맺는지를 도식화한 그림입니다.📌 예를 들어, "학생"과 "강의"가 있고, "학생은 여러 강의를 수강할 수 있다"면 → 학생과 강의는 다대다 관계, 중간에 "수강신청"이라는 테이블이 생깁니다.💡 ERD가 중요한 이유처음 데이터베이스를 설계할 때 가장 먼저 만듭니다.데이터를 테이블로 나누고, 어떤 식으로 연결할지를 시각적으로 정리해줍니다.API나 백엔드 로직도 이 구조를 기반으로 만들기 때문에 매우 중요합니다.🧩 ERD 구성 요소구성 요소의미비유엔티티(Entity)테이블 하나"학생", "상품", "주문" 같은 대상속성(Attrib..
Data/[ DB ]2025. 6. 21. 15:26
#01 Key
🗝️ 데이터베이스 키(Key)💡 키란 무엇인가요?레코드(행)를 유일하게 식별할 수 있게 도와주는 열(속성) 또는 속성들의 집합입니다.🔹 키를 알아보기 전, 기본 개념!1. ✅ 무결성(Integrity)이란?데이터가 정확하고 일관성 있게 유지되는 상태를 말해요. 📌 3가지 무결성 규칙 무결성 종류의미예시개체 무결성기본키는 반드시 값이 있어야 하고, 중복되면 안 됨회원번호는 중복 안 됨, null 안 됨참조 무결성외래키는 참조 테이블의 기본키와 일치해야 함장바구니의 회원ID는 실제 회원 테이블의 ID여야 함도메인 무결성값은 지정된 범위 안에서만 가능해야 함성별은 male, female만 허용2. ✅ 유일성 (Uniqueness)이란?각 레코드를 구분할 수 있어야 한다는 성질한 테이블 안에서 같은 값이..