[요약집] 테이블 설계의 기초

Updated:

테이블 설계의 기초

테이블은 ‘집합’이자 ‘함수’이다. 관계형 데이터베이스에서 데이터를 관리하고 저장하기 위한 그릇이 테이블이다.

관계형 데이터베이스가 주류가 된 이유

  • 데이터의 정합성을 높이기 위한 ‘설계 노하우’가 매우 발달해 있다.

테이블의 특징

  • 테이블은 공통 속성을 가진 것의 집합이다.
  • 테이블은 현실 세계를 반영한다.

테이블 설계의 규칙

  • 가장 상위의 개념 집합으로 정리한다. ex) 과일, 음료, 자동차 등 (O) .. 토마토, 콜라, 아반떼 (X)
  • 열이란 개체의 속성이다.
  • 현실 세계에 같은 사람은 2명 존재하지 않는다.(기본키의 중요성)

정규형

  • 정규형이란
    • 테이블을 설계할 때 ‘제대로 된 형태’ 정도의 의미로 ‘데이터의 갱신이 발생한 경우에도 부정합이 발생하기 어려운 테이블의 형태를 뜻한다.

    • 제 1 정규형(1NF) : 테이블의 속성은 복합적인 값, 즉 두개 이상의 값을 가지지 않는다. 두개 이상의 값을 가질 경우 그 속성을 따로 빼서 테이블로 만들어 관리한다. 최종적으로 ‘단일 값을 갖는 테이블’ 혹은 그 속성을 따로 빼서 테이블로 만들어 관리한다. 최종적으로 ‘단일 값을 갖는 테이블’ 혹은 그 이상 나누는 것이 가능하지 않은 ‘스칼라 값’ 이외의 값을 포함하지 않는 테이블이다.

    • 제 2 정규형(2NF) : 기본키를 구성하는 열의 일부에만 함수 종속이 존재하는 경우를 ‘부분 함수 종속성’이라 하며 이는 제 2 정규형이 될 수 없다. 이럴 경우 부분 함수 종속의 해당 키와 열만 빼내서 다른 테이블로 만들어 준다. 이와 동시에 제 1 정규형을 만족해야 한다.

      *함수 종속성 : 기본키와 다른 열 사이에 성립하는 함수적인 유일성이다. 즉, 기본키는 특정하는 열의 값을 하나의 행 결과로 나타낼 수 있는 것을 말한다.

      ex) SELECT 열 FROM 테이블 WHERE 기본키 = 기본키값 일 때, 한 행 혹은 같은 열값의 복수행 출력할 수 있어야한다.

    • 제 3 정규형(3NF) : 1 정규형과 2 정규형을 만족하면서 ‘추이 함수 종속’이 없는 테이블이어야 한다. 즉, 계층이 다른 집합들을 하나의 테이블에서 관리하지 않는다.

      ex) 고객기업 ID(기업), 기업명(기업), 규모(기업), 업계코드(업계), 업계명(업계)이 속성으로 있을 때, 기업과 업계라는 계층이 다른 집합을 한 테이블에 두지 말고 서로 분리해 테이블을 만들어야 한다.

Categories:

Updated:

Leave a comment