제 1정규형(1NF)

white-sheep·2023년 7월 30일

제 1정규형이란?

제 1형규형(1NF)의 조건은 릴레이션이어야 할 것이다.

릴레이션이 1NF가 되기 위한 조건은 다음과 같습니다.
1. 행이 위에서 아래로 정렬돼 있지 않아야 한다.
2. 열이 왼쪽에서 오른쪽으로 정렬돼 있지 않아야 한다.
3. 중복하는 행이 존재하지 않아야 한다.
4. 각 행과 열의 교착점은 도메인에 속하는 요소의 값을 딱 한 개만 가져야 한다.
5. 모든 열의 값은 정의된 것이어야 하고 각 행은 항상 존재해야한다.

칼럼(열)이나 행(로우)의 순서

1NF에 조건에 충족을 하려면 1과 2의 해당하는 부분이 정렬이 되어 있어야 한다.
SQL의 사양으로는 테이블의 칼럼은 순서가 존재한다. 이를 해결하기 위해서 칼럼이나 행의 위치에 의존하는 쿼리를 작성하지 않는다.

칼럼의 순서에 의존하는 처리 하는 방법은 다음과 같습니다.

  • SELECT * 로 모든 칼럼을 검색하고 응용프로그램이 칼럼의 위치에 따라 데이터를 접근하는 방법
  • ORDER BY 절의 인수로 칼럼의 위치를 지정하는 것

중복되는 행을 제거

중복도니 행을 제거하기 위해서 '똑같은 행의 값이 최대 1개 이상 포함되지 않으면 된다'이다의 테이블에 기본키나 유니키처럼 고유성의 제약 조건을 붙입니다.

중요한 것은 저장되는 값이 중복되지 않게 하는 것입니다.
고유성 제약 조건을 걸어도 정규화는 단순하게 중복을 해결할 수 없습니다.
강조할 부분은 중복하는 행은 반드시 제거해야 합니다.

NULL이 포함되면 안 된다

테이블의 모든 행, 모든 칼럼은 구체적인 값을 가져야 합니다. 만약 NULL이 포함돼 있으면 관계형 데이터베이스는 무너집니다.

기존 테이블에 NULL인 칼럼에 NOT NULL 제약 조건을 걸어도 응용프로그램에서는 기본값으로 할당합니다.
테이블을 나눠서 NULL을 해결하는 방법을 선택합니다.

여기서 테이블에 NULL 포함이 되서는 안된다고 생각을 해야 합니다.

0개의 댓글