eunzae's develog
[데이터품질관리]데이터 값 핵심품질항목 정의(CTQ) 본문
데이터 값 핵심품질항목(CTQ) 정의 시
시스템 중요도 산정을 위한 데이터를 뽑는 쿼리입니다.
WITH PK_TBL AS --PK테이블 임시생성
(SELECT A.TABLE_NAME
, B.COLUMN_NAME
FROM ALL_CONSTRAINTS A
, ALL_CONS_COLUMNS B
WHERE 1=1
AND A.OWNER = '오너명'
AND A.CONSTRAINT_TYPE = 'P'
AND A.OWNER = B.OWNER
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
AND A.CONSTRAINT_NAME NOT LIKE 'BIN$%')
SELECT A.COLUMN_NAME -- 컬럼 영문명
, MAX(C.COMMENTS) LCOL_NAME -- 컬럼 한글명
, COUNT(DISTINCT SUBSTR(A.TABLE_NAME,0,3)) AS SYS_CNT -- 시스템분포수(주제영역 1레벨 기준),(각 기관에 맞게 쿼리 수정)
, 1 AS DB_CNT -- DB분포수(각 기관에 맞게 쿼리 수정)
, COUNT(*) AS COLUMN_CNT -- 테이블분포수
, COUNT(*) AS COLUMN_CNT -- 컬럼분포수
, MAX(CASE WHEN B.COLUMN_NAME IS NULL THEN 'N' ELSE 'Y' END) AS PK_YN -- PK사용여부(1개라도 PK)
, SUM(NVL2(B.COLUMN_NAME,1,0)) AS PK_CNT -- PK컬럼수
, SUM(NVL2(B.COLUMN_NAME,0,1)) AS NOT_PK_CNT -- PK아닌컬럼수
, MAX(DECODE(SUBSTR(A.TABLE_NAME,-1,1),'M','Y','N')) AS MST_YN -- MASTER여부(각 기관에 맞게 쿼리 수정)
FROM ALL_TAB_COLUMNS A
INNER JOIN ALL_COL_COMMENTS C
ON(
A.OWNER = C.OWNER
AND A.TABLE_NAME = C.TABLE_NAME
AND A.COLUMN_NAME = C.COLUMN_NAME
)
LEFT OUTER JOIN PK_TBL B
ON (
A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME
)
WHERE 1=1
AND A.OWNER = '오너명'
AND A.TABLE_NAME NOT LIKE '%2023%'--백업 테이블 제외
GROUP BY A.COLUMN_NAME
ORDER BY 1 ASC
;
'Database > Data Architecture' 카테고리의 다른 글
[데이터모델링] 정규화 (0) | 2023.03.16 |
---|---|
[정보계]OLTP vs OLAP (1) | 2023.03.14 |
[데이터 모델링] 논리적 데이터 모델링(Logical Data Modeling) (0) | 2022.12.26 |
[데이터 모델링]개념 데이터 모델링(Conceptual Data Modeling) (0) | 2022.12.21 |
[DA] 코드, ID, 번호 도메인의 차이점 (0) | 2022.08.09 |