Example #1
0
def validatePrimaryKeys(relations, fds, primarykeys):
	keysAndFds = DBnormalizer.getKeysAndFDsMVDsOfRelations(relations, fds)
	valid = True
	for i, pk in enumerate(primarykeys):
		if pk not in keysAndFds[i]['keys']:
			valid=False
	return valid
Example #2
0
def validatePrimaryKeys(relations, fds, primarykeys):
	keysAndFds = DBnormalizer.getKeysAndFDsMVDsOfRelations(relations, fds)
	valid = True
	for i, pk in enumerate(primarykeys):
		if pk not in keysAndFds[i]['keys']:
			valid=False
	return valid
Example #3
0
     currentrelationsStrings = str(
         form['currentrelations'].value).split(",")
     for r in currentrelationsStrings:
         relations.append(views.stringToRelation(r))
     relations = DBnormalizer.removeRedundantSchemas(relations[:])
     for i in range(len(relations)):
         try:
             primarykey = set(str(
                 form['pk' + str(i)].value)) | set(EMPTY_SET)
         except KeyError:
             primarykey = set(EMPTY_SET)
         primarykeys.append(primarykey)
     if inputValidation.validatePrimaryKeys(relations, currentfds,
                                            primarykeys):
         alert = views.getSuccessMessageBox("Richtig!")
         keysAndFDs = DBnormalizer.getKeysAndFDsMVDsOfRelations(
             relations, currentfds)
         numberOfTries = numberOfTries - 1
         quizform = quizForms.formResultSyntheseAlgorithm(
             numberOfTries, numberOfSteps, relationString, fdsString,
             currentfds, relations, keysAndFDs, primarykeys)
     else:
         alert = views.getErrorMessageBox("Leider falsch!")
         quizform = quizForms.choosePrimaryKeys(numberOfTries,
                                                numberOfSteps,
                                                relationString, fdsString,
                                                currentfds, relations)
     inputpanel = views.inputToString(relation, currentfds, mvds,
                                      additionalFds, additionalMvds,
                                      "default", candidatekeys)
 if (step == '9'):
     additionalFds = DBnormalizer.getAdditionalFDs(fds)
Example #4
0
		#validate relation primary keys
		primarykeys = []
		relations = []
		currentrelationsStrings = str(form['currentrelations'].value).split(",")
		for r in currentrelationsStrings:
			relations.append(views.stringToRelation(r))
		relations = DBnormalizer.removeRedundantSchemas(relations[:])
		for i in range(len(relations)):
			try:
				primarykey = set(str(form['pk'+str(i)].value))|set(EMPTY_SET)
			except KeyError:
				primarykey = set(EMPTY_SET)
			primarykeys.append(primarykey)
		if inputValidation.validatePrimaryKeys(relations, currentfds, primarykeys):
			alert =  views.getSuccessMessageBox("Richtig!")
			keysAndFDs = DBnormalizer.getKeysAndFDsMVDsOfRelations(relations, currentfds)
			numberOfTries = numberOfTries - 1
			quizform = quizForms.formResultSyntheseAlgorithm(numberOfTries, numberOfSteps, relationString, fdsString, currentfds, relations, keysAndFDs, primarykeys)
		else:
			alert =  views.getErrorMessageBox("Leider falsch!")
			quizform = quizForms.choosePrimaryKeys(numberOfTries, numberOfSteps, relationString, fdsString, currentfds, relations)
		inputpanel = views.inputToString(relation, currentfds, mvds, additionalFds, "default", candidatekeys)
	if (step=='9'):
		additionalFds = DBnormalizer.getAdditionalFDs(fds)
		fds.extend(additionalFds)
		try:
			targetnf = str(form['targetnf'].value).replace(" ", "").replace("\r", "").replace("\n", "")
		except KeyError:
			targetnf = "BCNF"
		try:
			splitrelationIndex = int(form['splitrelation'].value)