The Unique Database value wont take an empty string.
to work around this, you can force a string if the post is empty.
when you add the unique DB validation and the select the Server variable, the server variable code will look like:
((isset($_POST["elementName"]))?$_POST["elementName"]:"")
edit that to:
((isset($_POST["elementName"]) && $_POST['elementName'] != "")?$_POST["elementName"]:"NA")
this will check for an empty value and force it to look for "NA" is empty.
the key value option is used in an update scenario.
If the user is logged in, and updating their information, they should still be able to use their existing email address.
in this case, the key value should be set to use the ID session created by the login page. that will look up the record for the logged in user and allow the email address for that record to pass validation, but not any other email address in the database.
in other words, it is used to lookup the exception to the rule.