9.47 OPG_APIS.PR
形式
OPG_APIS.PR( edge_tab_name IN VARCHAR2, d IN NUMBER DEFAULT 0.85, num_iterations IN NUMBER DEFAULT 10, convergence IN NUMBER DEFAULT 0.1, dop IN INTEGER DEFAULT 4, wt_node_pr IN OUT VARCHAR2, wt_node_nextpr IN OUT VARCHAR2, wt_edge_tab_deg IN OUT VARCHAR2, wt_delta IN OUT VARCHAR2, tablespace IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, num_vertices OUT NUMBER);
説明
ページ・ランクの計算の準備を行います。
パラメータ
- edge_tab_name
 - 
                        
プロパティ・グラフ・エッジ表の名前。
 - d
 - 
                        
減衰係数。
 - num_iterations
 - 
                        
ページ・ランク値の計算の反復回数。
 - convergence
 - 
                        
しきい値。現在の反復のページ・ランク値と次の反復のページ・ランク値の違いがこのしきい値よりも小さい場合、計算は停止します。
 - dop
 - 
                        
操作の並列度。
 - wt_node_pr
 - 
                        
頂点のページ・ランク値を保持する作業表の名前。
 - wt_node_pr
 - 
                        
頂点のページ・ランク値を保持する作業表の名前。
 - wt_node_next_pr
 - 
                        
次の反復の頂点のページ・ランク値を保持する作業表の名前。
 - wt_edge_tab_deg
 - 
                        
エッジとノードの並列度情報を保持する作業表の名前。
 - wt_delta
 - 
                        
いくつかの特別な頂点に関する情報を保持する作業表の名前。
 - tablespace
 - 
                        
すべてのグラフ・データおよび索引データを保持する表領域の名前。
 - options
 - 
                        
操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。
- 
                              
CREATE_UNDIRECTED=T - 
                              
REUSE_UNDIRECTED_TAB=T 
 - 
                              
 - num_vertices
 - 
                        
ページ・ランクの計算により処理される頂点の数。
 
使用上のノート
プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.PR_PREPプロシージャはコール済である必要があります。
例
次の例は、準備を実行してから、mypgという名前のプロパティ・グラフの頂点のページ・ランク値を計算します。
                  
set serveroutput on
DECLARE
    wt_pr  varchar2(2000); -- name of the table to hold PR value of the current iteration
    wt_npr varchar2(2000); -- name of the table to hold PR value for the next iteration
    wt3    varchar2(2000); 
    wt4    varchar2(2000); 
    wt5    varchar2(2000); 
    n_vertices number;
BEGIN
    wt_pr := 'mypgPR';
    opg_apis.pr_prep('mypgGE$', wt_pr, wt_npr, wt3, wt4, null);
    dbms_output.put_line('Working table names  ' || wt_pr 
       || ', wt_npr ' || wt_npr || ', wt3 ' || wt3 || ', wt4 '|| wt4);
    opg_apis.pr('mypgGE$', 0.85, 10, 0.01, 4, wt_pr, wt_npr, wt3, wt4, 'SYSAUX', null, n_vertices)
;
END;
/
出力は、次のようになります。
Working table names "MYPGPR", wt_npr "MYPGGE$$TWPRX277", wt3 "MYPGGE$$TWPRE277", wt4 "MYPGGE$$TWPRD277"
計算されたページ・ランク値は、次の定義およびデータを含むmypgpr表に格納されます。
SQL> desc mypgpr;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 NODE					   NOT NULL NUMBER
 PR						            NUMBER
 C						              NUMBER
SQL> select node, pr from mypgpr;
      NODE	   PR
---------- ----------
       101	.1925
       201	.2775
       102	.1925
       104  .74383125
       105  .313625
       103	.1925
       100	.15
       200	.15
親トピック: OPG_APISパッケージのサブプログラム