Example #1
0
def validateDecompositionSplit(fds, mvds, splitrelation, newfirstrelation, newsecondrelation, targetnf):
	fdsInR = DBnormalizer.fdsInRelation(fds, splitrelation)
	mvdsInR = DBnormalizer.mvdsInRelation(mvds, splitrelation)
	normalforms = DBnormalizer.getNormalForms(splitrelation, fdsInR, mvdsInR)
	if targetnf == "BCNF":
		i=3
	else:
		i=4
	if not normalforms[i]:
		#splitrelation not in BCNF/4NF, user is correct so far
		return validateDecompositionSplitNewRelations(fdsInR, mvdsInR, splitrelation, newfirstrelation, newsecondrelation, targetnf)
	else:
		#splitrelation already in BCNF/4NF, user is wrong, relation must not be splitted
		return False
Example #2
0
def validateDecompositionSplit(fds, mvds, splitrelation, newfirstrelation, newsecondrelation, targetnf):
	fdsInR = DBnormalizer.fdsInRelation(fds, splitrelation)
	mvdsInR = DBnormalizer.mvdsInRelation(mvds, splitrelation)
	normalforms = DBnormalizer.getNormalForms(splitrelation, fdsInR, mvdsInR)
	if targetnf == "BCNF":
		i=3
	else:
		i=4
	if not normalforms[i]:
		#splitrelation not in BCNF/4NF, user is correct so far
		return validateDecompositionSplitNewRelations(fdsInR, mvdsInR, splitrelation, newfirstrelation, newsecondrelation, targetnf)
	else:
		#splitrelation already in BCNF/4NF, user is wrong, relation must not be splitted
		return False
Example #3
0
             currentfds)
         inputpanel = views.inputToString(relation, currentfds, mvds,
                                          additionalFds, additionalMvds,
                                          "default", candidatekeys)
 if (step == '5'):
     currentfds, currentmvds = DBnormalizer.parseInputFDsMVDs(
         str(form['currentfds'].value))
     relations = DBnormalizer.generateNewRelations(currentfds)
     numberOfSteps = numberOfSteps + 1
     quizform = quizForms.addKeyRelation(numberOfTries, numberOfSteps,
                                         relationString, fdsString,
                                         currentfds, relations)
     inputpanel = views.inputToString(relation, currentfds, mvds,
                                      additionalFds, additionalMvds,
                                      "default", candidatekeys)
     if DBnormalizer.getNormalForms(relation, fds, mvds)[2]:
         info = views.getInfoMessageBox(
             "Die Relation ist zwar schon in 3NF, führe den Algorithmus zur Übung trotzdem aus..."
         )
 if (step == '6'):
     currentfds, currentmvds = DBnormalizer.parseInputFDsMVDs(
         str(form['currentfds'].value))
     #validate addition of relation with key
     try:
         addkeyrelation = form.getvalue('addkeyrelation')
         keyrelation = str(form['newrelation'].value).replace(" ", "")
     except KeyError:
         keyrelation = ""
     relations = DBnormalizer.generateNewRelations(currentfds)
     newrelations = inputValidation.validateAddKeyRelation(
         relation, fds, relations, keyrelation)
Example #4
0
			alert =  views.getSuccessMessageBox("Richtig!")
			relations = DBnormalizer.generateNewRelations(canonicalcover)
			numberOfTries = numberOfTries - 1
			quizform = quizForms.formRelationSchemas(numberOfTries, numberOfSteps, relationString, fdsString, canonicalcover, relations)
			inputpanel = views.inputToString(relation, canonicalcover,mvds, additionalFds, "default", candidatekeys)
		else:
			alert =  views.getErrorMessageBox("Leider falsch!")
			quizform = quizForms.canonicalCoverCollapse(numberOfTries, numberOfSteps, relationString, fdsString, currentfds)
			inputpanel = views.inputToString(relation, currentfds,mvds, additionalFds, "default", candidatekeys)
	if (step=='5'):
		currentfds, currentmvds = DBnormalizer.parseInputFDsMVDs(str(form['currentfds'].value))
		relations = DBnormalizer.generateNewRelations(currentfds)
		numberOfSteps = numberOfSteps + 1
		quizform = quizForms.addKeyRelation(numberOfTries, numberOfSteps, relationString, fdsString, currentfds, relations)
		inputpanel = views.inputToString(relation, currentfds,mvds, additionalFds, "default", candidatekeys)
		if DBnormalizer.getNormalForms(relation, fds, mvds)[2]:
			info = views.getInfoMessageBox("Die Relation ist zwar schon in 3NF, führe den Algorithmus zur Übung trotzdem aus...")
	if (step=='6'):
		currentfds, currentmvds = DBnormalizer.parseInputFDsMVDs(str(form['currentfds'].value))
		#validate addition of relation with key
		try:
			addkeyrelation = form.getvalue('addkeyrelation')
			keyrelation = str(form['newrelation'].value).replace(" ", "")
		except KeyError:
			keyrelation = ""
		relations = DBnormalizer.generateNewRelations(currentfds)
		newrelations = inputValidation.validateAddKeyRelation(relation, fds, relations, keyrelation)
		if newrelations:
			alert =  views.getSuccessMessageBox("Richtig!")
			numberOfSteps = numberOfSteps + 1
			quizform = quizForms.removeRedundantRelations(numberOfTries, numberOfSteps, relationString, fdsString, currentfds, newrelations, keyrelation)