8.7 KiB
8.7 KiB
MMCL 데이터베이스 테이블 레이아웃 (전체 상세판)
프로젝트에 구성된 총 9개의 테이블 구조에 대한 상세 레이아웃 및 명세서입니다.
ERD 요약
erDiagram
dev_info ||--o{ pos_info : "위치 참조 (dev_posID)"
dev_info ||--o| sensor_info : "NILM 센서 참조 (nilm_sensorNo)"
dev_info ||--o| sensor_info : "LED 센서 참조 (led_sensorNo)"
dev_info ||--|| nilm_init_value : "초기값 참조 (dev_no)"
dev_info ||--o{ ai_control_log : "AI 제어 이력 생성"
dev_info ||--o{ event_log : "이벤트/에러 로그 생성"
sensor_info ||--o{ sensor_history_log : "측정 이력 생성"
sensor_info }|--|| type_info : "센서 타입 (1:NILM, 2:경광등)"
sensor_info }o--o{ status_info : "상태코드 참조"
전체 테이블 상세 명세서
1. dev_info (설비/기계 마스터 정보)
NILM 장치가 연결된 설비 및 기계들의 기본 정보와, 해당 설비에 매핑된 센서 번호(NILM, LED)를 관리합니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
dev_no |
INT(11) | PK | NO | 설비 고유 번호 | Auto Increment |
dev_id |
VARCHAR(15) | UNIQUE | YES | 설비 식별 ID | |
dev_name |
VARCHAR(50) | UNIQUE | YES | 설비명 | |
dev_desc |
VARCHAR(100) | YES | 설비 상세 설명 | ||
dev_posID |
VARCHAR(100) | FK | YES | 위치 식별 ID | pos_info.pos_id 참조 |
led_sensorNo |
INT(11) | FK | YES | 매핑된 경광등(LED) 센서 번호 | sensor_info.sensor_no 참조 |
nilm_sensorNo |
INT(11) | FK | YES | 매핑된 NILM 센서 번호 | sensor_info.sensor_no 참조 |
nilm_chNo |
INT(11) | YES | 해당 설비가 연결된 NILM 채널 번호 |
2. sensor_info (센서 마스터 및 실시간/목표 상태)
NILM 장비의 최신 실시간 계측값 및 경광등의 현재/목표 상태를 관리하는 메인 테이블입니다. LLM 핸드쉐이크를 지원하기 위한 target 필드가 포함되어 있습니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
sensor_no |
INT(11) | PK | NO | 센서 고유 번호 | Auto Increment |
sensor_id |
VARCHAR(15) | UNIQUE | YES | 센서 식별 ID | |
sensor_name |
VARCHAR(50) | YES | 센서명 | ||
_desc |
VARCHAR(100) | YES | 센서 설명 | ||
sensor_typeid |
INT(11) | FK | NO | 센서 타입 | 1:NILM, 2:경광등 (type_info 참조) |
update_time |
DATETIME | YES | 마지막 갱신 일시 | ||
mqtt_topic |
VARCHAR(255) | YES | [NILM] 구독 MQTT 토픽 | (추가) 에이전트 동적 매핑용 | |
value_pf |
FLOAT | YES | [NILM] 역률 (Power Factor) | ||
value_ch1_current |
FLOAT | YES | [NILM] CH1 최신 전류 | ||
value_ch1_volt |
FLOAT | YES | [NILM] CH1 최신 전압 | ||
value_ch1_pwr |
FLOAT | YES | [NILM] CH1 최신 전력 | ||
value_ch2_current |
FLOAT | YES | [NILM] CH2 최신 전류 | ||
value_ch2_volt |
FLOAT | YES | [NILM] CH2 최신 전압 | ||
value_ch2_pwr |
FLOAT | YES | [NILM] CH2 최신 전력 | ||
value_ch3_current |
FLOAT | YES | [NILM] CH3 최신 전류 | ||
value_ch3_volt |
FLOAT | YES | [NILM] CH3 최신 전압 | ||
value_ch3_pwr |
FLOAT | YES | [NILM] CH3 최신 전력 | ||
value_ch1_statusID |
INT(11) | FK | YES | [LED] Green LED 현재 상태 | status_info 참조 (0:OFF, 1:ON) |
value_ch2_statusID |
INT(11) | FK | YES | [LED] Yellow LED 현재 상태 | status_info 참조 |
value_ch3_statusID |
INT(11) | FK | YES | [LED] Red LED 현재 상태 | status_info 참조 |
target_ch1_statusID |
INT(11) | FK | YES | [LED] Green LED 목표 상태 | (추가) 백엔드/LLM 제어 지시값 |
target_ch2_statusID |
INT(11) | FK | YES | [LED] Yellow LED 목표 상태 | (추가) 백엔드/LLM 제어 지시값 |
target_ch3_statusID |
INT(11) | FK | YES | [LED] Red LED 목표 상태 | (추가) 백엔드/LLM 제어 지시값 |
last_updated_by |
VARCHAR(50) | YES | 마지막 제어 주체 | (추가) 예: 'LLM', 'RULE_ENGINE' | |
led_ip |
VARCHAR(20) | YES | [LED] 경광등 IP 주소 | (추가) 중앙 관제 에이전트 라우팅용 | |
led_port |
INT(11) | YES | [LED] 경광등 포트 번호 | (추가) 기본값 20000 |
3. sensor_history_log (시계열 이력 로그) - [NEW]
sensor_info의 측정값이 지속적으로 갱신될 때마다 그 시점의 데이터를 시계열(Time-series) 이력으로 누적 적재하는 로그 테이블입니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
log_no |
INT(11) | PK | NO | 로그 고유 번호 | Auto Increment |
sensor_no |
INT(11) | FK | NO | 측정 대상 센서 고유 번호 | sensor_info.sensor_no 참조 |
log_time |
DATETIME | IDX | NO | 로그 생성 일시 | 기본값: CURRENT_TIMESTAMP |
value_ch1_current |
FLOAT | YES | [NILM] CH1 이력 전류 | ||
value_ch1_volt |
FLOAT | YES | [NILM] CH1 이력 전압 | ||
value_ch1_pwr |
FLOAT | YES | [NILM] CH1 이력 전력 | ||
value_ch2_current |
FLOAT | YES | [NILM] CH2 이력 전류 | ||
value_ch2_volt |
FLOAT | YES | [NILM] CH2 이력 전압 | ||
value_ch2_pwr |
FLOAT | YES | [NILM] CH2 이력 전력 | ||
value_ch3_current |
FLOAT | YES | [NILM] CH3 이력 전류 | ||
value_ch3_volt |
FLOAT | YES | [NILM] CH3 이력 전압 | ||
value_ch3_pwr |
FLOAT | YES | [NILM] CH3 이력 전력 |
4. pos_info (위치 정보 마스터)
기계/설비가 설치된 공장 내 위치 구역 코드를 관리합니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
pos_id |
VARCHAR(15) | IDX | YES | 위치 식별 ID | 예: 'POS_01' |
pos_name |
VARCHAR(50) | YES | 위치명 | 예: 'A동 1구역' |
5. type_info (센서/장비 타입 마스터)
sensor_info에 등록된 센서의 유형(Type)을 정의합니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
dev_typeID |
INT(11) | IDX | YES | 장비(센서) 타입 식별 ID | 1: NILM, 2: 경광등 |
dev_name |
VARCHAR(50) | YES | 장비 타입명 |
6. status_info (상태 코드 마스터)
경광등 상태(ON/OFF 등)와 같은 각종 상태값의 공통 코드를 관리합니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
sts_id |
INT(11) | IDX | YES | 상태 식별 ID | 예: 0, 1 |
sts_name |
VARCHAR(50) | YES | 상태명 | 예: 'OFF', 'ON' | |
sts_level |
INT(11) | YES | 상태 레벨 |
7. nilm_init_value (NILM 초기/기준 설정값)
특정 설비(dev_no)에 대한 NILM 채널별 초기(기준) 전류/전압 측정값을 보관합니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
dev_no |
INT(11) | IDX | YES | 설비 고유 번호 | dev_info.dev_no 참조 |
ch1_current |
FLOAT | YES | CH1 초기 전류값 | ||
ch1_volt |
FLOAT | YES | CH1 초기 전압값 | ||
ch2_current |
FLOAT | YES | CH2 초기 전류값 | ||
ch2_volt |
FLOAT | YES | CH2 초기 전압값 | ||
ch3_current |
FLOAT | YES | CH3 초기 전류값 | ||
ch3_volt |
FLOAT | YES | CH3 초기 전압값 |
8. ai_control_log (AI 제어 로그)
LLM이 실행한 설비/LED 제어 이력을 기록하며, 'AI 제어 로그' 화면에 사용됩니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
log_id |
INT(11) | PK | NO | 로그 고유 번호 | Auto Increment |
req_text |
TEXT | YES | 요청 자연어 | ||
dev_no |
INT(11) | FK | NO | 제어 대상 설비 고유 번호 | dev_info.dev_no 참조 |
target_val |
VARCHAR(255) | YES | 제어 목표/결과값 | ||
created_at |
DATETIME | IDX | NO | 제어 실행 시각 | 기본값: CURRENT_TIMESTAMP |
9. event_log (알림/이벤트 로그)
설비의 에러 및 이벤트 발생/해제 이력을 기록하며, '알림(이벤트 로그)' 화면에 사용됩니다.
| 컬럼명 | 데이터 타입 | Key | NULL | 설명 | 비고 |
|---|---|---|---|---|---|
event_id |
INT(11) | PK | NO | 이벤트 고유 번호 | Auto Increment |
dev_no |
INT(11) | FK | NO | 발생 대상 설비 고유 번호 | dev_info.dev_no 참조 |
event_type |
VARCHAR(50) | NO | 이벤트 유형 | 예: 'ERROR', 'WARNING', 'INFO' | |
status |
VARCHAR(20) | NO | 상태 | 예: '발생', '해제' | |
occurred_at |
DATETIME | IDX | NO | 발생 시각 | 기본값: CURRENT_TIMESTAMP |
resolved_at |
DATETIME | YES | 해제 시각 |