{'fraction_non_alphanumeric': 0.0106544901065449, 'fraction_numerical': 0.0, 'mean_word_length': 5.514851485148514, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
An Efficient Algorithm to Compute the Candidate Keys of a Relational Database Schema

We provide an efficient algorithm for computing the candidate keys of a relational database schema. The algorithm exploits the 'arrangement' of attributes in the functional dependencies to determine which attributes are essential and useful for determining the keys and which attributes should not be considered. A more generalized algorithm using attribute graphs is then provided which allows a uniform and simplified solution to find all possible keys of a relational database schema when the attribute graph of Functional Dependencies (FDs) is not strongly connected.