मेरे पास SQL सर्वर में दो टेबल हैं, यानी
एक टेबल 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
...
...
मेरे पास दो टेबल भी हैं यानी 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
अब, मैं इस ग्राफ के लिए दो प्रकार के क्लस्टरिंग गुणांक की गणना करना चाहता हूं:
यदि N(V) नोड V के लिंक b/w पड़ोसियों का # है और K(V) नोड V की डिग्री है, तो,
Local Clustering Coefficient(V) = 2 * N(V)/K(V) [K(V) - 1]
तथा
Global Clustering Coefficient = 3 * # of Triangles / # of connected Triplets of V
सवाल यह है कि, मैं नोड की डिग्री की गणना कैसे कर सकता हूं? एसक्यूएल सर्वर या सी # प्रोग्रामिंग में यह संभव है। और कृपया स्थानीय और वैश्विक सीसी की गणना के लिए संकेत भी सुझाएं।
धन्यवाद!
2 जवाब
नोड की डिग्री "गणना" नहीं है। यह केवल इस नोड के किनारों की संख्या है।
जब आप इसे SQL में करने का प्रयास कर सकते हैं, तो प्रदर्शन औसत दर्जे का होगा। इस प्रकार का विश्लेषण आमतौर पर विशेष डेटाबेस में और यदि संभव हो तो स्मृति में किया जाता है।
प्रत्येक कोने की डिग्री को इससे जुड़े किनारों की संख्या के रूप में गिनें। इस मामले में COUNT(source_node) और GROUP BY(source_node) का उपयोग करना सहायक होगा।
एन (वी) को खोजने के लिए, आप किनारे की तालिका को अपने साथ जोड़ सकते हैं और फिर परिणामी तालिका और किनारे की तालिका के बीच प्रतिच्छेदन ले सकते हैं। परिणाम से, प्रत्येक शीर्ष के लिए COUNT () लें।
संबंधित सवाल
नए सवाल
sql-server
Microsoft SQL सर्वर एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDBMS) है। कॉम्पैक्ट, एक्सप्रेस, एज़्योर, फास्ट-ट्रैक, एपीएस (पूर्व में पीडीडब्ल्यू) और एज़्योर SQL डीडब्ल्यू सहित सभी SQL सर्वर संस्करणों के लिए इस टैग का उपयोग करें। अन्य प्रकार के DBMS (MySQL, PostgreSQL, Oracle, आदि) के लिए इस टैग का उपयोग न करें। सॉफ़्टवेयर और मोबाइल विकास के मुद्दों के लिए इस टैग का उपयोग न करें, जब तक कि यह सीधे डेटाबेस से संबंधित न हो।