def validateCandidateKeys(relation, fds, inputKeysString): keys = DBnormalizer.getKeys(relation, fds) inputKeysArray = inputKeysString.split() inputKeys = set("") for k in inputKeysArray: inputKeys.add(frozenset(k)|frozenset(EMPTY_SET)) if not inputKeys: inputKeys.add(frozenset(EMPTY_SET)) isCorrect = True for k in keys: if k not in inputKeys: isCorrect = False for k in inputKeys: if k not in keys: isCorrect = False return isCorrect
def validateAddKeyRelation(originrelation, fds, relations, keyrelationstring): keys = DBnormalizer.getKeys(originrelation, fds) keyrelation = frozenset(keyrelationstring) | frozenset(EMPTY_SET) newrelations = relations[:] if len(DBnormalizer.addRelationWithKey(relations[:], keys)) > len(relations): #key must be added if keyrelation in keys: newrelations.append(keyrelation) return newrelations else: return [] else: #no key must be added if keyrelationstring == "": return newrelations else: return []
""" return html try: relationString = str(form['relation'].value).replace(" ", "").replace( "\n", "").replace("\r", "") relation = set(relationString) | set(EMPTY_SET) fdsString = re.sub("(\r\n)*", "", str(form['fds'].value), 1) fds, mvds = DBnormalizer.parseInputFDsMVDs(fdsString) additionalFds = [] additionalMvds = [] step = str(form['step'].value).replace(" ", "").replace("\n", "").replace("\r", "") candidatekeys = DBnormalizer.getKeys(relation, fds) noRightSideAttributes = relation - DBnormalizer.getRightSideAttributes(fds) alert = "" info = "" inputpanel = views.inputToString(relation, fds, mvds, additionalFds, additionalMvds, "default") quizform = "" try: numberOfTries = int(form['numberOfTries'].value) numberOfSteps = int(form['numberOfSteps'].value) except KeyError: numberOfTries = 0 numberOfSteps = 0 numberOfTries = numberOfTries + 1 if (step == '1'):
</html> """ return html try: relationString = str(form['relation'].value).replace(" ", "").replace("\n", "").replace("\r", "") relation = set(relationString)|set(EMPTY_SET) fdsString = re.sub("(\r\n)*", "", str(form['fds'].value), 1) fds,mvds = DBnormalizer.parseInputFDsMVDs(fdsString) additionalFds = [] step = str(form['step'].value).replace(" ", "").replace("\n", "").replace("\r", "") candidatekeys = DBnormalizer.getKeys(relation, fds) alert = "" info = "" inputpanel = views.inputToString(relation, fds, mvds, additionalFds, "default") quizform = "" try: numberOfTries = int(form['numberOfTries'].value) numberOfSteps = int(form['numberOfSteps'].value) except KeyError: numberOfTries = 0 numberOfSteps = 0 numberOfTries = numberOfTries + 1 if (step=='1'): #candidate keys numberOfSteps = numberOfSteps + 1