ACC: 데이터베이스 정규화 기본 사항

기술 자료 번역 기술 자료 번역
기술 자료: 100139 - 이 문서가 적용되는 제품 보기.
초급: 단일 사용자 컴퓨터의 사용자 인터페이스에 대한 지식이 필요합니다.

모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 기본 사항 데이터베이스 정규화 용어 설명합니다. 이 용어 기본적으로 이해하고 관계형 데이터베이스의 디자인을 설명할 때 유용합니다.

참고: Microsoft는 또한 데이터베이스 정규화 기본 사항을 설명하는 웹캐스트를 제공합니다. 이 웹캐스트를 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/servicedesks/webcasts/wc060600/wc060600.asp?fr=1
참고: Microsoft Access 2000이 이 정보를 보려면 Microsoft 기술 자료의 다음 문서를 참조하십시오.
209534ACC2000: 데이터베이스 정규화 기본 사항

추가 정보

정규화 설명

정규화는 데이터베이스의 데이터를 구성하는 과정입니다. 이 테이블을 만들고 데이터를 보호하도록 및 두 가지 요소를 제거하여 보다 유연한 데이터베이스를 만들기 위해 설계된 규칙에 따라 테이블 간의 관계를 설정하는 과정이 포함됩니다: 중복 및 일관성 없는 종속성.

중복 데이터 디스크 공간이 낭비되고 유지 관리 문제가 발생합니다. 둘 이상의 위치에 있는 데이터를 변경해야 할 경우, 모든 위치에서 정확히 동일한 방식으로 데이터는 변경해야 합니다. 고객 주소 변경 Customers 테이블과 위치에는 다른 데이터베이스에 있는 해당 데이터가 저장되어 있으면 구현하는 데 훨씬 쉽습니다.

"일관성 없는 종속성" 무엇입니까? 직관적인 사용자가 Customers 테이블의 특정 고객의 주소를 찾는 동안 이를 누가 해당 고객이 전화를 직원 급여 있을 찾도록 합리적입니다지 않습니다. 직원의 급여를 또는 직원 따라 관련되어 있으며 따라서 Employees 테이블을 옮겨야 합니다. 일관성 없는 종속성을 데이터 액세스가 어려워질 수 있습니다; 데이터를 찾기 위해 경로 없거나 손상된 것 같습니다.

데이터베이스 정규화에 대한 몇 가지 규칙이 있습니다. 각 규칙 "정상적인 양식" 이라고 첫 번째 규칙이 관찰되는 경우 데이터베이스는 "첫 번째 일반적인 형태로." 속성이라고 합니다. 처음 세 개의 규칙이 관찰되는 경우 데이터베이스는 "셋째 기본 폼에." 간주됩니다. 셋째 기본 폼에 다른 수준의 정규화 수도 있지만 대부분의 응용 프로그램에 필요한 가장 높은 수준으로 간주됩니다.

대부분의 공식적인 규칙 및 사양과 마찬가지로 실제 시나리오에서는 항상 완벽한 준수 허용하지 않습니다. 일반적으로 정규화 추가 테이블이 필요하며 일부 고객은 이 번거로운 찾을. 중 처음 세 가지 정규화 규칙을 위반하는 경우 응용 프로그램에서 데이터 중복 및 일관성 없는 종속성을 같은 발생할 수 있는 모든 문제를 예상할 확인하십시오.

참고:에 대한 다음 설명을 예입니다.

첫 번째 정규형

  • 개별 테이블에서 반복되는 그룹을 제거하십시오.
  • 관련 데이터의 각 집합에 대해 별도의 테이블을 만듭니다.
  • 기본 키를 사용하여 관련 데이터의 각 집합을 식별하십시오.
단일 테이블에서 여러 필드를 유사한 데이터를 저장하는 데 사용하지 않습니다. 예를 들어, 두 가지 가능한 원본에서 오는 있습니다 재고 항목을 추적하려면 인벤터리 레코드 필드를 공급업체 코드 1과 공급업체 코드 2에 대한 포함될 수 있습니다.

그러나 세 번째 공급업체를 추가하면 어떻게 됩니까? 답은 필드를 추가할 수 없습니다, 프로그램 및 테이블 수정 필요하며 동적 공급업체 수가 원활하게 수용할. 대신 모든 공급업체 정보를 공급업체, 다음 항목은 숫자 키로 공급업체 또는 공급업체는 공급업체 코드 키를 사용하여 인벤토리에 링크 인벤터리 라는 별도의 테이블에 저장하십시오.

두 번째 정규형

  • 여러 레코드에 적용되는 값 집합에 대해 별도의 테이블을 만듭니다.
  • 이러한 테이블의 외래 키로 연결됩니다.
레코드가 있는 테이블의 기본 키 (복합 키, 필요한 경우) 이외의 다른 사용해서는 안 됩니다. 예를 들어, 고객 주소를 계정 시스템에 있는 것이 좋습니다. Customers 테이블에 있지만 주문, 배달, 청구서, 신용 판매 및 수집 테이블에 의해 주소가 필요됩니다. 고객의 주소를 각 이러한 테이블에 별도의 항목으로 저장하는 대신, Customers 테이블에 또는 별도의 주소 테이블 한 위치에 저장하십시오.

세 번째 정규형

  • 키에 종속되지 않는 필드를 제거하십시오.
해당 레코드 키의 일부가 아닌 레코드의 값은 테이블에 속하지 않습니다. 일반적으로 모든 시간 필드 그룹의 내용이 적용됩니다 단일 레코드를 테이블에 있는 둘 이상의 이러한 필드를 별도의 테이블에 배치하는 것이 좋습니다.

예를 들어, 직원 채용 테이블에 지원자의 대학 이름과 주소가 포함되어 있을 수 있습니다. 그러나 그룹 편지 전체 대학 목록이 필요합니다. 대학 정보가 지원자 테이블에 저장되어 있는 경우에는 현재 후보 함께 목록 대학 위해 방법이 없습니다. 별도의 대학 테이블을 만들고 대학 코드 키를 사용하여 지원자 테이블에 연결하십시오.

예외: 셋째 기본 폼, 이론적으로 바람직하지 않지만 준수하면 항상 적합하지 않습니다. Customers 테이블의 경우, 원하는 모든 가능한 interfield 종속성을 제거하려면 여러 레코드에서 도시, 우편, 판매 담당자, 고객 클래스와 중복될 수 다른 요인에 대해 별도의 테이블을 만들어야 합니다. 그러나 이론, 정규화 가치가 추진하는 것입니다. 그리고 많은 작은 테이블에 있습니다 성능을 저하시키거나 열린 파일 및 메모리 용량을 초과할.

보다 편리한 자주 변경되는 데이터에만 셋째 기본 폼에 적용할 수 있습니다. 일부 종속 필드가 남아 있으면 하나가 변경될 때 모든 관련 필드를 확인할 수 요구하도록 응용 프로그램을 디자인하십시오.

다른 정규화 양식

Boyce Codd 기본 폼 (BCNF), 라고도 네 번째 일반 폼 및 다섯 번째 정규형 있을 수 있지만 거의 실질적인 디자인 간주됩니다. 이러한 규칙은 제쳐놓더라도 미만의 완벽한 데이터베이스 디자인을 발생할 수 있지만 기능에 영향을 미치지 않습니다.
               **********************************
                 Examples of Normalized Tables
               **********************************

 Normalization Examples:

 Unnormalized table:

    Student#   Advisor   Adv-Room  Class1   Class2   Class3
    -------------------------------------------------------
    1022       Jones      412      101-07   143-01   159-02
    4123       Smith      216      201-01   211-02   214-01
				
  1. 첫 번째 정규형: NO REPEATING 그룹

    두 개의 차원 테이블이 있어야 합니다. 이러한 클래스는 여러 클래스를 하나의 학생 있기 때문에 별도의 테이블에 나열되어 있어야 합니다. 필드 Class1, Class2, & 위의 레코드의 Class3 나타내는 항목을 디자인 문제가 있습니다.

    스프레드시트 세 번째 차원 자주 사용하지만 테이블 합니다. 이 문제에 찾는 또 다른 방법은: 한 일대다 관계로 한 쪽 및 여러 쪽 같은 테이블에 두지 않습니다. 대신, 다른 테이블의 첫째 기본 폼 반복 그룹 (강좌 번호)를 제거하여 아래 표시된 것처럼 만들기:
           Student#   Advisor   Adv-Room    Class#
           ---------------------------------------
           1022      Jones      412       101-07
           1022      Jones      412       143-01
           1022      Jones      412       159-02
           4123      Smith      216       201-01
           4123      Smith      216       211-02
           4123      Smith      216       214-01
    					
  2. 두 번째 정규형: 중복 데이터 제거

    위의 표에 각 학생 번호 값에 대해 여러 개의 강좌 번호 값이 유의하십시오. 클래스 # 기능적으로 종속 학생 번호 않습니다 (기본 키)이 이 관계를 둘째 기본 폼 있으므로.

    다음 두 테이블의 둘째 기본 폼 보여 주는:
        Students:   Student#    Advisor   Adv-Room
                    ------------------------------
                    1022        Jones       412
                    4123        Smith       216
    
        Registration:   Student#    Class#
                        ------------------
                        1022        101-07
                        1022        143-01
                        1022        159-02
                        4123        201-01
                        4123        211-02
                        4123        214-01
    					
  3. 세 번째 정규형: ON KEY NOT 종속 데이터를 제거합니다

    마지막 예제에서 고급 방 (해당 관리자의 사무실 번호) 기능적으로 관리자 특성에 따라 다릅니다. 아래와 같이 해결할 해당 특성을 학생 테이블에서 교직원 테이블에 이동할 수 있습니다:
        Students:   Student#    Advisor
                    -------------------
                    1022        Jones
                    4123        Smith
    
        Faculty:    Name    Room    Dept
                    --------------------
                    Jones   412     42
                    Smith   216     42
    					

참조

데이터베이스 디자인에 대한 자세한 내용은 아래 문서 번호를 눌러 Microsoft 기술 자료에 있는 문서를 클릭하십시오.
234208ACC2000: "관계형 데이터베이스 디자인 이해" 문서를 사용 가능한 다운로드 센터
1991 220-225, M & T 설명서의 "FoxPro 2 A 개발자 가이드" Hamilton M. Ahlo Jr. et al. 페이지

"사용하여 Access Windows용," Roger Jennings Que Corporation은 799-800, 1993 페이지

속성

기술 자료: 100139 - 마지막 검토: 2007년 1월 18일 목요일 - 수정: 2.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
키워드:?
kbmt kbinfo kbusage KB100139 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com