// Entity-Relationship model of a domain name registry. // In Graphviz' "dot" format graph registry { label = "Entity-Relationship model of the registry"; overlap = scale; // Entities node [shape=box, fontsize=20]; Domains; Hosts; Contacts; Registrars; Authentication; Forbidden; // Attributes node [shape=ellipse, fontsize=10]; Label; Status; Handle; Address; IPaddress; {node [label="Name"] NameHost; NameRegistrar;} // Attributes of entities edge [len=1.0]; Status -- Domains; Label -- Domains; Contacts -- Handle; Contacts -- Address; Hosts -- IPaddress; Hosts -- NameHost; Registrars -- NameRegistrar; // Relationships node [shape=diamond, fontsize=14]; "D-C" [label="Tech, Admin\n or Holder"]; "H-D" [label="Nameservers"]; "H-P" [label="Parent"]; "D-R"; "R-C"; "A-C"; "C-C" [label=Maintains]; "D-D" [label="Parent"]; // Links edge [len=1.3]; Domains -- "D-D" [label="1"]; Domains -- "D-D" [label="n"]; Domains -- "D-C" [label="n"]; Contacts -- "D-C" [label="n"]; Registrars -- "R-C" [label="n"]; Contacts -- "R-C" [label="n"]; Domains -- "H-D" [label="n"]; Hosts -- "H-D" [label="n"]; Domains -- "H-P" [label="n"]; Hosts -- "H-P" [label="1"]; Domains -- "D-R" [label="1"]; Registrars -- "D-R" [label="n"]; Authentication -- "A-C" [label="n"]; Contacts -- "A-C" [label="1"]; Contacts -- "C-C" [label="n"]; Contacts -- "C-C" [label="n"]; }