SQL에서 베이지안 네트워크 또는보다 일반적으로 지시 된 가중치 그래프를 모델링하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/323456

문제

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에서 계층 및 그래프 구조를 구현하고 쿼리하기위한 기술에 대한 좋은 개요를 제공합니다. 이것들은 내가 아는 주제에 대한 최고의 자원입니다. 추천.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top