EP2731044B1

Client computer for querying a database stored on a server via a network

Abstract

This record has no abstract on file.

EP2731044B1, drawing sheet 1
Sheet 1 of 12

Term

7 yearsleft in the term

Expires 27 September 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

18 claims: 9 independent, 9 dependent

  1. 1
    A client computer (10) for querying a database (30) stored on a server (22) via a network, the server (22) being coupled to the client computer (10) via the network, wherein the database (30) comprises a first relation (32), wherein the first relation (32) comprises first data items, wherein the first data items are encrypted with a first cryptographic key (18) in the first relation (32), wherein the first data items form a partially ordered set in the first relation (32), the partial order being formed with respect to the first data items in non-encrypted form, wherein the client computer (10) has installed thereon an application program, the application program being operational to perform the steps of receiving a search request specifying a search interval and determining the first data item forming an interval boundary of the search interval by a) requesting a current encrypted first data item from the database (30), b) in response to said requesting of the current encrypted first data item, receiving from the database (30) the current encrypted first data item, c) decrypting the current encrypted first data item for obtaining a current decrypted first data item, d) determining if the current decrypted first data item lies within the search interval, e) in case the current decrypted first data item lies outside the search interval, providing a request for a new encrypted first data item, wherein the request for the new encrypted first data item comprises information that the new encrypted first data item is to be retrieved from a position in the partial order preceding or succeeding the position of the current encrypted first data item, depending if the interval boundary is preceding or succeeding the current decrypted first data item with respect to the partial order, and in response to said provision of the request for the new encrypted first data item, receiving the new encrypted first data item, f) repeating steps c) - e) with the new encrypted first data item being the current encrypted first data item in step c), until the current decrypted first data item lies within the search interval, g) in case the current decrypted first data item lies within the search interval, providing a request for a new encrypted first data item, wherein the request for the new encrypted first data item comprises information that the new encrypted first data item is to be retrieved from a position in the partial order preceding or succeeding the position of the current encrypted first data item, depending if the interval boundary is preceding or succeeding the current decrypted first data item with respect to the partial order, and in response to said provision of the request for the new encrypted first data item, receiving the new encrypted first data item, h) decrypting the new encrypted first data item for obtaining a new decrypted first data item, i) determining if the new decrypted first data item lies outside the search interval, wherein in case the new decrypted first data item lies outside the search interval, selecting the current decrypted first data item as the first data item forming the interval boundary of the search interval, j) in case the new decrypted first data item lies within the search interval, repeating steps g) - j) with the new encrypted first data item being the current encrypted first data item in step g);wherein the application program is further operational for - performing steps a)-j) for the interval boundary of the search interval being one of the bound sides of the search interval, wherein the first data item determined in step i) forms the first interval boundary and - selecting the current encrypted first data item that was determined to lie within the interval boundary in step f) as the current encrypted first data item and performing steps g)-j) for the interval boundary of the search interval being the other bound side of the search interval, wherein the first data item determined in step i) forms the second interval boundary;wherein the application program is further operational for determining the first data items lying in the search interval by providing the database (30) instructions to recursively traverse the first relation (32) in order with respect to the partial order starting from the first data item forming the interval boundary.
  2. 3
    The client computer (10) of any of the previous claims, wherein the application program is further operational for - receiving the search request from a requestor, - providing information content associated with the first data items lying in the search interval to the requestor, wherein - the information content is given by the decrypted first data items, or - the database (30) further comprises a second relation (20), wherein the second relation (20) comprises second data items, wherein the second data items are encrypted with a second cryptographic key, wherein a referential connection exists assigning each encrypted first data item to at least one of the second data items stored encrypted in the second relation (20), wherein the information content is comprised in the second data items, wherein the application program is operable to request from the database (30) the information content via the referential connections of the first data items lying in the search interval, wherein the application program is further operational for decrypting the received encrypted second data items.
  3. 4
    The client computer (10) of any of the previous claims, wherein the encrypted first data items are annotated with elements of a linear order in the database (30), the linear order corresponding the order in which the encrypted first data items are stored in the first relation (32) with respect to the partial ordered set, wherein the application program is further operational for determining the first data items lying in the search interval by providing the database (30) instructions to retrieve the first element of linear order annotated to the encrypted first data item forming the first interval boundary and to retrieve the second element of linear order annotated to the encrypted first data item forming the second interval boundary, wherein the application program is further operational for - providing the database (30) instructions to determine all encrypted first data items having annotated the elements of linear order in between the first element and the second element.
  4. 5
    The client computer (10) of any of the previous claims, wherein the application program is further operable to provide the request for the encrypted first data item to the database (30), wherein the request for the encrypted first data item comprises information that the encrypted first data item is to be retrieved by the database (30), and in response to said provision of the request for the encrypted first data item, receiving the encrypted first data item from the database (30).
  5. 6
    The client computer (10) of any of the previous claims 1-5, wherein the application program is further operable to:- determine if a requested encrypted first data item is available in a memory (14;24) assigned to the client, - in case said requested encrypted first data item is available in the memory (14;24), direct the request to said encrypted first data item to the memory (14;24) and in response receiving said requested encrypted first data item from the memory (14;24), - in case said requested encrypted first data item is unavailable in the memory (14;24), direct the request to said encrypted first data item to the database (30), and in response receive a set of encrypted first data items from the database (30), said set of encrypted first data items comprising the requested encrypted first data item, wherein the encrypted first data items are ordered in the set of encrypted first data items according to the partial order, and store the set of encrypted first data items in the memory (14;24).
  6. 8
    A computer system comprising a client computer (10) according to any of the previous claims, and a database stored on a server (22), the server (22) being coupled to the client computer (10) via the network (48), wherein the database comprises a first relation, wherein the first relation (32;34;36) comprises first data items, wherein the first data items are encrypted with a first cryptographic key in the first relation, wherein the first data items form a partially ordered set in the first relation, the partial order being formed with respect to the first data items of said first relation in non-encrypted form.
  7. 11
    The computer system of claims 9 or 10, wherein the received key is erased from a memory (108) of the client computer if any one of the following events occurs:- the application program which has received the key is closed;- the user is logged out from the client computer by a client log-in component (148, 150) after a timeout condition has been fulfilled;- the user session with the application program is timed out or closed by the user;- switching off a power supply of the client computer, - exhausting the storage capacity of a battery that powers the client computer;- entry of a user command in response to which the key is erased.
  8. 13
    A method of querying by a client computer (10) a database (30) stored on a server (22), the server (22) being coupled to the client computer (10) via a network, wherein the database (30) comprises a first relation (32), wherein the first relation (32) comprises first data items, wherein the first data items are encrypted with a first cryptographic key (18) in the first relation (32), wherein the first data items form a partially ordered set in the first relation (32), the partial order being formed with respect to the first data items in non-encrypted form, wherein the client computer (10) has installed thereon an application program, the method comprising the steps of receiving a search request specifying a search interval and determining the first data item forming an interval boundary of the search interval by a) requesting a current encrypted first data item from the database (30), b) in response to said requesting of the current encrypted first data item, receiving from the database (30) the current encrypted first data item, c) decrypting the current encrypted first data item for obtaining a current decrypted first data item, d) determining if the current decrypted first data item lies within the search interval, e) in case the current decrypted first data item lies outside the search interval, providing a request for a new encrypted first data item, wherein the request for the new encrypted first data item comprises information that the new encrypted first data item is to be retrieved from a position in the partial order preceding or succeeding the position of the current encrypted first data item, depending if the interval boundary is preceding or succeeding the current decrypted first data item with respect to the partial order, and in response to said provision of the request for the new encrypted first data item, receiving the new encrypted first data item, f) repeating steps c) - e) with the new encrypted first data item being the current encrypted first data item in step c), until the current decrypted first data item lies within the search interval, g) providing a request for a new encrypted first data item, wherein the request for the new encrypted first data item comprises information that the new encrypted first data item is to be retrieved from a position in the partial order preceding or succeeding the position of the current encrypted first data item, depending if the interval boundary is preceding or succeeding the current decrypted first data item with respect to the partial order, and in response to said provision of the request for the new encrypted first data item, receiving the new encrypted first data item, h) decrypting the new encrypted first data item for obtaining a new decrypted first data item, i) determining if the new decrypted first data item lies outside the search interval, wherein in case the new decrypted first data item lies outside the search interval, selecting the current decrypted first data item as the first data item forming the interval boundary of the search interval, j) in case the new decrypted first data item lies within the search interval, repeating steps g) - i) with the new encrypted first data item being the current encrypted first data item in step g);performing steps a)-j) for the interval boundary of the search interval being one of the bound sides of the search interval, wherein the first data item determined in step i) forms the first interval boundary and selecting the current encrypted first data item that was determined to lie within the interval boundary in step f) as the current encrypted first data item and performing steps g)-j) for the interval boundary of the search interval being the other bound side of the search interval, wherein the first data item determined in step i) forms the second interval boundary;determining the first data items lying in the search interval by providing the database (30) instructions to recursively traverse the first relation (32) in order with respect to the partial order starting from the first data item forming the interval boundary.
  9. 18
    A computer program product comprising computer executable instructions to perform the method steps as claimed in any of the previous method claims.