Example #1
0
def relationToString(relation, i, candidateKeys = None, fds = [], mvds = [], additionalFds = [], primaryKey=None):
	if candidateKeys is not None:
		if mvds:
			show = "FDs/MVDs"
		else:
			show = "FDs"
		if primaryKey is None:
			primaryKey = DBnormalizer.getFirstKey(candidateKeys)
		tooltiptext = "<div class='panel panel-primary'><div class='panel-heading'><h5 class='panel-title'>"+show+"</h5></div><div class='panel-body'>"
		if not fds and not mvds:
			tooltiptext = tooltiptext + "In dieser Relation gelten keine nicht-trivialen Abhängigkeiten."
		else:
			tooltiptext = tooltiptext + fdsToHtmlString(fds, additionalFds)+mvdsToHtmlString(mvds)
		tooltiptext = tooltiptext + "</div></div><div class='panel panel-primary'><div class='panel-heading'><h3 class='panel-title'>Kandidatenschlüssel</h3></div><div class='panel-body'>"+ keysToString(candidateKeys)+"</div></div>"
		if "*" in tooltiptext:
			tooltiptext = tooltiptext + "<h6><small>* Unter anderem diese FD kann mithilfe der Armstrong-Axiome zusätzlich hergeleitet werden</small></h6>"
        else:
		#Do not show tooltip, only blank relation
		primaryKey = None
		tooltiptext = ""



	relationString="R<sub>"+str(i)+"</sub>:={"
	relationString=relationString+setOfAttributesToString(relation, primaryKey)
	relationString = relationString + "}"

	relationString =  addPopoverText(relationString, relationString, tooltiptext)
	
	return relationString
Example #2
0
def relationToString(relation,
                     i,
                     candidateKeys=None,
                     fds=[],
                     mvds=[],
                     additionalFds=[],
                     additionalMvds=[],
                     primaryKey=None):
    if candidateKeys is not None:
        if mvds:
            show = "FDs/MVDs"
        else:
            show = "FDs"
        if primaryKey is None:
            primaryKey = DBnormalizer.getFirstKey(candidateKeys)
        tooltiptext = "<div class='panel panel-primary'><div class='panel-heading'><h5 class='panel-title'>" + show + "</h5></div><div class='panel-body'>"
        if not fds and not mvds:
            tooltiptext = tooltiptext + "In dieser Relation gelten keine nicht-trivialen Abhängigkeiten."
        else:
            tooltiptext = tooltiptext + fdsToHtmlString(
                fds, additionalFds) + mvdsToHtmlString(mvds, additionalMvds)
        tooltiptext = tooltiptext + "</div></div><div class='panel panel-primary'><div class='panel-heading'><h3 class='panel-title'>Kandidatenschlüssel</h3></div><div class='panel-body'>" + keysToString(
            candidateKeys) + "</div></div>"
        if additionalFds:
            tooltiptext = tooltiptext + "<h6><small>* Unter anderem diese FD kann mithilfe der Armstrong-Axiome zusätzlich hergeleitet werden</small></h6>"
        if additionalMvds:
            tooltiptext = tooltiptext + "<h6><small>** Unter anderem diese MVD kann mithilfe der Komplementregel zusätzlich hergeleitet werden</small></h6>"
    else:
        #Do not show tooltip, only blank relation
        primaryKey = None
        tooltiptext = ""

    relationString = "R<sub>" + str(i).strip() + "</sub>:={"
    relationString = relationString + setOfAttributesToString(
        relation, primaryKey)
    relationString = relationString + "}"

    relationString = addPopoverText(relationString, relationString,
                                    tooltiptext)

    return relationString