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
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