|
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> |
| 3 | +<head> |
| 4 | +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| 5 | +<link href="https://download-codeplex.sec.s-msft.com/css/v21050/i2036743/StyleSheet.ashx" id="MasterCss" rel="stylesheet" type="text/css" /> |
| 6 | +<title>Database View-plug-ins Framework</title> |
| 7 | +</head> |
| 8 | +<body> |
| 9 | +<h1 class="text_only"><a href="//github.com/AbelCheng/View-plug-ins" target="_blank">Database View-plug-ins Framework</a></h1> |
| 10 | +<hr/> |
1 | 11 | <div class="wikidoc"> |
2 | 12 | <p><strong>Project Description</strong></p> |
3 | 13 | <p>The View-Plug-Ins Programming on database development is an interface-oriented programming. This methodology has been practiced widely in many fields (e.g. OOP programming) for a long time. Here just focus on database development and introduce a few meta-tables |
|
7 | 17 | root to branches if the program structure of SQL scripts like a deciduous tree in winter.</p> |
8 | 18 | <p><strong>Interface Design</strong></p> |
9 | 19 | <p>The process of interface designing prefers more converse thinking. Especially in realization phase, the whole programming steps is from Target (output) Model to Source (input) Models, as shown following:<br> |
10 | | -<img src="/Download?ProjectName=view&DownloadId=463344" alt="Figure1" width="545" height="118" style="vertical-align:middle"></p> |
| 20 | +<img src="Home_Converse.png" alt="Figure1" width="545" height="118" style="vertical-align:middle"></p> |
11 | 21 | <p>Once we get a clear and clean data requirement, then to abstract, induce and simplify into a unified target model is a prerequisite of interface-oriented designing.</p> |
12 | 22 | <ul> |
13 | 23 | <li>The Target Model (above figure) defines the data model; </li><li>A Interface defines a cluster node to approach one kind of required data; </li><li>A view-plug-in defines a method model of data extraction. </li></ul> |
14 | | -<p><img src="/Download?ProjectName=view&DownloadId=463345" alt="Figure2" width="689" height="376" style="vertical-align:middle"></p> |
| 24 | +<p><img src="Home_vpi.png" alt="Figure2" width="689" height="376" style="vertical-align:middle"></p> |
15 | 25 | <p>Two basic aims of bringing in the Interface and the Plug-ins:</p> |
16 | 26 | <p><span style="text-decoration:underline">Isolation</span></p> |
17 | 27 | <p>To isolate the differences of data model, transform different model from many sources to a common target model, follow by classification, labeling/tagging etc. It helps the code to be loose-coupled while the data keep tightly-coupled. To test each independent |
|
23 | 33 | <p>There are only 4 tables about meta data need to be maintained for above designed model:</p> |
24 | 34 | <ol> |
25 | 35 | <li>EXTRACT_SERVICE </li><li><strong>EXTRACT_INTERFACE</strong> </li><li>EXTRACT_PLUGIN </li><li>EXTRACT_RULE </li></ol> |
26 | | -<div><img src="/Download?ProjectName=view&DownloadId=471665" alt="db_diagram" width="646" height="450"></div> |
| 36 | +<div><img src="Home_db_diagram.png" alt="db_diagram" width="646" height="450"></div> |
27 | 37 | <p>1. EXTRACT_SERVICE</p> |
28 | 38 | <div>An Extraction Service encapsulates a set of related Interfaces in the form of a service layer:</div> |
29 | 39 | <ul> |
|
315 | 325 | </li><li>The table EXTRACT_INTERFACE declares the view signature of each interface (like delegate in C#), and the union view which assembles all its plug-in views. The code of union views and rule views can be generated by following helper view: |
316 | 326 | </li></ul> |
317 | 327 | <div style="padding-left:20px">SELECT * FROM <span style="color:#808080">VPI.</span>VIEW_EXTRACT_CODE</div> |
318 | | -<div><img src="/Download?ProjectName=view&DownloadId=471646" alt="view_code_generation" width="689" height="29"></div> |
| 328 | +<div><img src="Home_view_code_generation.png" alt="view_code_generation" width="689" height="29"></div> |
319 | 329 | <div style="padding-left:20px">Click the <CLOB>..., the generated code will be show in a pop-up window of PL/SQL.<br> |
320 | 330 | </div> |
321 | 331 | <p><strong>Session Context</strong></p> |
|
411 | 421 | - Currently support. </li><li>SQL Server<br> |
412 | 422 | - In the plan ... </li></ul> |
413 | 423 | </div><div class="ClearBoth"></div> |
| 424 | +</body> |
| 425 | +</html> |
0 commit comments