
File name
Commit message
Commit date
set search_path to dq;
DROP TABLE IF EXISTS DQI, USERS, DB_DATA, SCHEMA_DATA, TABLE_DATA, COLUMN_DATA, VAL_RULE, CODE_RULE, DOMAIN_RULE, DUPL_RULE, WORK_RULE, REF_RULE, MANAGE_RULE, MANAGE_RESULT, SCHEDULES, TASKS, TASK_SCHEDULE;
CREATE TABLE DQI
(
DQI_ID SERIAL PRIMARY KEY ,
DQI_NM_HIGH CHARACTER VARYING(50) NULL ,
DQI_NM CHARACTER VARYING(50) NULL ,
DQI_TYPE CHARACTER VARYING(50) NULL ,
DQI_EXPLAIN CHARACTER VARYING(250) NULL
);
CREATE TABLE USERS
(
USER_ID CHARACTER VARYING(50) PRIMARY KEY,
USER_PW CHARACTER VARYING(300) NULL ,
USER_NM CHARACTER VARYING(50) NULL ,
USER_EMAIL CHARACTER VARYING(50) NULL
);
CREATE TABLE DB_DATA
(
DBMS_ID SERIAL PRIMARY KEY ,
DBMS_NAME CHARACTER(25) NULL ,
DBMS_EXPLAIN CHARACTER VARYING(250) NULL ,
DBMS_TYPE CHARACTER VARYING(50) NULL ,
DBMS_VERSION CHARACTER VARYING(20) NULL ,
DBMS_URL_PORT CHARACTER VARYING(50) NULL ,
DBMS_DRIVE_NM CHARACTER VARYING(50) NULL ,
DBMS_CONECT_ID CHARACTER VARYING(25) NULL ,
DBMS_CONNECT_PW CHARACTER VARYING(250) NULL ,
DBMS_AG_NM CHARACTER VARYING(50) NULL ,
DBMS_SYSTEM_NM CHAR(50) NULL ,
USER_ID CHARACTER VARYING(50) REFERENCES USERS(USER_ID)
);
CREATE TABLE SCHEMA_DATA
(
SCHEMA_ID SERIAL PRIMARY KEY,
SCHEMA_STATE CHARACTER VARYING(20) NULL ,
SCHEMA_NAME CHARACTER VARYING(50) NULL ,
SCHEMA_EXPLAIN CHARACTER VARYING(250) NULL ,
SCHEMA_YN CHAR(1) NULL ,
DBMS_ID INTEGER REFERENCES DB_DATA(DBMS_ID)
);
CREATE TABLE TABLE_DATA
(
TABLE_ID SERIAL PRIMARY KEY,
TABLE_YN CHAR(1) NULL ,
TABLE_NM CHAR(18) NULL ,
TABLE_NM_K CHAR(25) NULL ,
TABLE_EXPLAIN CHARACTER VARYING(250) NULL ,
SCHEMA_ID INTEGER REFERENCES SCHEMA_DATA(SCHEMA_ID)
);
CREATE TABLE COLUMN_DATA
(
COLUMN_ID SERIAL PRIMARY KEY ,
COLUMN_NM CHARACTER VARYING(50) NULL ,
COLUMN_NM_K CHARACTER VARYING(50) NULL ,
COLUMN_TYPE CHARACTER VARYING(50) NULL ,
COLUMN_ISNULL CHAR(1) NULL ,
TABLE_ID INTEGER REFERENCES TABLE_DATA(TABLE_ID)
);
CREATE TABLE VAL_RULE
(
VAL_RULE_ID SERIAL PRIMARY KEY,
VAL_RULE_NM CHARACTER VARYING(50) NULL ,
VAL_RULE_MATCH CHARACTER VARYING(25) NULL ,
VAL_RULE_DETAIL CHARACTER VARYING(250) NULL ,
VAL_RULE_EXPLAIN CHARACTER VARYING(250) NULL ,
DQI_ID INTEGER REFERENCES DQI(DQI_ID) ,
USER_ID CHARACTER VARYING(50) REFERENCES USERS(USER_ID)
);
CREATE TABLE CODE_RULE
(
CODE_ID SERIAL PRIMARY KEY ,
CODE_TYPE CHARACTER VARYING(50) NULL ,
CODE_NM CHARACTER VARYING(50) NULL ,
CODE_SQL CHARACTER VARYING(500) NULL ,
CODE_EXPLAIN CHARACTER VARYING(250) NULL ,
DQI_ID INTEGER REFERENCES DQI(DQI_ID),
DBMS_ID INTEGER REFERENCES DB_DATA(DBMS_ID)
);
CREATE TABLE DOMAIN_RULE
(
RULE_ID SERIAL PRIMARY KEY ,
CODE_ID INTEGER REFERENCES CODE_RULE(CODE_ID),
VAL_RULE_ID INTEGER REFERENCES VAL_RULE(VAL_RULE_ID),
COLUMN_ID INTEGER REFERENCES COLUMN_DATA(COLUMN_ID)
);
CREATE TABLE DUPL_RULE
(
DUPL_RULE_ID SERIAL PRIMARY KEY ,
DQI_ID INTEGER REFERENCES DQI(DQI_ID) ,
COLUMN_ID INTEGER REFERENCES COLUMN_DATA(COLUMN_ID)
);
CREATE TABLE WORK_RULE
(
WORK_RULE_ID SERIAL PRIMARY KEY,
WORK_RULE_NM CHARACTER VARYING(25) NULL ,
WORK_RULE_EXPALIN CHARACTER VARYING(250) NULL ,
WORK_RULE_CNT CHARACTER VARYING(500) NULL ,
WORK_RULE_SQL CHARACTER VARYING(500) NULL ,
DQI_ID INTEGER REFERENCES DQI(DQI_ID),
COLUMN_ID INTEGER REFERENCES COLUMN_DATA(COLUMN_ID)
);
CREATE TABLE REF_RULE
(
REF_RULE_ID SERIAL PRIMARY KEY ,
DQI_ID INTEGER REFERENCES DQI(DQI_ID) ,
COLUMN_ID INTEGER REFERENCES COLUMN_DATA(COLUMN_ID)
);
CREATE TABLE MANAGE_RULE
(
MANAGE_RULE_ID SERIAL PRIMARY KEY ,
RULE_ID CHARACTER VARYING(50) NULL ,
RULE_TYPE CHARACTER VARYING(25) NULL ,
USER_ID CHARACTER VARYING(50) REFERENCES USERS(USER_ID)
);
CREATE TABLE MANAGE_RESULT
(
RESULT_ID SERIAL PRIMARY KEY ,
ERROR_CNT NUMERIC NULL ,
MANAGE_RULE_ID INTEGER REFERENCES MANAGE_RULE(MANAGE_RULE_ID) ,
ERROR_NM CHARACTER VARYING(50) NULL
);
CREATE TABLE SCHEDULES
(
SCHEDULE_ID SERIAL PRIMARY KEY,
SCHEDULE_NM CHARACTER VARYING(50) NULL ,
SCHEDULE_START_TM TIMESTAMP NULL ,
SCHEDULE_END_TM TIMESTAMP NULL ,
SCHEDULE_EXPLAIN CHARACTER VARYING(250) NULL
);
CREATE TABLE TASKS
(
TASK_ID SERIAL PRIMARY KEY,
TASK_START_TM TIMESTAMP NULL ,
TASK_END_TM TIMESTAMP NULL ,
TASK_STATE CHARACTER VARYING(25) NULL ,
TASK_ERR_INFO CHARACTER VARYING(250) NULL ,
MANAGE_RULE_ID INTEGER REFERENCES MANAGE_RULE(MANAGE_RULE_ID)
);
CREATE TABLE TASK_SCHEDULE
(
SCHEDULE_ID INTEGER REFERENCES SCHEDULES(SCHEDULE_ID) ,
TASK_ID INTEGER REFERENCES TASKS(TASK_ID) ,
MANAGE_RULE_ID INTEGER REFERENCES MANAGE_RULE(MANAGE_RULE_ID),
PRIMARY KEY (SCHEDULE_ID, TASK_ID, MANAGE_RULE_ID)
);
INSERT INTO DQI (DQI_NM_HIGH, DQI_NM, DQI_TYPE, DQI_EXPLAIN)
VALUES ('정합성진단', '시간순서 일관성', 'none', '시간순서 관계를 갖는 컬럼 간의 데이터 오류 측정'),
('정합성진단', '선후관계 정확성', 'none', '선후관계를 가지는 컬럼 간의 데이터 오류 측정'),
('정합성진단', '논리관계 일관성', 'none', '컬럼 간 논리적 일관성 오류를 측정'),
('정합성진단', '계산식', 'none', '계산값이 정확하게 관리되고 있는지 측정'),
('정합성진단', '참조관계', 'none', '참조하는 컬럼과 참조되는 컬럼 사이의 일관성을 유지해야 함'),
('완결성진단', '글자깨짐', '형식', '컬럼명, 데이터 값에 깨진 글자 또는 완성된 한글이 아닌 데이터 오류 측정'),
('완결성진단', '공백, 특수문자', '형식', '공백이나 특수문자가 포함'),
('완결성진단', '필수값', '필수값', '데이터의 특성 상 반드시 입력되어야 하는 값은 누락 없이 제공되어야 함'),
('완결성진단', '중복데이터', 'none', '내 두 개 이상 테이블(또는 파일)에 존재하는 동일한(중복) 데이터의 값 일치 여부 측정'),
('유효성진단', '날짜 도메인', '날짜', '날짜 데이터값이 유효한 범위를 벗어나거나 형식이 표준을 위배한 데이터 오류 측정'),
('유효성진단', '번호 도메인', '번호', '번호생성 규칙을 위배한 경우 오류 측정'),
('유효성진단', '여부 도메인', '여부', '컬럼의 저장된 값이 유효한(2개의 값)의 범위를 벗어나는 데이터 오류 측정'),
('유효성진단', '코드 도메인', '코드', '표준으로 정의한 코드값이 일관되게 적용하고 있지 못한 코드 컬럼의 데이터 오류 측정'),
('유효성진단', '금액 도메인', '범위', '금액 데이터 이외 문자가 입력되어있는 컬럼의 데이터 오류 측정'),
('유효성진단', '수량 도메인', '범위', '수량 데이터 이외의 문자가 입력되어있는 컬럼의 데이터 오류 측정'),
('유효성진단', '율 도메인', '범위', '율 데이터 이외의 문자가 입력되어있는 컬럼의 데이터 오류 측정');