User Tools

Site Tools


sql-derivative-sensitivity-analyser

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sql-derivative-sensitivity-analyser [2019/09/26 16:42]
alisa [Quick guide]
sql-derivative-sensitivity-analyser [2019/10/01 17:22] (current)
alisa [Description]
Line 5: Line 5:
 ===== Description ===== ===== Description =====
  
-Sensitivity of a function is the expected maximum change in the output, given a change in the input of the function. Sensitivity is the basis for calibrating the amount of noise to be added to prevent leakages on statistical database queries using a differential privacy mechanism. The analyser ​computes sensitivity of an SQL workflow and reports the amount of noise that we need to tolerate to achieve ε-differential privacy for desired ε.+Sensitivity of a function is the expected maximum change in the output, given a change in the input of the function. Sensitivity is the basis for calibrating the amount of noise to be added to prevent leakages on statistical database queries using a differential privacy mechanism. The analyzer ​computes sensitivity of an SQL workflow and reports the amount of noise that we need to tolerate to achieve ε-differential privacy for desired ε.
 ===== Quick guide ===== ===== Quick guide =====
  
 SQL combined sensitivity analyzer is accessible through Actions menu (with burger-menu icon) under each model in own and shared models/​folders lists of frontend - link "Open in SQL CS editor"​. Different capabilities of the analyzer are also demonstrated on a particular [[sql-derivative-sensitivity-analyser_demo|example model]]. SQL combined sensitivity analyzer is accessible through Actions menu (with burger-menu icon) under each model in own and shared models/​folders lists of frontend - link "Open in SQL CS editor"​. Different capabilities of the analyzer are also demonstrated on a particular [[sql-derivative-sensitivity-analyser_demo|example model]].
- 
-=== Adding information to model elements for analysis === 
- 
-Clicking on tasks or data objects opens a menu on the right side of the page (in sidebar). You can add SQL scripts (in a form of stored procedures) to tasks. 
  
 === Adding SQL scripts === === Adding SQL scripts ===
Line 34: Line 30:
 <​code>​ <​code>​
 SELECT SELECT
-    table_i1.attr_1 AS group_1, 
-    ... 
-    table_ik.attr_k AS group_k, 
     query_expression     query_expression
 FROM FROM
Line 43: Line 36:
     table_n AS alias_n     table_n AS alias_n
 WHERE WHERE
-    ​condition_1 AND +    ​condition 
-    ... +;
-    condition_n +
-GROUP BY +
-    table_i1.attr_1,​ +
-    ... +
-    table_ik.attr_k+
 </​code>​ </​code>​
  
Line 77: Line 65:
  
 ^    ^ A ^ B     ^ C        ^ ^    ^ A ^ B     ^ C        ^
-^ 1  | attr_1attr_2 ​ ​| ​attr_3|+^ 1  | var_1var_2  ​| ​var_3|
 ^ 2  | x11 | x21  | x31      | ^ 2  | x11 | x21  | x31      |
 ^ 3  | x12 | x22  | x32      | ^ 3  | x12 | x22  | x32      |
Line 101: Line 89:
 === Running analysis === === Running analysis ===
  
-Clicking on //Analyze// button opens a menu entitled //Analysis settings// on the right side of the page (in sidebar). There you can adjust "​Privacy level ε" and "​Smoothness level β" parameters. Simply put, smaller ε means more privacy. ​The variable ​β is an optimization parameter that does not affect privacy ​at all, but is related to the noise level. In general, smaller β means less noise, ​but not all values of β will work for a particular queryresulting in an error. The user may choose not to fix β and let the analyzer find a suitable β itself (which depends on ε). The analysis takes more timebut the obtained β can be reused afterwardsand still be reasonable if the query or the data does not change too much.+Clicking on //Analyze// button opens a menu entitled //Analysis settings// on the right side of the page (in sidebar). There you can adjust "​Privacy level ε" and "​Smoothness level β" parameters. Simply put, smaller ε means more privacy. ​For simplicity, set β radio button to //off//, as it does not affect privacy ​and is needed for noise optimization. 
 + 
 +The slider //​Confidence ​level of estimated ​noise//which ranges between 0% and 100%fixes the probability with which the noise stays below reported bound. The larger is confidence, the larger is the noise. For 100% confidence, the noise would be infiniteas the noise distribution is unbounded.
  
 Sub-button //Table constraints//​ allows to add information that may be helpful for getting better noise level. The details are given in [[sql-derivative-sensitivity-analyser_advanced|analyser advanced settings]]. Sub-button //Table constraints//​ allows to add information that may be helpful for getting better noise level. The details are given in [[sql-derivative-sensitivity-analyser_advanced|analyser advanced settings]].
 +
 +{{cs_settings.png}}
  
 Click on //Run analysis// button to run analysis. The results (entitled //Analysis results//) appear in the sidebar as well. The result is given for each of the input tables, and it consists of the following components. Click on //Run analysis// button to run analysis. The results (entitled //Analysis results//) appear in the sidebar as well. The result is given for each of the input tables, and it consists of the following components.
sql-derivative-sensitivity-analyser.1569505369.txt.gz · Last modified: 2019/10/01 13:53 (external edit)