SQL에서 베이지안 네트워크 또는보다 일반적으로 지시 된 가중치 그래프를 모델링하는 방법은 무엇입니까?
-
11-07-2019 - |
문제
SQL에서 다양한 종류 (특히 DAG)의 그래프를 모델링하는 방법에 대한 예를 제공하는 온라인 기사를 찾았지만 모델링의 상대적 단순성을 감안할 때 모두 엄청나게 복잡해 보였습니다.
이 작업을 수행하는 최상의 / 표준 방법이 있습니까? 내 현재의 생각은 다음과 같습니다.
create table node (
id int not null auto_increment,
name TEXT
)
create table edge (
from_node int not null,
to_node int not null,
weight float
)
그것에 문제가 있습니까? 더 나은 (더 강력한) 방법을 아는 사람이 있습니까?
해결책
이것은 상당히 합리적인 접근법 일 것입니다. Oracle 또는 SQL Server와 같은 일부 시스템에는 재귀 쿼리 기능이 있지만 SQL은 실제로 재귀 구조를 잘 수행하지 않습니다.
특정 검색 유형에 더 잘 작동하는 구조를 찾을 수 있지만 일반적인 경우에는 더 나은 구조를 찾을 수 없다고 생각합니다. 응용 프로그램의 요구 사항이 이러한 방식으로 제한되어 있으면 그러한 최적화로 인해 혜택이 제공 될 수 있습니다.
베이지안 네트워크는 a 지시 된 acyclic 그래프 (DAG), 순전히 재귀적인 부모-자식 관계는 네트워크를 모델링하기에 충분하지 않기 때문에 (예 : 노드는 한 명 이상의 부모를 가질 수 있음), 설명한 유형의 M : M 관계가 필요합니다.
Smarties를위한 SQL의 다양한 조 셀코 SQL에서 계층 및 그래프 구조를 구현하고 쿼리하기위한 기술에 대한 좋은 개요를 제공합니다. 이것들은 내가 아는 주제에 대한 최고의 자원입니다. 추천.
제휴하지 않습니다 StackOverflow