1. A database management system comprising: a network interface, for receiving database queries from two or more client application processes as a network database service, the client application processes originating from two different users, the system providing a least one connection into the system for each such client application process; a group of two or more operational nodes for executing the queries as database operations, each operational node implemented as a logical collection of software components that execute on one or more physical machines; where the number of physical machines is not necessarily the same as the number of operational nodes; with the operational nodes assigned as controller-nodes, compute-nodes or storage-nodes, and groups of controller-nodes forming controller nodegroups, and groups of compute-nodes forming compute nodegroups, and groups of storage nodes forming storage nodegroups; the number of operational nodes, and their available assignment as compute-nodes or storage-nodes varying during execution of the queries; each client connection being assigned to an associated compute nodegroup; the queries also specifying one or more tables for an associated database operation, with each such table being assigned to a respective storage nodegroup; the operational nodes further: operating in parallel; with the number of operational nodes executing a given query or queries changing during a given time interval by at least one of: (a) changing the compute-nodegroup associated with a connection, or (b) adding or removing nodes from the compute nodegroup associated with a connection; and distributing data from the tables among the nodes in the storage nodegroup to which the table is assigned based on a Distribution Method which may be either data dependent or data independent; and at least one of the controller nodes further: executing a Dynamic Query Planner (DQP) process that transforms queries received from the client into a query plan that includes an ordered series of steps that are executed in parallel on multiple operational nodes where possible, the query plan further stipulating, for each step, which compute node it must be performed on, which storage nodes it must access, and other steps that that this step depends on.