๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Project ESG+AI/[์‚ผ์ •KPMG]ESG ๋ฐ์ดํ„ฐ ํ™œ์šฉ ํ’€์Šคํ… ๊ฐœ๋ฐœ

21์ผ์ฐจ. ์šฐ๋ฆฌ ํŒ€์˜ ERD๋ฅผ ์ž‘์„ฑํ•˜์ž

by GreenJin_S2 2025. 11. 7.

 

 

* ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„๊ฒŒ ๋ถ€๋ชจ, ๊ทธ ๋‚ด์šฉ๋“ค์„ ๋ฐ›๋Š”๊ฒŒ ์ž์‹

๋ถ€๋ชจ  ← ์ž์‹ 

 


 

์šฐ๋ฆฌ๋Š” ESG๋ณด๊ณ ์„œ ์ž‘์„ฑ ์ž๋™ํ™” ํ”„๋กœ์ ํŠธ์—์„œ TCFD๋ฅผ IFRS๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณด๊ณ ์„œ ์ž‘์„ฑ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ฑด๋ฐ ERD๋ฅผ orgamization, users, financial_statements, financial_metrics, reports, sections, narratives, metrics, rules, standards ์ด๋ ‡๊ฒŒ 10๊ฐ€์ง€ ํ…Œ์ด๋ธ”๋กœ ๊ฐˆ๊ฑด๋ฐ ๊ฐ๊ฐ์— ๋“ค์–ด๊ฐˆ ์ปฌ๋Ÿผ๋ช…๋“ค๊ณผ ๋‚ด์šฉ์„ ์ƒ์„ธํ•˜๊ฒŒ ์งœ์ค˜.

 

 

TCFD(๊ธฐํ›„ ๊ด€๋ จ ์žฌ๋ฌด ์ •๋ณด ๊ณต๊ฐœ ํƒœ์Šคํฌํฌ์Šค)์—์„œ IFRS(๊ตญ์ œ ์žฌ๋ฌด ๋ณด๊ณ  ํ‘œ์ค€, ํŠนํžˆ ISSB์˜ S1 ๋ฐ S2 ํ‘œ์ค€์œผ๋กœ ์ „ํ™˜๋œ ์ง€์† ๊ฐ€๋Šฅ์„ฑ ๋ณด๊ณ  ํฌํ•จ)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ESG ๋ณด๊ณ ์„œ ์ž‘์„ฑ ์ž๋™ํ™” ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ERD(์—”ํ„ฐํ‹ฐ-๊ด€๊ณ„ ๋‹ค์ด์–ด๊ทธ๋žจ)๋ฅผ ์„ค๊ณ„ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์š”์ฒญํ•˜์‹  10๊ฐœ ํ…Œ์ด๋ธ”(organization, users, financial_statements, financial_metrics, reports, sections, narratives, metrics, rules, standards)์— ๋Œ€ํ•ด ๊ฐ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…, ๋ฐ์ดํ„ฐ ์œ ํ˜•, ์„ค๋ช…, ์ œ์•ฝ ์กฐ๊ฑด ๋ฐ TCFD-to-IFRS ๋ณ€ํ™˜ ๋งฅ๋ฝ์—์„œ์˜ ์—ญํ• ์„ ์ƒ์„ธํžˆ ์ •์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ด๋ธ”์€ ESG ๋ณด๊ณ ์„œ์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ง€์›ํ•˜๋ฉฐ, TCFD์˜ ๊ธฐํ›„ ๊ด€๋ จ ์š”๊ตฌ์‚ฌํ•ญ(์ง€๋ฐฐ๊ตฌ์กฐ, ์ „๋žต, ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ, ๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ)๊ณผ IFRS S1(์ผ๋ฐ˜ ์ง€์† ๊ฐ€๋Šฅ์„ฑ) ๋ฐ S2(๊ธฐํ›„ ๊ด€๋ จ) ํ‘œ์ค€์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.


1. organization ํ…Œ์ด๋ธ”

์„ค๋ช…: ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์กฐ์ง(๊ธฐ์—…, ๊ธฐ๊ด€ ๋“ฑ)์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์€ ๋ณด๊ณ ์„œ์˜ ์ฃผ์ฒด์ด๋ฉฐ, ์‚ฌ์šฉ์ž์™€ ๋ณด๊ณ ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํ•ต์‹ฌ ์—”ํ„ฐํ‹ฐ์ž…๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
organization_id BIGINT ์กฐ์ง์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
name VARCHAR(255) ์กฐ์ง์˜ ๊ณต์‹ ๋ช…์นญ (์˜ˆ: "ABC Corporation") NOT NULL
industry VARCHAR(100) ์‚ฐ์—… ๋ถ„๋ฅ˜ (์˜ˆ: "์ œ์กฐ์—…", "๊ธˆ์œต", "์—๋„ˆ์ง€")  
country VARCHAR(100) ์กฐ์ง์˜ ๋ณธ์‚ฌ ์†Œ์žฌ ๊ตญ๊ฐ€ (ISO ๊ตญ๊ฐ€ ์ฝ”๋“œ ๋˜๋Š” ๋ช…์นญ)  
registration_number VARCHAR(50) ์‚ฌ์—…์ž ๋“ฑ๋ก ๋ฒˆํ˜ธ ๋˜๋Š” ๋ฒ•์ธ ์‹๋ณ„ ๋ฒˆํ˜ธ UNIQUE
created_at DATETIME ์กฐ์ง ์ •๋ณด ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ์กฐ์ง ์ •๋ณด ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD ๋ฐ IFRS ๋ณด๊ณ ์„œ ์ž‘์„ฑ ์‹œ ์กฐ์ง์˜ ๊ธฐ๋ณธ ์ •๋ณด๋ฅผ ์ œ๊ณต.
  • IFRS S1์˜ ์กฐ์ง ์ปจํ…์ŠคํŠธ(์‚ฐ์—…, ๊ทœ๋ชจ ๋“ฑ)์™€ TCFD์˜ ์ง€๋ฐฐ๊ตฌ์กฐ ๊ด€๋ จ ์ •๋ณด(์˜ˆ: ์กฐ์ง์˜ ๊ธฐํ›„ ๊ฑฐ๋ฒ„๋„Œ์Šค ๊ตฌ์กฐ) ์—ฐ๊ฒฐ.

2. users ํ…Œ์ด๋ธ”

์„ค๋ช…: ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž(๋ณด๊ณ ์„œ ์ž‘์„ฑ์ž, ๊ด€๋ฆฌ์ž, ๊ฒ€ํ† ์ž ๋“ฑ)์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
user_id BIGINT ์‚ฌ์šฉ์ž์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
organization_id BIGINT ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•œ ์กฐ์ง์˜ ID FK (organization)
email VARCHAR(255) ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ (๋กœ๊ทธ์ธ ID) UNIQUE, NOT NULL
password_hash VARCHAR(255) ํ•ด์‹œ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ NOT NULL
first_name VARCHAR(50) ์‚ฌ์šฉ์ž ์ด๋ฆ„ NOT NULL
last_name VARCHAR(50) ์‚ฌ์šฉ์ž ์„ฑ NOT NULL
role ENUM ์‚ฌ์šฉ์ž ์—ญํ•  (์˜ˆ: 'admin', 'editor', 'reviewer', 'viewer') NOT NULL
created_at DATETIME ์‚ฌ์šฉ์ž ๊ณ„์ • ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ์‚ฌ์šฉ์ž ์ •๋ณด ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • ๋ณด๊ณ ์„œ ์ž‘์„ฑ ๋ฐ ๊ฒ€ํ†  ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๊ด€๋ฆฌ.
  • TCFD์˜ ์ง€๋ฐฐ๊ตฌ์กฐ ์„น์…˜์—์„œ ๋ณด๊ณ ์„œ ์ž‘์„ฑ ์ฑ…์ž„์ž(์˜ˆ: ESG ๋‹ด๋‹น์ž) ์ •๋ณด๋ฅผ ์ถ”์ .
  • IFRS S1/S2์˜ ๋ณด๊ณ  ํ”„๋กœ์„ธ์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐ ๊ฒ€์ฆ ๋‹ด๋‹น์ž ์—ฐ๊ฒฐ.

3. financial_statements ํ…Œ์ด๋ธ”

์„ค๋ช…: ์กฐ์ง์˜ ์žฌ๋ฌด์ œํ‘œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. TCFD์™€ IFRS S2๋Š” ๊ธฐํ›„ ๊ด€๋ จ ์žฌ๋ฌด ์˜ํ–ฅ์„ ์žฌ๋ฌด์ œํ‘œ์— ๋ฐ˜์˜ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด ํ…Œ์ด๋ธ”์€ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
statement_id BIGINT ์žฌ๋ฌด์ œํ‘œ์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
organization_id BIGINT ์žฌ๋ฌด์ œํ‘œ๋ฅผ ์ž‘์„ฑํ•œ ์กฐ์ง์˜ ID FK (organization)
statement_type ENUM ์žฌ๋ฌด์ œํ‘œ ์œ ํ˜• (์˜ˆ: 'balance_sheet', 'income_statement', 'cash_flow') NOT NULL
fiscal_year YEAR ์žฌ๋ฌด์ œํ‘œ์˜ ํšŒ๊ณ„์—ฐ๋„ NOT NULL
currency VARCHAR(10) ํ†ตํ™” ๋‹จ์œ„ (์˜ˆ: 'USD', 'KRW') NOT NULL
total_assets DECIMAL(15,2) ์ด ์ž์‚ฐ ๊ธˆ์•ก  
total_liabilities DECIMAL(15,2) ์ด ๋ถ€์ฑ„ ๊ธˆ์•ก  
revenue DECIMAL(15,2) ๋งค์ถœ์•ก  
net_income DECIMAL(15,2) ์ˆœ์ด์ต  
created_at DATETIME ์žฌ๋ฌด์ œํ‘œ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ์žฌ๋ฌด์ œํ‘œ ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD์˜ ๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ ์„น์…˜์—์„œ ๊ธฐํ›„ ๊ด€๋ จ ์žฌ๋ฌด ์˜ํ–ฅ(์˜ˆ: ์ž์‚ฐ ์†์ƒ, ๋ถ€์ฑ„ ์ฆ๊ฐ€)์„ ๋ถ„์„.
  • IFRS S2์˜ ๊ธฐํ›„ ๊ด€๋ จ ์žฌ๋ฌด์ œํ‘œ ๊ณต์‹œ ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑ.

4. financial_metrics ํ…Œ์ด๋ธ”

์„ค๋ช…: ์žฌ๋ฌด์ œํ‘œ์—์„œ ์ถ”์ถœ๋œ ๊ตฌ์ฒด์ ์ธ ์žฌ๋ฌด ๋ฉ”ํŠธ๋ฆญ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. TCFD์™€ IFRS S2๋Š” ํŠน์ • ๋ฉ”ํŠธ๋ฆญ(์˜ˆ: ๊ธฐํ›„ ๋ฆฌ์Šคํฌ๋กœ ์ธํ•œ ์ž์‚ฐ ๊ฐ€์น˜ ๋ณ€ํ™”)์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
metric_id BIGINT ์žฌ๋ฌด ๋ฉ”ํŠธ๋ฆญ์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
statement_id BIGINT ๊ด€๋ จ ์žฌ๋ฌด์ œํ‘œ์˜ ID FK (financial_statements)
metric_name VARCHAR(100) ๋ฉ”ํŠธ๋ฆญ ์ด๋ฆ„ (์˜ˆ: "climate_risk_exposure", "carbon_credit_value") NOT NULL
value DECIMAL(15,2) ๋ฉ”ํŠธ๋ฆญ ๊ฐ’ NOT NULL
unit VARCHAR(20) ๋‹จ์œ„ (์˜ˆ: 'USD', 'KRW', '%')  
description TEXT ๋ฉ”ํŠธ๋ฆญ์— ๋Œ€ํ•œ ์„ค๋ช… (์˜ˆ: "๊ธฐํ›„ ๋ฆฌ์Šคํฌ๋กœ ์ธํ•œ ์ž์‚ฐ ์†์ƒ ๊ธˆ์•ก")  
created_at DATETIME ๋ฉ”ํŠธ๋ฆญ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD์˜ ๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ ์„น์…˜์—์„œ ์š”๊ตฌํ•˜๋Š” ์ •๋Ÿ‰์  ๋ฐ์ดํ„ฐ(์˜ˆ: ํƒ„์†Œ ๋ฐฐ์ถœ ๊ด€๋ จ ๋น„์šฉ) ์ œ๊ณต.
  • IFRS S2์˜ ์ •๋Ÿ‰์  ๊ธฐํ›„ ๋ฉ”ํŠธ๋ฆญ ๊ณต์‹œ(์˜ˆ: Scope 1, 2, 3 ๋ฐฐ์ถœ๋Ÿ‰์˜ ์žฌ๋ฌด์  ์˜ํ–ฅ) ์ง€์›.

5. reports ํ…Œ์ด๋ธ”

์„ค๋ช…: ์ƒ์„ฑ๋œ ESG ๋ณด๊ณ ์„œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ๋Š” TCFD์—์„œ IFRS๋กœ ๋ณ€ํ™˜๋œ ์ตœ์ข… ์‚ฐ์ถœ๋ฌผ์ž…๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
report_id BIGINT ๋ณด๊ณ ์„œ์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
organization_id BIGINT ๋ณด๊ณ ์„œ๋ฅผ ์ž‘์„ฑํ•œ ์กฐ์ง์˜ ID FK (organization)
title VARCHAR(255) ๋ณด๊ณ ์„œ ์ œ๋ชฉ (์˜ˆ: "2025 ESG Report") NOT NULL
report_type ENUM ๋ณด๊ณ ์„œ ์œ ํ˜• ('TCFD', 'IFRS_S1', 'IFRS_S2', 'combined') NOT NULL
fiscal_year YEAR ๋ณด๊ณ ์„œ ๋Œ€์ƒ ํšŒ๊ณ„์—ฐ๋„ NOT NULL
status ENUM ๋ณด๊ณ ์„œ ์ƒํƒœ ('draft', 'in_review', 'published', 'archived') NOT NULL
created_at DATETIME ๋ณด๊ณ ์„œ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ๋ณด๊ณ ์„œ ์ˆ˜์ • ์ผ์‹œ  
published_at DATETIME ๋ณด๊ณ ์„œ ๊ณต๊ฐœ ์ผ์‹œ  

์—ญํ• :

  • TCFD ๋ณด๊ณ ์„œ๋ฅผ IFRS S1/S2 ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•œ ๋ณด๊ณ ์„œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ.
  • ๋ณด๊ณ ์„œ ์ž‘์„ฑ ์›Œํฌํ”Œ๋กœ์šฐ(์ดˆ์•ˆ → ๊ฒ€ํ†  → ๊ณต๊ฐœ) ์ถ”์ .

6. sections ํ…Œ์ด๋ธ”

์„ค๋ช…: ๋ณด๊ณ ์„œ์˜ ์„น์…˜(์˜ˆ: ์ง€๋ฐฐ๊ตฌ์กฐ, ์ „๋žต, ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ)์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. TCFD์™€ IFRS๋Š” ์„น์…˜๋ณ„ ๊ตฌ์กฐํ™”๋œ ๊ณต์‹œ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
section_id BIGINT ์„น์…˜์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
report_id BIGINT ์„น์…˜์ด ์†ํ•œ ๋ณด๊ณ ์„œ์˜ ID FK (reports)
title VARCHAR(255) ์„น์…˜ ์ œ๋ชฉ (์˜ˆ: "Governance", "Strategy", "Risk Management") NOT NULL
section_type ENUM ์„น์…˜ ์œ ํ˜• (์˜ˆ: 'governance', 'strategy', 'risk', 'metrics') NOT NULL
order_index INT ์„น์…˜์˜ ํ‘œ์‹œ ์ˆœ์„œ NOT NULL
description TEXT ์„น์…˜์— ๋Œ€ํ•œ ์„ค๋ช… (์˜ˆ: "๊ธฐํ›„ ๊ด€๋ จ ์ง€๋ฐฐ๊ตฌ์กฐ ์„ค๋ช…")  

์—ญํ• :

  • TCFD์˜ 4๋Œ€ ํ•ต์‹ฌ ์š”์†Œ(์ง€๋ฐฐ๊ตฌ์กฐ, ์ „๋žต, ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ, ๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ)๋ฅผ IFRS S1/S2์˜ ๊ตฌ์กฐ(์˜ˆ: ์ง€์† ๊ฐ€๋Šฅ์„ฑ ๋ฆฌ์Šคํฌ, ๊ธฐํ›„ ์˜ํ–ฅ)๋กœ ๋งคํ•‘.
  • ๋ณด๊ณ ์„œ์˜ ๊ตฌ์กฐํ™”๋œ ์„น์…˜ ๊ด€๋ฆฌ.

7. narratives ํ…Œ์ด๋ธ”

์„ค๋ช…: ๋ณด๊ณ ์„œ ์„น์…˜ ๋‚ด์˜ ์„œ์ˆ ์  ๋‚ด์šฉ(ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์„ค๋ช…)์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. TCFD์™€ IFRS๋Š” ์ •์„ฑ์  ์„ค๋ช…์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
narrative_id BIGINT ์„œ์ˆ ์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
section_id BIGINT ์„œ์ˆ ์ด ์†ํ•œ ์„น์…˜์˜ ID FK (sections)
content TEXT ์„œ์ˆ  ๋‚ด์šฉ (์˜ˆ: "์šฐ๋ฆฌ ์กฐ์ง์€ ๊ธฐํ›„ ๋ฆฌ์Šคํฌ๋ฅผ ์ด์‚ฌํšŒ์—์„œ ๊ฐ๋…ํ•ฉ๋‹ˆ๋‹ค.") NOT NULL
author_id BIGINT ์„œ์ˆ  ์ž‘์„ฑ์ž์˜ ID FK (users)
created_at DATETIME ์„œ์ˆ  ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ์„œ์ˆ  ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD์˜ ์ •์„ฑ์  ๊ณต์‹œ(์˜ˆ: ์ง€๋ฐฐ๊ตฌ์กฐ ์„ค๋ช…)์™€ IFRS S1/S2์˜ ์„œ์ˆ ์  ์š”๊ตฌ์‚ฌํ•ญ(์˜ˆ: ๊ธฐํ›„ ์ „๋žต ์„ค๋ช…) ์ง€์›.
  • ์„น์…˜๋ณ„ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ.

8. metrics ํ…Œ์ด๋ธ”

์„ค๋ช…: ESG ๋ณด๊ณ ์„œ์— ํฌํ•จ๋œ ์ •๋Ÿ‰์  ๋ฉ”ํŠธ๋ฆญ(์˜ˆ: ํƒ„์†Œ ๋ฐฐ์ถœ๋Ÿ‰, ์—๋„ˆ์ง€ ์‚ฌ์šฉ๋Ÿ‰)์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
metric_id BIGINT ๋ฉ”ํŠธ๋ฆญ์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
section_id BIGINT ๋ฉ”ํŠธ๋ฆญ์ด ์†ํ•œ ์„น์…˜์˜ ID FK (sections)
metric_name VARCHAR(100) ๋ฉ”ํŠธ๋ฆญ ์ด๋ฆ„ (์˜ˆ: "scope1_emissions", "energy_consumption") NOT NULL
value DECIMAL(15,2) ๋ฉ”ํŠธ๋ฆญ ๊ฐ’ NOT NULL
unit VARCHAR(20) ๋‹จ์œ„ (์˜ˆ: 'tCO2e', 'MWh') NOT NULL
year YEAR ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ์˜ ์—ฐ๋„ NOT NULL
source VARCHAR(255) ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜ (์˜ˆ: "๋‚ด๋ถ€ ERP ์‹œ์Šคํ…œ", "์ œ3์ž ๊ฒ€์ฆ")  
created_at DATETIME ๋ฉ”ํŠธ๋ฆญ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD์˜ ๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ ์„น์…˜์—์„œ ์š”๊ตฌํ•˜๋Š” ์ •๋Ÿ‰์  ๋ฐ์ดํ„ฐ(์˜ˆ: Scope 1, 2, 3 ๋ฐฐ์ถœ๋Ÿ‰) ์ œ๊ณต.
  • IFRS S2์˜ ๊ธฐํ›„ ๊ด€๋ จ ๋ฉ”ํŠธ๋ฆญ(์˜ˆ: ์˜จ์‹ค๊ฐ€์Šค ๋ฐฐ์ถœ๋Ÿ‰, ๊ธฐํ›„ ๋ฆฌ์Šคํฌ ๋…ธ์ถœ๋„) ๊ณต์‹œ ์ง€์›.

9. rules ํ…Œ์ด๋ธ”

์„ค๋ช…: TCFD์—์„œ IFRS๋กœ์˜ ๋ฐ์ดํ„ฐ ๋งคํ•‘ ๋ฐ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ํ™”๋œ ๋ณ€ํ™˜ ํ”„๋กœ์„ธ์Šค์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
rule_id BIGINT ๊ทœ์น™์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
source_standard VARCHAR(50) ์†Œ์Šค ํ‘œ์ค€ (์˜ˆ: 'TCFD') NOT NULL
target_standard VARCHAR(50) ๋Œ€์ƒ ํ‘œ์ค€ (์˜ˆ: 'IFRS_S1', 'IFRS_S2') NOT NULL
source_field VARCHAR(100) ์†Œ์Šค ํ•„๋“œ (์˜ˆ: "tcfd_governance_description") NOT NULL
target_field VARCHAR(100) ๋Œ€์ƒ ํ•„๋“œ (์˜ˆ: "ifrs_s1_governance") NOT NULL
transformation_logic TEXT ๋ณ€ํ™˜ ๋กœ์ง (์˜ˆ: "ํ…์ŠคํŠธ ๊ทธ๋Œ€๋กœ ๋งคํ•‘" ๋˜๋Š” "๊ฐ’์„ USD๋กœ ๋ณ€ํ™˜") NOT NULL
created_at DATETIME ๊ทœ์น™ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ๊ทœ์น™ ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD ๋ฐ์ดํ„ฐ๋ฅผ IFRS S1/S2 ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋งคํ•‘ ๊ทœ์น™ ์ •์˜.
  • ์˜ˆ: TCFD์˜ "์ง€๋ฐฐ๊ตฌ์กฐ" ์„น์…˜ ๋ฐ์ดํ„ฐ๋ฅผ IFRS S1์˜ "์ง€์† ๊ฐ€๋Šฅ์„ฑ ๊ฑฐ๋ฒ„๋„Œ์Šค"๋กœ ๋ณ€ํ™˜.

10. standards ํ…Œ์ด๋ธ”

์„ค๋ช…: TCFD ๋ฐ IFRS์™€ ๊ฐ™์€ ๋ณด๊ณ  ํ‘œ์ค€์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
standard_id BIGINT ํ‘œ์ค€์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
name VARCHAR(50) ํ‘œ์ค€ ์ด๋ฆ„ (์˜ˆ: 'TCFD', 'IFRS_S1', 'IFRS_S2') NOT NULL, UNIQUE
description TEXT ํ‘œ์ค€์— ๋Œ€ํ•œ ์„ค๋ช… (์˜ˆ: "TCFD๋Š” ๊ธฐํ›„ ๊ด€๋ จ ์žฌ๋ฌด ๊ณต์‹œ๋ฅผ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ")  
version VARCHAR(20) ํ‘œ์ค€ ๋ฒ„์ „ (์˜ˆ: "2023", "ISSB_2024")  
effective_date DATE ํ‘œ์ค€์˜ ๋ฐœํšจ ๋‚ ์งœ  
created_at DATETIME ํ‘œ์ค€ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ํ‘œ์ค€ ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • TCFD ๋ฐ IFRS ํ‘œ์ค€์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ.
  • ๋ณ€ํ™˜ ํ”„๋กœ์„ธ์Šค์—์„œ ์ฐธ์กฐ๋˜๋Š” ํ‘œ์ค€ ์ •๋ณด ์ œ๊ณต.

ERD ๊ด€๊ณ„ ์š”์•ฝ

  • organizationusers: 1:N (ํ•œ ์กฐ์ง์— ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์†ํ•จ).
  • organizationfinancial_statements: 1:N (ํ•œ ์กฐ์ง์ด ์—ฌ๋Ÿฌ ์žฌ๋ฌด์ œํ‘œ๋ฅผ ๊ฐ€์ง).
  • financial_statementsfinancial_metrics: 1:N (ํ•œ ์žฌ๋ฌด์ œํ‘œ์— ์—ฌ๋Ÿฌ ๋ฉ”ํŠธ๋ฆญ์ด ํฌํ•จ๋จ).
  • organizationreports: 1:N (ํ•œ ์กฐ์ง์ด ์—ฌ๋Ÿฌ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑ).
  • reportssections: 1:N (ํ•œ ๋ณด๊ณ ์„œ์— ์—ฌ๋Ÿฌ ์„น์…˜์ด ํฌํ•จ๋จ).
  • sectionsnarratives: 1:N (ํ•œ ์„น์…˜์— ์—ฌ๋Ÿฌ ์„œ์ˆ ์ด ํฌํ•จ๋จ).
  • sectionsmetrics: 1:N (ํ•œ ์„น์…˜์— ์—ฌ๋Ÿฌ ๋ฉ”ํŠธ๋ฆญ์ด ํฌํ•จ๋จ).
  • rulesstandards: N:N (๊ทœ์น™์€ ์†Œ์Šค ๋ฐ ๋Œ€์ƒ ํ‘œ์ค€๊ณผ ์—ฐ๊ฒฐ๋จ, ๋ณ„๋„์˜ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ” ํ•„์š” ๊ฐ€๋Šฅ).
  • usersnarratives: 1:N (ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๋Ÿฌ ์„œ์ˆ ์„ ์ž‘์„ฑ).

์ถ”๊ฐ€ ๊ณ ๋ ค์‚ฌํ•ญ

  1. TCFD-to-IFRS ๋ณ€ํ™˜ ๋กœ์ง:
    • TCFD์˜ 4๋Œ€ ์š”์†Œ(์ง€๋ฐฐ๊ตฌ์กฐ, ์ „๋žต, ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ, ๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ)๋Š” IFRS S1(์ผ๋ฐ˜ ์ง€์† ๊ฐ€๋Šฅ์„ฑ) ๋ฐ S2(๊ธฐํ›„ ๊ด€๋ จ)๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ์˜ˆ:
      • TCFD "์ง€๋ฐฐ๊ตฌ์กฐ" → IFRS S1 "์ง€์† ๊ฐ€๋Šฅ์„ฑ ๊ฑฐ๋ฒ„๋„Œ์Šค".
      • TCFD "๋ฉ”ํŠธ๋ฆญ ๋ฐ ๋ชฉํ‘œ" → IFRS S2 "๊ธฐํ›„ ๊ด€๋ จ ๋ฉ”ํŠธ๋ฆญ".
    • rules ํ…Œ์ด๋ธ”์˜ transformation_logic์€ ์ด๋ฅผ ์ž๋™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด JSON ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ:
    • metrics์™€ financial_metrics ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜(source)๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅ.
    • IFRS S2๋Š” ์ œ3์ž ๊ฒ€์ฆ์„ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ source ์ปฌ๋Ÿผ์— ๊ฒ€์ฆ์ž ์ •๋ณด๋ฅผ ํฌํ•จ.
  3. ํ™•์žฅ์„ฑ:
    • ๋‹ค๋ฅธ ํ‘œ์ค€(์˜ˆ: GRI, SASB) ์ถ”๊ฐ€๋ฅผ ๊ณ ๋ คํ•ด standards์™€ rules ํ…Œ์ด๋ธ”์„ ์œ ์—ฐํ•˜๊ฒŒ ์„ค๊ณ„.
    • ๋‹ค๊ตญ์–ด ์ง€์›์„ ์œ„ํ•ด narratives์™€ sections์— ์–ธ์–ด ์ฝ”๋“œ ์ปฌ๋Ÿผ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ.
  4. ์„ฑ๋Šฅ ์ตœ์ ํ™”:
    • ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ํ…Œ์ด๋ธ”(metrics, reports)์— ์ธ๋ฑ์Šค ์ถ”๊ฐ€.
    • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด financial_metrics์™€ metrics์— ํŒŒํ‹ฐ์…”๋‹ ๊ณ ๋ ค.

 

์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”: organization_standards

์„ค๋ช…: ์กฐ์ง๊ณผ ๊ณต์‹œ ํ‘œ์ค€ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•œ ์กฐ์ง์ด ์—ฌ๋Ÿฌ ํ‘œ์ค€(TCFD, IFRS S1, IFRS S2 ๋“ฑ)์„ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ๊ณ , ํ•œ ํ‘œ์ค€์ด ์—ฌ๋Ÿฌ ์กฐ์ง์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” M:N ๊ด€๊ณ„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

 
์ปฌ๋Ÿผ๋ช…๋ฐ์ดํ„ฐ ์œ ํ˜•์„ค๋ช…์ œ์•ฝ ์กฐ๊ฑด
organization_standard_id BIGINT ๊ด€๊ณ„์˜ ๊ณ ์œ  ์‹๋ณ„์ž PK, AUTO_INCREMENT
organization_id BIGINT ์กฐ์ง์˜ ID FK (organization), NOT NULL
standard_id BIGINT ๊ณต์‹œ ํ‘œ์ค€์˜ ID (์˜ˆ: TCFD, IFRS_S1, IFRS_S2) FK (standards), NOT NULL
compliance_status ENUM ํ‘œ์ค€ ์ค€์ˆ˜ ์ƒํƒœ ('active', 'planned', 'inactive') NOT NULL
start_date DATE ํ‘œ์ค€ ์ค€์ˆ˜ ์‹œ์ž‘ ๋‚ ์งœ  
end_date DATE ํ‘œ์ค€ ์ค€์ˆ˜ ์ข…๋ฃŒ ๋‚ ์งœ (์„ ํƒ์ , ํ‘œ์ค€ ํ์ง€ ์‹œ ์‚ฌ์šฉ)  
created_at DATETIME ๊ด€๊ณ„ ์ƒ์„ฑ ์ผ์‹œ NOT NULL, DEFAULT NOW()
updated_at DATETIME ๊ด€๊ณ„ ์ˆ˜์ • ์ผ์‹œ  

์—ญํ• :

  • ์กฐ์ง์ด ์–ด๋–ค ๊ณต์‹œ ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ๋ช…์‹œ (์˜ˆ: "ABC Corporation์€ TCFD์™€ IFRS S2 ์ค€์ˆ˜").
  • TCFD์—์„œ IFRS๋กœ ๋ณ€ํ™˜ ์‹œ, ์กฐ์ง์ด TCFD๋ฅผ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ณ€ํ™˜ ๊ทœ์น™(rules ํ…Œ์ด๋ธ”)์„ ์ ์šฉ.
  • ์ค€์ˆ˜ ์ƒํƒœ(compliance_status)๋ฅผ ํ†ตํ•ด ์กฐ์ง์˜ ํ‘œ์ค€ ์ค€์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌ.
  • start_date์™€ end_date๋ฅผ ํ†ตํ•ด ํ‘œ์ค€ ์ค€์ˆ˜์˜ ์‹œ๊ฐ„์  ๋ฒ”์œ„๋ฅผ ๊ด€๋ฆฌ (์˜ˆ: TCFD ์ค€์ˆ˜๋Š” 2023๋…„๋ถ€ํ„ฐ, IFRS S2๋Š” 2025๋…„๋ถ€ํ„ฐ).

 

 


์ตœ์ข… ํ…Œ์ด๋ธ” ๋ชฉ๋ก

  1. organization: ์กฐ์ง ์ •๋ณด
  2. users: ์‚ฌ์šฉ์ž ์ •๋ณด
  3. financial_statements: ์žฌ๋ฌด์ œํ‘œ ๋ฐ์ดํ„ฐ
  4. financial_metrics: ์žฌ๋ฌด์ œํ‘œ์—์„œ ์ถ”์ถœ๋œ ๋ฉ”ํŠธ๋ฆญ
  5. reports: ESG ๋ณด๊ณ ์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
  6. sections: ๋ณด๊ณ ์„œ ์„น์…˜
  7. narratives: ์„น์…˜ ๋‚ด ์„œ์ˆ ์  ๋‚ด์šฉ
  8. metrics: ์ •๋Ÿ‰์  ESG ๋ฉ”ํŠธ๋ฆญ
  9. rules: TCFD-to-IFRS ๋ณ€ํ™˜ ๊ทœ์น™
  10. standards: ๊ณต์‹œ ํ‘œ์ค€(TCFD, IFRS ๋“ฑ) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
  11. organization_standards: ์กฐ์ง๊ณผ ๊ณต์‹œ ํ‘œ์ค€ ๊ฐ„์˜ ๊ด€๊ณ„