NL-to-SQL 기반 자연어 데이터베이스 조회 — DbSphere 연결 설정 및 활용 가이드
사내 데이터를 분석하고 싶을 때마다 SQL을 작성하거나 데이터 팀에 요청해야 했던 경험이 있으신가요?DbSphere는 자연어를 SQL로 자동 변환하여 데이터베이스를 조회합니다. “이번 달 매출 알려줘”라고 질문하면 AI가 SQL을 생성하고 실행하여 결과를 자연어와 표로 응답하고, 요청 시 차트로 시각화합니다.
데이터베이스 상세 화면 상단의 활동 이력 버튼을 누르면, 이 데이터베이스에 일어난 변경이 시간순으로 표시됩니다. 각 줄에 동작 · 수행한 사람 · 대상 · 정확한 시각이 함께 나오고, 창 아래에 전체 건수가 표시됩니다. 연결 정보나 테이블 구성이 언제 바뀌었는지 되짚을 때 사용하세요.
각 DB는 SQL 문법이 조금씩 다릅니다. Cloosphere는 자연어 → SQL 변환 시 DB별 문법 규칙을 시스템 프롬프트에 동적으로 주입해 AI가 올바른 SQL을 생성하도록 유도합니다. 다만 다음 항목은 사용자가 의도를 명확히 표현하면 더 정확한 SQL이 생성됩니다.
DATE_TRUNC() 대신 TRUNC(col, 'DD'), 요일 추출은 EXTRACT(DOW FROM col) 대신 TO_CHAR(col, 'D')를 사용합니다.
한글·특수문자 컬럼명 인용
Oracle에서 한글 컬럼 별칭(AS 공장코드)을 그대로 쓰면 ORA-00936: missing expression 오류가 발생합니다.
-- ❌ Oracle 실패SELECT plant_code AS 공장코드 FROM plants-- ✅ Oracle 권장SELECT plant_code AS "공장코드" FROM plants
이 규칙은 시스템 프롬프트에 포함되어 AI가 따옴표를 자동으로 적용하지만, 한글 컬럼이 많은 환경에서는 결과를 확인하고 누락 시 직접 수정하세요.
LIMIT 대신 FETCH FIRST
-- ❌ Oracle 12c 미만 또는 잘못된 사용SELECT * FROM users LIMIT 10-- ✅ Oracle 12c+SELECT * FROM users FETCH FIRST 10 ROWS ONLY-- ✅ Oracle 11g 호환 (서브쿼리)SELECT * FROM (SELECT * FROM users) WHERE ROWNUM <= 10
DbSphere는 기본적으로 읽기 전용입니다. 다만 이는 고정된 성질이 아니라 데이터베이스마다 켜고 끌 수 있는 설정입니다.DB 설정 모달 최상단의 데이터 변경 허용 스위치가 이를 결정합니다. 화면 설명 그대로:
끔: 에이전트가 SELECT (읽기 전용) 만 실행 가능. 켬: INSERT/UPDATE/DELETE/DDL 도 가능하지만 매 호출마다 사용자 승인이 필요합니다.
꺼짐 (기본값)
켜짐
SELECT · 집계 함수 · JOIN · 서브쿼리
즉시 실행
즉시 실행
INSERT · UPDATE · DELETE
차단
사용자 승인 후 실행
DDL (CREATE, DROP, ALTER, TRUNCATE, GRANT)
차단
사용자 승인 후 실행
분류 불가 구문 · 여러 구문 동시 실행
차단
쓰기로 취급 → 승인 필요
데이터 변경 허용을 켜면 에이전트가 실제로 데이터를 바꿀 수 있습니다. 읽기 전용을 전제로 보안 검토나 접근 승인을 진행 중이라면, 대상 데이터베이스에서 이 스위치가 꺼져 있는지 반드시 확인하세요.이 스위치는 관리자도 우회할 수 없습니다. 관리자는 접근 권한(ACL)은 통과하지만 이 안전 스위치는 그대로 적용받습니다.
기본값은 읽기 전용이라 변경되지 않습니다. SELECT가 아닌 구문은 차단됩니다.다만 데이터베이스마다 DB 설정 모달에서 데이터 변경 허용을 켤 수 있고, 켜면 에이전트가 INSERT·UPDATE·DELETE·DDL도 실행할 수 있습니다. 이 경우에도 바로 반영되지는 않고 매 호출마다 승인 카드가 떠서 사용자가 커밋해야 적용됩니다.읽기 전용을 보장해야 한다면 해당 데이터베이스에서 이 스위치가 꺼져 있는지 확인하세요 — 관리자도 이 스위치는 우회하지 못합니다. 자세한 내용은 데이터 변경 제어 를 참고하세요.
실행된 SQL을 볼 수 있나요?
네, AI 응답에서 생성된 SQL을 확인할 수 있습니다. 추적에서도 실행된 SQL과 결과를 상세하게 확인할 수 있습니다.
여러 테이블을 JOIN할 수 있나요?
네, 관련 테이블을 모두 선택하고 테이블 간 관계를 스키마 설명에 기술하면 AI가 적절한 JOIN 쿼리를 생성합니다.
한 에이전트에 여러 데이터베이스를 연결할 수 있나요?
네, 에이전트에 여러 데이터베이스를 연결하면 AI가 질문에 따라 적절한 데이터베이스를 자동으로 선택합니다. 이때 각 DB의 도구 설명을 구체적으로 작성하면 선택 정확도가 높아집니다.
스키마 추출 시 모델을 선택하면 뭐가 달라지나요?
모델을 선택하면 LLM이 테이블/컬럼에 비즈니스 설명을 자동 생성하고, 샘플 Q&A 쌍도 만들어줍니다. 모델 없이 추출하면 DDL 구조만 저장됩니다. 모델 선택을 권장합니다.