테이블 만들기 (4)

지난 포스팅에서 우리 데이터베이스의 심장이 되는 자산 테이블을 만들었으니 이제 데이터의 정규화에 기초하여 내가 필요하다고 생각하는 다른 3개의 테이블을 추가하여 보겠습니다. 데이터베이스가 복잡해 진다면 가장 고민을 많이 하면서 시간이 가장 오래 걸리는 작업입니다. 한번 잘못 설계된 데이터베이스는 매우 수정하기가 힘이 듭니다.

테이블을 생성하는 것은 내가 나중에 추가 테이블을 연결할 것을 염두에 두면서 현재 필요하다고 생각되는 부분을 생각합니다. 개인용 물품 관리에서 내가 물건을 산 판매 센터의 테이블, 그리고 제조업체의 테이블, 또 사용 하다가 고장 났을 때 수리정보를 담을 이 3개의 테이블을 각각 추가하겠습니다.

22연습파일.accdb

  1. 엑세스 관계의 종류

    엑세스에는 테이블과 테이블의 관계를 설정할 때 여러 가지 관계를 설정 할 수 있습니다. 1:1관계 다수 대 다수 관계, 1: 다수 관계 등 여러 가지가 있지만 가장 많이 사용되는 관계는 1: 다수 관계와 다수: 다수 관계 입니다.

    1: 다수의 관계는 회사 직원의 신용카드 정보를 데이터 베이스로 만든다고 생각해 보면 됩니다. 회사 직원의 테이블이 있을 것이고 직원이 가지고 있는 신용카드의 데이터베이스가 있을 것 입니다. 직원 한 명은 여러 장의 신용카드를 가질 수 있습니다. 직원 테이블과 신용카드 테이블은 One to Many 관계가 되는 것 입니다.

    Many to Many관계는 강의실과 수업이름의 관계를 생각해 봅시다. 학교에서 모든 강의실의 정보를 테이블로 만들고 모든 강의 정보를 테이블로 만들었습니다. 그리고 강의실에 강의 정보를 넣으려고 합니다. 하나의 강의실에는 여러 개의 강의가 들어갑니다. 또 하나의 강의는 여러 강의실에서 일어날 수 있습니다. 이런 관계를 Many to Many 관계라고 합니다.

    Many to Many 관계는 일부러 설정해 줘야 하지만 다른 관계를 형성하다 보면 자연적으로 되는 경우가 많고 저의 연습파일이 그렇습니다.

    One to Many 관계에서 Many 쪽에서 One 테이블에 해당하는 값과 연결하기 위해 연결 키를 추가해 줘야 하고 이 연결키는 별도의 필드로 들어가게 되며 주로 One쪽의 기본 키가 사용됩니다.

    이 연결 키를 외래 키 Foreign Key라고 부르며 필자는 IDFK(ID Foreign Key)라고 필드 이름을 짓습니다.

    테이블과 테이블을 연결할 때 무한대의 표시가 있는 쪽이 Many 가 됩니다.

     

  2. 판매자 테이블

    내가 물품을 구매한 판매자의 정보를 담을 테이블을 생각을 해봅시다. 내가 자주 가는 사이트가 옥션이거나 이마트라면 이마트는 여러 개의 상품을 나한테 팔 수 있습니다. 즉 이마트에서 구매한 상품 정보는 여러가지 일 수 가 있습니다.

    그러므로 판매자는 나의 데이터 베이스에서 One에 해당하고 외래키의 정보를 추가할 필요가 없습니다. 지난번 포스팅에서 소개한 방법대로 테이블을 만듭니다.

    5개의 필드를 다음과 같은 데이터형식으로 추가하세요.

     

  3. 수리정보 테이블

    수리 정보 테이블을 생각해 봅시다. 내가 가지고 있는 특정 제품은 나의 테이블에서 분명히 고유의 값입니다. 그러나 제품이 고장이 나면 그 제품이 갈 수 있는 수리 센터는 여러 군데가 있죠. 공식 서비스 센터로 갈수가 있고 아니면 동네에서 야매로 수리도 가능합니다.

    그러므로 수리 센터의 정보는 자산 테이블 과의 관에서 Many 관계가 되고 외래 키를 추가해 주어야 합니다.

    외래키의 위치는 중요하지 않지만 제이킴은 항상 앞에다가 모아 둡니다. tblAsset과 연결할 AssetIDFK필드를 만들어 주고 다른 필드도 추가 합니다.

     

  4. 제조업체 테이블

    하나의 제조 업체는 내가 가진 여러 개의 제품을 만들 수 있습니다. 내가 가진 제품은 절대 여러 개의 제조 업체, 브랜드 이름을 가질 수 없죠. 그러므로 제조 업체 테이블과 나의 자산 테이블 과의 관계는 제조업체가 One, 자산이 Many가 됩니다.

    그러므로 제조업체 테이블에는 외래키를 추가할 필요가 없습니다.

    5개의 필드를 다음과 같은 데이터 형식으로 추가하세요.

     

     

    One to Many 에서 제조 업체와 판매자 테이블 간의 관계에서 Many가 되는 자산 테이블에 두 개의 외래 키 필드를 추가해 줍니다,

     

     

    제가 이름을 짓는 요령은 지난 포스팅에서 소개 하였습니다. 이렇게 4개의 테이블을 완성하시면 됩니다.

    테이블을 설계할 때 어떤 부분을 생각해 봐야 하는지 좋은 예시가 됐을 거라고 생각합니다. 물론 이 모든 관계 설정은 예전 포스팅에서 설명한 데이터의 1차, 2차, 3차 정규화를 모두 지킨 상태에서의 설정 입니다. 사실 정해진 테이블을 엑세스의 버튼을 보고 따라서 만드는 것은 초등학생도 가르치면 잘 하지요. 단 4개의 테이블로도 고민할 것이 많아지는데 테이블이 수백 개가 이런 저런 형태로 엃혀 있는 데이터 베이스는 흔합니다. 국가 정부 기관의 데이터 베이스도 다 이런 식으로 엃혀 있는 것이고 이런 데이터베이스를 설계하고 완성하는데 보통 수십억이 듭니다.


+ Recent posts