As much as I like some of the tools mentioned (I upvoted yEdit & highly recommend it), as programmer I sometimes eschew drag & drop, GUI based, tools in favour of those which take their input from a text file. That makes it easy for me to develop programs to generate the input text file from my own data.
You may not want to do that, but it is still worthwhile looking at GraphViz.
Here is a very simple example taken from the examples page of the site:
Input:
graph {
a -- b;
b -- c;
a -- c;
d -- c;
e -- c;
e -- a;
}
Output:
Obviously, it can produce much more complex diagrams that that, but that shows the principle - a simple text language to describe the relationship between nodes.
GraphViz has been around for a long time, is well supported, has an active forum and is widely used in academia and in some popular tools like DoxyGen.
Of particular interest to you the GitHub page How to create a network diagram with Graphviz (which uses images from Cisco) and IBM's Using Graphviz to generate automated system diagrams.
[Update] Since you haven't found an answer yet, take a look at Graphviz's "node types" and learn about custom shapes (this page includes, for instance, a database shape).
See also A database symbol for GraphViz, which adds .
Using Graphviz to generate automated system diagrams might be interesting.
Something I had not thought of before (and plan to make lots of use of) is that you can generate Graphviz diagrams form a (MySql, etc) database using PHP (also JavaScript).
Perhaps that will help you.