📘 제2정규형(2NF)과 제3정규형(3NF)의 비교✅ 정규화란 무엇인가?정규화(Normalization)는 데이터베이스 설계에서 데이터 중복을 제거하고 이상(anomaly)을 방지하기 위한 과정입니다.정규화는 여러 단계로 이루어지며, 각 단계마다 더 엄격한 함수 종속성의 제약을 부여합니다.🔷 제2정규형 (2NF)✅ 정의제2정규형(2NF)은 테이블이 제1정규형(1NF)을 만족하고, 모든 속성이 기본키 전체에 대해 완전 함수 종속이어야 한다는 조건을 갖습니다.> ✅ 완전 함수 종속이란?기본키가 두 개 이상의 속성으로 이루어졌을 때, 어떤 속성이 기본키의 일부분에만 종속되면 안됨을 의미합니다.✅ 2NF가 해결하려는 문제 부분 함수 종속으로 인한 중복 데이터 발생 삽입 이상, 삭제 이상, 갱신 이상 발생..
🔷 아주 중요한 관점: 3NF는 왜 2NF를 무조건 포함하는가? 정규화는 단계적 누적 과정이기 때문에, ✅ 3NF ⊃ 2NF ⊃ 1NF 는 항상 참입니다.하지만 실제 설계나 시험, 실무에서 헷갈릴 수 있는 대표적인 오해 포인트들이 존재합니다. 아래에서 하나씩 짚어드리겠습니다. 📘 왜 3NF는 2NF를 "무조건" 포함하는가? 2NF의 정의: "모든 비주요 속성이 기본키에 완전 함수 종속이어야 한다"3NF의 정의: "모든 비주요 속성이 기본키에 이행적으로도 종속되지 않아야 한다" (즉, A → B → C 형태에서 A → C 제거) 즉, 2NF는 기본키의 일부에만 종속된 속성을 제거하고, 3NF는 기본키를 거친 간접적 종속..
🔷 3정규형(Third Normal Form, 3NF)이란? ✅ 정의 3정규형은 데이터베이스 정규화 과정에서 테이블이 이행적 종속(transitive dependency)을 제거하여 데이터 무결성을 보장하는 단계입니다. 이행적 종속이란 기본키(A)가 속성 B를 결정하고, B가 또 다른 속성 C를 결정(A → B, B → C)할 때, C가 A에 간접적으로 종속되는 경우를 말합니다. 3NF는 A가 C를 직접 결정해서는 안 된다는 철학을 바탕으로, 데이터 중복을 최소화하고 논리적 독립성을 유지합니다. 테이블이 3NF를 만족하려면 다음 조건을 충족해야 합니다: 1NF 조건: 테이블이 제1정규형을 만족해야 함(모든 속성이 원자값을 가짐). ..
📘 제2정규형(2NF) 완전 정복— 관계형 데이터베이스 설계를 위한 실무 중심 접근1. 정규화가 필요한 이유: 데이터 이상 현상의 실체데이터베이스 설계에서 가장 빈번하게 발생하는 문제는 **정보의 중복(redundancy)**과, 그로 인해 발생하는 **데이터 이상(anomaly)**이다. 테이블 구조가 논리적으로 잘못 구성되어 있다면, 데이터를 추가하거나 수정하거나 삭제할 때 원하지 않는 부작용이 발생할 수 있다. 이는 단순한 불편을 넘어서 시스템 전체의 무결성을 해치는 심각한 문제로 이어진다.이러한 이상 현상을 직관적으로 이해하려면, 실제로 잘못 설계된 테이블 구조를 예시로 보는 것이 가장 효과적이다.아래는 한 회사에서 직원들의 교육이력을 관리하기 위해 설계한 테이블이다.📄 예시 테이블 ①: Em..
📘 데이터베이스의 트랜잭션(Transaction)과 그 성질 1. 트랜잭션(Transaction)이란? ✅ 정의 트랜잭션(Transaction)이란 데이터베이스에서 하나의 논리적인 작업 단위를 말합니다. 즉, 여러 작업이 묶여서 전부 성공하거나, 전부 실패해야 하는 연산 묶음입니다. ✅ 예시 은행 계좌 이체를 생각해 봅시다: A 계좌에서 10만 원 출금 B 계좌에 10만 원 입금 이 두 개의 작업은 항상 함께 이루어져야 의미가 있습니다. 출금만 되고 입금이 안 되면? → 데이터 오류 입금만 되고 출금이 안 되면? → 부정확한 결과 그래서 이 두 작업을 하나의 트랜잭션으로 묶습니다. 둘 다 성공하면 커밋(확정), 하나라도 실패하면 롤백(되돌림)합니다..
🔷 제1정규형 (1NF): "원자값"의 원칙 ✅ 왜 제1정규형이 필요한가? 데이터베이스를 처음 설계할 때, 많은 사람들이 "한 셀에 여러 값을 넣어도 되지 않을까?"라는 실수를 저지릅니다. 예를 들어 학생의 취미를 저장한다고 할 때, 다음과 같이 저장하고 싶어질 수 있습니다: 학생명 | 취미--------------철수 | 영화, 독서, 축구 이렇게 한 셀에 여러 값을 넣는 순간, 데이터베이스는 질의(검색), 정렬, 수정, 삭제 등 모든 작업에서 문제가 생기기 시작합니다. 예를 들어, “‘독서’를 취미로 가진 사람을 찾는 쿼리”를 생각해 보세요. 이 값을 구분하려면 문자열을 잘라야 합니다. → 데이터베이스는 이런 연산을 위해 존재하는 게 아닙니다. 그래서 나온 것이..
데이터베이스 정규형(Normal Forms) 데이터베이스 정규형(Normal Forms)은 데이터의 중복을 줄이고, 무결성을 보장하며, 이상(anomaly)을 방지하기 위한 테이블 설계 원칙입니다. 정규화(Normalization)는 관계형 데이터베이스 설계 시 사용되는 체계적인 과정이며, 보통 1NF → 2NF → 3NF → BCNF → 4NF → 5NF 순으로 발전합니다. ✅ 1. 왜 정규화를 하는가? 정규화를 하지 않으면 다음과 같은 문제가 발생합니다: 삽입 이상: 정보를 일부만 입력할 수 없음 삭제 이상: 하나의 정보를 지우면 다른 정보도 함께 지워짐 갱신 이상: 동일한 정보가 여러 곳에 있어, 하나만 바꾸면 데이터 불일치 발생 이러한 문제는 ..
- Total
- Today
- Yesterday
- 류근관
- 회계
- c++
- 티스토리챌린지
- 인프런
- 데이터분석
- K-MOOC
- 오블완
- 통계학
- 윤성우
- 사회심리학
- C
- C/C++
- 심리학
- 일본어
- stl
- 강화학습
- 통계
- 인지부조화
- Python
- jlpt
- 여인권
- 파이썬
- 열혈프로그래밍
- 백준
- 일문따
- 일본어문법무작정따라하기
- 뇌와행동의기초
- 코딩테스트
- 보세사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |