1NF란 무엇입니까
1NF는 DBMS의 First Normal Form으로, 정규화되지 않은 테이블에 적용하여 정규화합니다. 정규화되지 않은 테이블에는 완벽한 데이터베이스 디자인을 얻기 위해 피해야 하는 다음과 같은 문제가 있습니다. -
정규화되지 않은 테이블 문제
데이터 중복
동일한 데이터 항목을 여러 번 저장하는 것을 데이터 중복이라고 합니다.
예를 들어 보겠습니다 -
<직원>이 있습니다. 직원의 현재 주소를 저장하는 필드가 있는 테이블입니다. 이 직원 중 일부는 회사에서 살 곳을 제공했습니다. 따라서 동일한 주소를 갖습니다. 주소는 데이터베이스에서 반복됩니다 -
표 1.1
EmpID | EmpName | 엠프 주소 |
001 | 아미트 | 11, VA Street, New York |
002 | 톰 | 11, VA Street, New York |
003 | 데이비드 | 11, VA Street, New York |
004 | 스티브 | 13, HG 블록, 필라델피아 |
005 | 제프 | 13, HG 블록, 필라델피아 |
이를 해결하려면 직원 주소를 별도의 테이블에 저장하고
업데이트 이상
테이블을 업데이트하는 동안 문제가 발생했을 때 발생합니다.
예를 들어 보겠습니다 -
표 1.2
EmpID | EmpName | 엠프 주소 | EmpDept |
001 | 아미트 | 11, VA Street, New York | A |
002 | 톰 | 11, VA Street, New York | B |
003 | 톰 | 11, VA Street, New York | C |
004 | 스티브 | 13, HG 블록, 필라델피아 | D |
005 | 제프 | 27, ZR 블록, 버지니아 | E |
두 부서에 있는 직원 Tom의 주소를 업데이트해야 하는 경우 두 행을 업데이트해야 합니다. 단일 행만 업데이트하면 Tom은 두 개의 다른 주소를 갖게 되어 데이터 불일치가 발생합니다.
삭제 이상
회사가 D 부서를 폐쇄하기로 결정하고 행 삭제로 인해 직원 Steve의 데이터도 삭제된다고 가정해 보겠습니다.
삽입 이상
존재하지 않는 레코드에 데이터를 삽입하려고 할 때 발생합니다.
정규화는 위의 모든 문제/이상을 제거하고 데이터베이스 관리자가 좋아하는 정규화된 완벽한 데이터베이스 디자인을 제공합니다.
1NF(First Normal Form)를 사용하여 데이터를 정규화하는 방법을 살펴보겠습니다.
INF가 필요한 이유
제1정규형(1 INF)은 위의 섹션과 같이 데이터베이스의 데이터 중복 문제 및 이상 현상을 제거하는 데 유용합니다. 1NF의 모든 속성에는 원자 도메인이 있어야 합니다. 원자성이 아닌 경우 데이터베이스 설계가 잘못된 것입니다. 정규화의 첫 번째 단계입니다.
따라서 테이블이 정규화된 형식이어야 하는 가장 중요한 규칙은 원자 값만 있어야 한다는 것입니다.
예
아래 예제에는 DeptRole 열을 제외한 모든 열이 원자 값으로 구성된 테이블이 있습니다. 따라서 DeptRole 열은 부서 A, B 및 C에 대한 원자 값 규칙을 위반합니다.
표 1.3
DeptId | 부서 이름 | 부서 역할 |
001 | A | 재무, 인사 |
002 | B | 프로그래밍, 네트워킹 |
003 | C | 관리, 마케팅 |
004 | D | 작업 |
이제 수정하고 1NF로 변환해 보겠습니다.
DeptId | 부서 이름 | 부서 역할 |
001 | A | 재무 |
001 | A | HR |
002 | B | 프로그래밍 |
002 | B | 네트워킹 |
003 | C | 관리 |
003 | C | 마케팅 |
004 | D | 작업 |
이제 위의 표는 1NF에 있으며 다음 스크린샷에 요약된 것처럼 모든 열에 원자 값이 있습니다.