digraph {
 node [shape=record];
 Root [
  label = "{Database::Async|<pools>+ pools\l}"
 ];
 Pool [
  label = "{::Connection::Pool|+ connections\l}"
 ];
 Root:pools -> Pool;
 Connection [
  label = "{::Connection|<transactions>+ transactions|<statements>+ statements\l}"
 ];
 Pool:connections -> Connection;
 Transaction [
  label = "{::Transaction|<savepoints>+ savepoints|<statements>+ statements\l}"
 ];
 Connection:transactions -> Transaction;
 Transaction_Savepoint [
  label = "{::Transaction::Savepoint|<statements>+ statements\l}"
 ];
 Transaction:savepoints -> Transaction_Savepoint;
 Statement [
  label = "{::Statement|<fields>+ fields\l}"
 ];
 Connection:statements -> Statement;
 Transaction:statements -> Statement;
 Transaction_Savepoint:statements -> Statement;
 Field [
  label = "{::Field}"
 ];
 Statement:fields -> Field;
 Row [
  label = "{::Row|<fields>+ fields\l}"
 ];
 Row:fields -> Field;
}