KIBA DB 보기

docs/db의 CSV 6개, quali-fit/db.py 스키마, sample_ver 원가계산서 DB 설계를 함께 정리한 테이블 보기입니다.

CSV export 가능 여부: 가능합니다. 현재 자료는 이미 CSV 형식이며, 공개 Pages에 원본 파일을 올리면 다운로드 링크를 바로 붙일 수 있습니다. 다만 직원 실명·학력·자격증 보유 내역이 포함되어 있어 원본 전체 공개는 별도 확인 후 켜는 것이 안전합니다.

6개CSV 소스 테이블
532행전체 데이터 행 수
3개개인정보 포함 가능 테이블
20개sample_ver 원가 DB 테이블

위 export는 공개 가능한 스키마/소스 맵만 내려받습니다. 실제 데이터(실명 포함)는 아래에서 비밀번호 입력 후 조회·다운로드할 수 있습니다.

sample_ver 원가계산서 DB 설계 · 총액 검증

Issue #40에서 진행 중인 원가계산서 DB 설계입니다. 총액 경로는 단가대비표 -> 내역서 -> 집계표 -> 원가계산서 -> 결과 흐름을 기준으로 검증했습니다.

123,387,460원가계산서!E34 총액
123,387,460결과!J10 표시 총액
2/2Excel 캐시값 vs DB 후보값
0총액 차이
10/20실제값 제공 테이블
검증 셀수식Excel 캐시값DB 후보값차이상태
원가계산서!E34E31+E32+E33123,387,460123,387,4600pass
결과!J10원가계산서!E34123,387,460123,387,4600pass

총액 규칙: MIN(D7,H7,J7)처럼 일부 비교 대상이 빈 셀인 경우, 빈 셀을 0으로 계산하지 않고 Excel처럼 제외해야 총액이 일치합니다.

실제 값 보기 · 다운로드

비밀번호 없이도 각 테이블의 스키마(컬럼 구조)는 볼 수 있습니다. 실제 값 조회와 원본 CSV 다운로드는 비밀번호 입력 후에만 가능합니다. 비밀번호는 메인 페이지의 문서 다운로드 비밀번호와 동일합니다.

🔒 잠김 — 스키마만 표시 중입니다.
테이블 보기 >
employee · 직원기본정보.csv 실명 포함 41행

직원 기본 정보 테이블입니다. 공개 화면에서는 실명 전체 덤프 대신 컬럼 구조와 행 수만 표시합니다.

컬럼설명키/제약CSV 컬럼
employee_id직원 식별자Primary Keyemployee_id
name직원명NOT NULL, 개인정보name
dept소속/부서NOT NULLdept
title직위NOT NULLtitle
education · 직원정보_학력.csv 실명·학력 포함 73행

직원별 학력 정보 테이블입니다. employee_id로 직원 기본 정보와 연결됩니다.

컬럼설명키/제약CSV 컬럼
education_id학력 행 식별자Primary Key, 자동 ID 대상education_id
employee_id직원 식별자FK → employee.employee_idemployee_id
name직원명개인정보, 표시용 CSV 컬럼name
level학력 수준-level
degree학위-degree
school학교개인정보 가능school
faculty학부/학과-faculty
major전공-major
note비고-note
keco_majorKECO 대분류마이그레이션 컬럼keco_major
keco_minorKECO 소분류마이그레이션 컬럼keco_minor
employee_cert · 자격증보유.csv 실명·자격증 포함 148행

직원별 보유 자격증 매핑 테이블입니다. 추천/요건 검토에서 핵심 연결 테이블입니다.

컬럼설명키/제약CSV 컬럼
employee_id직원 식별자Composite PK, FK → employeeemployee_id
name직원명개인정보, 표시용 CSV 컬럼name
cert_code자격증 식별자Composite PK, FK → cert_mastercert_code
cert_name자격증명표시용 CSV 컬럼cert_name
acquired_at취득일-acquired_at
registered_at등록일-registered_at
expires_at만료일-expires_at
status상태CSV 보강 컬럼status
cert_master · 자격증마스터.csv 공개 가능성 높음 102행

자격증별 분류, 설명, 수행 가능 업무와 영향도 기준입니다.

컬럼설명키/제약CSV 컬럼
cert_code자격증 식별자Primary Keycert_code
cert_name자격증명NOT NULLcert_name
l1_category대분류-l1_category
l2_category중분류-l2_category
costing_use원가 산정/검증 활용 설명-costing_use
description자격증 설명-description
performable_work수행 가능 업무-performable_work
influence영향도CHECK 1~5influence
license_type자격 유형-license_type
evidence_type증빙 유형-evidence_type
license_grade등급-license_grade
keywords검색 키워드-keywords
ministry소관 부처-ministry
issuer시행/발급 기관-issuer
work_code_master · 업무분류마스터.csv 공개 가능성 높음 66행

업무분류 코드와 산정/검증 기준, 담당 부서·담당자, 관련 법령을 관리합니다.

컬럼설명키/제약CSV 컬럼
work_code업무분류 식별자Primary Keywork_code
l1대분류NOT NULLl1
l2중분류NOT NULLl2
l3소분류-l3
task_type업무 유형CHECK 산정/검증task_type
classification_basis분류 기준-classification_basis
dept관리 부서-dept
owner담당자개인명 포함 가능owner
applied_keywords적용 키워드-applied_keywords
classification_note분류 근거 설명-classification_note
guidelines관련 지침-guidelines
related_laws관련 법령-related_laws
work_code_cert_map · 업무분류자격증매핑.csv 공개 가능성 높음 102행

자격증을 행으로, 업무분류 코드를 열로 둔 영향도 매트릭스입니다. DB 내부에서는 work_code + cert_code 조합으로 저장됩니다.

컬럼 묶음설명DB 저장 방식
cert_code, cert_name자격증 식별자와 이름cert_master와 연결
holder_count현재 보유 인원 수화면/내보내기용 집계 값
WORK-... 열 66개업무분류별 영향도 값, 1~5 또는 빈 값work_code_cert_map(work_code, cert_code, influence)
assoc_register · 협회등록현황_2026-06-19.xlsx 엑셀 · 실명 가능

엔지니어링협회 등록 현황 엑셀 자료(2026-06-19)입니다. 아래 컬럼 구조(스키마)는 비밀번호 없이 볼 수 있고, 실제 값 조회와 원본 엑셀 다운로드는 비밀번호 입력 후 가능합니다.

컬럼설명
보험보험 가입 여부
이름직원명 (개인정보)
소속소속 부서
직책직책
명함명함 제작/보유
출입증출입증 발급
방위사업 신원조사방위사업 신원조사 진행/결과
엔지니어링협회(기존)엔지니어링협회 기존 등록
엔지니어링협회(신규)엔지니어링협회 신규 등록
건설인협회(기존)건설인협회 기존 등록
건설인협회(신규)건설인협회 신규 등록
소프트웨어협회(기존)소프트웨어협회 기존 등록
소프트웨어협회(신규)소프트웨어협회 신규 등록
sample_ver_cost_db · 원가계산서 DDD 스키마 총액 검증 완료 20테이블

(E)sample_원가계산보고서ver1.xlsx.xlsx의 수식 연계를 DB로 옮기기 위한 PostgreSQL 설계 초안입니다.

테이블역할총액/수식과의 연결
cost_estimate원가계산서 Aggregate root프로젝트·발주처·원본 workbook 경로를 보관
cost_estimate_revision계산 버전total_cost에 최종 총액 후보값 저장
workbook_sheet, workbook_cell원본 Excel 추적시트·셀·수식·캐시값의 출처 보존
cost_line, sheet_line_projection도메인 행과 Excel 표시 행 분리내역서/집계표 행 금액을 canonical 행과 표시 행으로 나눔
reference_price_item, reference_price_quote, applied_price단가 기준정보단가대비표 선택 단가를 DB 기준정보로 승격
unit_cost_item, unit_cost_component일위대가 구조일위대가표 -> 일위대가목록 -> 내역서 금액 연결
rate_rule_set, rate_rule, indirect_cost_charge비율·경비 규칙보험료, 일반관리비, 이윤 등 비율 계산 규칙 보관
calculation_policy, formula_definition, formula_dependency수식 정책·의존성 그래프Excel 수식을 DB 계산 정책과 dependency graph로 추적
calculated_value_snapshot계산값 스냅샷도메인 객체별 산출값을 시점별로 보관
cost_total_component총액 중간값 검증원가계산서!E31:E34 등 총액 구성 셀의 Excel/DB 값 비교
cost_total_check최종 총액 검증결과!J10 == 원가계산서!E34 비교 결과 저장

아래 20개 테이블을 하나씩 펼쳐 스키마를 보고, 실제 값 보기 · 엑셀 다운로드 · 검색을 할 수 있습니다. 워크북 구조·수식·총액검증 기반 테이블, cost_line, unit_cost_item, unit_cost_component는 실제 값이 채워져 있고(비밀번호 불필요·공개 설계데이터), 나머지 10개 정규화 도메인 테이블은 "설계 전용"으로 표시됩니다. 엑셀 다운로드는 sample.xlsx로 저장됩니다.

cost_estimate · 원가계산서 Aggregate root 설계

원가계산서 최상위 객체. 프로젝트·발주처·원본 workbook 경로와 상태를 보관합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
estimate_codetextNOT NULL, UNIQUE
titletextNOT NULL · 원가계산서 제목
client_nametext발주처
standard_nametext기준/표준명
basis_datedate기준일
source_workbook_pathtextNOT NULL · 원본 Excel 경로
statustext기본 draft
created_at, updated_attimestamptz생성·수정 시각
cost_estimate_revision · 계산 버전 설계

원가계산서의 계산 버전. total_cost에 최종 총액 후보값을 저장합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
estimate_iduuidFK → cost_estimate
revision_nointegerNOT NULL · 버전 번호
source_checksumtextNOT NULL · 원본 체크섬
calculation_statustext기본 imported
total_costnumeric(18,0)최종 총액
vat_excludedboolean부가세 제외 여부
created_attimestamptzUNIQUE(estimate_id, revision_no)
workbook_sheet · 원본 Excel 시트 추적 실제값 24행

원본 workbook의 시트 목록과 역할(sheet_role)을 보존합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
sheet_nametextNOT NULL · 시트명
sheet_roletextNOT NULL · 시트 역할(내역서/집계표 등)
display_orderintegerUNIQUE(revision_id, sheet_name)
workbook_cell · 원본 Excel 셀·수식·캐시값 실제값 14행

시트별 셀 주소·원본값·수식·캐시값을 추적해 도메인 객체와 연결합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
sheet_iduuidFK → workbook_sheet
cell_addresstextNOT NULL · 셀 주소(예: E34)
raw_valuetext원본 값
formula_texttext수식 텍스트
value_typetext값 유형
domain_ref_type, domain_ref_idtext, uuid연결 도메인 객체 · UNIQUE(sheet_id, cell_address)
cost_line · canonical 원가 행 실제값 56행

내역서/집계표의 행 금액을 표준(canonical) 원가 행으로 저장합니다(계층 구조).

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
parent_iduuidFK → cost_line(자기참조)
sheet_role, line_code, sort_ordertext, text, integerNOT NULL(sheet_role/sort_order) · 행 분류
item_name, specification, unittext품명·규격·단위
quantitynumeric(18,6)수량
material_*, labor_*, expense_*, total_*numeric재료/노무/경비/합계 단가·금액
notetext비고
sheet_line_projection · Excel 표시 행 read model 실제값

canonical 원가 행을 원본 Excel의 표시 행/셀 위치로 되돌리는 read model입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_id, sheet_iduuidFK → revision / workbook_sheet
cost_line_iduuidFK → cost_line
sheet_name, row_notext, integerNOT NULL · 표시 위치
row_group_code, display_labeltext행 그룹·라벨
*_amount_celltext재료/노무/경비/합계 금액 셀 주소
source_range, projection_jsontext, jsonb출처 범위 · UNIQUE(revision_id, sheet_name, row_no)
reference_price_item · 단가 기준 품목 설계

단가대비표의 기준 품목 마스터입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
item_nametextNOT NULL · 품명
specification, unittext규격·단위
normalized_keytextNOT NULL · 정규화 키
reference_price_quote · 단가 증빙(견적/물가지) 설계

품목별 단가 증빙(견적서·물가정보지 등)을 보관합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
price_item_iduuidFK → reference_price_item
basis_monthdateNOT NULL · 기준 월
source_typetextNOT NULL · 증빙 유형
source_name, vendor_nametext출처·업체명
quoted_unit_pricenumeric(18,2)견적 단가
page_ref, evidence_ref, created_attext, text, timestamptz페이지·증빙 참조
applied_price · 단가대비표 선택 단가 설계

여러 증빙 중 실제 적용한 단가와 선택 규칙을 기록합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_id, price_item_iduuidFK → revision / reference_price_item
selected_quote_iduuidFK → reference_price_quote
selection_ruletextNOT NULL · 선택 규칙
applied_unit_pricenumeric(18,2)NOT NULL · 적용 단가
source_cell_iduuidFK → workbook_cell
unit_cost_item · 일위대가 항목 실제값 4행

일위대가표의 상위 항목입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
unit_cost_notextNOT NULL · 일위대가 번호
item_nametextNOT NULL · 품명
specification, unittext규격·단위
material_amount, labor_amount, expense_amount, total_amountnumeric(18,0)재료/노무/경비/합계 · UNIQUE(revision_id, unit_cost_no)
unit_cost_component · 일위대가 구성 행 실제값 15행

일위대가 항목을 구성하는 세부 행입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
unit_cost_item_iduuidFK → unit_cost_item
sort_orderintegerNOT NULL · 순서
component_name, specification, unittext구성명·규격·단위
quantitynumeric(18,6)수량
price_item_iduuidFK → reference_price_item
*_unit_price, *_amountnumeric재료/노무/경비/합계 단가·금액
rate_rule_set · 비율 규칙 묶음 설계

보험료·일반관리비·이윤 등 비율 규칙의 묶음(버전)입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
rule_set_codetextNOT NULL · 규칙 묶음 코드
rule_set_nametextNOT NULL · 묶음명
basis_datedate기준일
source_name, source_reftext근거 출처
rate_rule · 비율 규칙(보험료/경비/이윤) 설계

비용 항목별 비율과 적용 조건·반올림 규칙을 보관합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
rule_set_iduuidFK → rate_rule_set
cost_component_codetextNOT NULL · 비용 항목 코드
base_amount_typetextNOT NULL · 기준 금액 유형
condition_jsonjsonb적용 조건
rate_percentnumeric(9,5)NOT NULL · 비율(%)
rounding_ruletext기본 trunc_0
indirect_cost_charge · 간접비 산출값 설계

비율 규칙을 적용해 산출한 간접비(경비·관리비·이윤 등) 금액입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
rate_rule_iduuidFK → rate_rule
component_codetextNOT NULL · 항목 코드
base_amount, rate_percent, calculated_amountnumericNOT NULL · 기준액·비율·산출액
source_sheet_name, source_cell_addresstext출처 시트·셀
calculation_policy · 수식 계산 정책 설계

Excel 수식을 DB 계산식으로 옮기기 위한 정책(버전 관리)입니다.

컬럼타입키·제약·설명
iduuidPrimary Key
policy_code, policy_nametextNOT NULL · 정책 코드·이름
version_nointegerNOT NULL · UNIQUE(policy_code, version_no)
formula_kindtextNOT NULL · 수식 종류
excel_formula_template, calc_expressiontextExcel 템플릿·DB 계산식
parsed_ast_jsonjsonb파싱된 AST
rounding_rule, status, created_attext, text, timestamptz기본 status draft
formula_definition · 수식 정의 실제값 595행

시트·셀별 원본 수식과 연결된 계산 정책·대상 도메인을 정의합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
sheet_name, cell_addresstextNOT NULL · 수식 위치
formula_text, formula_kindtextNOT NULL · 수식·종류
policy_iduuidFK → calculation_policy
calc_expression, target_domain_type, target_domain_idtext/uuidUNIQUE(revision_id, sheet_name, cell_address)
formula_dependency · 수식 의존성 그래프 실제값 527행

수식이 참조하는 다른 셀(의존성)을 그래프로 추적합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
formula_iduuidFK → formula_definition
depends_on_sheet, depends_on_addresstextNOT NULL · 의존 셀
dependency_kindtext기본 cell
calculated_value_snapshot · 계산값 스냅샷 설계

도메인 객체별 산출값을 시점별로 보관합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
domain_type, domain_idtext, uuidNOT NULL · 대상 도메인
value_nametextNOT NULL · 값 이름
numeric_value, text_valuenumeric, text산출값
source_formula_id, created_atuuid, timestamptzFK → formula_definition
cost_total_component · 총액 중간값 검증 실제값 10행

원가계산서!E31:E34 등 총액 구성 셀의 Excel 캐시값과 DB 계산값을 비교합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
component_codetextNOT NULL · 구성 코드
sheet_name, cell_address, formula_texttextNOT NULL(sheet/cell) · 출처
excel_cached_amount, db_calculated_amount, amount_differencenumeric(18,0)Excel/DB/차이
verification_status, sort_order, created_attext, integer, timestamptz기본 status pending · UNIQUE(revision_id, component_code)
cost_total_check · 최종 총액 검증 실제값 3행

결과!J10 == 원가계산서!E34 양변을 비교한 최종 총액 검증 결과를 저장합니다.

컬럼타입키·제약·설명
iduuidPrimary Key
revision_iduuidFK → cost_estimate_revision
check_codetextNOT NULL · 검증 코드
left_*text/numeric좌변 시트·셀·수식·Excel/DB 금액
right_*text/numeric우변 시트·셀·수식·Excel/DB 금액
amount_difference, verification_statusnumeric, text차이 · 기본 status pending
evidence_json, created_atjsonb, timestamptz증빙 · UNIQUE(revision_id, check_code)
테이블 처리 함수 보기 >
함수/상수연결되는 테이블용도
init_db() / SCHEMA전체SQLite 테이블 생성 및 기존 DB 마이그레이션 진입점
SEED_PLAN / seed_from_csv()전체CSV를 FK 순서에 맞춰 부모 테이블부터 적재
KNOWN_TABLES전체앱에서 허용하는 테이블 목록
table_meta()전체PK, 필수 컬럼, 자동 ID 컬럼 메타데이터 산출
fk_options()FK 보유 테이블FK 컬럼을 드롭다운으로 보여주기 위한 부모 PK 목록 제공
fetch_all()전체FK 부모 라벨을 붙여 화면 표시용 DataFrame 생성
save_diff()전체st.data_editor의 삭제/수정/추가 diff를 트랜잭션으로 반영
AUTO_ID_RULESeducationeducation_idEDU-001 형식으로 자동 생성
fetch_mapping_matrix()매핑 테이블업무분류 x 자격증 영향도 매트릭스 화면 표시
fetch_mapping_export() / fetch_mapping_grid()매핑 테이블CSV/XLSX 내보내기용 매핑 데이터 생성
save_mapping_matrix_diff()work_code_cert_map매트릭스 셀 변경을 INSERT/UPDATE/DELETE로 반영
fetch_scoring_data() / fetch_employee_set_summary()직원, 자격증, 업무분류 매핑추천/조직도 요약에 필요한 조인 데이터 조회