본문 바로가기

DB

데이터베이스(3)

다중 부분 필드 해소

  • ex) 이름 - 김예나
  • 다중 부분 필드로부터 정보를 추출하고 정렬하는 것은 어려움
  • 필드 내의 고유한 항목을 식별 후, 각각의 항목을 개별적인 필드로 나눔
  • 강사 이름 필드 → 강사 성 필드, 강사 이름 필드로 나눔
  • 강사 주소 필드 → 강사 시, 강사 도, 강사 우편번호 필드로 나눔
  • 감추어진 다중 부분 필드가 있을 수도 있으니 주의

다중 값 필드 해소 ex) 사용 언어 - 한국어, 영어, 독일어

  • 해선 안 되는 것들
    • 다중 값 필드를 단일 값 필드들로 평탄화하는 것 X
      • 교육 범위들 → 교육범위1, 교육범위2, 교육범위3
    • 하나의 값만 포함하도록 하는 것 X
      • 교육 범위들 카테고리들을 하나의 값만 포함하게 나눔
  • 다중 값 필드 해소 절차
    1. 다중 값 필드들이 일대일 연관 같은 것이 있는지 살펴봄
    2. 다중 값 필드들을 기존의 테이블로부터 제거 후, 새로운 테이블로 생성
    3. 새로운 테이블을 기존 테이블과 관계를 맺게 하기 위한 연결 필드 추가 후, 적절한 이름, 종류, 설명 할당
  • 다중 값 필드를 해소하기 위한 새로운 테이블들은 중복된 데이터를 포함하지만, 중복이 최소한이므로 허용 가능함. → 설계는 절대적으로 최소한의 중복 데이터만 가질 수 있도록!!

테이블 구조 정제하기

테이블의 필수 요소

  • 단일 주제를 나타냄
  • 기본키
  • 다중 부분, 다중 값 필드 금지
  • 계산된 필드 금지
  • 불필요한 이중 필드 금지
  • 최소한의 중복 데이터 포함

 

불필요한 이중 필드 해결 : 제 3 정규화

  • 두 개의 이중 필드 집합 → 악기1/악기2/악기3 , 대여일1/대여일2/대여일3
  • 악기와 대여일은 1대1 관계
  • 다중 값 필드 해결방법과 같은 절차로 해결
    1. 다중 값 필드들을 기존의 테이블로부터 제거 후, 새로운 테이블로 생성
    2. 새로운 테이블을 기존 테이블과 관계를 맺게 하기 위한 연결필드 추가 후, 적절한 이름, 종류, 설명 할당

 

키의 종류 - 테이블 내에서의 기능을 결정

후보키

  • 테이블에서 설정하는 첫번째 키
  • 각 테이블은 적어도 하나의 후보키를 가져야 함
  • 후보키들 가운데 하나를 기본키로 지정
  • 필수 요소
    • 다중 부분 필드 x
    • 레코드를 유일하게 식별할 수 있는 값이여야 함
    • 널 값x
    • 암호, 사회보장번호 같은 보안과 관련된 값 x
    • 선택적이지 않고 필수적으로 모든 값이 들어가야 함
    • 유일성을 정의하기 위한 필요한 최소 개수의 필드만 포함 → 성,이름 o / 성,이름,직원ID x
    • 고정된 값이여야 함

기본키

  • 후보키들 중에서 선택한 하나의 키, 필수요소는 후보키와 동일
  • 각각의 테이블은 단 하나의 기본키만 가져야 함

대체키

  • 후보키들 중에서 기본키로 사용되지 않은 나머지 키
  • 테이블 내의 특정 레코드를 유일하게 식별하는 대체 수단

테이블 무결성 조건

  • 이중 레코드 x
  • 기본 키가 각 레코드를 유일하게 식별
  • 기본키는 유일하고 널이 없어야 함

'DB' 카테고리의 다른 글

데이터베이스(5)  (0) 2024.05.13
데이터베이스(4)  (0) 2024.05.13
데이터베이스(2)  (0) 2024.05.09
데이터베이스(1) - 용어  (1) 2024.05.09
용어 1  (4) 2023.05.08