This shows you the differences between two versions of the page.
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_1| attr_2 | attr_3| | + | ^ 1 | var_1| var_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 query, resulting 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 time, but the obtained β can be reused afterwards, and 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 infinite, as 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. |