[질문] SQL Intelligent Automation Generator 가능할까요?
글쓴이: 오호라 / 작성시간: 수, 2008/07/09 - 12:08오전
SQL 지능형 자동 생성기( SQL Intelligent Automation Generator ) 가 가능할까요?
어느 정도 형식화된 SQL은 shell, perl, python ...등으로 쉽게 만들수 있을 것 같은데,
지능형이란 말처럼 표준( SQL-92, SQL-99 ... SQL/MM )을 두루 아울룰수 있을까요?
구글님의 힘을 빌려도 답이 안나오네요.
혹시라도 고수님들이 알고 계신 방법이 있는지요?
만약에 여러분이 만들어 본다면 어떻게 하실건가요?
혹시 알티베이스, 티맥스같은 회사에서는 가지고 계실까요?
정말 없다면 오픈 소프트웨어로 개발해볼까도 고민중입니다. ^^;
Forums:
한국어 형태소
한국어 형태소 분석과 정보검색이라는 책에 관련 부분이 조금 나옵니다.
형태소분석을 활용하여 가격 정보 관련 query 생성하기라든지... 머 그런 종류.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
서적에서 대충 훑어본적이 있었는데...
서평도 좋고, 강승식교수님이란 분이 유명하시다고 해서 보긴 본것도 같은데 한권 장만해야겠네요.
감사합니다.
이 기회에 만들어보는 것도 나쁘지 않을 듯 싶네요. ^^
Hello World.
개발하시면 저희
개발하시면 저희 회사에 파시죠..^^
SQL이 BNF로 되어있기 때문에 이 BNF를 읽어서 내부 트리로 유지한 이후에,
모든 경우의 수에 대해서 생성하면 될 것 같다고 예전에 고민만 조금 했습니다.
근데, 대상 Table의 schema나 갯수, join 혹은 기타 연산에 대해서
고려한 정교한 SQL이 생성되려면 아무래도 지능이 필요하고
이것을 어떻게 표현해야 하나 하는 고민도 했었구요...
오픈소스로 하시면 많은 반향이 있을 듯...
-----------------------------------------------------------
고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.
고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.
역시 뜻이 같으면 방법도 같은거 같네요. ^^
제가 생각하는 방법도 비슷합니다.
"SQL BNF 100% 커버리지"을 만족하기 위해서는 가장 이상적인 방법은 역시나
컴파일러툴 ( lex, flex, yacc, bison, ANTLR 류 ) 을 이용하는 것입니다.
일단 직접 yacc 에 하드코딩하는 방법도 있고, 아니면 메타파일( .vcg, .output ) 등을 이용하는 방법도 있을 것같습니다.
일단 생각하고 있는 방법은 메타파일을 이용하는 방법입니다.
graphviz 소스를 조금 활용하면 될듯 싶습니다.
AST, ASG..등 만들어지면 문제는 검색(순회)인데, 이것도 어느정도 만족할 수준까지 될듯싶습니다.
커버리지 100%도 사실 문제는 없을듯 싶은데, 진짜 문제는 얼마나 유용한(?) SQL을 만들어 내냐가 문제인 듯싶습니다.
이럴 때 뉴럴네트웍을 쓰는지 모르겠습니다. ^^;
근데 의외로 문제는 데이터셋을 구성하는 일수 있을 것같습니다.
그리고, 잘 만들어서 공개하면 의외로 SQL injection 기법에 활용되지 않을까도 생각해봤습니다. ^^;
SQL BNF
http://savage.net.au/SQL/sql-92.bnf
------------------------------------------------------------------------------------------
참고로 .vcg 파일은 graphviz로 볼수 없습니다. 지원되는 툴이 별로 없는 실정입니다.
dot 파일로 convert 해서 graphviz로 보던지,
www.aisee.com 에서 평가판을 다운받으셔서 보시면 그래픽한 노드들을 볼수 있습니다.
aisee에서 보시면 edge가 파란색이면 reduce, 녹색이 shift 일겁니다. 아니면 반대입니다.
Hello World.
댓글 달기