Day12 . 2023.03.20
데이터 정규화
- 데이터 베이스를 설계할 때 중복을 최소화하는 것
- 크고 조직화되어 있지 않은 테이블과 관계들을 조직화된 테이블과 관계들로 나누는 것
데이터 정규화가 필요한 경우
-데이터를 갱신,삽입,삭제하는 등 테이블을 수정할 때 원하지 않게 데이터가 삭제되거나 가공되는 일이 발생하는데 이를 '이상 현상'이라고 함
-이상 현상이 발생하는 경우 데이터 정규화가 반드시 필요
정규화의 종류
1. 1NF (제 1 정규화)
테이블 안의 모든 값들은 단일값이어야 함 : 하나의 필드에는 하나의 값만
2. 2NF (제 2 정규화)
-1NF 를 만족하면서, 완전 함수 종속성을 가진 관계들로만 테이블을 생성하는 것
-종속성들 중 종속 관계에 있는 열들끼리 테이블을 구분해 주는것
✔함수 종속성
x값에 따라서 y값이 결정되는 경우
3. 3NF (제 3 정규화)
- 2NF를 만족하면서, 기본키에 대해 이행적 함수 종속이 되지 않는 것을 의미
- 이것을 무조건 지키는건 애매하다. 성능의 문제가 있고 실무자들끼리의 논의가 필요함
4. 비정규화
-정규형에 일치하게 되어 있는 테이블을 정규형을 지키지 않는 테이블로 만드는 것
-테이블을 조회하는 용도로 사용하거나, 너무 데이터가 많이 나뉘어 성능이 저하된다면 비정규화를 하여 테이블을 다루는 것이 더 효율적일 수 있다.
-어떤 작업을 수행하는지, 어떤 데이터를 사용하는지에 따라 적절한 정규화를 하는 것이 좋음
'코딩공부 > DBMS' 카테고리의 다른 글
| DBMS(MySQL)_문자열함수 (3) | 2023.03.23 |
|---|---|
| DBMS(MySQL)_서브 쿼리 (sub Query) (0) | 2023.03.23 |
| DBMS(MySQL) _ 조인(join) (0) | 2023.03.23 |
| DMBS(MySQL)_연산자,정렬문,조건문 (2) | 2023.03.23 |
| DBMS(MySQL) _기본 개념,문법 (1) | 2023.03.23 |