0

SQL Server に 2 つのテーブルがあります。つまり、
1 つのテーブルは次のとおりですGraphNodes

---------------------------------------------------------
id | Node_ID | Node            |  Node_Label | Node_Type
---------------------------------------------------------
1    677       Nuno Vasconcelos   Author       1
2    1359      Peng Shi           Author       1
3    6242      Z. Q. Shi          Author       1
4    8318      Kiyoung Choi       Author       1
5    12405     Johan A. K.        Author       1
6    26615     Tzung-Pei Hong     Author       1
7    30559     Luca Benini        Author       1  
...  
...  

他のテーブルは次のとおりですGraphEdges

-----------------------------------------------------------------------------------------
id | Source_Node | Source_Node_Type | Target_Node | Target_Node_Type | Year |  Edge_Type
-----------------------------------------------------------------------------------------
1    1             1                  10965         2                  2005    1
2    1             1                  10179         2                  2007    1
3    1             1                  10965         2                  2007    1
4    1             1                  19741         2                  2007    1
5    1             1                  10965         2                  2009    1
6    1             1                  4816          2                  2011    1
7    1             1                  5155          2                  2011    1  
...  
...

また、次のような2つのテーブルがありますGraphNodeTypes

-------------------------
id | Node    | Node_Type
-------------------------
1    Author    1
2    CoAuthor  2
3    Venue     3
4    Paper     4  

そしてGraphEdgeTypes次のように:

-------------------------------
id | Edge          | Edge_Type
-------------------------------
1    AuthorCoAuthor  1
2    CoAuthorVenue   2
3    AuthorVenue     3
4    PaperVenue      4
5    AuthorPaper     5
6    CoAuthorPaper   6  

ここで、このグラフ、つまり 2 つのタイプのクラスタリング係数を計算したいと考えています

Local Clustering Coefficient(V) = 2 * N(V)/K(V) [K(V) - 1]  

Global Clustering Coefficient = 3 * # of Triangles / # of connected Triplets of V  

質問は、ノードの次数をどのように計算できますか? SQL Server または C# プログラミングが必要で可能ですか。また、ローカル CC とグローバル CC を計算するためのヒントも教えてください。

ありがとう!

4

2 に答える 2

0

ノードの次数は「計算」されません。これは単に、このノードが持つエッジの数です。

SQL でこれを試みることはできますが、パフォーマンスはおそらく平凡です。このようなタイプの分析は、通常、特殊なデータベースで行われ、可能であればメモリ内で行われます。

于 2016-02-23T07:39:05.423 に答える
0

各頂点の次数を、それに接続されているエッジの数としてカウントします。この場合、COUNT(source_node) と GROUP BY(source_node) を使用すると便利です。

N(V) を見つけるには、エッジ テーブルをそれ自体と結合し、結果のテーブルとエッジ テーブルの交点を取得します。結果から、頂点ごとに COUNT() を取得します。

于 2018-12-03T18:43:43.960 に答える