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. | ||