티스토리 뷰
1. 이상현상
- 잘못된 데이터베이스 설계로 발생하는 오류
- 삽입 이상: 데이터를 삽입할 때 불필요한 내용까지 삽입해야 하는 문제
- 갱신 이상: 중복된 데이터 중 일부만 갱신되어 발생하는 문제
- 삭제 이상: 어떤 데이터를 삭제할 때 다른 유용한 정보도 함께 삭제되는 문제
2. 함수 종속성
- 어떤 속성 x(결정자)의 한 값이 다른 속성 y(종속자)에 속한 하나의 값에만 매핑되는 경우
- 예: ID → 이름
1) 완전 함수 종속
- 기본키를 구성하는 속성 모두가 결정자 역할을 하는 경우
2) 부분 함수 종속: 2차 정규화 원인
- 기본키를 구성하는 속성 중 일부가 결정자 역할을 하는 경우
- 기본키가 복합키이거나 후보키가 결정자인 경우에 부분 함수 종속이 발생할 수 있다
3) 이행 함수 종속: 3차 정규화 원인
* 결정자란? 어떤 속성(컬럼)이 다른 속성의 값을 '결정'할 수 있을 때, 그 속성
3. 정규화(Normalization)
- 이상 현상을제거하기 위해 데이터베이스를 구조화하는 과정
- 데이터 간의 종속성을 제거하여 중복되는 데이터를 줄임
- 데이터의 일관성과 무결성을 보장
비정규화 DB
↓ ← 도메인이 원자값
1차 정규화
↓ ← 부분 함수 종속 제거(완전 함수 종속이 되도록 만들어줌)
2차 정규화
↓ ← 이행 함수 종속 제거(X→Y, Y→Z => X→Z)
3차 정규화 ----------------------(일반적으로 3차까지 많이 함)
↓ ← 결정자이면서 후보키가 아닌 것 제거
BCNF
↓ ← 다치 종속 제거
4차 정규화
↓ ← 조인 종속 제거
5차 정규화
1) 1차 정규화
- 한 칸에 자료가 여러개 들어감 => 하나의 속성에 하나의 값만 들어갈 수 있게 분해
- 테이블의 컬럼이 하나의 값만 갖도록 도메인을 원자값으로 설정하는 과정
* 원자값 : 더 이상 나눌 수없는 가장 작은 값
2) 2차 정규화
- 부분 함수 종속을 제거하고 완전 함수 종속이 되도록 테이블을 분해하는 과정
3) 3차 정규화
- 이행 함수 종속을 제거하도록 테이블을 분해하는 과정
- A를 알면 B를 알고 C까지 알 수 있는 경우( A→B , B→C => A→C)
4) BCNF
- 결정자이면서 후보키가 아닌 것 제거(=결정자 A가 후보키여야함)
* 결정자: 어떤 속성(컬럼)을 결정할 수 있는 속성(A→B라면, A가 결정자)
** 함수 종속(A→B는 A를 알면 B가 결정된다는 뜻)
*** 후보키: 모든 튜플(행)을 유일하게 식별할 수 있는 최소 속성 집합(중복 없이 사람을 찾아낼 수 있는 최소한의 정보)
5) 4차 정규화
- 다치종속: 한 속성이 정해지면, 다른 속성들이 서로 독립적으로 여러 개씩 연결될 수 있는 경우
6) 5차 정규화
- 조인 종속: 한 릴레이션(테이블)이 여러 개의 분리된 테이블로 나눠졌을 때, 그 테이블들을 다시 조인하면, 원래 테이블이 정확히 복원되는 관계
'AI > SQL' 카테고리의 다른 글
[SQL] 인덱스와 뷰, JOIN (0) | 2025.04.17 |
---|---|
[SQL] CAST, IN, ANY, ALL, 서브쿼리 (0) | 2025.04.13 |
[SQL] 제약조건, 키(Key), 인덱스 (0) | 2025.04.08 |
[SQL] 리눅스(ubuntu)에 mysql 설치, SQL 기본 문법 (0) | 2025.04.08 |
[SQL] 데이터와 정보 (0) | 2025.04.07 |
- Total
- Today
- Yesterday
- llm
- 티스토리챌린지
- 줄넘기
- 프로그래머스
- 영어회화
- 고득점 Kit
- SQL
- 루틴
- 오블완
- 기초
- 30분
- 뉴스
- IH
- 빅데이터 분석기사
- Ai
- 습관
- ChatGPT
- 경제
- Python
- C언어
- 다이어트
- 오픽
- 아침
- 스크랩
- 운동
- 아침운동
- 실기
- 미라클모닝
- 갓생
- opic
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |