1. A database management system, comprising: a processor; a first data storage structure configured to store one or more datasets for each of a plurality of devices, each dataset comprising unordered timestamped data elements that indicate statuses of a particular device related condition at different points in time; and a second data storage structure configured to store and map between: device identifiers that identify the devices, condition identifiers that identify the device related conditions, first timestamps that indicate a change in a device related condition from a first status to a second status, and second timestamps that indicate a change in the device related condition from the second status back to the first status; wherein, in the second data storage structure a device identifier, a condition identifier, a first timestamp that indicates a change in the device related condition from the first status to the second status, and a second timestamp that indicates a change in the device related condition from the second status back to the first status, are each stored together in a same row or a same column of a table; wherein the database management system is operable to update the second data storage structure whenever a new data element of one of the datasets indicating a status different from the status indicated by a temporally preceding data element of said one of the datasets is stored in the first data storage structure; and wherein the processor is configured to, in response to receiving a request for data in respect of a specified time period and at least one device related condition of at least one device, use said same row or said same column in the second data storage structure to identify when one or more status changes occurred within the specified time period for said at least one device related condition.