A method of accessing a network of relationship instances and data field values of a group of entity instances in a combined entity relationship- and relational-model database management system, the method comprising the steps of: receiving a query text that natively references relationship types including the network of relationship types and data fields to be accessed; parsing the query text into a parse tree; the method being characterized in that it further comprises the steps of: converting the parse tree to a query graph, the query graph having nodes and relationship types associating two of the nodes, wherein each of the nodes has: one of said data fields to be accessed; an outgoing relationship type of said network of relationship types, defining the relationship type from the node to any of the nodes; or an incoming relationship type of said network of relationship types, defining the relationship type from any of the nodes to the node; optimising the query graph by consolidating the nodes in the query graph, the consolidated nodes being nodes with equivalent data fields to be accessed and outgoing relationship types, or equivalent incoming relationship types; analysing the nodes in the optimised query graph; codifying the incoming and outgoing relationship types, a source node, and a target node to be accessed for each node of the optimised query graph into a first table of state transition rules; codifying the data fields to be accessed for each node into a second table of field rules; preparing a structured query language query that includes the first and second tables; identifying entity instances to be accessed by the prepared SQL query by applying a state-machine technique to iteratively follow relationship instances according to the first table, wherein entity instances identified in each iteration are simultaneously processed in the subsequent iteration; and loading data fields of the identified entity instances according to the second table. receiving a query text that natively references relationship types including the network of relationship types and data fields to be accessed; parsing the query text into a parse tree; the method being characterized in that it further comprises the steps of: converting the parse tree to a query graph, the query graph having nodes and relationship types associating two of the nodes, wherein each of the nodes has: one of said data fields to be accessed; an outgoing relationship type of said network of relationship types, defining the relationship type from the node to any of the nodes; or an incoming relationship type of said network of relationship types, defining the relationship type from any of the nodes to the node; one of said data fields to be accessed; an outgoing relationship type of said network of relationship types, defining the relationship type from the node to any of the nodes; or an incoming relationship type of said network of relationship types, defining the relationship type from any of the nodes to the node; optimising the query graph by consolidating the nodes in the query graph, the consolidated nodes being nodes with equivalent data fields to be accessed and outgoing relationship types, or equivalent incoming relationship types; analysing the nodes in the optimised query graph; codifying the incoming and outgoing relationship types, a source node, and a target node to be accessed for each node of the optimised query graph into a first table of state transition rules; codifying the data fields to be accessed for each node into a second table of field rules; preparing a structured query language query that includes the first and second tables; identifying entity instances to be accessed by the prepared SQL query by applying a state-machine technique to iteratively follow relationship instances according to the first table, wherein entity instances identified in each iteration are simultaneously processed in the subsequent iteration; and loading data fields of the identified entity instances according to the second table.