# US 12,182,804 B2 · Key-based handling of product purchases

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,804 B2
- Document ID: US12182804B2
- Status: Granted
- Kind: B2
- Application number: 17/510,876
- Filed: 2021-10-26
- Published: 2023-04-27
- Granted: 2024-12-31
- Earliest claimed: 2021-10-26
- Assignees: Amadeus S.A.S.
- Applicants: Amadeus S.A.S.
- Inventors: Yoann Poulain; Charles Michel Pierre Guillaume Cultien; Grégory Valigiani; Luigi Di Noia; Philippe Sarcey
- Web page: https://patentgrep.com/patent/US12182804B2

## CPC

- G06Q 20/3829: {involving key management}
- G06Q 30/0601: Electronic shopping [e-shopping]
- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 16/2455: Query execution
- G06F 16/284: {Relational databases}
- G06Q 30/0611: {Request for offers or quotes}
- G06Q 2220/00: Business processing using cryptography
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A database system, method, and computer program product of handling purchases of products is presented, in which the database system comprises a relational database storing relational data for a plurality of products, a key-value database storing a plurality of first files and a plurality of second files, an interface module connecting the relational database with the key-value database, and a shopping engine to communicate with the key-value database. The interface module converts relational data stored in the relational database into first files and second files. The shopping engine queries the key-value database to retrieve available products in response to an availability request.

## Claims

### Claim 1

A database system for handling purchases of products, the database system comprising:
a relational database storing relational data for a plurality of products;
a key-value database storing a plurality of first files and a plurality of second files, wherein the first and second files represent the relational data, wherein the first files are accessible by using respective first keys associated with the products and comprise respective at least one second keys, wherein the second files are accessible by using the respective at least one second keys;
an interface module connecting the relational database with the key-value database;
a shopping engine to communicate with the key-value database;
wherein the interface module is configured to:
convert, per product, at least a part of the relational data stored in the relational database into (i) one of the first files containing a plurality of the second keys and (ii) a plurality of the second files corresponding to the second keys contained in the first file; and
store the one first file and the plurality of the second files in the key-value database;
wherein the shopping engine is configured to:
receive an availability request for a product from a client device;
query the key-value database by using a first key associated with the product to retrieve a first file associated with the product;
process said first file to extract the plurality of second keys and metadata associated with the plurality of second keys;
compare, per second key among the plurality of second keys contained in the first file, the metadata with the availability request to determine a subset of the plurality of second keys contained in the first file for which the metadata fulfills the availability request;
query the key-value database by using a list of the subset of the second keys fulfilling the availability request to receive corresponding second files;
extract data from said second files; and
send the data extracted from said second files to the client device.

### Claim 2 (depends on 1)

The database system according to claim 1, wherein the interface module is further configured to flatten a tree-like structure of the relational database while converting the relational data into the first file and the plurality of second files.

### Claim 3 (depends on 1)

The database system according to claim 1, wherein the interface module is further configured to apply a serialization protocol on the relational data to store serialized data in the first files and the second files while converting the relational data into the first file and the plurality of second files.

### Claim 4 (depends on 3)

The database system according to claim 3, wherein the interface module is further configured to apply a compression protocol on the serialized data while converting the relational data into the first file and the second files.

### Claim 5 (depends on 1)

The database system according to claim 1, wherein the shopping engine and/or the interface module are configured to store a mapping of the relational data to the corresponding first file and the plurality of second files.

### Claim 6 (depends on 1)

The database system according to claim 1, wherein the interface module is configured to convert the relational data to the first file and the plurality of second files periodically at pre-determined time intervals.

### Claim 7 (depends on 1)

The database system according to claim 1, wherein the interface module is configured to convert the relational data to the first file and the plurality of second files in response to changes of the relational data.

### Claim 8 (depends on 1)

The database system according to claim 1, wherein the first files and/or the second files comprise at least one third key, wherein the key-value database further stores third files, wherein the interface module is further configured to convert a part of the relational data to at least one third file, wherein the third files are accessible by using the at least one third key.

### Claim 9 (depends on 1)

The database system according to claim 1, wherein the purchases of products are bookings of travel-related products.

### Claim 10 (depends on 9)

The database system according to claim 9, wherein the interface module comprises a period merger module, wherein the period merger module is configured to:
based on a time dependency of a rate of a travel-related product, determine validity intervals of at least one price of the travel-related product;
identify within the validity intervals a periodicity and a structure of the at least one price;
create an identifier for the structure; and
store the validity intervals with respective identifiers separately from the structure.

### Claim 11

A method of handling purchases of products in a database system, wherein the database system comprises:
a relational database storing relational data for a plurality of products;
a key-value database storing a plurality of first files and a plurality of second files, wherein the first and second files represent the relational data, wherein the first files are accessible by using respective first keys associated with the products and comprise respective at least one second keys, wherein the second files are accessible by using the respective at least one second keys;
an interface module connecting the relational database with the key-value database;
a shopping engine to communicate with the key-value database;
wherein the method comprises:
converting, per product, at least a part of the relational data stored in the relational database into (i) one of the first files containing a plurality of the second keys and (ii) a plurality of the second files corresponding to the second keys contained in the first file;
storing the one first file and the plurality of the second files in the key-value database;
receiving an availability request for a product from a client device;
querying the key-value database by using a first key associated with the product to retrieve a first file associated with the product;
processing said first file to extract the plurality of the second keys and metadata associated with the plurality of second keys;
comparing, per second key, among the plurality of second keys contained in the first file, the metadata with the availability request to determine a subset of the plurality of second keys contained in the first file for which the metadata fulfills the availability request;
querying the key-value database by using a list of the subset of the said second keys fulfilling the availability request to receive corresponding second files;
extracting data from said second files; and
sending the data extracted from said second files to the client device.

### Claim 12 (depends on 11)

The method according to claim 11, wherein the method further comprises flattening a tree-like structure of the relational database while converting the relational data into the first file and the plurality of second files.

### Claim 13 (depends on 11)

The method according to claim 11, wherein the method further comprises applying a serialization protocol on the relational data to store serialized data in the first files and the second files while converting the relational data into the first file and the plurality of second files.

### Claim 14 (depends on 13)

The method according to claim 13, wherein the method further comprises applying a compression protocol on the serialized data while converting the relational data into the first file and the second files.

### Claim 15 (depends on 11)

The method according to claim 11, wherein the method further comprises storing a mapping of the relational data to the corresponding first file and the plurality of second files.

### Claim 16 (depends on 11)

The method according to claim 11, wherein the method further comprises converting the relational data to the first file and the plurality of second files periodically at pre-determined time intervals.

### Claim 17 (depends on 11)

The method according to claim 11, wherein the method further comprises converting the relational data to the first file and the plurality of second files in response to changes of the relational data.

### Claim 18 (depends on 11)

The method according to claim 11, wherein the first files and/or the second files comprise at least one third key, wherein the key-value database further stores third files, wherein the method further comprises converting a part of the relational data to at least one third file, wherein the third files are accessible by using the at least one third key.

### Claim 19 (depends on 11)

The method according to claim 11, wherein the purchases of products are bookings of travel-related products.

### Claim 20 (depends on 19)

The method according to claim 19, wherein the method further comprises:
based on a time dependency of a rate of a travel-related product, determining validity intervals of at least one price of the travel-related product;
identifying within the validity intervals a periodicity and a structure of the at least one price;
creating an identifier for the structure; and
storing the validity intervals with respective identifiers separately from the structure.

### Claim 21

A non-transitory machine-readable medium storing program code, wherein the program code is arranged to carry out a method for handling purchases of products, when executed on a computer system, the method including:
accessing a relational database storing relational data for a plurality of products;
accessing a key-value database storing a plurality of first files and a plurality of second files, wherein the first and second files represent the relational data, wherein the first files are accessible by using respective first keys associated with the products and comprise respective at least one second keys, wherein the second files are accessible by using the respective at least one second keys;
converting, per product, at least a part of the relational data stored in the relational database into (i) one of the first files containing a plurality of the second keys and (ii) a plurality of the second files corresponding to the second keys contained in the first file;
storing the one first file and the plurality of the second files in the key-value database;
receiving an availability request for a product from a client device;
querying the key-value database by using a first key associated with the product to retrieve a first file associated with the product;
processing said first file to extract the plurality of the second keys and metadata associated with the plurality of second keys;
comparing, per second key, among the plurality of second keys contained in the first file, the metadata with the availability request to determine a subset of the plurality of second keys contained in the first file for which the metadata fulfills the availability request;
querying the key-value database by using a list of the subset of the said second keys fulfilling the availability request to receive corresponding second files;
extracting data from said second files; and
sending the data extracted from said second files to the client device.

### Claim 22 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the method further comprises flattening a tree-like structure of the relational database while converting the relational data into the first file and the plurality of second files.

### Claim 23 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the method further comprises applying a serialization protocol on the relational data to store serialized data in the first files and the second files while converting the relational data into the first file and the plurality of second files.

### Claim 24 (depends on 23)

The non-transitory machine-readable medium according to claim 23, wherein the method further comprises applying a compression protocol on the serialized data while converting the relational data into the first file and the second files.

### Claim 25 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the method further comprises storing a mapping of the relational data to the corresponding first file and the plurality of second files.

### Claim 26 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the method further comprises converting the relational data to the first file and the plurality of second files periodically at pre-determined time intervals.

### Claim 27 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the method further comprises converting the relational data to the first file and the plurality of second files in response to changes of the relational data.

### Claim 28 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the first files and/or the second files comprise at least one third key, wherein the key-value database further stores third files, wherein the method further comprises converting a part of the relational data to at least one third file, wherein the third files are accessible by using the at least one third key.

### Claim 29 (depends on 21)

The non-transitory machine-readable medium according to claim 21, wherein the purchases of products are bookings of travel-related products.

### Claim 30 (depends on 29)

The non-transitory machine-readable medium according to claim 29, wherein the method further comprises:
based on a time dependency of a rate of a travel-related product, determining validity intervals of at least one price of the travel-related product;
identifying within the validity intervals a periodicity and a structure of the at least one price;
creating an identifier for the structure; and
storing the validity intervals with respective identifiers separately from the structure.
