[온톨로지 적용하기] 4주차 Day 3 — 컬럼에서 속성 뽑기: 되는 것과 안 되는 것
주차 주제: 우리 테이블에서 개념 꺼내기 | 제조 사례: 컬럼명이 거짓말을 하던 회사
오늘의 목표: 컬럼명이 아니라 값을 보고 속성을 뽑는 법을 익힌다.
소요 시간: 30분
1. 한 문장으로
컬럼명은 믿지 마세요.
컬럼값을 보세요. ★
2. 컬럼명이 거짓말하는 다섯 가지
① 이름과 내용이 다르다 ★
remark 컬럼에 실제로는 긴급 사유가 들어감
② 용도가 바뀌었다 ★
spare1 · spare2 · user_def3
→ 나중에 무언가로 쓰임
③ 비어 있다 ★
컬럼은 있는데 NULL 이 99%
④ 값이 정의서와 다르다 ★
정의서엔 4개인데 실제 값은 9개
⑤ 같은 뜻을 다른 이름으로 ★
item_cd · itm_code · material_id
3. ★ 그래서 반드시 이것부터
속성 후보마다 세 가지를 봅니다. ★
① NULL 비율 ★
SELECT COUNT(*), COUNT(컬럼) FROM 테이블
② 값의 종류와 분포 ★
GROUP BY 컬럼
③ 실제 예시 10건 ★
눈으로 봅니다
5분이면 됩니다.
그리고 절반의 오해가 사라집니다. ★
4. ① NULL 비율이 말하는 것
NULL 0% 필수값. 핵심 속성 ★
NULL 1~30% 선택 입력. 쓸 만함 ★
NULL 30~80% 특정 경우만. 주의 필요 ★
NULL 80%+ 안 쓰는 컬럼 ★
NULL 100% 죽은 컬럼. 제외 ★
80% 넘는데 중요해 보이면
왜 비었는지 확인하세요. ★
"입력이 선택사항이라" 면
그 속성으로는 집계할 수 없습니다. ★
5. ② 값 분포가 말하는 것
예 — order_type
값 건수 비율
────────────────────────
N 182,400 91.2% 일반 ★
S 12,100 6.1% 샘플 ★
R 4,800 2.4% 재발주
X 520 0.3% ? ★
A 14 0.01% ? ★
읽을 것
· X 와 A 는 정의서에 없습니다 ★
· 14건짜리 A 는 실수일 수 있습니다 ★
· S(샘플)가 6% — 집계에서 빼야 하나? ★
마지막 물음이 개념의 경계입니다. ★
6. ③ 예시 10건이 말하는 것
숫자로는 안 보이는 것이 보입니다.
예 — remark 컬럼 (VARCHAR, NULL 40%)
실제 값
"긴급 - 사장님 지시" ★
"납기 6/15 → 6/10 당김" ★
"클레임 재생산" ★
"샘플, 무상" ★
읽을 것
· 이 컬럼에 중요한 뜻이 들어 있습니다 ★
· 그런데 구조화가 안 돼 있습니다 ★
· 집계할 수 없습니다 ★
적어야 할 것
"비고 — 긴급 사유·납기 변경 등이 자유 형식으로
들어감. 집계 불가. 참고용." ★
「집계 불가」 를 적는 것이 중요합니다. 안 적으면 AI 가 세려고 합니다.
7. 속성으로 안 만드는 것
· NULL 95% 이상 ★
· 값이 1종류 (전부 같은 값) ★
· 시스템 컬럼 (created_at 등) ★
· 화면 제어 (sort_order 등) ★
· 다른 개념을 가리키는 코드 ★
→ 속성이 아니라 관계입니다 ★
마지막이 자주 틀립니다.
수주.거래처코드
→ 속성 ✗ · 관계 ○ ★
수주 ──거래처──> 거래처 ★
8. 제조 현장의 실제
어느 업체, 「생산실적」 테이블 컬럼 62개.
값을 확인해 보니
NULL 95% 이상 19개 ★
값 1종류 7개 ★
시스템/화면 컬럼 11개 ★
다른 개념 참조 6개 → 관계로 ★
──────────────────────
속성으로 남은 것 19개 ★
그중 놀란 것
· qty_ok 와 qty_good 둘 다 있었습니다. ★
값을 보니 항상 같았습니다. ★
→ 하나는 예전 컬럼. 제외. ★
· user_def2 에 로트번호가 들어 있었습니다. ★
→ 추적성의 핵심이었습니다 ★
→ 개념 「로트」 가 여기서 나왔습니다 ★
62 → 19. 그리고 숨은 것 하나를 찾았습니다. ★
9. 5분 점검 쿼리
① 건수와 NULL
SELECT COUNT(*) 전체,
COUNT(컬럼) 값있음
FROM 테이블 ★
② 값 분포
SELECT 컬럼, COUNT(*)
FROM 테이블 GROUP BY 컬럼
ORDER BY 2 DESC ★
③ 예시
SELECT * FROM 테이블
WHERE 컬럼 IS NOT NULL
ORDER BY 최근순 LIMIT 10 ★
③은 최근 것을 보세요. ★
오래된 건 지금 쓰임과 다를 수 있습니다.
10. 오늘 해 볼 것 (15분)
① 개념 하나의 컬럼을 세세요
개념 ________
컬럼 수 ___개
- NULL 90%+ ___개 ★
- 값 1종류 ___개 ★
- 시스템/화면 ___개 ★
- 다른 개념 참조 ___개 → 관계 ★
──────────────
= 속성 ___개 ★
② 상태 컬럼의 값을 세세요
값 건수 비율 정의서에 있나 ★
____ ____ ___% ○/✗
____ ____ ___% ○/✗ ★
③ 자유 입력 컬럼을 10건 보세요
컬럼 ________
들어 있는 것 ________________ ★
집계 가능? ○/✗ ★
11. 내일 할 것
★ 짐작하지 않고 건너뛰는 법.
이 과정을 다른 온톨로지 강의와 가장 크게 가르는 날입니다.
이 글은 온톨로지 적용하기 과정의 4주차 3일차입니다. 과정 전체 보기
진도와 검색이 되는 판: AXPulse 기술따라가기
댓글
댓글 쓰기