[온톨로지 적용하기] 9주차 Day 1 — 관계 이름은 어디서 오는가

주차 주제: 관계 — 지어내지 않고 정의하기 | 제조 사례: 이름 하나로 답이 바뀐 자리

오늘의 목표: 관계 이름이 답을 어떻게 바꾸는지 알고, 이름을 데이터에서 얻는 법을 익힌다.

소요 시간: 30분


1. 2주차와 무엇이 다른가

2주차   관계가 무엇인지 배웠습니다            ★
9주차   바인딩 위에서 확정합니다           ★
바인딩이 있으니

  관계도 실제 조인으로 확인됩니다.         ★
  "있다고 생각하는 것" 이 아니라
  "실제로 이어지는 것" 입니다.               ★

2. 이름이 답을 바꾼다

같은 연결, 다른 이름
  생산실적 ──relates_to──> 설비            ★
  생산실적 ──produced_by──> 설비           ★
  생산실적 ──inspected_at──> 설비          ★
질문 — "EQ-102 가 만든 제품의 불량률"
relates_to   무엇을 계산할지 모름            ★
produced_by  정확히 계산                   ★
inspected_at 엉뚱하게 계산                    ★
FK 는 셋 다 같습니다.
이름만 다릅니다.                           ★

3. ★ 이름은 세 곳에서 옵니다

① 컬럼명                                   ★
   eq_id · produced_eq · inspect_eq

② 업무의 말                                ★
   "이 실적은 어느 설비에서 나왔나"

③ 쿼리의 쓰임                              ★
   실제로 어떻게 조인해서 쓰나
③이 가장 확실합니다.                         ★

4. ① 컬럼명이 알려 주는 것

좋은 컬럼명

  produced_eq_id     → 생산설비              ★
  inspect_eq_id      → 검사설비              ★
  from_wc_cd         → 출발작업장            ★
  to_wc_cd           → 도착작업장            ★
나쁜 컬럼명

  eq_id              → 무슨 설비?          ★
  code1 · ref_id     → 알 수 없음            ★
컬럼이 둘 이상 같은 곳을 가리키면
반드시 이름이 달라야 합니다.              ★

5. 같은 두 개념 사이에 관계가 여럿

자주 있습니다. 그리고 자주 뭉개집니다.        ★
예 — 「수주」 와 「거래처」
  수주 ──주문한곳──> 거래처                  ★
  수주 ──납품처──> 거래처                    ★
  수주 ──청구처──> 거래처                    ★
하나로 두면

  "A사 수주가 몇 건" 이
  세 배로 나올 수 있습니다.                ★
② 기준정보 과정 5주차 Day 3 의
「납품처와 청구처가 다를 때」 입니다.         ★

6. ② 업무의 말로 확인

문장을 만들어 보세요. (2주차 Day 3)
  "생산실적은 설비 에서 생산되었다"        ★
  "수주는 거래처 가 주문했다"              ★
  "검사는 생산실적 을 대상으로 한다"       ★
그리고 현업에게 읽혀 보세요.               ★
"어색한데요" 라고 하면

  · 이름이 틀렸거나                          ★
  · 관계가 없거나                            ★
  · 방향이 반대입니다                        ★

7. ★ ③ 쿼리의 쓰임 — 가장 확실

실제 쿼리를 보세요.
  SELECT ...
  FROM prd_result r
  JOIN eq_master e ON r.eq_id = e.eq_id      ★
  WHERE ...
  GROUP BY e.eq_name                         ★
읽을 것

  · GROUP BY 가 설비면                     ★
    "설비별로 실적을 본다" 는 뜻입니다
  · → 관계 이름 「생산설비」                 ★
그리고 쿼리 제목·화면명이 이름을 줍니다.   ★

  "설비별 생산실적 조회"
  → 「생산설비」 가 맞습니다                 ★

8. 제조 현장의 실제

어느 업체, prd_result 에 eq_id 가 있었습니다.
자동 추출 도구가 만든 관계

  prd_result ──has_eq_master──> eq_master    ★
그런데 쿼리를 보니
  이 컬럼은 검사 설비였습니다.             ★
  (측정기 ID)
생산 설비는 작업장을 통해 간접으로만       ★
알 수 있었습니다.

  prd_result → work_center → equipment       ★
  (그리고 작업장에 설비가 여러 대)           ★
만약 has_eq_master 를 그대로 썼으면
  "설비별 불량률" 이
  측정기별 불량률로 계산됐을 겁니다.       ★
그리고 숫자가 나왔을 겁니다.              ★
바로잡은 뒤

  prd_result ──검사설비──> 설비              ★
  prd_result ──작업장──> 작업장              ★
  작업장 ──보유설비──> 설비  (1:N)           ★

  그리고 적었습니다
    "생산 설비는 직접 기록 안 됨.           ★
     작업장 단위까지만 가능."                ★

9. 이름 짓는 규칙

① 역할을 담으세요                          ★
   검사설비 / 생산설비 (설비 ✗)

② 방향이 보이게                            ★
   출발작업장 / 도착작업장

③ 우리 말로                                ★
   produced_by 보다 「생산설비」            ★
   (영문 병기는 해도 됩니다)

④ has_ · relates_to 금지                   ★

10. 오늘 해 볼 것 (15분)

① 컬럼을 확인하세요

  같은 개념을 가리키는 컬럼이 둘 이상인 것 ★
  테이블  ________
  컬럼    ________ · ________                 ★
  → 각각 무슨 뜻인가                          ★
② 쿼리로 확인하세요

  그 컬럼을 쓰는 쿼리를 찾아
  GROUP BY 와 화면 제목을 보세요.             ★
  → 관계 이름  ____________                   ★
③ 문장으로 읽어 보세요

  "____ 은(는) ____ 을(를) ____ 한다"         ★
  현업에게 읽혀 보세요. 어색한가?             ★

11. 내일 할 것

★ 자동 추출이 지어내는 자리.

도구가 무엇을 지어내는지 구체적으로 봅니다.


이 글은 온톨로지 적용하기 과정의 9주차 1일차입니다. 과정 전체 보기

진도와 검색이 되는 판: AXPulse 기술따라가기

댓글

이 블로그의 인기 게시물

자재관리는 잘 쓰는데 BOM은 엑셀입니다

협력사 AI 로봇 도입, 공급망 스마트 제조 생태계 대응 전략

개발 테스트 자동화, AI 에이전트와 MCP 도입 전략