Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

제1정규형(1NF)

<시간/>

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에 있으며 다음 스크린샷에 요약된 것처럼 모든 열에 원자 값이 있습니다.

제1정규형(1NF)