[go: up one dir, main page]

EP1831804A1 - Relational compressed data bank images (for accelerated interrogation of data banks) - Google Patents

Relational compressed data bank images (for accelerated interrogation of data banks)

Info

Publication number
EP1831804A1
EP1831804A1 EP05850178A EP05850178A EP1831804A1 EP 1831804 A1 EP1831804 A1 EP 1831804A1 EP 05850178 A EP05850178 A EP 05850178A EP 05850178 A EP05850178 A EP 05850178A EP 1831804 A1 EP1831804 A1 EP 1831804A1
Authority
EP
European Patent Office
Prior art keywords
database
records
customer
database table
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP05850178A
Other languages
German (de)
French (fr)
Inventor
Michael Haft
Oliver Mihatsch
Reimar Hofmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panoratio Database Images GmbH
Original Assignee
Panoratio Database Images GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panoratio Database Images GmbH filed Critical Panoratio Database Images GmbH
Publication of EP1831804A1 publication Critical patent/EP1831804A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2423Interactive query statement specification based on a database schema

Definitions

  • Relational compressed database images (for accelerated query of databases)
  • the invention relates to a database query system and a method for computer-aided database query.
  • information about customers shopping in a hardware store is collected and the data collected, such as the age of the customer and the place of residence of the customers analyzed in order to adjust the offered assortment of the DIY store or to better estimate which advertising strategies are successful could be.
  • a hardware store might have a customer database table in which information about the clients of the hardware store is stored in the form of customer records.
  • a customer record contains, for example, the customer number of the customer, the gender of the customer and the year of birth of the customer.
  • the hardware store could also have a transaction database table in which
  • a transaction record could, for example, a transaction number, a specification of the product sold under the transaction, the statement of revenue in the transaction, indicating the date of the day on which the transaction was made, the customer number of the customer involved in the transaction and a specification of the transaction Payment method used by the customer (cash payment, card payment).
  • the sales manager can not answer this question by querying the first database table or the second database table.
  • the sales manager can not answer the question because the first database table contains no information about the products purchased by a customer.
  • the sales manager can not answer the question because the second database table contains no information about the age of the customers who made transactions.
  • Contain selection criteria that span multiple database tables Contain selection criteria that span multiple database tables. Queries that concern only a single database table can be handled by a so-called "fill table scan", ie the entire database table is read from the hard disk (or another memory) into the working memory once and each data record is processed individually. The runtime of such queries thus finds a natural upper bound, and linking multiple database tables means that this simple approach no longer works and potentially very long polling times can arise.
  • a possible way out which is partly done in the context of data warehousing, is to change the structuring of the information in different database tables so that all are needed for a query
  • the question could be answered by querying the first database table, if any
  • Customer record containing the information as to whether the customer who matches this customer record purchased bedding and balcony plants in January.
  • a customer record could have a field that contains a first value if the customer purchased bedding and balcony plants in January and includes a second value if the customer did not purchase bedding and balcony plants in January.
  • the structure of the database table must already be selected before the request.
  • the customer database table must be designed so that each customer record contains the information as to whether the corresponding customer purchased bedding and balcony plants in January. This is not possible without further ado, as it is typically not evident when designing the database table which queries are made to the database table in the future.
  • each client record could include information as to whether the customer purchased bedding and balcony plants in January, whether the customer bought bedding and balcony plants in February, and so on for all months, and if the customer bought screws in January Customer in February has bought screws and so on for all products and months.
  • the customer database table also grows significantly when a list of products purchased by each customer is included in each customer record. In order to be able to answer the above question, in particular in such a list, the month of sale would also have to be stored for each product purchased. Furthermore, if inquiries are to be expected concerning the payment method used by the customer when purchasing the product, the corresponding information must also be included in the customer database table. In accordance with the expected queries to the customer database table, a customer database table with an unacceptable size may also be required in this case if a so-called flat data structure is used for the customer database table. In particular, storing a list of products and additional information is problematic as the length of these Product list may vary greatly from customer to customer, but in database tables but usually a fixed number of fields is provided for all records.
  • An acceptable size of the customer database table can be achieved if information (from the transaction database table) is aggregated into the
  • Customer database table for example, if each customer receives information about whether he made any transaction in January, made any transaction in February, and so on. In this way, however, the answer to the above request is not possible because the information is not included with sufficient accuracy in the customer database table.
  • [2] discloses methods for learning dependency structures underlying a data set using Bayesian networks and Markov networks.
  • [4] discloses a method for arithmetic coding of data.
  • [6] discloses the generation of a statistical clustering model for a database by means of which requests to the
  • a method is described in which a first statistical image for a database is formed, which represents the statistical relationships of the data elements contained in the first database. Then, the first statistical image is stored in a server computer and from there via a
  • the received first statistical image is further processed by the client computer.
  • Reference [12] discloses a method for managing data by means of a multi-dimensional database.
  • a data aggregation server is set up to deliver requested aggregated data to client devices.
  • the invention is based on the problem of creating a possibility to determine results of queries, for the determination of which data from several database tables are required, more efficiently, less computationally intensive and less memory-intensive compared with the prior art.
  • a database query system is provided with a first database image of a first database table having a first plurality of data records and a second database image of a second database table having a second plurality of data records.
  • Each Record of the first plurality of records and each record of the second plurality of records is associated with a value of a database key.
  • the database retrieval system has an input device configured to receive an analysis request to the second database image, a selection device configured to select a part of the first plurality of data records according to a first selection, a determination device that is set up to determine a second selection of a part of the second plurality of data records, wherein according to the second selection such records are assigned to which values of the database key are assigned, which are each associated with at least one record selected according to the first selection and a processing device that is configured, the
  • the data records of the first database table and the data records of the second database table, which contain related information, are illustrated by means of a
  • Database key linked and stored in compressed form as a database images store the database key values for the records.
  • Concurrent information is that relating to the same person or thing, for example, the second database table contains records of information about customers of a hardware store, and the first database table contains information about transactions performed in the hardware store.
  • a record contains the second database table and a record of the first database table related information, if the record of the first database table contains information about a transaction that was performed by the customer, through which the record of the second database table contains information.
  • the database key that links the two records could, in this example, be a customer number of the customer contained in both records.
  • a database key may consist of a single data field of a database table (eg, a customer number uniquely identifies a customer in a customer table), or a combination of multiple data fields (eg, the combination of a store number and a customer number within the store ).
  • Database table are required, answered by in the first database image records are selected according to the required information, that is, records are selected for a particular condition is met. Subsequently, the corresponding data records of the second database image are selected, that is to say the data records in the second database image are selected which correspond to the selected data records of the first database image in accordance with the association by means of the database key. Based on the selected data records, the query can be answered because the required information from the first database image was used to generate the selection of the data records of the second database image.
  • An idea underlying the invention can be seen in the fact that for each database table involved, a database image is created which contains in compressed form certain information from the database table. This database image is typically much smaller than the original database table, and is more suitable for certain operations because of its structure.
  • the first database image and the second database image which are linked by means of the data key as explained, form a compressed relational structure.
  • Memory (main memory) of a computer can be stored. Along with the described methods of speeding up queries in relational structures, a method is described that enables efficient triggering of relational queries in a graphical user interface using accelerated query times.
  • the first database table and the second database table can be two database tables created from a database architectural perspective from two different perspectives. As in the example above, the first one contains
  • Database table for example, one record each for the customers of the DIY store, which contains information about the respective customer, and the second database table j e a record for the executed in the hardware store transactions containing information about the transaction.
  • the second database table contains records of information about clients of a hardware store, including the age of the respective customer, but not when the customer made a transaction in the hardware store
  • the first database table contains information about transactions made in the hardware store, including the date of each transaction, but not how old the customer is who made the transaction.
  • Database table that contains information about customers who made a transaction in May. Subsequently, the query can be answered on the basis of the selected data records of the second database table. In this way, it is possible to answer queries to the second database table, for the answers of which information from the first database table is required, without taking over the information in the second database table, for example in the form of a list or additional entries in the records of the second database table ,
  • the first database table and the second database table may be stored in a storage device of the database retrieval system.
  • they can be stored distributed, for example by means of a plurality of data server computers, which are coupled by means of a communication network.
  • the use of the invention is of particular advantage since, as explained above, when evaluating the second database table, it is not necessary to permanently access additional information on the first database table, in particular in the case of distributed database tables a considerable effort, in particular communication costs, would be required.
  • evaluations and / or selections may be made simultaneously in the first database table and the second database table.
  • a query is based on the data records corresponding to the selections.
  • all transactions or the corresponding transaction records) in which bedding and balcony plants were sold could be selected in the first database table.
  • all customers (or the corresponding customer data records) older than 59 years could be selected in the second database table.
  • a request to the first database table and / or to the second database table is then based on the transaction records corresponding to transactions where a customer older than 59 years has (at least) bought a bedding and balcony plant Customer records that correspond to customers over the age of 59 and have purchased at least one bed and balcony plant answered.
  • the database tables vividly export a list of database keys corresponding to the existing ("own") selection, importing the list of the respective other database table, which is combined with the "own" selection.
  • more than two database tables are linked in the manner described in an analogous manner. These can be done using one (for all database tables) common database key or by means of several pairs of shared database keys. For example, a customer table and a checkout table could be linked by means of a customer number and the check-in table with a transaction table by means of a check-in code number.
  • a common database key must exist for each link of two database tables, and all database tables must be linked directly (by means of a common database key) or indirectly (via the "detour" of another database table).
  • relational database is typically understood to mean a software system that manages one or more database tables in a database.
  • Each database table may contain many records (for example, one customer table one record per customer, one transaction table one record per transaction).
  • Each record in a database table contains values for the same fields (for example, customer number, age, gender).
  • the invention clearly relates to the combination of several such database tables.
  • the database tables can come from the same database, but also from different databases.
  • the first compressed database image and the second compressed database image are independently created database images.
  • the statistical model is a graphical probability model.
  • a Bayesian network is used as the probabilistic model.
  • the input device is further adapted to receive a selection instruction and the selection means is arranged to select the part of the first plurality of data records according to the selection instruction.
  • the database retrieval system further comprises a display device configured to display a screen display showing the display of possible values of at least one random variable for which values are included in the first plurality of data sets. and that the selection instruction is selecting the display of at least one possible value (s) of the random variable, and the first selection is selecting all the records of the first plurality of records for which the random variable is one of the selected at least one possible one Takes values.
  • the display device is further configured to display a further screen display having an indication of the result of the analysis request, and that the display device is further configured to switch between the screen display and the further screen display.
  • a user can thus use the screen display to select data records and then switch to the further screen display so that the analysis results corresponding to the selection are displayed.
  • the database query system has an access device which is set up to access the second database table and to determine data contained in the data sets of the second database table selected according to the second selection, and wherein the processing device is set up, determine the result of the analysis request using the data.
  • the second database image does not contain sufficient information to answer the analysis request, the underlying second database table is used. However, it is not necessary to access the entire second database table, but only to the records selected according to the second selection.
  • the second database image is used as a multidimensional index of the second database table. This will be explained in more detail below.
  • the first plurality of data sets are grouped into a first plurality of segments (clusters) and / or in the second database image the second plurality of data sets are grouped into a second plurality of segments ,
  • the first database image and / or the second database image are generated according to a statistical clustering model.
  • the value of the database key is a record of the first database image (that is, a record of the first plurality of records) of a number of the segment in which the record is contained and a number of the record according to a numbering of the records of the segment.
  • the value of the database key is a record of the second database image (that is, a record of the second plurality of records) of a number of the segment in which the record is contained and a number of the record according to a numbering of the records of the segment.
  • Database key used in the first database table or in the second database table (for example, a customer number) used to link the first database image and the second database image.
  • each record of the first plurality of data records the value of the database key is stored in the first database table and / or for each record of the second plurality of data records the value of the database key is stored in the second database table.
  • the "natural key” is used to link the first database image and the second database image.
  • the first database table or the second database table is used, for example in the context of the above-mentioned use as a multidimensional index, it is necessary to set the value of the "natural key” to the value of the database key stored in the first database table (for example Transaction number) or the second database table (for example, customer number) is used, which is made possible by the fact that for each record the value of the "natural key" is stored in the first database table or the second database table.
  • a method for generating a compressed image of a database table containing a plurality of records, each record including a value of at least one statistical variable the steps
  • a statistical probabilistic model for describing the relative frequencies of the values of the at least one statistical variable in the database table records and for grouping the data records into one segment of each of a plurality of segments;
  • the assignment of the first coding value to the representative value and the assignment of the second coding value to the value of the statistical variable contained in the data record can clearly show a compression of the representative value or value. of the one contained in the record
  • the second encoding value is preferably stored.
  • a database table is divided into a large number of segments. For each segment and for each statistical variable to which each record contained in the segment contains an expression, a representative value, viz. A default value, of the statistical variable is determined.
  • the representative value is an expression of the statistical variable that occurs with high relative frequency within the segment, that is, the data records contained in the segment. For each record contained in the segment, it is now assumed that the expression is the representative value corresponds to that contained in the data record, and accordingly the expression contained in the data record is coded only if the expression deviates from the representative value.
  • the value of a random variable is explicitly stored / encoded only if that value deviates from the value that one would expect based on statistical modeling (i.e., on the representative value).
  • the expected value is the most common value in a database table or in the segment of a database table. For higher compression, one can also choose the value that is the most likely value based on the prediction of a statistical model as the default value.
  • the representative value be determined based on the description given by the statistical probability model of the relative frequencies of the values of the at least one statistical variable in the data records of the segment.
  • Probability model is used to determine which value qualifies as a representative value for the statistical variable in the segment.
  • the value is chosen as the representative value for which the statistical probability model indicates a high relative frequency within the segment.
  • the representative value corresponds to an expression of the statistical variables that occurs in the data sets contained in the segment with a relative frequency that is above a predetermined threshold.
  • the occurrence of the statistical variables is chosen as the representative value that occurs at the highest relative frequency within the segment.
  • the statistical probability model is a graphical probability model.
  • a Bayesian network is used as the probabilistic model.
  • the values of the statistical variables contained in data sets contained in the same segment and which (values) differ from the representative value of the segment are determined by an arithmetic coding method and / or a method encoded for runlength encoding.
  • the data sets are efficiently encoded by grouping the records into segments of similar records, stored in a data structure constructed in accordance with those segments, and the similarity of the records within the segments more efficient coding by statistical methods (eg run-length coding, arithmetic coding).
  • the data of each segment can be stored line by line (that is, all values of the same data set are stored next to each other, ie at adjacent memory locations, in the memory).
  • the data can be stored column by column (i.e., vividly field by field, values of the first field of all data sets are immediately in memory).
  • a computing arrangement for analyzing data is provided.
  • a display device which is set up, has at least one first window, which has a first display element which has the display of a designation of a first analysis result, which relates to a first statistical variable, and / or the display of the first analysis result, and a second window, which has a second display element displaying the display of a designation of a second analysis result relating to a second statistical quantity and / or the display of the second analysis result;
  • a detection device configured to detect whether the first display element has been moved to the location of the second display element
  • a calculating means which is arranged, in the case that the first display element is shifted to the location of the second display element, a third analysis result to calculate the first statistical size and the second statistical size;
  • a user can drag and drop on a graphical user interface the first display element to the second display element move and thereby control the computer assembly so that the third analysis result is determined.
  • An indicator that is indicative of a designation of a first analysis result concerning a statistical quantity and / or the display of the analysis result is, for example
  • a label field of a screen surface window the window containing the relative frequencies of the occurrences of a statistical variable occurring in a database table; the display, for example the displayed value, a relative frequency of occurrence of a statistical variable occurring in a database table or the display of another analysis result;
  • an improved usability concept is provided, in particular for the operation of computer programs which allow the query of databases and the statistical analysis of data stored in a database. It is preferred that the first analysis result is based on data contained in a first database table and that the second analysis result is based on data contained in a second database table.
  • the first window thus serves to analyze the first database table and the second window to analyze the second database table.
  • the user can therefore generate analysis results across the windows, based in particular on data contained in the first database table and on data contained in the second database table.
  • the first database table is a transactional database table that has data in one
  • the second database is a customer database table containing data about the clients of the construction market. A user can look in a first window as the first analysis result the distribution of the random variable "total turnover of the customers" (relative
  • the first window shows in a table that in 2004, 30% of the clients of the DIY store made a total turnover between 100 and 150 euros through transactions (and correspondingly other values for other value ranges of the total turnover).
  • the first table has the title "Total customer revenue”.
  • a second analysis result relating to the transaction database is displayed, for example in a second table titled "Products", the relative frequency of the products purchased.
  • the second table contains the entry that accounts for 3% of all transactions Balcony plants were bought, in 7% of all transactions were purchased garden furniture, etc.
  • the user can now, for example, let the customer break down on the products, ie generate and display an analysis result that contains, for example, the information that 25% of the customers in the context of purchases of bedding and balcony plants made a total turnover between 100 euros and 150 euros ⁇ and other values for other value ranges of total sales and other products).
  • the user achieves this by, for example, selecting the title bar of the first window, for example a field with the string "total sales of the customers", and dragging it into the second window, for example by dragging and dropping it into the second window.
  • the display device is preferably a computer screen.
  • the selection device is preferably a computer mouse.
  • the selector is an element of the touch screen.
  • FIG. 1 shows a computer arrangement according to an embodiment of the invention.
  • FIG. 2 shows a first screen display of an Explorer computer program according to an exemplary embodiment of the invention.
  • FIG. 3 shows a second screen display of an Explorer computer program according to an exemplary embodiment of the invention.
  • FIG. 4 shows a third screen display of an Explorer computer program according to an exemplary embodiment of the invention.
  • FIG. 5 shows a fourth screen display of an Explorer computer program according to an exemplary embodiment of the invention.
  • FIG. 6 shows a fifth screen display of an Explorer computer program according to an embodiment of the invention.
  • FIG. 7 shows a sixth screen display of an Explorer computer program according to an embodiment of the invention.
  • FIG. 8 illustrates a cluster hierarchy corresponding to a database image according to an embodiment of the invention.
  • FIG. 9 illustrates a cluster according to an exemplary embodiment of the invention.
  • FIG. 1 shows a computer arrangement 100 according to an embodiment of the invention.
  • a computer system 101 is coupled to a database system 102.
  • the computer system 101 is a personal computer (PC) but may also be another computer, for example a workstation.
  • PC personal computer
  • workstation for example a workstation
  • the computer system 101 includes a screen 110, a microprocessor 103, a memory 104, and various input devices 111, such as a keyboard and a computer mouse.
  • Database system 102 is a computer system for storing database tables.
  • the database system 102 may accordingly be a high-end computer
  • Memory capacity is equipped and with the computer system 101, for example by means of an Ethernet interface or wirelessly, for example by means of Blue-tooth coupled.
  • the database system may function as an Oracle database, a Microsoft Access database, a Lotus 1-2-3 database, or a dBase database.
  • a customer database table 105 and a transaction database table 106 are stored, which are described in more detail below.
  • a customer database table image 107 that is a compressed image of the customer database table 105
  • a transaction database table image 108 that is a compressed image of the transaction database table 106
  • the customer database table image 107 and the transaction database table image 108 are illustrative Data structures that contain the data from the customer database table 105 or the transaction database table 106 in compressed form.
  • Transaction database table image 108 will be described in detail below.
  • the database system 102 is part of the computer system 101.
  • the computer system 101 has a hard disk in which the customer database table 105 and the transaction database table 106 are stored, and further has a working memory in which the customer database table image 107 and the
  • Transaction database table image 108 are stored, so that in particular the customer database table image 107 and the transaction database table image 108 can be accessed quickly.
  • Transaction database table image 108 (and thus the transaction database table 106) on the screen 110 graphically.
  • FIG. 2 shows a first screen display 200 of an Explorer computer program according to an embodiment of the invention.
  • the first screen display 200 shows results of a statistical analysis of the customer database table image 107 and thus results of a statistical analysis of the customer database table 105.
  • the customer database table 105 contains information about the customers of a hardware store.
  • the customer database table contains a customer data record for each customer of the DIY store (or for each registered customer of the DIY store) that contains a customer number of the customer, the gender of the customer, the income class of the customer and the year of birth of the customer.
  • Customer database table 105 may still contain a variety of other information about the respective customer, in this example, however, it is assumed that they contain only the above information.
  • the customer database table image 107 accordingly contains this information about the customers of the hardware store in compressed form, as explained below.
  • the Explorer computer program 109 allows the analysis of the data contained in the customer database table image 107 and the graphical display of results of such analysis.
  • the Explorer computer program 109 examined how the age distribution of the clients of the building market is and the result of the Explorer computer program 109 in a first window 201 of the first screen 200 shown. From this it can be seen that 68. 65% of the building market announcements are male and that 31, 33% of the building market announcements are female.
  • Explorer computer program 109 performs this analysis by counting all customer records that contain the information that the customer corresponding to the customer record is male and counts all customer records that contain the information that the corresponding customer is female and the count results relative to the total number of customer records.
  • the age distribution of the customers of the building market was analyzed by means of the Explorer computer program 109 by counting customer data records which contain the information that the birth year of the corresponding customer is within a certain range.
  • the result of this age distribution analysis is displayed in a second window 202 of the first screen 200 on the screen 110.
  • the analyzes whose results are displayed in the first window 201 in the second window 202 and in the third window 203 are based on all customer records, for example, all customer records were counted, the Information indicates that the corresponding customer is male and set in proportion to the number of customer records to determine the corresponding analysis result (68, 65%).
  • the selection information field 204 in another embodiment, further includes the total number of customer records that underlie the analyzes.
  • the first screen display 200 has a first selection window 205 and a second selection window 206.
  • the first selection window 205 and the second selection window 206 allow the user to set additional windows to be displayed in the area adjacent to the first selection window 205 and the second selection window 206, for example, windows having analysis results analogous to the first window 201, the second window 202 and the third window 203, which relate to other statistical variables, such as the sales of customers of the construction market.
  • the transactional database table image 108 and thus the transaction database table 106 can also be analyzed by means of the explorer computer program 109.
  • the analysis results may also be displayed on the screen 110, Figure 3 shows a corresponding display.
  • FIG. 3 shows a second screen display 300 of an Explorer computer program according to an embodiment of the invention.
  • switching between the first screen display 200 and the second screen display 300 can be accomplished by operating (clicking) an icon in a toolbar.
  • the transaction database table 106 includes a plurality of transaction records.
  • Each transaction record corresponds to a transaction, ie, a sales transaction in the hardware store, and contains a transaction number that uniquely identifies the transaction, a specification of the product sold during the transaction, the gross sales value of the transaction, the date of the transaction, and the transaction Customer number of the customer involved in the transaction, that is, the one sold
  • This information is correspondingly included in the transaction database table image 108 in compressed form.
  • the second screen 300 shows in a first
  • Window 301 shows the results of an analysis of how often certain products in the hardware store transactions have been purchased by customers in relation to all DIY store transactions.
  • Transaction records are counted that contain the information that was sold in the relevant transaction bedding and balcony plants.
  • the count result is related to the total number of transaction data, giving the percentage value (6.68%).
  • a second window 302 displays the result of an analysis of how the number of transactions is distributed over the year.
  • a third window displays the result of an analysis of the gross sales value distribution on the transactions. For example, it can be seen that for 13, 72% of all transactions, the gross sales value was between 10 and 25 euros.
  • the analyzes whose results are displayed in the first window 301, in the second window 302 and in the third window 303 are all assigned to transaction records Basically, why analogous to Figure 2 in a selection information field 304, the value 100% is displayed.
  • an example is explained in which an analysis is based on only a part of the transaction data sets.
  • FIG. 4 shows a third screen 400 of an explorer computer program according to an embodiment of the invention.
  • the third screen 400 emerges from the second screen 300 when a user selects bed and balcony plants by means of one of the input devices 111 in the first window 301 of the second screen corresponding to a first window 401, and the second window 302 of the second Screen 300 corresponding to a second window 402 selects March 2003.
  • the user clicks the value 6, 68 in the first window 301 of the second screen display 300, replacing it with a first bar 404 and the value 100, as shown in the first window 401.
  • the user has clicked on the value 9, 01 by means of a computer mouse, for example in the second window 302 of the second screen display 300, whereby this value is replaced by a second sheet 405 and the value 100, as in the second window 402 is shown.
  • the first bar 404 indicates that now only
  • Transaction records are selected that contain the information that a bed and balcony plant was sold in during the transaction.
  • the selected (selected) data records are based on the analyzes whose results are displayed in the first window 401, in the second window 402 and in the third window 403, respectively.
  • a DIY store sales manager wants to perform an analysis of the age distribution of some customers who bought at least one bedding and balcony plant in March 2003.
  • the sales manager may want to conduct this analysis to determine whether it is worth starting a "geranium for retiree" discount sale next March.
  • the sales manager starts the Explorer computer program 109 on the basis of the customer database table image 107, so that the first screen display 200 is displayed on the screen 110.
  • the sales manager evaluates, as described above with reference to FIG. 4, bed and balcony plants in the first window 301 of the second screen display 300 and March 2003 in the second window 302 of the second screen display 300, so that the second screen display 300 enters the third screen display 400 passes.
  • the sales manager changes, for example by clicking on a corresponding icon, to the first screen display 200, which according to the selection j, however, has passed into the fourth screen display 500, which is shown in FIG.
  • FIG. 5 shows a fourth screen display 500 of an Explorer computer program according to an embodiment of the invention.
  • the analyzes whose results in a first window 501 corresponding to the first window 201 of the first screen display 200, in a second Window 502, which corresponds to the second window 202 of the first screen display 200, or in a third window 503, which corresponds to the third window 203 of the first screen 200, are represented, based exactly the customer records that correspond to customers in March 2003 bought a bed and balcony plant.
  • Transaction database table image 108 all those customer numbers are determined, each corresponding to a transaction record that a transaction which was completed in March 2003 and in which a customer (namely the customer specified by the customer number) has bought a bed and balcony plant.
  • the analyzes whose results are displayed in the first window 501, in the second window 502 and in the third window 503, are now based exactly on the customer records, which contain one of the thus determined customer numbers. These customer records are referred to below as the selected customer records.
  • the customer number is used as a database key that links related customer records and transaction records together.
  • the proportion of the selected customer data records in the total number of customer data records is displayed in a selection information field 504 corresponding to the selection information field 204 of the first screen display 200, in this example 1.02%. This means that 1, 02% of the (registered)
  • the selected customer data records are sent to the analyzes, the results of which in the first window 501, in the second window 502 or in the second window 502. are displayed in the third window 503.
  • the sales manager is interested in the result of the analysis, the result of which is displayed in the second window 502.
  • the data are in the one described above
  • Embodiment not in the form of a so-called flat data structure before, that is in a single database table, but are distributed to multiple database tables, in this example, the customer database table 105 and the transaction database table 106.
  • the customer database table 105 and the transaction database table 106 are distributed to multiple database tables, in this example, the customer database table 105 and the transaction database table 106.
  • the customer database table 105 and the transaction database table 106 are distributed to multiple database tables, in this example, the customer database table 105 and the transaction database table 106.
  • Transaction database table 106 is in a 1: n relationship using the customer number because in this example, a customer may be involved in multiple transactions.
  • m: n relationships are also conceivable, for example, if a customer may be involved in multiple transactions, and multiple customers can perform a transaction together.
  • a further window is displayed in the first screen 200, by means of which the user can select whether the selection according to FIG. 4 shows the analyzes whose results in the first window 201, FIG. in the second
  • Window 202 and the third window 203 are to be based.
  • the additional window can be set to the state "yes", which means that the selection according to FIG. 4 is used as the basis for the analyzes. This condition may be in the further
  • Windows have a state "no" (or correspondingly designated state).
  • the user in this example the sales manager, can put the further window in one of the two states by using, for example, a computer mouse, i. H. make a selection of one of the two states and thereby determine whether the currently entered selections in the other database table should be taken into account when evaluating this database table.
  • the further window may optionally retain its designation and the effect of selections made therein when the selection in the second screen display is changed, or adjust automatically. Depending on that, so will the either continue to refer to bedding plants (for example, if the "keep” mode is activated) or switch to drilling machines, if you change the selection in the second display of bedding plants on drills.
  • Screen 400 a re-selection, in this case by customers, be performed.
  • this selection by means of the common key (customer number) of the transaction database table image 108 and the customer database table image 107, it is possible to select transactions on which the analyzes are based, the results of which are shown in the third screen display.
  • the user could select the customers who purchased at least one bed and balcony plant in March 2003 and who belong to income class six, for example by clicking on the value 2, 87 in the third window 503.
  • the mode of the other windows is set to "maintained"
  • the selection of customers defined in the last paragraph, in the interaction between the transaction table and the customer table can be transferred back to the transaction world, so that more information about the other transactions of this customer group can be found the previously defined bedding and balcony plants in March.
  • the selections in the third screen display are first removed (which has no effect on the fourth screen 400 according to the "keep” mode) and in the one displayed there further windows select the state "yes", whereby the customer list currently active in the fourth screen 400 is transferred to the third screen 300. Accordingly, the third screen 300 would change and in the third window 403 the distribution of the gross sales values of the transactions displayed by customers who are in income class six and bought at least one bed and balcony plant in March 2003.
  • the customer database table image 107 corresponds to a view of the customers of the hardware store and the transaction database table image 108 of a view of the transactions made in the hardware store.
  • FIG. 6 shows a fifth screen display 600 of an Explorer computer program according to an embodiment of the invention.
  • the fifth screen 600 is shown in the third screen 400.
  • the fifth screen display 600 includes (partially) a first window 601 corresponding to the first window 301 of the second screen display 300.
  • Screen 600 further includes (partially) a second window 602 that corresponds to third window 303 of second screen display 300.
  • a third window 603 shows the result of an analysis, in which it was determined for each product group how high the proportion of transactions in which a product from the respective product group was sold and in which the gross sales value was less than 5 euros all transactions in which a product of the respective product group was sold.
  • a first bar 604 shows that in about 60% of all transactions where a Product was sold from the Product Group "Technology", the gross sales value was below € 5.
  • Corresponding bars are shown for the product groups “Ambiente”, “Garten”, “Baustoffe / Sanitär” etc.
  • Random variable "gross sales value" broken down by product group The user of the explorer computer program 109 may select the fifth screen display 600 from the third
  • Display screen 400 by clicking on the value (65, 84) for the expression " ⁇ 5" in the third window 403 of the third screen 400 with a computer mouse holding the mouse button pressed and the value in the first window 401 of the third screen 400 pulls (drag and drop).
  • an expression of a first random variable over a second random variable can be broken down by dragging the value for the relative frequency of the expression of the first random variable into a window in which the relative frequencies of the occurrences of the second random variable are represented. This can also have one
  • the user may click the value (65 r 84) for the expression " ⁇ 5" in the third window 403 of the third screen display 400 with a computer mouse, change to the fifth screen display 500 by a corresponding command, and drag into the first window 501.
  • the expression "below 5 Euro” would be broken down by the gender "gross sales value” random variable and, for example, a bar would appear stating that 40% of all transactions made by a male customer were priced below 5 Euros (and another bar accordingly for the female customers).
  • the first random variable is the gross sales value and the second random variable is the product.
  • a three-dimensional diagrammatic representation can be generated. For example, a diagrammatic three-dimensional representation in which all product groups are represented along one axis (that is, occurrences of a first random variable), as is the case in the third window 603, along a second coordinate axis, ranges of gross sales values, for example " ⁇ 5" f " 5-10 ", etc. (occurrences of a second random variable).
  • a location of the grid formed by the first coordinate axis and the second coordinate axis which corresponds to a certain product group and a given gross sales value range, could by a
  • a third coordinate axis bar shows the percentage of transactions in which a product of the product group was sold and the sales value is in the sales value range, on the transactions where a product from the product group was sold.
  • this corresponds to the representation of the analysis result shown in the third window 603 for all gross sales value ranges (and not just the gross sales value range " ⁇ 5") by the representation shown in the third window about a further coordinate axis (the above-mentioned second coordinate axis ) and accordingly a two-dimensional scheme of beams is created.
  • FIG. 7 shows a sixth screen 700 of an explorer computer program according to an embodiment of the invention.
  • the sixth screen 700 has (partially) a first window 701 corresponding to the first window 301 of the second screen display 300.
  • the sixth screen 700 further includes (partially) a second window 702 corresponding to the third window 303 of the second screen display 300.
  • a third window 703 the result of another analysis is shown.
  • the analysis determined the average gross sales value of all transaction records that correspond to a transaction where a product from a particular product group was sold, and performed accordingly for multiple product groups.
  • a flag 704 shows that the average gross sales value of all gross sales values for transactions in which a product from the product group technology was sold is about 8 euros.
  • the average gross sales value (the gross sales values from all transaction records) is broken down across the different product groups.
  • the user may generate the sixth screen 700 from the second screen 300 by, for example, dragging and dropping the field with the string "percentage values" from the third window 303 into the first window 301.
  • the user could be presented with a selection menu by means of which the user can select from several options.
  • the user may choose to display a window instead of the third window 703 that does not indicate the average gross sales value for each product group but the sum of all gross sales values contained in transaction records corresponding to the transaction each one product from the respective product group was sold.
  • another tag (analogous to tag 704) indicating the sum of all the sales values from transaction records corresponding to the transaction where a product was sold from the Product Group "Engineering" might be displayed.
  • the customer in the first age range if the customers in the first age range made more revenue than the customers in the second age range, the customer would have a higher customer share than a second age range, as indicated by the second window 202 of the first screen the customer in the first age range is not higher than the number of customers in the second age range (since the weighting is taken into account when counting the corresponding customer data records). This presupposes that each customer data record contains information about the turnover of the respective customer.
  • transactions may be weighted according to their share of revenue.
  • a window in which the selected customers are broken down according to the occurrence of a random variable can be displayed in the screen display relating to the customer database table 105.
  • another window could be displayed in the fourth screen 500, which shows different sales areas (for example through bars), how high the proportion of customers who made the respective sales and bought a bed and balcony plant in March, to all customers who bought bedding and balcony plants in March.
  • the database table has several data records which clearly form the database table among each other. For example, as in the example described above, there is one record for each (registered) customer of a hardware store. For example, each record has a database table entry that contains the age of each customer. Illustratively, the data records form rows in which the age of the customer corresponding to the respective row is indicated in an "age" column.
  • the attribute age (and other existing attributes such as income, gender, etc.) of the customer is interpreted as a random variable, that is construed. Depending on the customer, this random variable assumes a certain value (state, form), for example the value 23, if the corresponding customer is 23 years old.
  • the possible values of the random variables occur with a relative frequency in the database table. For example, if one quarter of all (registered) customers of the DIY store 23, the relative frequency of the value (state) 23 of the random variable age is 0, 25 or 25%. ⁇
  • a statistical model of the data in the database table is created generated.
  • the statistical model is illustratively an approximation of the common probability distribution of the random variables of the database table.
  • the statistical model is "learned" by a learning process from the database table entries, that is, using the database table entries, preferably using a maximum likelihood approach.
  • the probabilities present within the framework of the statistical model of the database table describe, as mentioned, the relative frequencies of the states of the database table entries, depending on the procedure exactly or approximately.
  • the database table entries may assume a variety of states, which states may occur with different relative frequencies.
  • Random variables are given according to a predetermined condition and corresponding to the predetermined relative frequencies of the states of the random variables relative frequencies of the states thereof dependent (thus correlated) further random variables are determined.
  • a statistical model for example, a graphical probability model (Graphical
  • the graphical truth models include in particular Bayesian networks (Bayesian Networks or Belief Networks) and Markov-Net ze.
  • a statistical model can be generated, for example, by structural learning in Bayesian networks, as described, for example, in [2].
  • Another possibility is to learn the parameters of the statistical model for a fixed structure, that is, to determine, as described for example in [3].
  • a likelihood function is used as an optimization criterion for the parameters of the model.
  • a particular implementation here is the expectation-maximization (EM) learning method, which is described in more detail below with reference to a specific model.
  • a statistical model is preferably a statistical clustering model, in particular a Bayesian
  • Clustering model which divides the data into a plurality of clusters (also called segments).
  • the database table is divided into several smaller parts (clusters, segments), which in turn can be considered as separate database tables and, because of their smaller size, can be handled more efficiently.
  • a more efficient statistical evaluation of the database table using a clustering model can be achieved, for example, by checking in the statistical evaluation of the database table whether a given selection condition leads to the statistical model recognizing that all the data that contains the selection conditions meet in a single or a subset of clusters. If this is true, then one can restrict oneself to these clusters in the evaluation. Likewise, it is possible to have a restriction to those clusters in which the data satisfying the given condition is included with at least a certain relative frequency. The remaining clusters, in which data according to the given condition are contained only in a smaller proportion, can be neglected, if only approximate statements are desired.
  • a Bayesian clustering model a model with a discrete latent variable
  • Random variable Xj_ can, for example, the
  • a record in the database table contains a value (expression) for each of the random variables X] _, ..., X ⁇ .
  • the ⁇ -th dataset of the database table can accordingly be in the form
  • the datasets When written among each other, the datasets vividly form a database table (or panel) that has a column for each random variable.
  • the board M has entries.
  • the entire database table can be used as a matrix
  • cluster variable When using a clustering model, a so-called hidden variable (cluster variable), which is denoted by ⁇ , is additionally used.
  • the value of the ⁇ variable for a record indicates which cluster (segment) the record is associated with as part of the clustering model. In this example, therefore, there are R different clusters.
  • the a priori distribution describes how much of the data is assigned to the j eching clusters'.
  • the set of random variables ⁇ can take the possible parameter vectors ⁇ of the statistical model.
  • ⁇ ) and the distributions of the conditional probabilities P (XI ⁇ - tö ⁇ , ⁇ ⁇ ) (for each cluster) together form a probability model P (X, ⁇ I ⁇ ) for (Xi , ..., X ⁇ , ⁇ ).
  • the probability model is given by the product of the a priori distribution and the conditional probability distribution, that is:
  • each of the iteration steps consists of an E and a M step.
  • the E step corresponds to the right part of the above equation.
  • each record x ⁇ is assigned to a cluster (segment).
  • the data set x is assigned to the i-th cluster, whose weight is highest, that is to say when valid
  • the cluster membership of each record can be stored in an additional field of the record in the database table and appropriate indexes can be prepared to quickly access the data belonging to a particular cluster.
  • This distribution shows (possibly only approximately) what proportion of the data is to be found in which clusters of the database table according to the specified condition. So it is possible to limit itself to the parts (clusters) of the database table, which correspond to P ( ⁇
  • the property of the cluster models described here is exploited that the a posteriori probability of a cluster for a selection condition is 0 only if no single data record satisfying the condition is contained in the cluster. In this respect, the models are exact.
  • the statistical model can also be used to directly calculate certain desired probabilities (possibly approximatively). For example,
  • OLAP on-line analytical processing
  • Database image compressed as explained below.
  • the entire database image that is, all clusters, need not be decompressed on a request.
  • clusters are excluded from the evaluation below a certain minimum
  • the data belonging to a cluster is advantageously stored in a manner corresponding to the cluster membership.
  • the data associated with a cluster may be stored in a portion of the memory 104 so that the associated data may be read in blocks quickly.
  • random variables that take on continuous values can be discretized.
  • a "Income” random variable that is, a random variable that corresponds to the indication in the customer records of the income of the respective customer, are divided into income classes.
  • the division into income classes can be different or coarse, according to the analytical
  • the variable may first be discretized at intervals.
  • the mean of each interval may additionally be stored and for each discrete value the deviation from the mean. Since then only small differences have to be stored, this can be done very memory efficient.
  • Variants of categorical variables are coded accordingly, for example, for a "gender” random variable the expression “male” is coded by means of a zero and the expression “female” by means of a one.
  • these can be grouped into classes when the data image is created, as long as this allows the requirements for the database image.
  • the product index of the above mentioned DIY store could be organized hierarchically, for example the product titled "M4 screw” could be part of the "Machine screws” product group.
  • machine screws could in turn be assigned to the product group “screws”, which in turn is assigned to the product group “tool accessories”, wherein “Tool Accessories” itself is a product subgroup of the product group “Tools”. According to the requirements of the data tape image, it might now be sufficient not to differentiate between different machine screws, but to combine them into a class "machine screws”. Accordingly, for example, each transaction record in the transaction database table image 108 in the field corresponding to the product specification has the entry "machine screws” (or a value assigned to this characteristic, respectively), if the corresponding one
  • a query to the database image can now be processed based on this categorical variable's categorization. If a more precise classification of the values of the categorical variable (for example a differentiation between different machine screws) is required to answer the request, the database table is used. In this case, however, typically only a few details have to be queried from the database table.
  • the database image can be used to provide approximate answers to statistical queries.
  • the database image is constructed hierarchically.
  • the clusters generated as described above are themselves understood as database tables and subdivided into segments analogously to the entire database table, that is to say each data record in the ith cluster is assigned to a jth subcluster of a plurality of sub clusters of the ith cluster , Continuing analogously, a tree of clusters and vividly becomes
  • the resulting cluster hierarchy is shown in FIG.
  • FIG. 8 illustrates a cluster hierarchy 800 corresponding to a database image according to an embodiment of the invention.
  • the cluster hierarchy 800 is in the form of a tree.
  • a statistical clustering model is determined.
  • Parameter vector ⁇ and waives the random variable ⁇ accordingly. It is assumed that the statistical clustering model is specified by a corresponding set of parameters. )
  • the database table 801 becomes a first plurality of R] _ clusters
  • the probability distribution for the data sets in the ith cluster of the first plurality of clusters 802 is given by P (X
  • the i-th cluster of the first plurality of clusters 802 contains N-j_ data sets.
  • the probability that a cluster belongs to the i-th cluster of the first plurality of clusters 802 is P ( ⁇ OJ_), where a> ⁇ the value is the cluster variable ⁇ corresponding to the i-th cluster of the first plurality of clusters 802.
  • the clusters of the first plurality of clusters 802 are clustered to form a second plurality of clusters 803.
  • the i-th cluster of the first plurality of clusters 802 is thereby divided into R2, i (sub-) clusters.
  • the j-th subcluster (which is one of the clusters of the second plurality of clusters 803) of the i-th cluster of the first plurality of clusters 802 is assigned the value G> ⁇ r j of the cluster variable ⁇ .
  • the probability distribution for the records in the j-th subcluster of the i-th cluster of the first plurality of clusters 802 is given by P (X
  • the jth subcluster of the ith cluster of the first plurality of clusters 802 contains N j records. The probability that one
  • Clusters of the jth subcluster of the i-th cluster of the first plurality of clusters 802 is P (OOj ⁇ j).
  • the clusters of the second plurality of clusters 803 are further subdivided into clusters analogously to the first plurality of clusters 802, so that a third plurality of clusters 803 are clustered Clusters 804 are created for which the quantities P (X
  • the records in the lowest level of the cluster hierarchy 800 are stored in compressed form and stored, for example, in the memory 104 as a database image.
  • the database image has additional data in addition to the stored records, such as the parameter set of the statistical (clustering) model that was determined.
  • FIG 9 illustrates a cluster 900 according to an embodiment of the invention.
  • the cluster 900 is shown in the form of a table. Each row of a plurality of N rows 901, 902 corresponds to a record contained in the cluster 900.
  • Each column of a plurality of K columns 903, 904 corresponds to a random variable.
  • the cluster 900 corresponds to the value ⁇ of the cluster variable ⁇ .
  • a data set thus corresponds to a K-tuple of possible occurrences, wherein the K-tuple at the i-th point has one of the possible values of the ith random variable Xj_.
  • the probability distribution of the random variables for the records in cluster 900 that is, the relative ones
  • K-tuple frequencies of occurrences in cluster 900 be given by P (X
  • x. 1 ( ⁇ . Or ..., x. ⁇ (for all i with 1 ⁇ i ⁇ K) are discrete values.)
  • x. ⁇ (for all i with 1 ⁇ i ⁇ K) are discrete values.)
  • x. ⁇ (for all i with 1 ⁇ i ⁇ K) are discrete values.)
  • x. ⁇ (for all i with 1 ⁇ i ⁇ K) are discrete values.)
  • Xi j may correspond to a discretization interval.
  • the cluster hierarchy 800 is formed so that the data within the clusters of the cluster hierarchy 800 is more homogeneous than the entire data in the underlying database table.
  • every random variable is given a value (one characteristic) which is most frequently (or relatively frequently) contained in the data records of cluster 900 and thus in the majority of rows 901, 902.
  • the excellent value for the i-th random variable X ⁇ (also as the default value of the ith random variable or as
  • Representative value is called XJ_.
  • the default value can be calculated using the statistical model, so the occurrences contained in the data sets do not have to be counted in each case in order to determine their relative relative frequency.
  • Probability P (Xj_ XJ_
  • ⁇ -jj is relatively high, that is, in the ith cluster can be assumed that the i-th random variable has the value ⁇ ⁇ .
  • 90% of all (registered) male customers between the age of 30 and 40 years of the above-mentioned hardware store may have a call money account (to recognize this, the customer database table 105 must contain the information as to whether the customers have a call money account). For this class of customers, it can therefore be assumed with a high degree of certainty that they (each) own a call money account.
  • the generation of the clustering model now also shows that a cluster predominantly consists of customers of this type, for example, the customers in this cluster are 85% male, 95% between 30 and 40, and 92% have a call money account,
  • the default value "yes” is used for the call money account random variable, ie the entry whether the corresponding customer has a call money account ("yes" being coded, for example, by the value 1).
  • the value of the cluster variable ⁇ for a cluster for prediction of the data sets in the cluster can be illustrated in this example, the value of the random variable that indicates whether the corresponding customer has a call money account.
  • the data sets in the cluster 900 are compressed based on the basic principle that only the deviation of an occurrence of a random variable from the corresponding default value is always stored. This is done, for example, by means of runlength coding.
  • the i-th column is runlength encoded.
  • the i-th column contains the values
  • the default value Xi is not encoded, but only encodes how often it occurs in consecutive lines. Accordingly, the i-th column becomes 2, ⁇ i (5 , 0, * i, 2 ' 4 ' x i, l ' 3 ' x i, 4
  • one is added to the number of consecutive lines in which the default value is contained, so that the coded column the
  • the cluster 900 is arithmetically coded column by column.
  • Arithmetic coding (see, for example, [4]) is a
  • Compression method in which a data stream into a Bit representation of a real interval is converted. In doing so, a given probability distribution is used.
  • the probability distribution is used to calculate the probability distribution
  • the data stream is represented by the ith column 904 (or by all of them written one after the other)
  • the compression is then performed according to an arithmetic compressor.
  • the i-th column is given, for example, by
  • the procedure is not column by column, but by rows. Analogous to the column-wise procedure, the above options are available (run-length coding, arithmetic coding, combination of run-length coding and arithmetic coding).
  • the cluster hierarchy 800 is preferably constructed to such an extent that no further storage space is saved by further segmentation (that is, subdivision into clusters) of the lowest level of clusters (in FIG. 8 of the third plurality of clusters 804) in this case, because the space required to store the statistical model offsets the additional compression achieved).
  • the cluster 900 can then be compressed in a second step by means of a further compression method, for example by means of a Lempel-Ziv compression method, in order to eliminate possibly existing redundancies. Since compression of the cluster has already been achieved by means of one of the abovementioned compression methods, complex compression methods can be used in the second step without requiring unacceptable computational overhead in compression and / or decompression.
  • the statistical methods of compression and the data structures built up thereby not only have a positive effect on the size of a database image.
  • the data structures can also be easily used to accelerate analytical queries. If z. For example, if only one value is coded for a variable, if it deviates from the default value, corrections to a default statistic must always be made for all the data records just selected when determining statistics about the different values, corresponding to each coded deviation from the default value.
  • the coding of the cluster 900 or of the data sets contained in the cluster makes it possible to store a key in the data image for each data record contained in the cluster 900, by means of which the corresponding data record in FIG the underlying database table can be found.
  • Each record in the underlying database table has a key associated with it.
  • the database image of the database table contains this key for each compressed record stored as explained above.
  • a "natural key" of the segmentation may be used, that is, as a key to a record in the cluster 900, a correspondence of a first key containing the Cluster number of clusters 900 specified, and a second key, which corresponds to a number of the record corresponding to a numbering of the records contained in the cluster 900.
  • the second key is thus illustratively the number of the record within the cluster 900.
  • the cluster number of the cluster 900 may be a hierarchical cluster number configured according to the cluster hierarchy 800.
  • the subclusters of a cluster can be numbered consecutively, and the subclusters of such a subcluster can be numbered consecutively again, so that, for example, a hierarchical cluster number of the cluster 900 of the form 1/3/2 results if the cluster 900 the second subcluster (in the third plurality of clusters 804) of the third subcluster (in the second plurality of clusters 803) of the first cluster of the first plurality of clusters 802.
  • the second key which corresponds to a number of the record corresponding to a numbering of the records contained in the cluster 900, can typically be chosen to be very short (one byte or few bytes in length) because only a few records are contained in the cluster 900 due to the segmentation.
  • the assignment of the "natural keys" to the keys used in the underlying database table (which is required to find the record corresponding to a record in the database image in the database table) can take the form of a database table in the database the database table contains, itself to be stored and with an access to the
  • Database table or to the database accordingly. If a plurality of database tables and corresponding database images exist, for example, according to FIG. 1, a transaction database table image 108 for a transaction database table 106 and a customer database table image 107 for a
  • corresponding customer records in the customer database table image 107 are selected. This is done by means of a common key of the customer database table 105 and the transaction database table 106, for example by the customer number of a customer corresponding to a customer record or a customer involved in a transaction corresponding to a transaction record.
  • the corresponding transaction records in the transaction database table 106 may be identified (eg, by means of a transaction database record key stored in the transaction database table image 108 in the transaction database table image 108) appropriate
  • Allocation table By means of the customer numbers, the correspondingly selected customer data records in the customer database table 105 can now be determined and, by means of an allocation table, which corresponds to the keys of the customer data records of the customer database table image 107
  • Assigning customer data records keys to the customer database table 105 which are determined according to selected customer records in the customer database table image 107 and the corresponding selection (for example according to FIG. 5) can be used.
  • the transaction database table image and the customer database table image 107 itself have a common key (for example, customer numbers) enable the corresponding selection of customer records in the customer database table image 107 to select transaction records in the transaction database table image 108 analogous to the procedure described above.
  • the proposed method has the following advantages, in particular in the context of relational queries (that is, queries involving multiple database tables).
  • the compression allows the database images to be kept in a small but fast memory (in main memory).
  • the database images are designed so that keys can be stored in the compressed images and still allow (almost) random access. This allows different database images (as originally different tables (database tables) in the relational database) to connect via keys and thus to answer relational queries. This gives a considerable speed gain for the following reasons:
  • the database images are constructed in such a way that segmentation allows fast access to the data and fast counting.
  • the transaction database table image 108 contains references to the data records in the other database image (eg, the customer database table image 107).
  • an increase in efficiency is achieved in that the two database images are not generated independently of each other, but that the grouping of data sets to clusters for generating one of the two database images takes place with regard to the other database image.
  • the transaction database table image 108 is generated with respect to the customer database table image 107 by mapping all transaction records that correspond to the same customer record, that is, correspond to the transactions in which the same customer was involved, to the same cluster. This makes it possible, for example when selecting customer records in the customer database table image 107, to quickly access the corresponding transaction records in the transaction database table image 108, since they are all assigned to the same cluster of the transaction database table image 108. This is particularly advantageous when the clusters of the transaction database table image 108 are compressed and must be decompressed on access. In a grouping as above, therefore, only a few clusters need to be decompressed on a request.
  • a coordinated cluster structure can, for example. be achieved by first clustering as usual a blackboard (i.e., database table) is generated by a learning process. All the data from the second panel corresponding to the keys to a cluster from the first panel are then combined into a cluster for the second panel without a learning procedure.
  • the customers are first grouped into typical customer classes (ie, a clustering of the customer database table data records is performed). The transaction records for all the transactions that belong to the customers of a customer class are then combined into a cluster for the transaction data. Accordingly, learning takes place only on the first board.
  • the clustering on the second panel depends on the clusters of the first panel.
  • a common clustering can also be achieved through joint learning.
  • a common clustering can z. B. can be achieved through common EM steps in an EM learning process, using a common cluster variable.
  • the cluster affiliations are first estimated (E-step).
  • the affiliation z. B. a customer from a customer table to a cluster made not only on the basis of his customer characteristics but also on the basis of his transactions (stored in the transaction table).
  • the transactions belonging to a customer there are not different a posteriori estimates for the customer
  • the common clustering can be done as follows. To obtain the a-posteriori estimate for the latent variable (the cluster variable) for a client, first, as in known inference techniques (see, e.g., the inference methods described in [10], using Message Passing algorithms) a message from each of the customer's known variables (or variable groups or cliques) from the customer table to the cluster variable Posted . As usual, the
  • a message is now sent to the cluster variable from each entry in the transaction table belonging to the customer just considered, in order to obtain the information from the transaction table in the a posteriori estimation of the customer's affiliation To consider clusters. For each transaction that belongs to a customer, the
  • Probability tables of a selected "transaction model” (a common probabilistic model for the variables from the transaction table and the latent variable) can be used, and the resulting a posteriori estimate for the cluster variable can form the basis for the M step.
  • this is the usual M-step using the jointly calculated posterior for each customer and calculation of the "sufficient statistics" (see [1] and [3]) as the sum across all customers.
  • the calculation of sufficient statistics for the M step can be done as the sum of all transactions of a customer with the associated posterior and as an additional sum across all customers.
  • a database image contains keys as described above, the database image can be used as a multidimensional index for a database. This will be explained below.
  • multiple database-associated database images allow for multidimensional access to a database in conditions
  • an index can be created for a column of the database table that allows to quickly find records of the database table for which the size stored in the column assumes a certain value.
  • the customer database table 105 could have a column indicating the nationality of the customers, that is, each customer record has a field that contains a specification of the nationality of the corresponding customer.
  • an index that is, a list. In this way, the customer records that correspond to customers of nationality can be found quickly in the database table.
  • This allows an index to be created for each column of the database table.
  • the database table has a large number of columns, a considerable outlay arises, which in particular leads to performance difficulties. In extreme cases, it is, for example
  • a database image can be used as a "multidimensional" index for the database table if, as explained above, the records in the database image have keys stored that allow them to find the corresponding records in the underlying database table.
  • the corresponding data records can be found in the underlying database table without having to check the specified conditions for all data records of the database table.
  • the customer database table for each (registered customer) of the hardware store contains a customer record that contains the customer's address in addition to the age of the customer, the customer number, the gender of the customer (etc.).
  • the customer database table image 107 there is a customer record for each customer which contains only a portion of this information, for example the gender of the corresponding customer and the age of the corresponding customer, but in particular not the address of the corresponding customer.
  • a target group could have been determined, for example, all customers between the ages of 30 and 40 with a certain income who are unmarried.
  • the customer database table image 107 can now be used as a multidimensional index for the customer database table 105 in the sense that the customer data records of the customer database table 105 that correspond to the target group can be determined quickly by means of the keys stored in the customer database table image 107.
  • the customer database table image outputs the corresponding keys and the
  • Keys are passed to the database.
  • the database can directly retrieve the addresses of the customers of the target group from the customer database table 105, without having to examine the condition defining the target group on all customer data records in a complex process.
  • the occurrences present in the database can be grouped in the database image, thus requiring less memory, in particular for the database image, since fewer different occurrences have to be encoded.
  • the database image may contain discretizations of occurrences existing in the database, or different values may be combined in value ranges in the database image.
  • the customer database table 105 contains in each customer record the information in which month the corresponding customer was born so that the age of the corresponding customer is known to one month.
  • the customer data records of the customer database table image 107 always have the specification of the age of the corresponding customer only for one year.
  • Database table the request will be answered, with only the records of the database table corresponding to the preselection must be taken into account, whereby a speed advantage is achieved.
  • Customer database table image 107 which refers to all customers under 17, 5 years.
  • the age of the customers is only known for one year.
  • the request can be answered for all customers under the age of 17, since the corresponding data records can be uniquely determined.
  • the keys of the customer data sets are determined, for which the corresponding customers are between 17 and 18 years old. This key can now be accessed by accessing the
  • Customer database table 105 which of these customer records actually correspond to customers who are under 17, 5 years old. If these are determined accordingly, the request can be completely answered.
  • the function as a multidimensional index is particularly advantageous if several database tables are involved in the query, so if z. B. to query the addresses of all customers who are under 18 years old, and bought flower bulbs in January.
  • SQL database query language
  • Such queries are called "JOIN ⁇ .
  • Such queries which require linking multiple database tables, are often slow in databases.
  • a list of the IDs (identifications, for example customer numbers) of such customers can, as described in detail in the preceding embodiments, be very efficiently determined by the combination of two suitable database images, the z. B. through statistical modeling achieve a compression that makes it possible to calculate the list completely in main memory.
  • a database image can be graphically used as a transparent accelerator for a database.
  • a program sends a request to the database.
  • the query is quickly answered using the database image, as explained above, by accessing the database only when necessary because the data in the database image is insufficient.
  • the address of a customer is not stored in the database image, but only in the database image underlying database table in the database or in the database image. This is transparent in that, for the program transmitting the request, there is no difference in whether the request is answered directly by accessing the underlying database table, or by using the database image of the database table.
  • requests from other software are clearly taken from the database image instead of the database, evaluated, and then either independently answered based on the information stored in the database image (or multiple database images), or - if certain required information not in the database image - a possibly. forwarded optimized request to the database, retrieved the results, possibly further processed, and transmitted the result to the requesting software. For example, optimizations made may be that
  • Selection criteria are removed in the query, and by direct control of individual records using a selections corresponding to the database image generated list of keys.
  • the invention can accept and answer queries in the query language SQL (structured query language).
  • SQL structured query language
  • JDBC java database connectivity
  • ODBC open database connectivity
  • the invention can be used transparently as an accelerator, ie, such that an application software designed for direct access to the database can be accelerated without intervention by the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention relates to a data bank interrogation system, wherein two or more data bank tables are linked by means of a common key or several keys which are respectively common to at least two data bank tables. In an analysis query and a selection of data sets in the first data bank, a selection of data sets is determined in the second data bank corresponding to the selection according to the common key and the analysis query is answered using the thus selected data sets in the second data bank.

Description

Beschreibung description
Relationale komprimierte Datenbank-Abbilder (zur beschleunigten Abfrage von Datenbanken)Relational compressed database images (for accelerated query of databases)
Die Erfindung betrifft ein Datenbank-Abfragesystem und ein Verfahren zur rechnergestützten Datenbank-Abfrage .The invention relates to a database query system and a method for computer-aided database query.
Die systematische Erfassung von Informationen über Vorgänge in Unternehmen ist weit verbreitet . Solche Informationen können, nachdem sie in Form von Daten erfasst und in geeigneter Weise abgespeichert wurden, j e nach Art der Informationen beispielsweise für betriebswirtschaftliche und/oder marktstrategische Zwecke verwendet werden .The systematic collection of information about business operations is widespread. Such information can, after they have been captured in the form of data and stored in suitably be used depending on the type of information, for example, for economic and / or strategic marketing purposes.
So werden beispielsweise Informationen über Kunden, die in einem Baumarkt einkaufen, gesammelt und die so erfassten Daten, beispielsweise das Alter der Kunden und der Wohnort der Kunden analysiert, um entsprechend das angebotene Sortiment des Baumarkts anzupassen oder um besser einschätzen zu können, welche Werbestrategien erfolgreich sein könnten.For example, information about customers shopping in a hardware store is collected and the data collected, such as the age of the customer and the place of residence of the customers analyzed in order to adjust the offered assortment of the DIY store or to better estimate which advertising strategies are successful could be.
Eine statistische Aussage, die auf solchen erfassten Daten beruht, weist jedoch nur dann eine hohe Aussagekraft auf, wenn sehr viele Daten bzw. Datensätze erfasst wurden.However, a statistical statement based on such collected data only has a high significance if very many data or data records have been recorded.
Beispielsweise ist es für einen Baumarkt nicht sinnvoll, sein Produktsortiment umzustellen, nur weil acht von insgesamt zehn befragten Kunden bei einer Befragung entsprechende Antworten gegeben haben .For example, it does not make sense for a DIY store to change its product range just because eight out of a total of ten customers surveyed gave corresponding answers during a survey.
Um ein aussagekräftiges und signifikantes Ergebnis zu erhalten, ist es deshalb erforderlich, eine große Menge von Daten zu erfassen, geeignet zu strukturieren, zu speichern, das heißt in einer Datenbank abzulegen, und zu analysieren, das heißt statistisch auszuwerten .Therefore, to obtain a meaningful and significant result, it is necessary to acquire, structure, store, store, and store a large amount of data. that is, to file in a database and to analyze, that is to evaluate statistically.
Trotz der heutzutage verfügbaren verhältnismäßig leistungsfähigen Computersysteme ist dies eine nichttriviale Aufgabe .Despite the relatively powerful computer systems available today, this is a non-trivial task.
Im Hinblick auf Speicherbedarf, erforderliche Zeit für den Zugriff auf die in der Datenbank gespeicherten Daten und Kosten ist es von erheblicher Bedeutung, Datenbanken effizient zu speichern und zu verwalten .In terms of memory requirements, time required to access the data and costs stored in the database, it is of considerable importance to efficiently store and manage databases.
Bei herkömmlichen Datenbanksystemen können ferner bestimmte Anfragen gar nicht oder nur mit einem hohen Aufwand beantwortet werden.Furthermore, in conventional database systems, certain requests can not be answered at all or only with great effort.
Beispielsweise könnte ein Baumarkt über eine Kundendatenbanktabelle verfügen, in welcher Informationen über die Kunden des Baumarkts in Form von Kundendatensätzen gespeichert sind. Ein Kundendatensatz enthält beispielsweise die Kundennummer des Kunden, das Geschlecht des Kunden und das Geburtsjahr des Kunden .For example, a hardware store might have a customer database table in which information about the clients of the hardware store is stored in the form of customer records. A customer record contains, for example, the customer number of the customer, the gender of the customer and the year of birth of the customer.
Der Baumarkt könnte ferner über eine Transaktionsdatenbanktabelle verfügen, in welcherThe hardware store could also have a transaction database table in which
Informationen über Transaktionen, das heißt Verkaufvorgänge", in Form von Transaktionsdatensätzen gespeichert sind. Ein Transaktionsdatensatz könnten beispielsweise eine Transaktionsnummer, eine Spezifikation des im Rahmen der Transaktion verkauften Produkts , die Angabe des Umsatzes bei der Transaktion, die Angabe des Datums des Tages, an dem die Transaktion getätigt wurde, die Kundennummer des Kunden, der an de Transaktion beteiligt war, und eine Spezifikation der von dem Kunden verwendete Zahlungsart (Barzahlung, Kartenzahlung) enthalten.Information about transactions, ie sales transactions "are stored in the form of transaction records. A transaction record could, for example, a transaction number, a specification of the product sold under the transaction, the statement of revenue in the transaction, indicating the date of the day on which the transaction was made, the customer number of the customer involved in the transaction and a specification of the transaction Payment method used by the customer (cash payment, card payment).
Es sei nun angenommen, dass ein Verkaufmanager des Baumarkts gerne wissen möchte, wie die Altersverteilung der Kunden ist, die im Januar Beet- und Balkonpflanzen gekauft haben.Let's assume that a DIY store sales manager would like to know what the age distribution of the customers who bought bedding and balcony plants in January is.
Der Verkaufsmanager kann diese Frage jedoch nicht mit einer Abfrage der ersten Datenbanktabelle oder der zweiten Datenbanktabelle beantworten.However, the sales manager can not answer this question by querying the first database table or the second database table.
Durch eine Abfrage der ersten Datenbanktabelle kann der Verkaufsmanager die Frage nicht beantworten, da in der ersten Datenbanktabelle keine Informationen über die von einem Kunden gekauften Produkte enthalten sind.By querying the first database table, the sales manager can not answer the question because the first database table contains no information about the products purchased by a customer.
Durch eine Abfrage der zweiten Datenbanktabelle kann der Verkaufsmanager die Frage nicht beantworten, da in der zweiten Datenbanktabelle keine Informationen über das Alter der Kunden enthalten sind, die Transaktionen getätigt haben .By querying the second database table, the sales manager can not answer the question because the second database table contains no information about the age of the customers who made transactions.
Alle marktgängigen relationalen Datenbanken verfügen über die Möglichkeit, mehrere Datenbanktabellen über gemeinsame Schlüsselfelder (im obigen Beispiel z . B . Kundennummer) zu verknüpfen . Solche sogenannten „JOIN"-Operationen sind j edoch oft rechenaufwändig . Viele heute eingesetzten Datenbanksysteme befinden sich an oder j enseits der Grenze hinsichtlich ihrer Antwortzeiten und Auslastung . Ein Großteil dieser Probleme wird durch Abfragen verursacht, die mehrere Datenbanktabellen verknüpfen, und komplizierteAll standard relational databases have the option of linking multiple database tables using common key fields (in the example above, for example, customer number). However, many so-called "JOIN" operations are often computationally expensive, and many database systems in use today are on or off the border in terms of their response times and workloads, many of which are caused by queries that link multiple database tables and complicated ones
Selektionskriterien enthalten, die sich über mehrere Datenbanktabellen erstrecken. Abfragen, die nur eine einzige Datenbanktabelle betreffen, können durch einen sogenannten „füll table scan" behandelt werden, d. h. indem die komplette Datenbanktabelle einmal von der Festplatte (oder einen anderen Speicher) in den Arbeitsspeicher eingelesen wird, und j eder Datensatz einzeln verarbeitet wird. Die Laufzeit solcher Abfragen findet dadurch eine natürliche obere Schranke . Werden mehrere Datenbanktabellen verknüpft, funktioniert diese einfache Vorgehensweise nicht mehr, und potentiell sehr lange Abfragezeiten können entstehen.Contain selection criteria that span multiple database tables. Queries that concern only a single database table can be handled by a so-called "fill table scan", ie the entire database table is read from the hard disk (or another memory) into the working memory once and each data record is processed individually. The runtime of such queries thus finds a natural upper bound, and linking multiple database tables means that this simple approach no longer works and potentially very long polling times can arise.
Ein möglicher Ausweg, der teilweise im Umfeld des Data Warehousing begangen wird, ist, die Strukturierung der Information in verschiedenen Datenbanktabellen so zu verändern, dass alle für eine Abfrage benötigtenA possible way out, which is partly done in the context of data warehousing, is to change the structuring of the information in different database tables so that all are needed for a query
Informationen letztendlich' in einer einzigen Datenbanktabelle enthalten sind.Information ultimately included 'in a single database table.
Die Frage könnte durch eine Abfrage der ersten Datenbanktabelle beantwortet werden, wenn jederThe question could be answered by querying the first database table, if any
Kundendatensatz die Information enthielte, ob der Kunde, der diesem Kundendatensatz entspricht, im Januar Beet- und Balkonpflanzen gekauft hat . Entsprechend könnte ein Kundendatensatz ein Feld aufweisen, das einen ersten Wert enthält, wenn der Kunde im Januar Beet- und Balkonpflanzen gekauft hat und einen zweiten Wert enthält, wenn der Kunde im Januar keine Beet- und Balkonpflanzen gekauft hat .Customer record containing the information as to whether the customer who matches this customer record purchased bedding and balcony plants in January. Similarly, a customer record could have a field that contains a first value if the customer purchased bedding and balcony plants in January and includes a second value if the customer did not purchase bedding and balcony plants in January.
Es ist ersichtlich, das im Fall einer solchen Anfrage die Struktur der Datenbanktabelle bereits vor der Anfrage entsprechend gewählt sein muss . In diesem Beispiel muss die Kundendatenbanktabelle so ausgestaltet sein, dass j eder Kundendatensatz die Information enthält, ob der entsprechende Kunde im Januar Beet- und Balkonpflanzen gekauft hat . Dies ist jedoch nicht ohne weiteres möglich, da es typischerweise nicht bei der Gestaltung der Datenbanktabelle schon ersichtlich ist, welche Anfragen in Zukunft an die Datenbanktabelle gestellt werden .It can be seen that in the case of such a request, the structure of the database table must already be selected before the request. In this example, the customer database table must be designed so that each customer record contains the information as to whether the corresponding customer purchased bedding and balcony plants in January. This However, this is not possible without further ado, as it is typically not evident when designing the database table which queries are made to the database table in the future.
Die Kundendatenbanktabelle könnte so ausgestaltet werden, dass eine Vielzahl von Anfragen damit beantwortet werden können . Beispielsweise könnte j eder Kundendatensatz die Information enthalten, ob der Kunde im Januar Beet- und Balkonpflanzen gekauft hat, ob der Kunde im Februar Beet- und Balkonpflanzen gekauft hat und so weiter für alle Monate sowie ob der Kunde im Januar Schrauben gekauft hat, ob der Kunde im Februar Schrauben gekauft hat und so weiter für alle Produkte und Monate .The customer database table could be designed to answer a variety of requests. For example, each client record could include information as to whether the customer purchased bedding and balcony plants in January, whether the customer bought bedding and balcony plants in February, and so on for all months, and if the customer bought screws in January Customer in February has bought screws and so on for all products and months.
Diese Vorgehensweise hat jedoch eine Kundendatenbanktabelle von unakzeptabler Größe zur Folge .However, this approach results in a customer database table of unacceptable size.
Die Kundendatenbanktabelle wächst ebenso erheblich, wenn in jedem Kundendatensatz eine Liste der von dem jeweiligen Kunden gekauften Produkte aufgenommen wird. Um die obige Frage beantworten zu können, müsste insbesondere in einer solchen Liste für j edes gekaufte Produkt außerdem der Verkaufsmonat gespeichert werden. Ist ferner mit Anfragen zu rechnen, die die von den Kunden verwendete Zahlungsart beim Kauf des Produktes betreffen, müssen entsprechende Informationen ebenfalls in die Kundendatenbanktabelle aufgenommen werden. Entsprechend den zu erwartenden Anfragen an die Kundendatenbanktabelle kann in diesem Fall ebenfalls eine Kundendatenbanktabelle mit unakzeptabler Größe erforderlich sein, wenn für die Kundendatenbanktabelle eine sogenannte flache Datenstruktur verwendet wird. Insbesondere ist das Speichern einer Liste von Produkten und Zusatzinformationen problematisch, da die Länge dieser Produktliste von Kunde zu Kunde stark variieren kann, in Datenbanktabellen aber in der Regel eine feste Zahl von Feldern für alle Datensätze vorgesehen ist . Entweder muss also eine sehr große Anzahl von Feldern vorgesehen werden ( 1. Produkt, ... 100. Produkt) , damit auch für Kunden mit umfangreichen Käufen alles gespeichert werden kann, oder die Produktliste wird für manche Kunden abgeschnitten, d. h. nicht vollständig gespeichert, oder die Liste wird mittels eines Felds geeigneten Datentyps gespeichert, das eine variable Länge der Produktliste unterstützt ( z . B . mittels eines Felds von einem String-Datentyp) . Letzteres hat aber den Nachteil, dass Abfragen, die dieses Feld betreffen, komplex und ineffizient zu verarbeiten sind, erst recht, wenn Zusatzattribute der Produkte involviert sind (beispielsweise die Abfrage "Zeige alle Kunden, die im August ein Produkt aus dem Bereich Technik über 100 Euro gekauft haben" ) .The customer database table also grows significantly when a list of products purchased by each customer is included in each customer record. In order to be able to answer the above question, in particular in such a list, the month of sale would also have to be stored for each product purchased. Furthermore, if inquiries are to be expected concerning the payment method used by the customer when purchasing the product, the corresponding information must also be included in the customer database table. In accordance with the expected queries to the customer database table, a customer database table with an unacceptable size may also be required in this case if a so-called flat data structure is used for the customer database table. In particular, storing a list of products and additional information is problematic as the length of these Product list may vary greatly from customer to customer, but in database tables but usually a fixed number of fields is provided for all records. Either a very large number of fields must be provided (1st product, ... 100th product), so that even for customers with extensive purchases everything can be stored, or the product list is cut off for some customers, ie not completely stored, or the list is stored using a field of appropriate data type that supports a variable length of the product list (eg, using a field of a string data type). The latter, however, has the disadvantage that queries relating to this field are complex and inefficient to process, especially if additional attributes of the products are involved (for example, the query "Show all customers who in August a product in the field of technology over 100 Bought euros ").
Eine akzeptable Größe der Kundendatenbanktabelle kann erreicht werden, wenn Informationen (aus der Transaktionsdatenbanktabelle) in aggregierter Form in dieAn acceptable size of the customer database table can be achieved if information (from the transaction database table) is aggregated into the
Kundendatenbanktabelle eingefügt werden, beispielsweise wenn für jeden Kunden die Information aufgenommen wird, ob er im Januar irgendeine Transaktion getätigt hat, im Februar irgendeine Transaktion getätigt hat und so weiter . Auf diese Weise ist die Beantwortung der obigen Anfrage jedoch nicht möglich, da die Informationen nicht mit ausreichender Genauigkeit in der Kundendatenbanktabelle enthalten sind.Customer database table, for example, if each customer receives information about whether he made any transaction in January, made any transaction in February, and so on. In this way, however, the answer to the above request is not possible because the information is not included with sufficient accuracy in the customer database table.
Zusammenfassend besteht bei herkömmlichen relationalen Datenbank-Systemen entweder die Möglichkeit, die Daten speichereffizient und einfach verwaltbar in einem sogenannten normalisierten Schema unter Nutzung verschiedener Datenbanktabellen abzuspeichern mit dem Nachteil, dass (analytische) Abfragen sehr ineffizient sind, oder ein flaches „denormalisiertes" Datenschema mit nur einer oder wenigen Datenbanktabellen aufzubauen, was Analysen beschleunigt aber sehr speicheraufwändig, inflexibel und schwer wartbar ist .In summary, conventional relational database systems either have the ability to store the data in a so-called normalized schema using different database tables in a so-called normalized scheme, with the disadvantage that (analytical) queries are very inefficient or inefficient build a flat "denormalized" data schema with only one or a few database tables, which accelerates analysis but is very memory-intensive, inflexible and difficult to maintain.
In [1] werden Wahrscheinlichkeitsmodelle, wie Bayesianische Netze und Markov-Netze, beschrieben .In [1] probabilistic models such as Bayesian networks and Markov networks are described.
[2 ] offenbart Verfahren zum Lernen von Abhängigkeitsstrukturen, die einem Datensatz zu Grunde liegen, mit Hilfe von Bayes-Netzen und Markov-Netzen.[2] discloses methods for learning dependency structures underlying a data set using Bayesian networks and Markov networks.
In [3] sind verschiedene statistische Lernverfahren beschrieben .In [3] various statistical learning methods are described.
[4] offenbart ein Verfahren zur arithmetischen Codierung von Daten .[4] discloses a method for arithmetic coding of data.
In [5] ist ein Verfahren beschrieben, bei welchem für eine Datenbank mit kontinuierlichen Einträgen ein Gauß ' sches Mischmodell verwendet wird, um Anfragen an die Datenbank approximativ zu beantworten .In [5] a method is described in which a Gaussian mixed model is used for a database with continuous entries in order to answer inquiries to the database approximately.
[ 6] offenbart die Erzeugung eines statistischen Clustering- Modells für eine Datenbank, mittels welchem Anfragen an die[6] discloses the generation of a statistical clustering model for a database by means of which requests to the
Datenbank effizient approximativ beantwortet werden können.Database efficiently approximatively be answered.
Verschiedene Verfahren sind bekannt, die das Strukturieren, effiziente Speichern und Analysieren von Daten ermöglichen:Various methods are known which enable the structuring, efficient storage and analysis of data:
In [7] ist Z-Ordering beschrieben.In [7] Z-Ordering is described.
In [8] sind K*-Bäume beschrieben . In [ 9] ist der IGrid index beschrieben.In [8] K * trees are described. In [9] the IGrid index is described.
In [10] sind Inferenz-Verfahren beschrieben.In [10] inference methods are described.
In [11] ist ein Verfahren beschrieben, bei dem ein erstes statistisches Abbild für eine Datenbank gebildet wird, welches die statistischen Zusammenhänge der in der ersten Datenbank enthaltenen Datenelemente repräsentiert . Anschließend wird das erste statistische Abbild in einem Server-Computer gespeichert und von diesem über einIn [11] a method is described in which a first statistical image for a database is formed, which represents the statistical relationships of the data elements contained in the first database. Then, the first statistical image is stored in a server computer and from there via a
Koramunikationsnetz zu einem Client-Computer übertragen. Das empfangene erste statistische Abbild wird von dem Client- Computer weiterverarbeitet .Transfer the communication network to a client computer. The received first statistical image is further processed by the client computer.
Druckschrift [12] offenbart ein Verfahren zum Verwalten von Daten mittels einer mehrdimensionalen Datenbank. Ein Daten- Aggragations-Server ist eingerichtet, angeforderte aggregierte Daten an Client-Einheiten zu übermitteln.Reference [12] discloses a method for managing data by means of a multi-dimensional database. A data aggregation server is set up to deliver requested aggregated data to client devices.
Der Erfindung liegt das Problem zu Grunde, eine Möglichkeit zu schaffen, Ergebnisse von Anfragen, für deren Ermittlung Daten aus mehreren Datenbanktabellen erforderlich sind, gegenüber dem Stand der Technik effizienter, weniger rechenintensiv und weniger speicherintensiv zu ermitteln.The invention is based on the problem of creating a possibility to determine results of queries, for the determination of which data from several database tables are required, more efficiently, less computationally intensive and less memory-intensive compared with the prior art.
Das Problem wird durch ein Datenbank-Abfragesystem und ein Verfahren zur rechnergestützten Datenbank-Abfrage mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst .The problem is solved by a database query system and a method for computer-aided database query with the features according to the independent claims.
Es wird ein Datenbank-Abfragesystem mit einem ersten Datenbank-Abbild einer ersten Datenbanktabelle mit einer ersten Vielzahl von Datensätzen und einem zweiten Datenbank-Abbild einer zweiten Datenbanktabelle mit einer zweiten Vielzahl von Datensätzen bereitgestellt . Jedem Datensatz der ersten Vielzahl von Datensätzen und jedem Datensatz der zweiten Vielzahl von Datensätzen ist ein Wert eines Datenbank-Schlüssels zugeordnet . Das Datenbank- Abfragesystem weist eine Eingabeeinrichtung, die eingerichtet ist, eine Analyse-Anfrage an das zweite Datenbank-Abbild zu empfangen, eine Selektionseinrichtung, die eingerichtet ist, einen Teil der ersten Vielzahl von Datensätzen gemäß einer ersten Selektion zu selektieren, eine Ermittlungseinrichtung, die eingerichtet ist, eine zweite Selektion eines Teils der zweiten Vielzahl von Datensätzen zu ermitteln, wobei gemäß der zweiten Selektion solche Datensätze selektiert sind, denen Werte des Datenbank-Schlüssels zugeordnet sind, die jeweils mindestens einem Datensatz zugeordnet sind, der gemäß der ersten Selektion selektiert ist sowie eine Verarbeitungseinrichtung auf, die eingerichtet ist, dasA database query system is provided with a first database image of a first database table having a first plurality of data records and a second database image of a second database table having a second plurality of data records. Each Record of the first plurality of records and each record of the second plurality of records is associated with a value of a database key. The database retrieval system has an input device configured to receive an analysis request to the second database image, a selection device configured to select a part of the first plurality of data records according to a first selection, a determination device that is set up to determine a second selection of a part of the second plurality of data records, wherein according to the second selection such records are assigned to which values of the database key are assigned, which are each associated with at least one record selected according to the first selection and a processing device that is configured, the
Ergebnis der Analyse-Anfrage auf Basis des Teils der zweiten Vielzahl von Datensätzen zu ermitteln.Determine the result of the analysis request based on the portion of the second plurality of records.
Ferner wird ein Verfahren zur rechnergestützten Datenbank- Abfrage ' gemäß dem oben beschriebenen Datenbank-Abfragesystem bereitgestellt .Also provided is a method for computer-aided database retrieval according to the database retrieval system described above.
Anschaulich sind die Datensätze der ersten Datenbanktabelle und die Datensätze der zweiten Datenbanktabelle, die zusammengehörige Informationen beinhalten, mittels einesThe data records of the first database table and the data records of the second database table, which contain related information, are illustrated by means of a
Datenbank-Schlüssels verknüpft und in komprimierter Form als Datenbank-Abbilder, gespeichert . In den Datenbank-Abbildern sind die Werte des Datenbank-Schlüssels für die Datensätze gespeichert . Zusammenhörige Informationen sind solche, die dieselbe Person oder Sache betreffen, beispielsweise enthält die zweite Datenbanktabelle Datensätze mit Informationen über Kunden eines Baumarkts und die erste Datenbanktabelle Informationen über in dem Baumarkt durchgeführte Transaktionen . In diesem Beispiel enthalten ein Datensatz der zweiten Datenbanktabelle und ein Datensatz der ersten Datenbanktabelle zusammengehörige Informationen, wenn der Datensatz der ersten Datenbanktabelle Informationen über eine Transaktion enthält, die von dem Kunden, über den der Datensatz der zweiten Datenbanktabelle Informationen enthält, durchgeführt wurde . Der Datenbank-Schlüssel, der die beiden Datensätze verknüpft, könnte in diesem Beispiel eine Kundennummer des Kunden sein, die in beiden Datensätzen enthalten ist .Database key linked and stored in compressed form as a database images. The database images store the database key values for the records. Concurrent information is that relating to the same person or thing, for example, the second database table contains records of information about customers of a hardware store, and the first database table contains information about transactions performed in the hardware store. In this example, a record contains the second database table and a record of the first database table related information, if the record of the first database table contains information about a transaction that was performed by the customer, through which the record of the second database table contains information. The database key that links the two records could, in this example, be a customer number of the customer contained in both records.
Ein Datenbank-Schlüssel kann aus einem einzigen Datenfeld einer Datenbanktabelle bestehen ( z . B. beschreibt eine Kundennummer einen Kunden in einer Kundentabelle eindeutig) , oder aus einer Kombination mehrerer Datenfelder ( z . B. der Kombination aus einer Filialnummer und einer Kundenummer innerhalb der Filiale) .A database key may consist of a single data field of a database table (eg, a customer number uniquely identifies a customer in a customer table), or a combination of multiple data fields (eg, the combination of a store number and a customer number within the store ).
Anschaulich wird eine Anfrage an die zweite Datenbanktabelle, also eine Anfrage an das zweite Datenbank-Abbild, zu deren Beantwortung auch Informationen aus der erstenA request to the second database table, that is a request to the second database image, is also illustrated, and information from the first database is also answered
Datenbanktabelle erforderlich sind, beantwortet, indem in dem ersten Datenbank-Abbild Datensätze gemäß der erforderlichen Informationen selektiert werden, das heißt Datensätze selektiert werden, für die eine bestimmte Bedingung erfüllt ist . Anschließend werden die entsprechenden Datensätze des zweiten Datenbank-Abbilds selektiert, das heißt es werden die Datensätze in dem zweiten Datenbank-Abbild selektiert, die entsprechend der Verknüpfung mittels des Datenbank-Schlüssels den selektierten Datensätzen des ersten Datenbank-Abbilds entsprechen. Auf Basis der selektierten Datensätze kann die Anfrage beantwortet werden, da die erforderlichen Informationen aus dem ersten Datenbank-Abbild zur Generierung der Selektion der Datensätze des zweiten Datenbank-Abbilds verwendet wurden. Eine der Erfindung zu Grunde liegende Idee kann darin gesehen werden, dass zu jeder beteiligten Datenbanktabelle ein Datenbank-Abbild geschaffen wird, das in komprimierter Form bestimmte Informationen aus der Datenbanktabelle enthält . Dieses Datenbank-Abbild ist in der Regel wesentlich kleiner als die ursprüngliche Datenbanktabelle, und ist auch für bestimmte Operationen aufgrund seiner Struktur besser geeignet . Dadurch ist es möglich, bestimmte Datenbank- Abfragen schneller auf Basis des Datenbank-Abbilds (oder einer Kombination aus Informationen aus dem Datenbank-Abbild und einer verbleibenden einfacheren Abfrage an die Datenbank) zu beantworten, als aus der Originaldatenbank alleine . Insbesondere wird im Folgenden beschrieben, wie Datenbank- Abbilder miteinander verknüpft werden können (anschaulich mit einem Resultat entsprechend einer JOIN-Operation von zwei Datenbanktabellen) . In solchen Fällen ergeben sich besonders große Vorteile, da diese Operationen in normalen Datenbanken besonders aufwändig sein können .Database table are required, answered by in the first database image records are selected according to the required information, that is, records are selected for a particular condition is met. Subsequently, the corresponding data records of the second database image are selected, that is to say the data records in the second database image are selected which correspond to the selected data records of the first database image in accordance with the association by means of the database key. Based on the selected data records, the query can be answered because the required information from the first database image was used to generate the selection of the data records of the second database image. An idea underlying the invention can be seen in the fact that for each database table involved, a database image is created which contains in compressed form certain information from the database table. This database image is typically much smaller than the original database table, and is more suitable for certain operations because of its structure. This makes it possible to respond to certain database queries faster based on the database image (or a combination of information from the database image and a remaining simpler query to the database) rather than from the original database alone. In particular, the following describes how database images can be linked together (illustratively with a result corresponding to a JOIN operation of two database tables). In such cases, there are particularly great advantages, since these operations can be particularly complex in normal databases.
Anschaulich bilden das erste Datenbank-Abbild und das zweite Datenbank-Abbild, die wie erläutert mittels des Daten- Schlüssels verknüpft sind, eine komprimierte relationale Struktur .Illustratively, the first database image and the second database image, which are linked by means of the data key as explained, form a compressed relational structure.
Durch die Verwendung von Datenbank-Abbildern anstatt der Datenbanktabellen selbst wird ein schnellerer Zugriff erreicht, da das erste Datenbank-Abbild und das zweite Datenbank-Abbild in einem Speicher, auf den schnell zugegriffen werden kann, beispielsweise einemBy using database images rather than the database tables themselves, faster access is achieved since the first database image and the second database image can be accessed quickly in a memory, such as a database
Arbeitsspeichers (Hauptspeicher) eines Computers, gespeichert werden können. Gleichzeitig mit den beschriebenen Verfahren, Abfragen in relationalen Strukturen zu beschleunigen, wird ein Verfahren beschrieben, das ein effizientes Auslösen relationaler Abfragen in einer grafischen Oberfläche ermöglicht unter Nutzung der beschleunigten Abfragezeiten .Memory (main memory) of a computer can be stored. Along with the described methods of speeding up queries in relational structures, a method is described that enables efficient triggering of relational queries in a graphical user interface using accelerated query times.
Die erste Datenbanktabelle und die zweite Datenbanktabelle können zwei aus datenbankarchitektonischer Sicht aus zwei unterschiedlichen Perspektiven erstellte Datenbanktabellen sein. Wie in dem obigen Beispiel enthält die ersteThe first database table and the second database table can be two database tables created from a database architectural perspective from two different perspectives. As in the example above, the first one contains
Datenbanktabelle beispielsweise je einen Datensatz für die Kunden des Baumarkts, der Informationen über den jeweiligen Kunden enthält, und die zweite Datenbanktabelle j e einen Datensatz für die im Baumarkt durchgeführten Transaktionen, der Informationen über die jeweilige Transaktion enthält .Database table, for example, one record each for the customers of the DIY store, which contains information about the respective customer, and the second database table j e a record for the executed in the hardware store transactions containing information about the transaction.
Beispielsweise enthalte wie oben die zweite Datenbanktabelle Datensätze mit Informationen über Kunden eines Baumarkts, unter anderem das Alter des jeweiligen Kunden, jedoch nicht, wann der Kunde eine Transaktion in dem Baumarkt durchgeführt hat, und die erste Datenbanktabelle enthalte Informationen über in dem Baumarkt durchgeführte Transaktionen, unter anderem das Datum der jeweiligen Transaktion, j edoch nicht, wie alt der Kunde ist, der die Transaktion durchgeführt hat . Für eine Anfrage an die zweite Datenbanktabelle, nach dem Durchschnittsalter der Kunden, die im Mai eine Transaktion durchgeführt haben, ist aus der ersten Datenbanktabelle die Information erforderlich, welche Transaktionen im Mai durchgeführt wurden . Diese werden selektiert und mittels des Datenbank-Schlüssel die Datensätze der zweitenFor example, as above, the second database table contains records of information about clients of a hardware store, including the age of the respective customer, but not when the customer made a transaction in the hardware store, and the first database table contains information about transactions made in the hardware store, including the date of each transaction, but not how old the customer is who made the transaction. For a query to the second database table, after the average age of the customers who made a transaction in May, the first database table will require information about which transactions were performed in May. These are selected and the database records the records of the second
Datenbanktabelle selektiert, die Informationen über Kunden enthalten, die im Mai eine Transaktion durchgeführt haben . Anschließend kann die Anfrage auf Basis der selektierten Datensätze der zweiten Datenbanktabelle beantwortet werden . Auf diese Weise ist es möglich, Anfragen an die zweite Datenbanktabelle zu beantworten, für deren Beantwortungen Informationen aus der ersten Datenbanktabelle erforderlich sind, ohne die Informationen in die zweite Datenbanktabelle zu übernehmen, beispielsweise in Form einer Liste oder zusätzlicher Einträge in den Datensätzen der zweiten Datenbanktabelle .Database table that contains information about customers who made a transaction in May. Subsequently, the query can be answered on the basis of the selected data records of the second database table. In this way, it is possible to answer queries to the second database table, for the answers of which information from the first database table is required, without taking over the information in the second database table, for example in the form of a list or additional entries in the records of the second database table ,
Somit können effizient und einfach für den Benutzer komplizierte statistische Analysen durchgeführt werden.Thus, complicated statistical analyzes can be performed efficiently and simply for the user.
Anschaulich ist es beim Auswerten der zweiten Datenbanktabelle nicht erforderlich, dass permanent Zusatzinformationen aus der ersten Datenbanktabelle mittels eines Datenbank-Schlüssels nachgesehen werden . Auf diese Weise kann ein erheblicher Rechenaufwand eingespart werden und es entsteht somit ein erheblicher Effizienzvorteil gegenüber herkömmlichen Datenbanken bei einer Abfrage einer solchen Art .Clearly, when evaluating the second database table, it is not necessary to permanently look up additional information from the first database table by means of a database key. In this way, a considerable amount of computation can be saved and thus there is a considerable efficiency advantage over conventional databases in a query of such a kind.
Die erste Datenbanktabelle und die zweite Datenbanktabelle können in einer Speichereinrichtung des Datenbank- Abfragesystems gespeichert sein. Sie können insbesondere verteilt gespeichert sein, beispielsweise mittels mehrerer Daten-Servercomputer, die mittels eines Kommunikationsnetzwerks gekoppelt sind.The first database table and the second database table may be stored in a storage device of the database retrieval system. In particular, they can be stored distributed, for example by means of a plurality of data server computers, which are coupled by means of a communication network.
In diesem Fall von verteilten Datenbanktabellen ist die Verwendung der Erfindung von besonderem Vorteil, da, wie oben erläutert, beim Auswerten der zweiten Datenbanktabelle nicht permanent Zusatzinformationen auf die erste Datenbanktabelle zugegriffen werden muss, wofür insbesondere im Falle von verteilten Datenbanktabellen ein erheblicher Aufwand, insbesondere Kommunikationsaufwand, erforderlich wäre .In this case of distributed database tables, the use of the invention is of particular advantage since, as explained above, when evaluating the second database table, it is not necessary to permanently access additional information on the first database table, in particular in the case of distributed database tables a considerable effort, in particular communication costs, would be required.
In einer Ausführungsform können Auswertungen und/oder Selektionen in der ersten Datenbanktabelle und der zweiten Datenbanktabelle gleichzeitig vorgenommen werden. Bei einer Selektion, in der ersten Datenbanktabelle und einer gleichzeitigen (zusätzlichen) Selektion in der zweiten Datenbanktabelle werden einer Anfrage die den Selektionen entsprechenden Datensätze zu Grunde gelegt . In obigem Beispiel könnten beispielsweise in der ersten Datenbanktabelle alle Transaktionen (bzw. die entsprechenden Transaktionsdatensätze) selektiert werden, bei denen Beet- und Balkonpflanzen verkauft wurden. Zusätzlich könnten in der zweiten Datenbanktabelle alle Kunden (bzw. die entsprechenden Kundendatensätze) selektiert werden, die älter als 59 Jahre sind. Eine Anfrage an die erste Datenbanktabelle und/oder an die zweite Datenbanktabelle wird dann auf Basis der Transaktionsdatensätze, die Transaktionen entsprechen, bei denen ein Kunde, der älter ist als 59 Jahre, (mindestens) eine Beet- und Balkonpflanze gekauft hat bzw. auf Basis der Kundendatensätze, die Kunden entsprechen, die älter als 59 Jahre sind und mindestens eine Beet- und Balkonpflanze gekauft haben, beantwortet .In one embodiment, evaluations and / or selections may be made simultaneously in the first database table and the second database table. In a selection, in the first database table and a simultaneous (additional) selection in the second database table, a query is based on the data records corresponding to the selections. In the above example, for example, all transactions (or the corresponding transaction records) in which bedding and balcony plants were sold could be selected in the first database table. In addition, all customers (or the corresponding customer data records) older than 59 years could be selected in the second database table. A request to the first database table and / or to the second database table is then based on the transaction records corresponding to transactions where a customer older than 59 years has (at least) bought a bedding and balcony plant Customer records that correspond to customers over the age of 59 and have purchased at least one bed and balcony plant answered.
Anschaulich exportieren dazu die Datenbanktabellen eine Liste der Datenbank-Schlüssel, die der j eweiligen ( "eigenen" ) Selektion entspricht, importiert die Liste der jeweiligen anderen Datenbanktabelle, welche mit der "eigenen" Selektion kombiniert wird.The database tables vividly export a list of database keys corresponding to the existing ("own") selection, importing the list of the respective other database table, which is combined with the "own" selection.
In einer Ausführungsform werden auf analoge Weise mehr als zwei Datenbanktabellen in der beschriebenen Weise verknüpft . Diese können mittels eines (für alle Datenbanktabellen) gemeinsamen Datenbank-Schlüssels verknüpft werden oder auch mittels mehrerer paarweise gemeinsamer Datenbank-Schlüssel . Beispielsweise könnte eine Kundentabelle und eine Kassenzetteltabelle mittels einer Kundennummer verknüpft sein und die Kassenzetteltabelle mit einer Transaktionstabelle mittels einer Kassenzettelnummer. Anschaulich muss für jede Verknüpfung von jeweils zwei Datenbanktabellen ein gemeinsamer Datenbank-Schlüssel existieren und alle Datenbanktabellen müssen auf diese Weise direkt (mittels eines gemeinsamen Datenbank-Schlüssels) oder indirekt (über den "Umweg" einer weiteren Datenbanktabelle) verknüpft sein .In one embodiment, more than two database tables are linked in the manner described in an analogous manner. These can be done using one (for all database tables) common database key or by means of several pairs of shared database keys. For example, a customer table and a checkout table could be linked by means of a customer number and the check-in table with a transaction table by means of a check-in code number. Clearly, a common database key must exist for each link of two database tables, and all database tables must be linked directly (by means of a common database key) or indirectly (via the "detour" of another database table).
Der gängigste Typ von Datenbanksystemen sind relationale Datenbanken. Unter einer relationalen Datenbank wird typischerweise ein Softwaresystem verstanden, das eine oder mehrere Datenbanktabellen in einer Datenbank verwaltet . Jede Datenbanktabelle weist möglicherweise viele Datensätze auf (beispielsweise eine Kundentabelle einen Datensatz pro Kunde, eine Transaktionstabelle einen Datensatz pro Transaktion) . Jeder Datensatz einer Datenbanktabelle beinhaltet Werte zu denselben Feldern (beispielsweise Kundennummer, Alter, Geschlecht) .The most common type of database systems are relational databases. A relational database is typically understood to mean a software system that manages one or more database tables in a database. Each database table may contain many records (for example, one customer table one record per customer, one transaction table one record per transaction). Each record in a database table contains values for the same fields (for example, customer number, age, gender).
Die Erfindung betrifft anschaulich die Verknüpfung mehrerer solcher Datenbanktabellen. Die Datenbanktabellen können aus derselben Datenbank stammen, aber auch aus unterschiedlichen Datenbanken.The invention clearly relates to the combination of several such database tables. The database tables can come from the same database, but also from different databases.
Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen. Die weiteren Ausgestaltungen der Erfindung, die im Zusammenhang mit dem Datenbank- Abfragesystem beschrieben sind, gelten sinngemäß auch für das Verfahren zur rechnergestützten Datenbank-Abfrage . Es ist bevorzugt, dass das erste komprimierte Datenbank- Abbild und/oder das zweite komprimierte Datenbank-Abbild gemäß einem statistischen Modell erzeugt ist .Preferred developments of the invention will become apparent from the dependent claims. The further embodiments of the invention, which are described in connection with the database query system, apply mutatis mutandis to the method for computer-aided database query. It is preferred that the first compressed database image and / or the second compressed database image is generated according to a statistical model.
In einer Ausführungsform sind das erste komprimierte Datenbank-Abbild und das zweite komprimierte Datenbank-Abbild voneinander unabhängig erstellte Datenbank-Abbilder.In one embodiment, the first compressed database image and the second compressed database image are independently created database images.
Vorzugsweise ist das statistische Modell ein graphisches Wahrscheinlichkeitsmodell . Beispielsweise wird ein Bayesianisches Netz als Wahrscheinlichkeitsmodell verwendet .Preferably, the statistical model is a graphical probability model. For example, a Bayesian network is used as the probabilistic model.
In der unten beschriebenen Ausführungsform kann mittels den Datenbank-Abbildern nicht nur ein geringer Speicheraufwand erreicht werden, sondern die Struktur der Datenbank-Abbilder ferner für einen effizienten und schnellen Zugriff verwendet werden.In the embodiment described below, not only a small memory overhead can be achieved by means of the database images, but also the structure of the database images can be used for efficient and quick access.
Es ist ferner bevorzugt, dass die Eingabeeinrichtung ferner eingerichtet ist, eine Selektionsinstruktion zu empfangen und die Selektionseinrichtung eingerichtet ist, den Teil der ersten Vielzahl von Datensätzen gemäß der Selektionsinstruktion zu selektieren.It is further preferred that the input device is further adapted to receive a selection instruction and the selection means is arranged to select the part of the first plurality of data records according to the selection instruction.
Anschaulich kann ein Benutzer durch Selektion von Datensätzen eine Anfrage genauer spezifizieren und Ergebnisse für komplizierte Anfragen ermitteln.Clearly, by selecting records, a user can more accurately specify a query and determine results for complicated queries.
Es ist ferner bevorzugt, dass das Datenbank-Abfragesystem ferner eine Anzeigeeinrichtung aufweist, die eingerichtet ist, eine Bildschirmanzeige darzustellen, die die Anzeige von möglichen Werten mindestens einer Zufallsvariable, für die in der ersten Vielzahl von Datensätzen Werte enthalten sind, aufweist, und dass die Selektionsinstruktion das Auswählen der Anzeige mindestens eines möglichen Wertes (einer möglichen Ausprägung) der Zufallsvariablen ist und die erste Selektion darin besteht, dass alle Datensätze der ersten Vielzahl von Datensätzen selektiert sind, für die die Zufallsvariable einen der ausgewählten mindestens einen möglichen Werte annimmt .It is further preferred that the database retrieval system further comprises a display device configured to display a screen display showing the display of possible values of at least one random variable for which values are included in the first plurality of data sets. and that the selection instruction is selecting the display of at least one possible value (s) of the random variable, and the first selection is selecting all the records of the first plurality of records for which the random variable is one of the selected at least one possible one Takes values.
Auf diese Weise kann ein Benutzer auf einfache Weise, beispielsweise durch Klicken auf eine Ausprägung einer Zufallsvariable mittels einer Computermaus, Datensätze selektieren .In this way, a user can easily select records, for example by clicking on an expression of a random variable using a computer mouse.
Es ist ferner bevorzugt, dass die Anzeigeeinrichtung ferner eingerichtet ist, eine weitere Bildschirmanzeige darzustellen, die eine Anzeige des Ergebnisses der Analyse- Anfrage aufweist, und dass die Anzeigeeinrichtung ferner eingerichtet ist, zwischen der Bildschirmanzeige und der weiteren Bildschirmanzeige zu wechseln.It is further preferred that the display device is further configured to display a further screen display having an indication of the result of the analysis request, and that the display device is further configured to switch between the screen display and the further screen display.
Anschaulich kann ein Benutzer somit die Bildschirmanzeige verwenden, um Datensätze zu selektieren und anschließend zu der weiteren Bildschirmanzeige wechseln, so dass die der Selektion entsprechenden Analyseergebnisse angezeigt werden .Illustratively, a user can thus use the screen display to select data records and then switch to the further screen display so that the analysis results corresponding to the selection are displayed.
Es ist ferner bevorzugt, dass das Datenbank-Abfragesystem eine Zugriffseinrichtung aufweist, die eingerichtet ist, auf die zweite Datenbanktabelle zuzugreifen und Daten, die in den gemäß der zweiten Selektion selektierten Datensätzen der zweiten Datenbanktabelle enthalten sind, zu ermitteln und wobei die Verarbeitungseinrichtung eingerichtet ist, das Ergebnis der Analyse-Anfrage unter Verwendung der Daten zu ermitteln . Anschaulich wird, wenn das zweite Datenbank-Abbild nicht ausreichende Informationen zur Beantwortung der Analyse- Anfrage aufweist, auf die zu Grunde liegende zweite Datenbanktabelle zurückgegriffen. Jedoch muss nicht auf die gesamte zweite Datenbanktabelle zugegriffen werden, sondern nur auf die gemäß der zweiten Selektion selektierten Datensätze.It is further preferred that the database query system has an access device which is set up to access the second database table and to determine data contained in the data sets of the second database table selected according to the second selection, and wherein the processing device is set up, determine the result of the analysis request using the data. Clearly, if the second database image does not contain sufficient information to answer the analysis request, the underlying second database table is used. However, it is not necessary to access the entire second database table, but only to the records selected according to the second selection.
Dies ist insbesondere dann von Vorteil, wenn nur ein kleiner Teil der Datensätze die Selektionskriterien der zweitenThis is particularly advantageous if only a small part of the data sets the selection criteria of the second
Selektion erfüllt und deshalb nur wenige Datensätze aus der zweiten Datenbanktabelle abgerufen werden müssen, da der Zugriff auf die zweite Datenbanktabelle erheblich langsamer ist als der Zugriff auf das zweite Datenbank-Abbild, da die zweite Datenbanktabelle aufgrund ihres Speicherbedarfs typischerweise in einem Speicher gespeichert werden muss, auf den erheblicher langsamer zugegriffen werden kann als auf den Speicher, in dem das zweite Datenbank-Abbild gespeichert ist .Selection and therefore only a few data records have to be retrieved from the second database table since the access to the second database table is considerably slower than the access to the second database image since the second database table typically has to be stored in a memory because of its memory requirement, which is much slower to access than the memory where the second database image is stored.
Anschaulich wird das zweite Datenbank-Abbild als multidimensionaler Index der zweiten Datenbanktabelle verwendet . Dies wird weiter unten genauer erläutert .Illustratively, the second database image is used as a multidimensional index of the second database table. This will be explained in more detail below.
Es ist ferner bevorzugt, dass in dem ersten Datenbank-Abbild die erste Vielzahl von Datensätzen zu einer ersten Mehrzahl von Segmenten (Clustern) gruppiert sind und/oder in dem zweiten Datenbank-Abbild die zweite Vielzahl von Datensätzen zu einer zweiten Mehrzahl von Segmenten gruppiert sind.It is further preferred that in the first database image the first plurality of data sets are grouped into a first plurality of segments (clusters) and / or in the second database image the second plurality of data sets are grouped into a second plurality of segments ,
Anschaulich sind das erste Datenbank-Abbild und/oder das zweite Datenbank-Abbild gemäß einem statistischen Clustering- Modell erzeugt . Vorzugsweise besteht der Wert des Datenbank-Schlüssels für einen Datensatz des ersten Datenbank-Abbilds (das heißt eines Datensatzes der ersten Vielzahl von Datensätzen) aus einer Nummer des Segments, in dem der Datensatz enthalten ist, und einer Nummer des Datensatzes gemäß einer Nummerierung der Datensätze des Segments .Illustratively, the first database image and / or the second database image are generated according to a statistical clustering model. Preferably, the value of the database key is a record of the first database image (that is, a record of the first plurality of records) of a number of the segment in which the record is contained and a number of the record according to a numbering of the records of the segment.
Vorzugsweise besteht der Wert des Datenbank-Schlüssels für einen Datensatz des zweiten Datenbank-Abbilds (das heißt eines Datensatzes der zweiten Vielzahl von Datensätzen) aus einer Nummer des Segments, in dem der Datensatz enthalten ist, und einer Nummer des Datensatzes gemäß einer Nummerierung der Datensätze des Segments .Preferably, the value of the database key is a record of the second database image (that is, a record of the second plurality of records) of a number of the segment in which the record is contained and a number of the record according to a numbering of the records of the segment.
Als Datenbank-Schlüssel wird anschaulich ein "natürlicherAs a database key is vividly a "natural
Schlüssel" verwendet, der sich auf natürliche Weise aus der Einteilung in Cluster ergibt , wobei innerhalb der Cluster die Datensätze durchnummeriert werden.Key ", which results naturally from the division into clusters, whereby the records are numbered consecutively within the clusters.
Der "natürliche Schlüssel" wird anschaulich anstatt einesThe "natural key" becomes vivid instead of a
Datenbank-Schlüssels , der in der ersten Datenbanktabelle oder in der zweiten Datenbanktabelle verwendet wird (beispielsweise eine Kundennummer) , zur Verknüpfung des ersten Datenbank-Abbilds und des zweiten Datenbank-Abbilds verwendet .Database key used in the first database table or in the second database table (for example, a customer number) used to link the first database image and the second database image.
Es ist ferner bevorzugt, dass für j eden Datensatz der ersten Vielzahl von Datensätzen der Wert des Datenbank-Schlüssels in der ersten Datenbanktabelle und/oder für jeden Datensatz der zweiten Vielzahl von Datensätzen der Wert des Datenbank- Schlüssels in der zweiten Datenbanktabelle gespeichert ist .It is further preferred that for each record of the first plurality of data records the value of the database key is stored in the first database table and / or for each record of the second plurality of data records the value of the database key is stored in the second database table.
Dies ist insbesondere dann von Bedeutung, wenn der oben beschriebene "natürliche Schlüssel" für die Datensätze verwendet wird. In diesem Fall wird zur Verknüpfung des ersten Datenbank-Abbilds und des zweiten Datenbank-Abbilds der "natürliche Schlüssel" verwendet . Wenn auf die erste Datenbanktabelle oder auf die zweite Datenbanktabelle, zurückgegriffen wird, beispielsweise im Rahmen der oben erwähnten Verwendung als multidimensionaler Index, ist es erforderlich, den Wert des "natürlichen Schlüssels" dem Wert des Datenbank-Schlüssels, der in der ersten Datenbanktabelle (beispielsweise Transaktionsnummer) bzw. der zweiten Datenbanktabelle (beispielsweise Kundennummer) verwendet wird, zuzuordnen, was dadurch ermöglicht wird, dass für j eden Datensatz der Wert des "natürlichen Schlüssels" in der ersten Datenbanktabelle bzw. der zweiten Datenbanktabelle gespeichert ist .This is particularly important if the "natural key" described above for the records is used. In this case, the "natural key" is used to link the first database image and the second database image. When the first database table or the second database table is used, for example in the context of the above-mentioned use as a multidimensional index, it is necessary to set the value of the "natural key" to the value of the database key stored in the first database table (for example Transaction number) or the second database table (for example, customer number) is used, which is made possible by the fact that for each record the value of the "natural key" is stored in the first database table or the second database table.
Unabhängig von dem obigen Datenbank-Abfragesystem oder alternativ zu dem obigen Datenbank-Abfragesystem wird in einer Ausführungsform ein Verfahren zum Erzeugen eines komprimierten Abbilds einer Datenbanktabelle, die eine Vielzahl von Datensätzen enthält, bereitgestellt, wobei jeder Datensatz einen Wert mindestens einer statistischen Variable enthält, aufweisend die SchritteRegardless of the above database query system, or alternatively to the above database query system, in one embodiment, a method is provided for generating a compressed image of a database table containing a plurality of records, each record including a value of at least one statistical variable the steps
- Ermitteln eines statistischen Wahrscheinlichkeitsmodells zur Beschreibung der relativen Häufigkeiten der Werte der mindestens einen statistischen Variablen in den Datensätzen der Datenbanktabelle und zum Gruppieren der Datensätze zu jeweils einem Segment einer Mehrzahl von Segmenten;Determining a statistical probabilistic model for describing the relative frequencies of the values of the at least one statistical variable in the database table records and for grouping the data records into one segment of each of a plurality of segments;
- Ermitteln, für j edes Segment der Mehrzahl von Segmenten, entsprechend den relativen Häufigkeiten der Werte der mindestens einen statistischen Variablen in den Datensätzen des Segments, eines Repräsentanten-Werts der mindestens einen statistischen Variablen; - Zuordnen, für j edes Segment der Mehrzahl von Segmenten, eines ersten Kodierungswerts zu dem Repräsentanten-Wert des jeweiligen Segments ;Determining, for each segment of the plurality of segments, corresponding to the relative frequencies of the values of the at least one statistical variable in the data records of the segment, a representative value of the at least one statistical variable; Assigning, for each segment of the plurality of segments, a first encoding value to the representative value of the respective segment;
- Zuordnen, für jeden Datensatz , eines zweiten Kodierungswerts zu dem in dem Datensatz enthaltenen Wert der statistischen Variablen, falls der in dem Datensatz enthaltene Wert sich von dem Repräsentanten-Wert des Segments, in welchem Segment der Datensatz enthalten ist, unterscheidet .Associating, for each record, a second coded value with the value of the statistical variable contained in the record, if the value contained in the record differs from the representative value of the segment in which the record contains the record.
Ferner wird eine Anordnung, ein computerlesbares Speichermedium und ein Computerprogramm-Element entsprechend dem oben beschriebenen Verfahren zum Erzeugen eines komprimierten Abbilds einer Datenbanktabelle bereitgestellt .Furthermore, an arrangement, a computer-readable storage medium and a computer program element according to the above-described method for generating a compressed image of a database table is provided.
Das Zuordnen des ersten Kodierungswerts zu dem Repräsentanten-Wert und das Zuordnen des zweiten Kodierungswerts zu dem in dem Datensatz enthaltenen Wert der statistischen Variablen kann anschaulich ein Komprimieren des Repräsentanten-Werts bzw . des in dem Datensatz enthaltenenThe assignment of the first coding value to the representative value and the assignment of the second coding value to the value of the statistical variable contained in the data record can clearly show a compression of the representative value or value. of the one contained in the record
Werts der statistischen Variablen sein . Insbesondere wird der zweite Kodierungswert vorzugsweise gespeichert .Value of the statistical variables. In particular, the second encoding value is preferably stored.
Anschaulich wird eine Datenbanktabelle in eine Vielzahl von Segmenten unterteilt . Für jedes Segment und für jede statistische Variable, zu der j eder in dem Segment enthaltene Datensatz eine Ausprägung enthält, wird ein Repräsentanten- Wert, anschaulich ein Default-Wert, der statistischen Variable bestimmt . Der Repräsentanten-Wert ist eine Ausprägung der statistischen Variable, die innerhalb des Segments, das heißt bei den in dem Segment enthaltenen Datensätzen, mit hoher relativer Häufigkeit auftritt . Für jeden in dem Segment enthaltenen Datensatz wird nun angenommen, dass die Ausprägung, die dem Repräsentanten-Wert entspricht, in dem Datensatz enthalten ist und dementsprechend wird die in dem Datensatz enthaltene Ausprägung nur dann kodiert, wenn die Ausprägung von dem Repräsentanten-Wert abweicht .Clearly, a database table is divided into a large number of segments. For each segment and for each statistical variable to which each record contained in the segment contains an expression, a representative value, viz. A default value, of the statistical variable is determined. The representative value is an expression of the statistical variable that occurs with high relative frequency within the segment, that is, the data records contained in the segment. For each record contained in the segment, it is now assumed that the expression is the representative value corresponds to that contained in the data record, and accordingly the expression contained in the data record is coded only if the expression deviates from the representative value.
Anschaulich wird der Wert einer Zufallsvariable nur dann explizit gespeichert/kodiert, wenn dieser Wert von dem Wert abweicht, den man auf Grund einer statistischen Modellierung erwarten würden (d. h. von dem Repräsentanten-Wert) . Im einfachsten Fall ist der erwartete Wert der häufigste Wert in einer Datenbanktabelle oder in dem Segment einer Datenbanktabelle . Für eine höhere Kompression kann man als den erwarteten Wert (Default-Wert) auch den Wert wählen, der auf Grundlage der Prognose eines statistischen Modells der wahrscheinlichste Wert ist .Clearly, the value of a random variable is explicitly stored / encoded only if that value deviates from the value that one would expect based on statistical modeling (i.e., on the representative value). In the simplest case, the expected value is the most common value in a database table or in the segment of a database table. For higher compression, one can also choose the value that is the most likely value based on the prediction of a statistical model as the default value.
Es wird bevorzugt, dass der Repräsentanten-Wert basierend auf der durch das statistische Wahrscheinlichkeitsmodell gegebenen Beschreibung der relativen Häufigkeiten der Werte der mindestens einen statistischen Variablen in den Datensätzen des Segments bestimmt wird.It is preferred that the representative value be determined based on the description given by the statistical probability model of the relative frequencies of the values of the at least one statistical variable in the data records of the segment.
Anschaulich wird also das statistischeIllustrative is the statistical
Wahrscheinlichkeitsmodell dazu verwendet, zu bestimmen, welcher Wert sich als Repräsentanten-Wert für die statistische Variable in dem Segment eignet .Probability model is used to determine which value qualifies as a representative value for the statistical variable in the segment.
Auf diese Weise kann der Repräsentanten-Wert mit geringem Rechenaufwand bestimmt werden.In this way, the representative value can be determined with little computational effort.
Beispielsweise wird der Wert als Repräsentanten-Wert gewählt, für den das statistische Wahrscheinlichkeitsmodell eine hohe relative Häufigkeit innerhalb des Segments angibt . Vorzugsweise entspricht der Repräsentanten-Wert einer Ausprägung der statistischen Variablen, die bei den in dem Segment enthaltenen Datensätzen mit einer relativen Häufigkeit auftritt, die über einem vorgegebenen Schwellwert liegt .For example, the value is chosen as the representative value for which the statistical probability model indicates a high relative frequency within the segment. Preferably, the representative value corresponds to an expression of the statistical variables that occurs in the data sets contained in the segment with a relative frequency that is above a predetermined threshold.
In einer Ausführungsform wird beispielsweise die Ausprägung der statistischen Variablen als Repräsentanten-Wert gewählt , die mit der höchsten relativen Häufigkeit innerhalb des Segments auftritt .For example, in one embodiment, the occurrence of the statistical variables is chosen as the representative value that occurs at the highest relative frequency within the segment.
In diesem Fall müssen nur sehr wenige Ausprägungen kodiert werden, da die meisten in dem Segment enthaltenen Datensätze den Repräsentanten-Wert als Ausprägung der statistischen Variablen aufweisen. Somit kann eine hohe Kompression erzielt werden.In this case, only very few occurrences need to be coded, since most of the data records contained in the segment have the representative value as the expression of the statistical variables. Thus, a high compression can be achieved.
Vorzugsweise ist das statistische Wahrscheinlichkeitsmodell ein graphisches Wahrscheinlichkeitsmodell . Beispielsweise wird ein Bayesianisches Netz als Wahrscheinlichkeitsmodell verwendet .Preferably, the statistical probability model is a graphical probability model. For example, a Bayesian network is used as the probabilistic model.
Es wird bevorzugt, dass die Werte der statistischen Variablen, die in Datensätzen enthalten sind, die in demselben Segment enthalten sind, und welche (Werte ) sich von dem Repräsentanten-Wert des Segments unterscheiden, mittels eines Verfahrens zur arithmetischen Kodierung und/oder eines Verfahrens zur Runlength-Kodierung kodiert werden .It is preferred that the values of the statistical variables contained in data sets contained in the same segment and which (values) differ from the representative value of the segment are determined by an arithmetic coding method and / or a method encoded for runlength encoding.
Anschaulich werden in einer Ausführungsform die Datensätze durch Gruppierung der Datensätze zu Segmenten ähnlicher Datensätze effizient kodiert , in einer Datenstruktur, die gemäß diesen Segmenten aufgebaut ist, gespeichert und die Ähnlichkeit der Datensätze innerhalb der Segmente zur effizienteren Codierung durch statistische Verfahren ( z . B. Runlength-Kodierung, Arithmetisches Kodieren) ausgenutzt .Clearly, in one embodiment, the data sets are efficiently encoded by grouping the records into segments of similar records, stored in a data structure constructed in accordance with those segments, and the similarity of the records within the segments more efficient coding by statistical methods (eg run-length coding, arithmetic coding).
Dabei können die Daten jedes Segments zeilenweise gespeichert (d. h. alle Werte desselben Datensatzes werden nebeneinander, das heißt an benachbarten Speicherstellen, im Speicher gespeichert) . Alternativ können die Daten spaltenweise gespeichert werden (d. h. anschaulich feldweise, Werte des ersten Feldes aller Datensätze stehen unmittelbar nacheinander im Speicher) .In this case, the data of each segment can be stored line by line (that is, all values of the same data set are stored next to each other, ie at adjacent memory locations, in the memory). Alternatively, the data can be stored column by column (i.e., vividly field by field, values of the first field of all data sets are immediately in memory).
Ferner wird unabhängig von dem obigen Datenbank-Abfragesystem oder alternativ zu dem obigen Datenbank-Abfragesystem in einer Ausführungsform eine Rechneranordnung zum Analysieren von Daten bereitgestellt mitFurther, regardless of the above database query system, or alternatively to the above database query system, in one embodiment, a computing arrangement for analyzing data is provided
- einer Anzeigeeinrichtung, die eingerichtet ist, mindestens ein erstes Fenster, welches ein erstes Anzeigeelement aufweist, welches die Anzeige einer Bezeichnung eines ersten Analyseergebnisses, das eine erste statistische Größe betrifft, und/oder die Anzeige des ersten Analyseergebnisses aufweist, und ein zweites Fenster, welches ein zweites Anzeigeelement aufweist, welches die Anzeige einer Bezeichnung eines zweiten Analyseergebnisses, das eine zweite statistische Größe betrifft, und/oder die Anzeige des zweiten Analyseergebnisses aufweist, anzuzeigen;a display device, which is set up, has at least one first window, which has a first display element which has the display of a designation of a first analysis result, which relates to a first statistical variable, and / or the display of the first analysis result, and a second window, which has a second display element displaying the display of a designation of a second analysis result relating to a second statistical quantity and / or the display of the second analysis result;
- einer Auswahleinrichtung, mittels welcher ein Benutzer das erste Anzeigeelement auswählen kann und an den Ort des zweiten Anzeigeelements verschieben kann;- A selector means by which a user can select the first display element and move to the location of the second display element;
- einer Erfassungseinrichtung, die eingerichtet ist, zu erfassen, ob das erste Anzeigeelement an den Ort des zweiten Anzeigeelements verschoben ist;a detection device configured to detect whether the first display element has been moved to the location of the second display element;
- eine Berechnungseinrichtung, die eingerichtet ist, in dem Fall, dass das erste Anzeigeelement an den Ort des zweiten Anzeigeelements verschoben ist, ein drittes Analyseergebnis zu berechnen, das die erste statistische Größe und die zweite statistische Größe betrifft;- A calculating means, which is arranged, in the case that the first display element is shifted to the location of the second display element, a third analysis result to calculate the first statistical size and the second statistical size;
- wobei die Anzeigeeinrichtung eingerichtet ist, das dritte Analyseergebnis anzuzeigen .- wherein the display device is set up to display the third analysis result.
Anschaulich kann ein Benutzer mittels Drag & Drop auf einer graphischen Benutzeroberfläche das erste Anzeigeelement zu dem zweiten Anzeigeelement hinbewegen und dadurch die Rechneranordnung so steuern, dass das dritte Analyseergebnis bestimmt wird.Illustratively, a user can drag and drop on a graphical user interface the first display element to the second display element move and thereby control the computer assembly so that the third analysis result is determined.
Ein Anzeigeelement, das die Anzeige einer Bezeichnung eines ersten Analyseergebnisses , das eine statistische Größe betrifft, und/oder die Anzeige des Analyseergebnisses ist, ist beispielsweiseAn indicator that is indicative of a designation of a first analysis result concerning a statistical quantity and / or the display of the analysis result is, for example
- ein Bezeichnungsfeld eines Fensters einer Bildschirmoberfläche, wobei das Fenster die relativen Häufigkeiten der Ausprägungen einer statistischen Variablen, die in einer Datenbanktabelle auftreten, enthält; - die Anzeige, beispielsweise der angezeigte Wert, einer relativen Häufigkeit einer Ausprägung einer statistischen Variablen, die in einer Datenbanktabelle auftritt oder die Anzeige eines anderen Analyseergebnisses ;a label field of a screen surface window, the window containing the relative frequencies of the occurrences of a statistical variable occurring in a database table; the display, for example the displayed value, a relative frequency of occurrence of a statistical variable occurring in a database table or the display of another analysis result;
- die Bezeichnung einer Ausprägung einer statistischen Variablen oder die Bezeichnung einer Gruppe von Ausprägungen einer statistischen Variablen;- the designation of an expression of a statistical variable or the designation of a group of expressions of a statistical variable;
- die Bezeichnung einer statistischen Variablen oder die Bezeichnung einer Gruppe von statistischen Variablen .- the name of a statistical variable or the name of a group of statistical variables.
Anschaulich wird ein verbessertes Usability-Konzept, insbesondere für die Bedienung von Computerprogrammen, die die Abfrage von Datenbanken und die statistische Analyse von in einer Datenbank gespeicherten Daten erlauben, bereitgestellt . Es ist bevorzugt, dass das erste Analyseergebnis auf in einer ersten Datenbanktabelle enthaltenen Daten basiert und dass das zweite Analyseergebnis auf in einer zweiten Datenbanktabelle enthaltenen Daten basiert .Clearly, an improved usability concept is provided, in particular for the operation of computer programs which allow the query of databases and the statistical analysis of data stored in a database. It is preferred that the first analysis result is based on data contained in a first database table and that the second analysis result is based on data contained in a second database table.
Anschaulich dient das erste Fenster somit zur Analyse der ersten Datenbanktabelle und das zweite Fenster zur Analyse der zweiten Datenbanktabelle . Der Benutzer kann also über die Fenster hinweg Analyseergebnisse erzeugen, die insbesondere auf in der ersten Datenbanktabelle enthaltenen Daten und auf in der zweiten Datenbanktabelle enthaltenen Daten basieren.The first window thus serves to analyze the first database table and the second window to analyze the second database table. The user can therefore generate analysis results across the windows, based in particular on data contained in the first database table and on data contained in the second database table.
Beispielsweise ist die erste Datenbanktabelle eine Transaktionsdatenbanktabelle, die Daten über in einemFor example, the first database table is a transactional database table that has data in one
Baumarkt getätigte Transaktionen enthält, und die zweite Datenbank ist eine Kundendatenbanktabelle, die Daten über die Kunden des Baumarkts enthält . Ein Benutzer kann sich in einem ersten Fenster als erstes Analyseergebnis die Verteilung der Zufallsvariable "Gesamtumsatz der Kunden" (relativeThe second database is a customer database table containing data about the clients of the construction market. A user can look in a first window as the first analysis result the distribution of the random variable "total turnover of the customers" (relative
Häufigkeit der Gesamtumsätze der Kunden) anzeigen lassen. Das erste Fenster zeigt also beispielsweise in einer Tabelle an, dass 30% der Kunden des Baumarkts im Jahr 2004 einen Gesamtumsatz zwischen 100 Euro und 150 Euro durch Transaktionen gemacht haben (und entsprechend weitere Werte für andere Wertebereiche des Gesamtumsatzes) . Die erste Tabelle trägt beispielsweise den Titel "Gesamtumsatz der Kunden" . In einem zweiten Fenster wird ein zweites Analyseergebnis, das die Transaktionsdatenbank betrifft , angezeigt, beispielsweise in einer zweiten Tabelle, die mit "Produkte" betitelt ist, die relative Häufigkeit der gekauften Produkte . Beispielsweise enthält die zweite Tabelle den Eintrag, dass bei 3% aller Transaktionen Beet- und Balkonpflanzen gekauft wurden, bei 7% aller Transaktionen Gartenmöbel gekauft wurden usw.Frequency of total sales of customers). The first window, for example, shows in a table that in 2004, 30% of the clients of the DIY store made a total turnover between 100 and 150 euros through transactions (and correspondingly other values for other value ranges of the total turnover). For example, the first table has the title "Total customer revenue". In a second window, a second analysis result relating to the transaction database is displayed, for example in a second table titled "Products", the relative frequency of the products purchased. For example, the second table contains the entry that accounts for 3% of all transactions Balcony plants were bought, in 7% of all transactions were purchased garden furniture, etc.
Der Benutzer kann nun beispielsweise den Kunden über den Produkten aufschlüsseln lassen, also eine Analyseergebnis erzeugen und anzeigen lassen, das beispielsweise die Information enthält, dass 25% der Kunden im Rahmen von Käufen von Beet- und Balkonpflanzen einen Gesamtumsatz zwischen 100 Euro und 150 Euro gemacht haben {und entsprechend weitere Werte für andere Wertebereiche des Gesamtumsatzes und für andere Produkte) . Dies erreicht der Benutzer dadurch, dass er beispielsweise den Titelbalken des ersten Fensters, beispielsweise ein Feld mit der Zeichenkette "Gesamtumsatz der Kunden" auswählt und in das zweite Fenster verschiebt, anschaulich beispielsweise per Drag & Drop in das zweite Fenster zieht .The user can now, for example, let the customer break down on the products, ie generate and display an analysis result that contains, for example, the information that 25% of the customers in the context of purchases of bedding and balcony plants made a total turnover between 100 euros and 150 euros {and other values for other value ranges of total sales and other products). The user achieves this by, for example, selecting the title bar of the first window, for example a field with the string "total sales of the customers", and dragging it into the second window, for example by dragging and dropping it into the second window.
Die Anzeigeeinrichtung ist vorzugsweise ein Computerbildschirm.The display device is preferably a computer screen.
Die Auswahleinrichtung ist vorzugsweise eine Computermaus .The selection device is preferably a computer mouse.
Es kann als Anzeigeeinrichtung aber auch beispielsweise ein Touch-Screen verwendet werden und der Benutzer kann durch Berühren des Touch-Screens das erste Anzeigeelement auswählen und verschieben. Dementsprechend ist die Auswahleinrichtung ein Element des Touch-Screens .It can be used as a display device but also, for example, a touch screen and the user can select and move the first display element by touching the touch screen. Accordingly, the selector is an element of the touch screen.
Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert .Embodiments of the invention are illustrated in the figures and are explained in more detail below.
Figur 1 zeigt eine Computeranordnung gemäß einem Ausführungsbeispiel der Erfindung. Figur 2 zeigt eine erste Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.Figure 1 shows a computer arrangement according to an embodiment of the invention. FIG. 2 shows a first screen display of an Explorer computer program according to an exemplary embodiment of the invention.
Figur 3 zeigt eine zweite Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .FIG. 3 shows a second screen display of an Explorer computer program according to an exemplary embodiment of the invention.
Figur 4 zeigt eine dritte Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .FIG. 4 shows a third screen display of an Explorer computer program according to an exemplary embodiment of the invention.
Figur 5 zeigt eine vierte Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .FIG. 5 shows a fourth screen display of an Explorer computer program according to an exemplary embodiment of the invention.
Figur 6 zeigt eine fünfte Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.FIG. 6 shows a fifth screen display of an Explorer computer program according to an embodiment of the invention.
Figur 7 zeigt eine sechste Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.FIG. 7 shows a sixth screen display of an Explorer computer program according to an embodiment of the invention.
Figur 8 illustriert eine Cluster-Hierarchie entsprechend einem Datenbank-Abbild gemäß einem Ausführungsbeispiel der Erfindung.FIG. 8 illustrates a cluster hierarchy corresponding to a database image according to an embodiment of the invention.
Figur 9 illustriert einen Cluster gemäß einem Ausführungsbeispiel der Erfindung .FIG. 9 illustrates a cluster according to an exemplary embodiment of the invention.
Fig. l zeigt eine Computeranordnung 100 gemäß einem Ausführungsbeispiel der Erfindung. Ein Computersystem 101 ist mit einem Datenbanksystem 102 gekoppelt .1 shows a computer arrangement 100 according to an embodiment of the invention. A computer system 101 is coupled to a database system 102.
Das Computersystem 101 ist gemäß diesem Ausführungsbeispiel eine Personal Computer (PC) , kann j edoch auch ein anderer Computer sein, beispielsweise eine Workstation.The computer system 101 according to this embodiment is a personal computer (PC) but may also be another computer, for example a workstation.
Das Computersystem 101 weist einen Bildschirm 110, einen Mikroprozessor 103, einen Speicher 104 und verschiedene Eingabegeräte 111, beispielsweise eine Tastatur und eine Computermaus, auf.The computer system 101 includes a screen 110, a microprocessor 103, a memory 104, and various input devices 111, such as a keyboard and a computer mouse.
Das Datenbanksystem 102 ist ein Computersystem zum Speichern von Datenbanktabellen. Das Datenbanksystem 102 kann dementsprechend ein Computer sein, der mit einer hohenDatabase system 102 is a computer system for storing database tables. The database system 102 may accordingly be a high-end computer
Speicherkapazität ausgestattet ist und mit dem Computersystem 101 beispielsweise mittels einer Ethernet-Schnittstelle oder drahtlos, beispielsweise mittels Blue-tooth, gekoppelt ist . Das Datenbanksystem kann beispielsweise die Funktionsweise einer Oracle-Datenbank, einer Microsoft Access-Datenbank, einer Lotus 1-2-3-Datenbank oder einer dBase-Datenbank aufweisen.Memory capacity is equipped and with the computer system 101, for example by means of an Ethernet interface or wirelessly, for example by means of Blue-tooth coupled. For example, the database system may function as an Oracle database, a Microsoft Access database, a Lotus 1-2-3 database, or a dBase database.
In dem Datenbanksystem 102 sind eine Kundendatenbanktabelle 105 und eine TransationsDatenbanktabelle 106 gespeichert, die weiter unten genauer beschrieben werden .In the database system 102, a customer database table 105 and a transaction database table 106 are stored, which are described in more detail below.
In dem Speicher 104 des Computersystems 101 sind ein Kundendatenbanktabelle-Abbild 107, das heißt ein komprimiertes Abbild der Kundendatenbanktabelle 105, und ein Transaktionsdatenbanktabelle-Abbild 108 , das heißt ein komprimiertes Abbild der Transaktionsdatenbanktabelle 106, gespeichert . Das Kundendatenbanktabelle-Abbild 107 und das Transaktionsdatenbanktabelle-Abbild 108 sind anschaulich Datenstrukturen, die die Daten aus der Kundendatenbanktabelle 105 bzw. der Transaktionsdatenbanktabelle 106 in komprimierter Form enthalten.In the memory 104 of the computer system 101, a customer database table image 107, that is a compressed image of the customer database table 105, and a transaction database table image 108, that is a compressed image of the transaction database table 106, are stored. The customer database table image 107 and the transaction database table image 108 are illustrative Data structures that contain the data from the customer database table 105 or the transaction database table 106 in compressed form.
Die Art der Komprimierung sowie die Struktur des Kundendatenbanktabelle-Abbilds 107 und desThe type of compression and the structure of the customer database table image 107 and the
Transaktionsdatenbanktabelle-Abbilds 108 werden weiter unten detailliert beschrieben .Transaction database table image 108 will be described in detail below.
In einer anderen Ausführungsform ist das Datenbanksystem 102 Teil des Computersystems 101. Beispielsweise weist das Computersystem 101 eine Festplatte auf, in der die Kundendatenbanktabelle 105 und die Transaktionsdatenbanktabelle 106 gespeichert sind, und weist ferner einen Arbeitsspeicher auf, in dem das Kundendatenbanktabelle-Abbild 107 und dasIn another embodiment, the database system 102 is part of the computer system 101. For example, the computer system 101 has a hard disk in which the customer database table 105 and the transaction database table 106 are stored, and further has a working memory in which the customer database table image 107 and the
Transaktionsdatenbanktabelle-Abbild 108 abgespeichert sind, sodass insbesondere auf das Kundendatenbanktabelle-Abbild 107 und das Transaktionsdatenbanktabelle-Abbild 108 schnell zugegriffen werden kann .Transaction database table image 108 are stored, so that in particular the customer database table image 107 and the transaction database table image 108 can be accessed quickly.
In dem Speicher 104 ist ferner ein Explorer-Computerprogramm 109 gespeichert, das von dem Mikroprozessor 103 ausgeführt wird, und das es ermöglicht, Ergebnisse einer statistischen Analyse des Kundendatenbanktabelle-Abbilds 107 (und somit der Kundendatenbanktabelle 105) und desAlso stored in the memory 104 is an explorer computer program 109 executed by the microprocessor 103 that allows results of a statistical analysis of the customer database table image 107 (and thus the customer database table 105) and the client database
Transaktionsdatenbanktabelle-Abbilds 108 (und somit der Transaktionsdatenbanktabelle 106) auf dem Bildschirm 110 graphisch darzustellen.Transaction database table image 108 (and thus the transaction database table 106) on the screen 110 graphically.
Dies wird im Folgenden genauer erläutert . Fig.2 zeigt eine erste Bildschirmanzeige 200 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .This will be explained in more detail below. 2 shows a first screen display 200 of an Explorer computer program according to an embodiment of the invention.
Die erste Bildschirmanzeige 200 zeigt Ergebnisse einer statistischen Analyse des Kundendatenbanktabelle-Abbilds 107 und somit Ergebnisse einer statistischen Analyse der Kundendatenbanktabelle 105.The first screen display 200 shows results of a statistical analysis of the customer database table image 107 and thus results of a statistical analysis of the customer database table 105.
Die Kundendatenbanktabelle 105 enthält Informationen über die Kunden einen Baumarkts . So enthält die Kundendatenbanktabelle für jeden Kunden des Baumarkts (bzw. für j eden registrierten Kunden des Baumarkts) einen Kundendatensatz, der eine Kundennummer des Kunden, das Geschlecht des Kunden, die Einkommensklasse des Kunden und das Geburtsj ahr des Kunden enthält . Die Kundendatensätze, die in derThe customer database table 105 contains information about the customers of a hardware store. For example, the customer database table contains a customer data record for each customer of the DIY store (or for each registered customer of the DIY store) that contains a customer number of the customer, the gender of the customer, the income class of the customer and the year of birth of the customer. The customer records that are in the
Kundendatenbanktabelle 105 enthalten sind, können noch eine Vielzahl weiterer Informationen über den j eweiligen Kunden enthalten, in diesem Beispiel wird j edoch davon ausgegangen, dass sie nur die oben genannten Informationen enthalten .Customer database table 105 may still contain a variety of other information about the respective customer, in this example, however, it is assumed that they contain only the above information.
Das Kundendatenbanktabelle-Abbild 107 enthält entsprechend diese Informationen über die Kunden des Baumarkts in komprimierter Form, wie es weiter unten erläutert wird.The customer database table image 107 accordingly contains this information about the customers of the hardware store in compressed form, as explained below.
Das Explorer-Computerprogramm 109 erlaubt die Analyse der in dem Kundendatenbanktabelle-Abbild 107 enthaltenen Daten und die graphische Anzeige von Ergebnissen einer solchen Analyse .The Explorer computer program 109 allows the analysis of the data contained in the customer database table image 107 and the graphical display of results of such analysis.
In diesem Ausführungsbeispiel wurde mittels des Explorer- Computerprogramms 109 untersucht, wie die Altersverteilung der Kunden des Baumarkts ist und das Ergebnis von dem Explorer-Computerprogramm 109 in einem ersten Fenster 201 der ersten Bildschirmanzeige 200 dargestellt . Daraus ist ersichtlich, dass 68 , 65% der Baumarktkünden männlich sind und das 31, 33% der Baumarktkünden weiblich sind.In this embodiment, the Explorer computer program 109 examined how the age distribution of the clients of the building market is and the result of the Explorer computer program 109 in a first window 201 of the first screen 200 shown. From this it can be seen that 68. 65% of the building market announcements are male and that 31, 33% of the building market announcements are female.
Anschaulich führt das Explorer-Computerprogramm 109 diese Analyse durch, indem es alle Kundendatensätze zählt, die die Information enthalten, dass der den Kundendatensatz entsprechende Kunden männlich ist und alle Kundendatensätze zählt, die die Information enthalten, dass der entsprechende Kunde weiblich ist, und die Zählergebnisse mit der Gesamtzahl der Kundendatensätze ins Verhältnis setzt .Illustratively, Explorer computer program 109 performs this analysis by counting all customer records that contain the information that the customer corresponding to the customer record is male and counts all customer records that contain the information that the corresponding customer is female and the count results relative to the total number of customer records.
Ferner wurde mittels des Explorer-Computerprogramms 109 die Altersverteilung der Kunden des Baumarkts analysiert, indem Kundendatensätze gezählt wurden, die die Information enthalten, dass das Geburtsj ahr des entsprechenden Kunden in einem bestimmten Bereich liegt .Furthermore, the age distribution of the customers of the building market was analyzed by means of the Explorer computer program 109 by counting customer data records which contain the information that the birth year of the corresponding customer is within a certain range.
Das Ergebnis dieser Analyse der Altersverteilung wird in einem zweiten Fenster 202 der ersten Bildschirmanzeige 200 auf dem Bildschirm 110 angezeigt .The result of this age distribution analysis is displayed in a second window 202 of the first screen 200 on the screen 110.
Ferner wurde mittels des Explorer-Computerprogramms 109 untersucht, wie die Verteilung der Einkommensklassen bei den Baumarktkünden ist, und das Ergebnis dieser Analyse in einem dritten Fenster 203 der ersten Bildschirmanzeige 200 angezeigt . Es lässt sich erkennen, dass die meisten der Baumarktkunden (70, 14%) der Einkommensklasse 7 angehören.Furthermore, it was examined by means of the explorer computer program 109 how the distribution of the income classes in the home improvement market is, and the result of this analysis is displayed in a third window 203 of the first screen display 200. It can be seen that most of the DIY customers (70, 14%) belong to the income class 7.
Den Analysen, deren Ergebnisse in dem ersten Fenster 201 in dem zweiten Fenster 202 und in dem dritten Fenster 203 angezeigt werden, liegen alle Kundendatensätze zu Grunde, beispielsweise wurden alle Kundendatensätze gezählt, die die Information enthalten, dass der entsprechende Kunde männlich ist und ins Verhältnis zur Zahl aller Kundendatensätze gesetzt, um das entsprechende Analyseergebnis ( 68 , 65% ) zu ermitteln.The analyzes whose results are displayed in the first window 201 in the second window 202 and in the third window 203 are based on all customer records, for example, all customer records were counted, the Information indicates that the corresponding customer is male and set in proportion to the number of customer records to determine the corresponding analysis result (68, 65%).
Da alle Kundendatensätze den Analysen zu Grunde gelegt worden sind, wird in einem Selektionsinformationsfeld 204 der Wert 100% angezeigt . Das Selektionsinformationsfeld 204 enthält in einer anderen Ausführungsform ferner die Gesamtzahl der Kundendatensätze, die den Analysen zu Grunde gelegt wurden.Since all customer data records have been used as the basis for the analyzes, 100% is displayed in a selection information field 204. The selection information field 204, in another embodiment, further includes the total number of customer records that underlie the analyzes.
Die erste Bildschirmanzeige 200 weist, wie alle weiteren, in Fig.3 bis Fig.7 dargestellten Bildschirmanzeigen, ein erstes Auswahlfenster 205 und ein zweites Auswahlfenster 206 auf . Das erste Auswahlfenster 205 und das zweite Auswahlfenster 206 ermöglichen es dem Benutzer, einzustellen, dass weitere Fenster in dem Bereich neben dem ersten Auswahlfenster 205 und dem zweiten Auswahlfenster 206 angezeigt werden, beispielsweise Fenster mit Analyseergebnissen analog zu dem ersten Fenster 201, dem zweiten Fenster 202 und dem dritten Fenster 203, die andere statistische Variable betreffen, beispielsweise den Umsatz der Kunden des Baumarkts .The first screen display 200, like all other screen displays shown in FIGS. 3 to 7, has a first selection window 205 and a second selection window 206. The first selection window 205 and the second selection window 206 allow the user to set additional windows to be displayed in the area adjacent to the first selection window 205 and the second selection window 206, for example, windows having analysis results analogous to the first window 201, the second window 202 and the third window 203, which relate to other statistical variables, such as the sales of customers of the construction market.
Mittels des Explorer-Computerprogramms 109 kann wie erwähnt auch das Transaktionsdatenbanktabelle-Abbild 108 und somit die Transaktionsdatenbanktabelle 106 analysiert werden. Die Änalyseergebnisse können ebenfalls auf dem Bildschirm 110 angezeigt werden, Fig.3 stellt eine entsprechende Anzeige dar .As mentioned, the transactional database table image 108 and thus the transaction database table 106 can also be analyzed by means of the explorer computer program 109. The analysis results may also be displayed on the screen 110, Figure 3 shows a corresponding display.
Fig .3 zeigt eine zweite Bildschirmanzeige 300 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung. Zwischen der ersten Bildschirmanzeige 200 und der zweiten Bildschirmanzeige 300 kann beispielsweise mittels Betätigen (Klicken) eines Icons in einer Toolbar hin- und hergewechselt werden.FIG. 3 shows a second screen display 300 of an Explorer computer program according to an embodiment of the invention. For example, switching between the first screen display 200 and the second screen display 300 can be accomplished by operating (clicking) an icon in a toolbar.
In diesem Ausführungsbeispiel enthält die Transaktionsdatenbanktabelle 106 eine Vielzahl von Transaktionsdatensätzen . Jeder Transaktionsdatensatz entspricht einer Transaktion, das heißt einem Verkaufsvorgang in dem Baumarkt und enthält eine Transaktionsnummer, die die Transaktion eindeutig identifiziert, eine Spezifikation des im Laufe der Transaktion verkauften Produkts, die Angabe des Brutto-Verkaufswerts bei der Transaktion, das Datum der Transaktion sowie die Kundennummer des Kunden, der an der Transaktion beteiligt war, das heißt der das verkaufteIn this embodiment, the transaction database table 106 includes a plurality of transaction records. Each transaction record corresponds to a transaction, ie, a sales transaction in the hardware store, and contains a transaction number that uniquely identifies the transaction, a specification of the product sold during the transaction, the gross sales value of the transaction, the date of the transaction, and the transaction Customer number of the customer involved in the transaction, that is, the one sold
Produkt gekauft hat . Diese Informationen sind entsprechend in dem Transaktionsdatenbanktabelle-Abbild 108 in komprimierter Form enthalten .Bought a product. This information is correspondingly included in the transaction database table image 108 in compressed form.
Die zweite Bildschirmanzeige 300 zeigt in einem erstenThe second screen 300 shows in a first
Fenster 301 die Ergebnisse einer Analyse, wie oft bestimmte Produkte bei den Transaktionen im Baumarkt im Verhältnis zu allen Transaktionen des Baumarkts von Kunden gekauft worden sind.Window 301 shows the results of an analysis of how often certain products in the hardware store transactions have been purchased by customers in relation to all DIY store transactions.
Beispielsweise wurden bei 24, 07% aller Transaktionen des Baumarkts Technik-Produkte gekauft . Die Gruppen von Produkten, wie beispielsweise "Technik" , "Ambiente" und "Garten" sind genauer eingeteilt, beispielsweise weist die Produktgruppe "Garten" die Untergruppe "Garten/Zäune und Zubehör" sowie die Untergruppe "Pflanzen" auf. Die Untergruppe "Pflanzen" ist ferner unterteilt in "Beet- und Balkonpflanzen" , "Baumschulware", "Zimmerpflanzen" usw. Aus dem ersten Fenster ist ersichtlich, dass bei 6, 68% aller Transaktionen des Baumarkts Beet- und Balkonpflanzen verkauft wurden .For example, 24, 07% of all DIY store transactions have bought technology products. The groups of products such as "technology", "ambiance" and "garden" are more detailed, for example, the product group "garden" has the subgroup "garden / fences and accessories" and the subgroup "plants". The subgroup "plants" is further subdivided into "bedding and balcony plants", "nursery products", "indoor plants" etc. From the first window it can be seen that in 6, 68% of all construction market transactions bedding and balcony plants were sold.
Dieses Analyseergebnis wird dadurch erzielt, dass alleThis analysis result is achieved by all
Transaktionsdatensätze gezählt werden, die die Information enthalten, das bei der entsprechenden Transaktion Beet- und Balkonpflanzen verkauft wurden. Das Zählergebnis wird zu der Gesamtzahl der Transaktionsdaten ins Verhältnis ergibt, woraus sich der prozentuale Wert ( 6, 68%) ergibt .Transaction records are counted that contain the information that was sold in the relevant transaction bedding and balcony plants. The count result is related to the total number of transaction data, giving the percentage value (6.68%).
In einem zweiten Fenster 302 wird das Ergebnis einer Analyse angezeigt, wie sich die Zahl der Transaktionen auf das Jahr verteilt .A second window 302 displays the result of an analysis of how the number of transactions is distributed over the year.
So ist beispielsweise erkennbar, dass 9, 01% aller Transaktionen im März durchgeführt wurden. Dieses Ergebnis wird dadurch ermittelt, dass die Anzahl der Transaktionsdatensätze, die die Information enthalten, dass die entsprechende Transaktion an einem Tag im März durchgeführt wurde, was sich durch die Auswertung des Datums der Transaktion bestimmen lässt, bestimmt wird und die Anzahl zu der Gesamtzahl der Transaktionsdatensätze ins Verhältnis gesetzt wird .For example, it can be seen that 9.1% of all transactions were conducted in March. This result is determined by determining the number of transaction records containing the information that the transaction was committed on a single day in March, which can be determined by evaluating the date of the transaction, and adding the number to the total number of transactions Transaction records.
In einem dritten Fenster wird das Ergebnis einer Analyse der Verteilung des Bruttoverkaufswerts auf die Transaktionen dargestellt . Beispielsweise ist erkennbar, dass bei 13, 72% aller Transaktionen der Brutto-Verkaufswert zwischen 10 Euro und 25 Euro lag.A third window displays the result of an analysis of the gross sales value distribution on the transactions. For example, it can be seen that for 13, 72% of all transactions, the gross sales value was between 10 and 25 euros.
Den Analysen, deren Ergebnisse in dem ersten Fenster 301 , in dem zweiten Fenster 302 bzw. in dem dritten Fenster 303 angezeigt werden, liegen alle Transaktionsdatensätze zu Grunde, weshalb analog zu Fig.2 in einem Selektions- Informationsfeld 304 der Wert 100% angezeigt wird. Im Weiteren wird ein Beispiel erläutert, bei dem eine Analyse nur ein Teil der Transaktionsdatensätze zu Grunde gelegt werden.The analyzes whose results are displayed in the first window 301, in the second window 302 and in the third window 303 are all assigned to transaction records Basically, why analogous to Figure 2 in a selection information field 304, the value 100% is displayed. In the following, an example is explained in which an analysis is based on only a part of the transaction data sets.
Fig .4 zeigt eine dritte Bildschirmanzeige 400 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .4 shows a third screen 400 of an explorer computer program according to an embodiment of the invention.
Die dritte Bildschirmanzeige 400 geht aus der zweiten Bildschirmanzeige 300 hervor, wenn ein Benutzer mittels eines der Eingabegeräte 111 in dem ersten Fenster 301 der zweiten Bildschirmanzeige, das einem ersten Fenster 401 entspricht, Beet- und Balkonpflanzen auswählt, und in dem zweiten Fenster 302 der zweiten Bildschirmanzeige 300, das einem zweiten Fenster 402 entspricht, März 2003 auswählt .The third screen 400 emerges from the second screen 300 when a user selects bed and balcony plants by means of one of the input devices 111 in the first window 301 of the second screen corresponding to a first window 401, and the second window 302 of the second Screen 300 corresponding to a second window 402 selects March 2003.
Beispielsweise klickt der Benutzer mittels einer Computermaus auf den Wert 6, 68 in dem ersten Fenster 301 der zweiten Bildschirmanzeige 300 , wodurch dieser durch einen ersten Balken 404 und den Wert 100 ersetzt wird, wie in dem ersten Fenster 401 dargestellt ist . Analog wird angenommen, das der Benutzer beispielsweise in dem zweiten Fenster 302 der zweiten Bildschirmanzeige 300 auf den Wert 9, 01 mittels einer Computermaus geklickt hat, wodurch dieser Wert durch einen zweiten Blaken 405 und den Wert 100 ersetzt wird, wie es in dem zweiten Fenster 402 dargestellt ist .For example, by means of a computer mouse, the user clicks the value 6, 68 in the first window 301 of the second screen display 300, replacing it with a first bar 404 and the value 100, as shown in the first window 401. By analogy, it is assumed that the user has clicked on the value 9, 01 by means of a computer mouse, for example in the second window 302 of the second screen display 300, whereby this value is replaced by a second sheet 405 and the value 100, as in the second window 402 is shown.
Der erste Balken 404 zeigt an, dass nun nurThe first bar 404 indicates that now only
Transaktionsdatensätze ausgewählt (selektiert) sind, die die Information enthalten, das bei der entsprechenden Transaktion eine Beet- und Balkonpflanze verkauft wurde . Der zweite Balken 405, der wie der erste Balken 404 in einer auffälligen Farbe, beispielsweise rot, angezeigt wird, zeigt an, dass nur solche Transaktionsdatensätze ausgewählt sind, die die Informationen enthalten, dass die entsprechende Transaktion ira März 2003 durchgeführt wurde .Transaction records are selected that contain the information that a bed and balcony plant was sold in during the transaction. The second bar 405, which, like the first bar 404, is displayed in a distinctive color, such as red, indicates that only such transaction records are included that contain the information that the corresponding transaction was made in March 2003.
Insgesamt sind also alle Transaktionsdatensätze ausgewählt, die die Information enthalten, dass die entsprechenden Transaktionen im März 2003 durchgeführt wurden und dass eine Beet- und Balkonpflanze im Rahmen der Transaktion verkauft wurde .Overall, all transaction records are then selected that contain the information that the corresponding transactions were made in March 2003 and that a bedding and balcony plant was sold as part of the transaction.
Entsprechend ist nur ein Bruchteil der Gesamtzahl von Transaktionsdatensätze selektiert . In diesem Beispiel entsprechen 1 , 3% aller Transaktionsdatensätze Transaktionen, bei denen im März eine Beet- und Balkonpflanze verkauft wurde . Dies wird in einem Selektions-Informationsfeld 406, das dem Selektions-Informationsfeld 304 in der zweiten Bildschirmanzeige 300 entspricht, dargestellt .Accordingly, only a fraction of the total number of transaction records is selected. In this example, 1.3% of all transaction records are transactions that sold a flowerbed and balcony plant in March. This is shown in a selection information field 406 corresponding to the selection information field 304 in the second screen display 300.
Die selektierten (ausgewählten) Datensätze werden den Analysen zu Grunde gelegt, deren Ergebnisse in dem ersten Fenster 401, in dem zweiten Fenster 402 bzw. in dem dritten Fenster 403 angezeigt werden .The selected (selected) data records are based on the analyzes whose results are displayed in the first window 401, in the second window 402 and in the third window 403, respectively.
Da alle ausgewählten Transaktionsdatensätze die Information enthalten, dass bei der j eweiligen Transaktion eine Beet- und Balkonpflanze verkauft wurde, wurde bei 100% aller selektierten Transaktionen, das heißt den selektierten Transaktionsdatensätzen entsprechenden Transaktionen, Beet- und Balkonpflanzen verkauft, was durch den Wert 100 in dem ersten Balken 404 angezeigt wird. Analog wurden entsprechend der Auswahl derSince all of the selected transaction records contain the information that a bedding and balcony plant was sold during the current transaction, bedding and balcony plants were sold in 100% of all selected transactions, ie transactions corresponding to the selected transaction records, which is represented by the value 100 in the first bar 404 is displayed. Analogously, according to the selection of the
Transaktionsdatensätze 100% aller selektierten Transaktionen im März 2003 durchgeführt, was durch die Zahl 100 in dem zweiten Balken 405 dargestellt ist .Transaction records performed 100% of all selected transactions in March 2003, represented by the number 100 in the second bar 405.
Ein nichttriviales Analyseergebnis ist hingegen in dem dritten Fenster 403 dargestellt .A nontrivial analysis result, however, is shown in the third window 403.
Beispielsweise ist ersichtlich, dass bei 82 , 45% aller selektierten Transaktionen der Bruttoverkaufswert unter 5For example, it can be seen that in 82, 45% of all selected transactions, the gross sales value is below 5
Euro liegt . Das heißt, dass bei allen Transaktionen, die im März 2003 stattfanden und bei denen eine Beet- und Balkonpflanze verkauft wurde, der Bruttoverkaufswert unter 5 Euro lag.Euro is. This means that for all transactions that took place in March 2003 and in which a bed and balcony plant was sold, the gross sales value was less than 5 euros.
Nun sei angenommen, dass ein Verkaufsmanager des Baumarkts eine Analyse der Altersverteilung derj enigen Kunden durchführen möchte, die im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben. Der Verkaufsmanager könnte diese Analyse durchführen wollen, um zu ermitteln, ob es sich lohnt, im nächsten März eine "Geranien für Rentner"- Rabattaktion zu starten .Now assume that a DIY store sales manager wants to perform an analysis of the age distribution of some customers who bought at least one bedding and balcony plant in March 2003. The sales manager may want to conduct this analysis to determine whether it is worth starting a "geranium for retiree" discount sale next March.
Der Verkaufsmanager startet dazu das Explorer- Computerprogramm 109 auf Basis des Kundendatenbanktabelle- Abbilds 107, sodass die erste Bildschirmanzeige 200 auf dem Bildschirm 110 angezeigt wird.The sales manager starts the Explorer computer program 109 on the basis of the customer database table image 107, so that the first screen display 200 is displayed on the screen 110.
Anschließend startet er eine neue Instanz des Explorer- Computerprogramms 109 (oder öffnet ein weiteres Fenster in dem Explorer-Computerprogramm 109) auf Basis des Transaktionsdatenbanktabelle-Abbilds 108 , sodass die zweite Bildschirmanzeige 300 auf dem Bildschirm 110 angezeigt wird. Anschließend wertet der Verkaufmanager wie oben mit Bezug auf Fig.4 beschrieben, Beet- und Balkonpflanzen in dem ersten Fenster 301 der zweiten Bildschirmanzeige 300 sowie März 2003 in dem zweiten Fenster 302 der zweiten Bildschirmanzeige 300 aus, sodass die zweite Bildschirmanzeige 300 in die dritte Bildschirmanzeige 400 übergeht .Then, it launches a new instance of the explorer computer program 109 (or opens another window in the explorer computer program 109) based on the transaction database table image 108 so that the second screen display 300 is displayed on the screen 110. Subsequently, the sales manager evaluates, as described above with reference to FIG. 4, bed and balcony plants in the first window 301 of the second screen display 300 and March 2003 in the second window 302 of the second screen display 300, so that the second screen display 300 enters the third screen display 400 passes.
Anschließend wechselt der Verkaufsmanager, beispielsweise durch Klicken auf ein entsprechendes Icon, zu der ersten Bildschirmanzeige 200, die gemäß der Selektion j edoch in die vierte Bildschirmanzeige 500 übergegangen ist, die in Fig .5 dargestellt ist .Subsequently, the sales manager changes, for example by clicking on a corresponding icon, to the first screen display 200, which according to the selection j, however, has passed into the fourth screen display 500, which is shown in FIG.
Fig.5 zeigt eine vierte Bildschirmanzeige 500 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.5 shows a fourth screen display 500 of an Explorer computer program according to an embodiment of the invention.
Gemäß der Selektion aller Transaktionen, die im März 2003 durchgeführt wurden und bei denen eine Beet- und Balkonpflanze verkauft wurde, werden den Analysen, deren Ergebnisse in einem ersten -Fenster 501, das dem ersten Fenster 201 der ersten Bildschirmanzeige 200 entspricht, in einem zweiten Fenster 502 , das dem zweiten Fenster 202 der ersten Bildschirmanzeige 200 entspricht, beziehungsweise in einem dritten Fenster 503, das dem dritten Fenster 203 der ersten Bildschirmanzeige 200 entspricht, dargestellt werden, genau die Kundendatensätze zu Grunde gelegt, die Kunden entsprechen, die im März 2003 eine Beet- und Balkonpflanze gekauft haben.According to the selection of all transactions carried out in March 2003 in which a bedding and balcony plant was sold, the analyzes whose results in a first window 501 corresponding to the first window 201 of the first screen display 200, in a second Window 502, which corresponds to the second window 202 of the first screen display 200, or in a third window 503, which corresponds to the third window 203 of the first screen 200, are represented, based exactly the customer records that correspond to customers in March 2003 bought a bed and balcony plant.
Dies erfolgt dadurch, dass in demThis is done by having in the
Transaktionsdatenbanktabelle-Abbild 108 alle diejenigen Kundennummern bestimmt werden, die jeweils einem Transaktionsdatensatz entsprechen, der einer Transaktion entspricht, die im März 2003 durchgeführt wurde und in deren Rahmen ein Kunde (nämlich der durch die Kundennummer spezifizierte Kunde) eine Beet- und Balkonpflanze gekauft hat . Den Analysen, deren Ergebnisse in dem ersten Fenster 501 , in dem zweiten Fenster 502 bzw. in dem dritten Fenster 503 angezeigt werden, werden nun genau die Kundendatensätze zu Grunde gelegt, welche eine der so bestimmten Kundennummern enthalten. Diese Kundendatensätze werden im Folgenden als die selektierten Kundendatensätze bezeichnet .Transaction database table image 108 all those customer numbers are determined, each corresponding to a transaction record that a transaction which was completed in March 2003 and in which a customer (namely the customer specified by the customer number) has bought a bed and balcony plant. The analyzes, whose results are displayed in the first window 501, in the second window 502 and in the third window 503, are now based exactly on the customer records, which contain one of the thus determined customer numbers. These customer records are referred to below as the selected customer records.
Anschaulich wird die Kundennummer als Datenbank-Schlüssel verwendet, der zusammengehörige Kundendatensätze und Transaktionsdatensätze miteinander verknüpft .Illustratively, the customer number is used as a database key that links related customer records and transaction records together.
Entsprechend der Selektion der Kundendatensätze wird in einem Selektions-Informationsfeld 504 , das dem Selektions- Informationsfeld 204 der ersten Bildschirmanzeige 200 entspricht, der Anteil der selektierten Kundendatensätze an der Gesamtzahl der Kundendatensätze angezeigt, in diesem Beispiel 1, 02% . Das heißt, dass 1, 02% der (registrierten)In accordance with the selection of the customer data records, the proportion of the selected customer data records in the total number of customer data records is displayed in a selection information field 504 corresponding to the selection information field 204 of the first screen display 200, in this example 1.02%. This means that 1, 02% of the (registered)
Kunden des Baumarkts im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben .In March 2003, customers of the DIY store bought at least one bed and balcony plant.
Die selektierten Kundendatensätze werden den Analysen, deren Ergebnisse in dem ersten Fenster 501, in dem zweiten Fenster 502 bzw . in dem dritten Fenster 503 angezeigt werden, zu Grunde gelegt .The selected customer data records are sent to the analyzes, the results of which in the first window 501, in the second window 502 or in the second window 502. are displayed in the third window 503.
Aus dem ersten Fenster 501 ist beispielsweise erkennbar, dass 57 , 93% aller Kunden, die im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben, männlich sind.For example, from the first window 501 it can be seen that 57. 93% of all customers who bought at least one bedding and balcony plant in March 2003 are male.
Aus dem dritten Fenster 503 ist erkennbar, dass 79, 41% der selektierten Kunden, das heißt der Kunden, die den selektierten Kundendatensätzen entsprechen, der Einkommensklasse 7 angehören.It can be seen from the third window 503 that 79, 41% of the selected customers, that is to say the customers, who owns the selected customer records that belong to income class 7.
Den Verkaufsmanager interessiert in diesem Beispiel jedoch das Ergebnis der Analyse, dessen Ergebnis in dem zweiten Fenster 502 angezeigt ist .However, in this example, the sales manager is interested in the result of the analysis, the result of which is displayed in the second window 502.
Es lässt sich erkennen, dass 19, 25% aller Kunden, die im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben, zwischen 1930 und 1939 geboren worden sind.It can be seen that 19, 25% of all customers who bought at least one bed and balcony plant in March 2003 were born between 1930 and 1939.
Durch Vergleich mit dem zweiten Fenster 202 der ersten Bildschirmanzeige 100 lässt sich erkennen, dass der Anteil der zwischen 1930 und 1939 geborenen Kunden, die im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben an allen Kunden, die im März 2003 mindestens ein Beet- und Balkonpflanze gekauft haben, größer ist (19, 25% ) als der Anteil der zwischen 1930 und 1939 geborenen Kunden des Baumarkts an allen Kunden des Baumarkts (10 , 95% ) .By comparison with the second window 202 of the first screen display 100, it can be seen that the proportion of customers born between 1930 and 1939 who bought at least one bed and balcony plant in March 2003 for all customers who in March 2003 had at least one bed and balcony plant is larger (19, 25%) than the share of the building market customers born between 1930 and 1939 to all customers of the construction market (10, 95%).
Der Verkaufsmanager könnte daraus folgern, dass es sich durchaus lohnen könnte, im nächsten März eine "Geranien für Rentner"-Rabattaktion zu starten.The sales manager might conclude that it might well be worth starting a "Geranium for Retiree" discount campaign next March.
Anschaulich liegen die Daten in dem oben beschriebenenIllustratively, the data are in the one described above
Ausführungsbeispiel nicht in Form einer sogenannten flachen Datenstruktur vor, das heißt in einer einzigen Datenbanktabelle, sondern sind auf mehrere Datenbanktabellen, in diesem Beispiel die Kundendatenbanktabelle 105 und die Transaktionsdatenbanktabelle 106 verteilt . Die Kundendatenbanktabelle 105 und dieEmbodiment not in the form of a so-called flat data structure before, that is in a single database table, but are distributed to multiple database tables, in this example, the customer database table 105 and the transaction database table 106. The customer database table 105 and the
Transaktionsdatenbanktabelle 106 stehen mittels der Kundennummer in einer 1 : n-Beziehung, da in diesem Beispiel ein Kunde an mehreren Transaktionen beteiligt sein kann. In anderen Ausführungsformen sind auch m: n-Beziehungen denkbar, beispielsweise wenn eine Kunde an mehreren Transaktionen beteiligt sein kann, und mehrere Kunden gemeinsam eine Transaktion durchführen können.Transaction database table 106 is in a 1: n relationship using the customer number because in this example, a customer may be involved in multiple transactions. In In other embodiments, m: n relationships are also conceivable, for example, if a customer may be involved in multiple transactions, and multiple customers can perform a transaction together.
In einer Ausführungsform wird, wenn eine Selektion gemäß Fig .4 durchgeführt wurde, in der ersten Bildschirmanzeige 200 ein weiteres Fenster angezeigt, mittels welchem der Benutzer auswählen kann, ob die Selektion gemäß Fig.4 den Analysen, deren Ergebnisse in dem ersten Fenster 201, in dem zweitenIn one embodiment, when a selection has been made in accordance with FIG. 4, a further window is displayed in the first screen 200, by means of which the user can select whether the selection according to FIG. 4 shows the analyzes whose results in the first window 201, FIG. in the second
Fenster 202 und dem dritten Fenster 203 dargestellt sind, zu Grunde gelegt werden soll . Beispielsweise kann das weitere Fenster in den Zustand "Ja" versetzt werden, was die Bedeutung hat, dass die Selektion gemäß Fig .4 den Analysen zu Grunde gelegt wird. Dieser Zustand kann in dem weiterenWindow 202 and the third window 203 are to be based. For example, the additional window can be set to the state "yes", which means that the selection according to FIG. 4 is used as the basis for the analyzes. This condition may be in the further
Fenster (statt "Ja" ) auch beispielsweise bezeichnet sein mit "Kunde hat Transaktionen, die den Selektion in der anderen Datenbanktabelle entsprechen", oder "Kunde hat Transaktionen durchgeführt mit Produkt=Beetpflanzen, Verkaufswert brutto<5, Transaktionenmonat=März03" . Entsprechend kann das weitereWindow (instead of "Yes") may also be labeled, for example, as "Customer has transactions that match the selection in the other database table," or "Customer has done transactions with product = bedding plants, gross sales value <5, transaction month = March03". Accordingly, the other
Fenster einen Zustand "Nein" (oder entsprechend bezeichneten Zustand) aufweisen . Der Benutzer, in diesem Beispiel der Verkaufmanager, kann das weitere Fenster durch Verwendung beispielsweise einer Computermaus in einen der beiden Zustände versetzen, d. h. eine Selektion eines der beiden Zustände vornehmen und dadurch bestimmen, ob die derzeit eingetragenen Selektionen in der anderen Datenbanktabelle bei der Auswertung dieser Datenbanktabelle berücksichtigt werden sollen.Windows have a state "no" (or correspondingly designated state). The user, in this example the sales manager, can put the further window in one of the two states by using, for example, a computer mouse, i. H. make a selection of one of the two states and thereby determine whether the currently entered selections in the other database table should be taken into account when evaluating this database table.
Das weitere Fenster kann seine Benennung und die Wirkung von darin vorgenommenen Selektionen wahlweise behalten, wenn die Selektion in der zweiten Bildschirmanzeige verändert wird, oder automatisch anpassen. Je nachdem wird sich also die erste Bildschirmanzeige entweder weiter auf Beetpflanzen beziehen (wenn beispielsweise der Modus "beibehalten" aktiviert ist) oder auf Bohrmaschinen wechseln, wenn man die Selektion in der zweiten Anzeige von Beetpflanzen auf Bohrmaschinen ändert .The further window may optionally retain its designation and the effect of selections made therein when the selection in the second screen display is changed, or adjust automatically. Depending on that, so will the either continue to refer to bedding plants (for example, if the "keep" mode is activated) or switch to drilling machines, if you change the selection in the second display of bedding plants on drills.
DatenbanktabelleFerner (und ausgehend davon, dass in dem oben beschriebenen weiteren Fenster "ja" selektiert wurde, d. h. die Selektion gemäß Fig.4 übernommen wurde) kann mittels der vierten Bildschirmanzeige 500 analog zu der drittenDatabase Table Further (and assuming that "yes" was selected in the further window described above, i.e. the selection was adopted according to Fig. 4), by means of the fourth screen display 500 analogous to the third one
Bildschirmanzeige 400 eine erneute Selektion, in diesem Fall von Kunden, durchgeführt werden . Entsprechend dieser Selektion können mittels des gemeinsamen Schlüssels (Kundennummer) des Transaktionsdatenbanktabelle-Abbilds 108 und des Kundendatenbanktabelle-Abbilds 107 Transaktionen ausgewählt werden, die den Analysen zu Grunde gelegt werden, deren Ergebnisse in der dritten Bildschirmanzeige dargestellt sind. Beispielsweise könnte der Benutzer in der vierten Bildschirmanzeige 500 die Kunden selektieren, die im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben und die der Einkommensklasse sechs angehören, beispielsweise durch Klicken auf den Wert 2, 87 in dem dritten Fenster 503.Screen 400 a re-selection, in this case by customers, be performed. According to this selection, by means of the common key (customer number) of the transaction database table image 108 and the customer database table image 107, it is possible to select transactions on which the analyzes are based, the results of which are shown in the third screen display. For example, in the fourth screen 500, the user could select the customers who purchased at least one bed and balcony plant in March 2003 and who belong to income class six, for example by clicking on the value 2, 87 in the third window 503.
Ist der Modus der weiteren Fenster auf „beibehalten" eingestellt, so kann die im letzten Absatz beschriebene, im Zusammenspiel von Transaktionstabelle und Kundentabelle bestimmte Auswahl von Kunden wieder in die Transaktionswelt zurückübertragen werden, so dass mehr über die anderen Transaktionen dieser Kundengruppe erfahren werden kann als die bisher definierten Beet- und Balkonpflanzen im März . Dazu werden zunächst die Selektionen in der dritten Bildschirmanzeige wieder entfernt (was entsprechend des Modus "beibehalten" keine Auswirkungen auf die vierte Bildschirmanzeige 400 hat ) und in dem dort angezeigten weiteren Fenster der Zustand „j a" selektiert, wodurch die gegenwärtig in der vierten Bildschirmanzeige 400 aktive Kundenliste in die dritte Bildschirmanzeige 300 übernommen wird. Entsprechend würde sich die dritte Bildschirmanzeige 300 verändern und in dem dritten Fenster 403 nun die Verteilung der Brutto-Verkaufswerte der Transaktionen angezeigt, die von Kunden getätigt werden, die der Einkommensklasse sechs angehören und im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben.If the mode of the other windows is set to "maintained", the selection of customers defined in the last paragraph, in the interaction between the transaction table and the customer table, can be transferred back to the transaction world, so that more information about the other transactions of this customer group can be found the previously defined bedding and balcony plants in March. To do this, the selections in the third screen display are first removed (which has no effect on the fourth screen 400 according to the "keep" mode) and in the one displayed there further windows select the state "yes", whereby the customer list currently active in the fourth screen 400 is transferred to the third screen 300. Accordingly, the third screen 300 would change and in the third window 403 the distribution of the gross sales values of the transactions displayed by customers who are in income class six and bought at least one bed and balcony plant in March 2003.
Die Selektion lässt sich nun weiter fortsetzen. Auf diese Weise lassen sich komplizierte Fragen beantworten, wie beispielsweise die Frage "Was kaufen Kunden im September, die im Mai Gartenzäune gekauft haben? " . Dies kann ein Verkaufsmanager strategisch ausnutzen, beispielsweise für die Entscheidung, ob im Herbst Farben für Gartenzäune angeboten werden sollen, wenn in einem Jahr im Frühj ahr besonders viele Gartenzäune verkauft wurden .The selection can now be continued. In this way, complex questions can be answered, such as the question "What do customers buy in September who bought garden fences in May?". This can be strategically exploited by a sales manager, for example, to decide whether or not to sell garden fences in the fall if a lot of garden fences were sold in one year in the spring.
In dem oben beschriebenen Ausführungsbeispiel werden zwei Datenbank-Abbilder kombiniert, die anschaulich unterschiedliche Sichten wiedergeben. So entspricht das Kundendatenbanktabelle-Abbild 107 einer Sicht auf die Kunden des Baumarkts und das Transaktionsdatenbanktabelle-Abbild 108 einer Sicht auf die Transaktionen, die in dem Baumarkt getätigt wurden.In the embodiment described above, two database images are combined that vividly represent different views. Thus, the customer database table image 107 corresponds to a view of the customers of the hardware store and the transaction database table image 108 of a view of the transactions made in the hardware store.
Im Folgenden werden mit Bezug auf Fig.6 und Fig.7 weitere Bildschirmanzeigen erläutert, die Ergebnisse von Analysen darstellen, die von dem Explorer-Computerprogramm 109 durchgeführt wurden. Fig.6 zeigt eine fünfte Bildschirmanzeige 600 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.In the following, with reference to FIG. 6 and FIG. 7, further screen displays representing results of analyzes performed by the Explorer computer program 109 will be explained. 6 shows a fifth screen display 600 of an Explorer computer program according to an embodiment of the invention.
Die fünfte Bildschirmanzeige 600 geht aus der dritten Bildschirmanzeige 400 hervor.The fifth screen 600 is shown in the third screen 400.
Die fünfte Bildschirmanzeige 600 enthält (teilweise) ein erstes Fenster 601, das dem ersten Fenster 301 der zweiten Bildschirmanzeige 300 entspricht . Die fünfteThe fifth screen display 600 includes (partially) a first window 601 corresponding to the first window 301 of the second screen display 300. The fifth
Bildschirmanzeige 600 enthält ferner (teilweise) ein zweites Fenster 602 , das dem dritten Fenster 303 der zweiten Bildschirmanzeige 300 entspricht .Screen 600 further includes (partially) a second window 602 that corresponds to third window 303 of second screen display 300.
In einem dritten Fenster 603 ist das Ergebnis einer Analyse dargestellt, bei der für verschiedene Produktgruppen jeweils bestimmt wurde, wie hoch der Anteil der Transaktionen ist, bei denen ein Produkt aus der j eweiligen Produktgruppe verkauft wurde und bei denen der Brutto-Verkaufswert unter 5 Euro lag, an allen Transaktionen, bei denen ein Produkt der j eweiligen Produktgruppe verkauft wurden ist .A third window 603 shows the result of an analysis, in which it was determined for each product group how high the proportion of transactions in which a product from the respective product group was sold and in which the gross sales value was less than 5 euros all transactions in which a product of the respective product group was sold.
Beispielsweise ist mittels eines ersten Balkens 604 dargestellt, dass bei etwa 60% aller Transaktionen, bei denen ein Produkt aus der Produktgruppe "Technik" verkauft wurde, der Brutto-Verkaufwert unter 5 Euro lag. Entsprechende Balken sind für die Produktgruppen "Ambiente", "Garten" , "Baustoffe/Sanitär" usw. dargestellt .For example, a first bar 604 shows that in about 60% of all transactions where a Product was sold from the Product Group "Technology", the gross sales value was below € 5. Corresponding bars are shown for the product groups "Ambiente", "Garten", "Baustoffe / Sanitär" etc.
Anschaulich wird die Ausprägung "unter 5 Euro" derThe expression "less than 5 euros" becomes clear
Zufallsvariable "Brutto-Verkaufswert" über die Produktgruppen aufgeschlüsselt . Der Benutzer des Explorer-Computerprogramms 109 kann die fünfte Bildschirmanzeige 600 aus der drittenRandom variable "gross sales value" broken down by product group. The user of the explorer computer program 109 may select the fifth screen display 600 from the third
Bildschirmanzeige 400 erzeugen, indem er den Wert ( 65, 84 ) für die Ausprägung "<5" in dem dritten Fenster 403 der dritten Bildschirmanzeige 400 mit einer Computermaus anklickt, die Maustaste gedrückt hält und den Wert in das erste Fenster 401 der dritten Bildschirmanzeige 400 zieht (drag and drop) .Display screen 400 by clicking on the value (65, 84) for the expression "<5" in the third window 403 of the third screen 400 with a computer mouse holding the mouse button pressed and the value in the first window 401 of the third screen 400 pulls (drag and drop).
Allgemein lässt sich eine Ausprägung einer ersten Zufallsvariable über einer zweiten Zufallsvariable aufschlüsseln, indem der Wert für die relative Häufigkeit der Ausprägung der ersten Zufallsvariable mittels drag and drop in ein Fenster, in dem die relativen Häufigkeiten der Ausprägungen der zweiten Zufallsvariable dargestellt sind, hineingezogen wird . Dies kann auch über eineIn general, an expression of a first random variable over a second random variable can be broken down by dragging the value for the relative frequency of the expression of the first random variable into a window in which the relative frequencies of the occurrences of the second random variable are represented. This can also have one
Bildschirmanzeige hinweg geschehen. Beispielsweise kann der Benutzer den Wert ( 65 r 84) für die Ausprägung "<5" in dem dritten Fenster 403 der dritten Bildschirmanzeige 400 mit einer Computermaus anklicken, durch einen entsprechenden Befehl in die fünfte Bildschirmanzeige 500 wechseln und in das erste Fenster 501 ziehen. Dementsprechend würde die Ausprägung "unter 5 Euro" der Zufallsvariable "Brutto- Verkaufswert" über die Geschlechter aufgeschlüsselt und beispielsweise ein Balken angezeigt, aus dem hervorgeht, dass bei 40% aller Transaktionen, die ein männlicher Kunde durchgeführt hat, der Verkaufspreis unter 5 Euro lag (und ein weiterer Balken entsprechend für die weiblichen Kunden) .Across the screen. For example, the user may click the value (65 r 84) for the expression "<5" in the third window 403 of the third screen display 400 with a computer mouse, change to the fifth screen display 500 by a corresponding command, and drag into the first window 501. Accordingly, the expression "below 5 Euro" would be broken down by the gender "gross sales value" random variable and, for example, a bar would appear stating that 40% of all transactions made by a male customer were priced below 5 Euros (and another bar accordingly for the female customers).
In diesem Beispiel ist die erste Zufallsvariable der Brutto- Verkaufswert und die zweite Zufallsvariable ist das Produkt . In einer anderen Ausführungsform kann ähnlich, beispielsweise ebenfalls durch drag and drop, auch eine dreidimensionale diagrammartige Darstellung erzeugt werden . Beispielsweise könnte eine diagrammartige dreidimensionale Darstellung erzeugt werden, bei der entlang einer Achse alle Produktgruppen dargestellt sind (das heißt Ausprägungen einer ersten Zufallsvariable) , wie es auch in dem dritten Fenster 603 der Fall ist, entlang einer zweiten Koordinatenachse Bereiche von Brutto-Verkaufswerten, beispielsweise "<5" f "5- 10" , usw. (Ausprägungen einer zweiten Zufallsvariable) . An einer Stelle des durch die erste Koordinatenachse und die zweite Koordinatenachse geformten Gitters, die einer bestimmten Produktgruppe und einem bestimmten Bruttoverkaufswertbereich entspricht, könnte durch einenIn this example, the first random variable is the gross sales value and the second random variable is the product. In another embodiment, similar to, for example, also by drag and drop, also a three-dimensional diagrammatic representation can be generated. For example, a diagrammatic three-dimensional representation in which all product groups are represented along one axis (that is, occurrences of a first random variable), as is the case in the third window 603, along a second coordinate axis, ranges of gross sales values, for example "<5" f " 5-10 ", etc. (occurrences of a second random variable). At a location of the grid formed by the first coordinate axis and the second coordinate axis, which corresponds to a certain product group and a given gross sales value range, could by a
Balken in Richtung einer dritten Koordinatenachse dargestellt sein, wie hoch der Anteil der Transaktionen, bei denen ein Produkt der Produktgruppe verkauft wurde und bei denen der Verkaufswert in den Verkaufswertbereich liegt, an den Transaktionen ist , bei denen ein Produkt aus der Produktgruppe verkauft wurde .A third coordinate axis bar shows the percentage of transactions in which a product of the product group was sold and the sales value is in the sales value range, on the transactions where a product from the product group was sold.
Anschaulich entspricht dies der Darstellung des in dem dritten Fenster 603 gezeigten Analyseergebnisses für alle Brutto-Verkaufswertbereiche (und nicht nur den Brutto- Verkaufswertbereich "<5") , indem die in dem dritten Fenster gezeigte Darstellung um eine weitere Koordinatenachse (die oben erwähnte zweite Koordinatenachse) erweitert wird und dementsprechend ein zweidimensionales Schema aus Balken entsteht .Illustratively, this corresponds to the representation of the analysis result shown in the third window 603 for all gross sales value ranges (and not just the gross sales value range "<5") by the representation shown in the third window about a further coordinate axis (the above-mentioned second coordinate axis ) and accordingly a two-dimensional scheme of beams is created.
Fig.7 zeigt eine sechste Bildschirmanzeige 700 eines Explorer-Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.7 shows a sixth screen 700 of an explorer computer program according to an embodiment of the invention.
Die sechste Bildschirmanzeige 700 weist (teilweise) ein erstes Fenster 701 auf, das dem ersten Fenster 301 der zweiten Bildschirmanzeige 300 entspricht . Die sechste Bildschirmanzeige 700 weist ferner (teilweise) ein zweites Fenster 702 auf, das dem dritten Fenster 303 der zweiten Bildschirmanzeige 300 entspricht .The sixth screen 700 has (partially) a first window 701 corresponding to the first window 301 of the second screen display 300. The sixth screen 700 further includes (partially) a second window 702 corresponding to the third window 303 of the second screen display 300.
In einem dritten Fenster 703 ist das Ergebnis einer weiteren Analyse dargestellt . Bei der Analyse wurde der mittlere Brutto-Verkaufswert aller Transaktionsdatensätze bestimmt, die einer Transaktion entsprechen, bei der ein Produkt aus einer bestimmten Produktgruppe verkauft wurde und dies entsprechend für mehrere Produktgruppen durchgeführt .In a third window 703, the result of another analysis is shown. The analysis determined the average gross sales value of all transaction records that correspond to a transaction where a product from a particular product group was sold, and performed accordingly for multiple product groups.
Beispielsweise zeigt eine Markierung 704 , dass der mittlere Brutto-Verkaufswert aller Brutto-Verkaufswerte bei Transaktionen, bei welchen ein Produkt aus der Produktgruppe Technik verkauft wurde, etwa 8 Euro ist . Entsprechende weitere Markierungen, die jeweilige mittlere Brutto- Verkaufswerte für verschiedene Produktgruppen anzeigen, sind ebenfalls in dem dritten Fenster 703 dargestellt, in diesem Beispiel für die Produktgruppen "Ambiente" , "Garten" , "Baustoffe/Sanitär" usw.For example, a flag 704 shows that the average gross sales value of all gross sales values for transactions in which a product from the product group technology was sold is about 8 euros. Corresponding further markings, which display respective average gross sales values for different product groups, are likewise shown in the third window 703, in this example for the product groups "Ambiente", "Garten", "Baustoffe / Sanitär" etc.
Anschaulich wird der mittlere Brutto-Verkaufswert (der Brutto-Verkaufswerte aus allen Transaktionsdatensätzen) über die verschiedenen Produktgruppen aufgeschlüsselt .Clearly, the average gross sales value (the gross sales values from all transaction records) is broken down across the different product groups.
Der Benutzer kann die sechste Bildschirmdarstellung 700 aus der zweiten Bildschirmdarstellung 300 erzeugen, indem er beispielsweise das Feld mit der Zeichenkette "prozentuale Werte" aus dem dritten Fenster 303 in das erste Fenster 301 per Drag & Drop zieht . In diesem Fall könnte dem Benutzer ein Auswahlmenü angezeigt werden, mittels welchem der Benutzer aus mehreren Möglichkeiten auswählen kann. Beispielsweise kann der Benutzer auswählen, dass statt des dritten Fensters 703 ein Fenster angezeigt wird, in dem nicht der mittlere Brutto-Verkaufswert für jede Produktgruppe angegeben wird, sondern der Summenwert aller Brutto- Verkaufswerte, die in Transaktionsdatensätzen enthalten sind, die Transaktion entsprechen, bei denen jeweils ein Produkt aus der jeweiligen Produktgruppe verkauft wurde . Beispielsweise könnte in diesem Fall eine weitere Markierung (analog zu der Markierung 704 ) anzeigen, die die Summe aller Verkaufswerte aus Transaktionsdatensätzen, die Transaktion entsprechen, bei denen ein Produkt aus der Produktgruppe "Technik" verkauft wurde, angibt .The user may generate the sixth screen 700 from the second screen 300 by, for example, dragging and dropping the field with the string "percentage values" from the third window 303 into the first window 301. In this case, the user could be presented with a selection menu by means of which the user can select from several options. For example, the user may choose to display a window instead of the third window 703 that does not indicate the average gross sales value for each product group but the sum of all gross sales values contained in transaction records corresponding to the transaction each one product from the respective product group was sold. For example, in this case, another tag (analogous to tag 704) indicating the sum of all the sales values from transaction records corresponding to the transaction where a product was sold from the Product Group "Engineering" might be displayed.
Anschaulich wird somit der Gesamtumsatz auf verschiedene Produktgruppen aufgeschlüsselt .Clearly, the total sales are broken down into different product groups.
Bei den Analysen, deren Ergebnisse in dem dritten Fenster 603 der fünften Bildschirmdarstellung 600 bzw. in dem dritten Fenster der sechsten Darstellung 700 dargestellt sind, wurde angenommen, dass stets alle Transaktionsdatensätze zu Grunde gelegt wurden. Es ist jedoch auch möglich, den Analysen nur einen Teil der Transaktionsdatensätze zu Grunde zu legen, indem eine Selektion bestimmter Transaktionsdatensätze durchgeführt wird, wie dies oben mit Bezug auf Fig.4 und Fig.5 erläutert ist .In the analyzes whose results are shown in the third window 603 of the fifth screen representation 600 or in the third window of the sixth representation 700, it was assumed that all transaction records were always used as a basis. However, it is also possible to base the analyzes on only a part of the transaction data sets by performing a selection of specific transaction data records, as explained above with reference to FIG. 4 and FIG.
Analog zu der Aufschlüsselung des Mittelwerts über verschiedene Produktgruppen wie in Fig .7 dargestellt, können auch andere statistische Größen über Ausprägungen von Zufallsvariablen aufgeschlüsselt werden. Beispielsweise könnte für jede Produktgruppe die Varianz der Brutto- Verkaufswerte bei allen Transaktionen, bei welchen ein Produkt aus der j eweiligen Produktgruppe verkauft wurde, bestimmt werden. Allen Analysen können in einer anderen Ausführungsform auch gewichtete Datensätze zu Grunde gelegt werden. Beispielsweise wird ein Kundendatensatz damit gewichtet, welcher Umsatz mit dem entsprechenden Kunden bisher gemacht wurde . So würde sich für einen ersten Altersbereich beispielsweise ein höherer Kundenanteil als für einen zweiten Altersbereich ergeben entsprechend der Anzeige der zweiten Fenster 202 der ersten Bildschirmdarstellung, wenn die Kunden in dem ersten Altersbereich mehr Umsatz gemacht haben als die Kunden in dem zweiten Altersbereich, obwohl die Zahl der Kunden in dem ersten Altersbereich nicht höher ist als die Zahl der Kunden in dem zweiten Altersbereich (da beim Zählen der entsprechenden Kundendatensätze die Gewichtung berücksichtigt wird) . Dies setzt voraus, dass in jedem Kundendatensatz eine Information über den Umsatz des j eweiligen Kunden enthalten ist .Analogous to the breakdown of the average across different product groups as shown in Fig. 7, other statistical quantities may also be broken down by random variable characteristics. For example, for each product group, the variance of the gross sales values could be determined for all transactions in which a product from the respective product group was sold. All analyzes can also be based on weighted data sets in another embodiment. For example, a customer data record is weighted with what sales have been made so far with the corresponding customer. For example, for a first age range, if the customers in the first age range made more revenue than the customers in the second age range, the customer would have a higher customer share than a second age range, as indicated by the second window 202 of the first screen the customer in the first age range is not higher than the number of customers in the second age range (since the weighting is taken into account when counting the corresponding customer data records). This presupposes that each customer data record contains information about the turnover of the respective customer.
Analog können bei Analysen, die die Transaktionsdatenbanktabelle 106 betreffen, Transaktionen nach ihrem Umsatzanteil gewichtet werden.Likewise, in analyzes involving transaction database table 106, transactions may be weighted according to their share of revenue.
Wird eine Selektion von Kunden, wie beispielsweise oben mit Bezug auf Fig.4 erläutert, durchgeführt, so kann in der Bildschirmanzeige, die die Kundendatenbanktabelle 105 betrifft, ein Fenster angezeigt werden, in dem die selektierten Kunden nach der Ausprägung einer Zufallsvariable aufgeschlüsselt sind.If a selection of customers is made, as explained above with reference to FIG. 4, then a window in which the selected customers are broken down according to the occurrence of a random variable can be displayed in the screen display relating to the customer database table 105.
Gemäß dem obigen Beispiel, in dem alle Kunden selektiert werden, die im März 2003 eine Beet- und Balkonpflanze gekauft haben, könnte in der vierten Bildschirmdarstellung 500 ein weiteres Fenster dargestellt werden, in welchem für verschiedene Umsatzbereiche dargestellt ist (beispielsweise durch Balken) , wie hoch der Anteil der Kunden ist, die den jeweiligen Umsatz gemacht haben und im März eine Beet- und Balkonpflanze gekauft haben, an allen Kunden, die im März Beet- und Balkonpflanzen gekauft haben .According to the above example, in which all customers are selected who bought a bed and balcony plant in March 2003, another window could be displayed in the fourth screen 500, which shows different sales areas (for example through bars), how high the proportion of customers who made the respective sales and bought a bed and balcony plant in March, to all customers who bought bedding and balcony plants in March.
Im Folgenden wird die Form und Struktur eines Datenbank- Abbilds einer Datenbanktabelle gemäß einemThe following describes the shape and structure of a database image of a database table according to a
Ausführungsbeispiel der Erfindung erläutert , beispielsweise des Kundendatenbanktabelle-Abbilds 107.Embodiment of the invention explained, for example, the customer database table image 107th
Die Datenbanktabelle weist mehrere Datensätze auf, welche anschaulich untereinander geschrieben die Datenbanktabelle bilden. Beispielsweise existiert wie in dem oben beschriebenen Beispiel für j eden (registrierten) Kunden eines Baumarkts ein Datensatz . Jeder Datensatz weist beispielsweise einen Datenbanktabelleneintrag auf, der das Alter des jeweiligen Kunden enthält . Anschaulich bilden die Datensätze Zeilen in denen in einer "Alter"-Spalte das Alter des der jeweiligen Zeile entsprechenden Kunden angegeben ist .The database table has several data records which clearly form the database table among each other. For example, as in the example described above, there is one record for each (registered) customer of a hardware store. For example, each record has a database table entry that contains the age of each customer. Illustratively, the data records form rows in which the age of the customer corresponding to the respective row is indicated in an "age" column.
Das Attribut Alter (und andere vorhandene Attribute wie beispielsweise Einkommen, Geschlecht usw. ) des Kunden wird als Zufallsvariable interpretiert, das heißt aufgefasst . Diese Zufallsvariable nimmt j e nach Kunde einen bestimmten Wert (Zustand, Ausprägung) an, beispielsweise den Wert 23, wenn der entsprechende Kunde 23 Jahre alt ist . Die möglichen Werte der Zufallsvariablen treten mit einer relativen Häufigkeit in der Datenbanktabelle auf . Sind beispielsweise ein Viertel aller (registrierten) Kunden des Baumarkts 23, so ist die relative Häufigkeit des Werts (Zustande) 23 der Zufallsvariablen Alter 0, 25 oder 25% . The attribute age (and other existing attributes such as income, gender, etc.) of the customer is interpreted as a random variable, that is construed. Depending on the customer, this random variable assumes a certain value (state, form), for example the value 23, if the corresponding customer is 23 years old. The possible values of the random variables occur with a relative frequency in the database table. For example, if one quarter of all (registered) customers of the DIY store 23, the relative frequency of the value (state) 23 of the random variable age is 0, 25 or 25%.
Zum Erzeugen des Datenbank-Abbilds der Datenbanktabelle wird ein statistisches Modell der Daten in der Datenbanktabelle erzeugt . Das statistische Modell ist anschaulich eine Approximation der gemeinsamen Wahrscheinlichkeitsverteilung der Zufallsvariablen der Datenbanktabelle.To create the database image of the database table, a statistical model of the data in the database table is created generated . The statistical model is illustratively an approximation of the common probability distribution of the random variables of the database table.
Im obigen Beispiel wird im Rahmen der Erzeugung eines statistischen Modells der Datenbanktabelle beispielsweise bestimmt, dass die Wahrscheinlichkeit, dass ein Kunde 23 ist, 0, 25 ist, was formal folgendermaßen geschrieben werden kann:For example, in the above example, when generating a statistical model of the database table, it is determined that the probability that a customer is 23 is 0.25, which can be formally written as follows:
P (Kunde ist 23 ) =0, 25P (customer is 23) = 0, 25
Das statistische Modell wird durch ein Lernverfahren anhand der Einträge der Datenbanktabelle "gelernt" , das heißt unter Verwendung der Einträge der Datenbanktabelle erzeugt, vorzugsweise unter Verwendung eines Maximum-Likelihood- Ansatzes . Die im Rahmen des statistischen Modells der Datenbanktabelle vorhandenen Wahrscheinlichkeiten beschreiben wie erwähnt die relativen Häufigkeiten der Zustände der Datenbanktabelleneinträge, je nach Vorgehen exakt oder approximativ. Die Datenbanktabelleneinträge können eine Vielzahl von Zuständen annehmen, welche Zustände mit unterschiedlichen relativen Häufigkeiten auftreten können.The statistical model is "learned" by a learning process from the database table entries, that is, using the database table entries, preferably using a maximum likelihood approach. The probabilities present within the framework of the statistical model of the database table describe, as mentioned, the relative frequencies of the states of the database table entries, depending on the procedure exactly or approximately. The database table entries may assume a variety of states, which states may occur with different relative frequencies.
Sobald ein statistisches Modell erzeugt wurde, kann dieses dazu verwendet werden, die relativen Abhängigkeiten zwischen denOnce a statistical model has been generated, it can be used to determine the relative dependencies between the
Zuständen der Zufallsvariablen, das heißt die Korrelation der Zufallsvariablen, zu studieren .States of random variables, that is, the correlation of random variables to study.
So können beispielsweise die relativen Häufigkeiten (Wahrscheinlichkeiten) der Zustände von bestimmtenFor example, the relative frequencies (probabilities) of the states of certain
Zufallsvariablen entsprechend einer vorgebbaren Bedingung vorgegeben werden und die den vorgegeben relativen Häufigkeiten der Zustände der Zufallsvariablen entsprechenden relativen Häufigkeiten der Zustände davon abhängiger (damit korrelierter) weiterer Zufallsvariablen ermittelt werden .Random variables are given according to a predetermined condition and corresponding to the predetermined relative frequencies of the states of the random variables relative frequencies of the states thereof dependent (thus correlated) further random variables are determined.
Als statisti sches Modell wird beispielsweise ein graphisches Wahrscheinlichkeitsmodell (GraphicalAs a statistical model, for example, a graphical probability model (Graphical
Probabilistic Model ) eingesetzt , wie es beispielsweise in [ 1 ] beschrieben ist . Zu den graphischen Wahrs cheinlichkeitsmodellen gehören insbesondere Bayesianische Netze (Bayesian Networks oder Belief Networks ) und Markov-Net ze .Probabilistic Model), as described for example in [1]. The graphical truth models include in particular Bayesian networks (Bayesian Networks or Belief Networks) and Markov-Net ze.
Ein statistisches Modell kann beispielsweise durch Strukturlernen in Bayesianischen Netzen erzeugt werden, wie es beispielsweise in [2 ] beschrieben ist .A statistical model can be generated, for example, by structural learning in Bayesian networks, as described, for example, in [2].
Eine weitere Möglichkeit besteht darin, die Parameter des statistischen Modells für eine feste Struktur zu lernen, das heißt zu bestimmen, wie es beispielsweise in [3] beschrieben ist .Another possibility is to learn the parameters of the statistical model for a fixed structure, that is, to determine, as described for example in [3].
Im Rahmen einer Vielzahl von Lernverfahren wird eine Likelihood-Funktion als ein Optimierungskriterium für die Parameter des Modells verwendet . Eine besondere Ausführung hierbei ist das Expectation-Maximation (EM) -Lernverfahren, das weiter unten an Hand eines speziellen Modells detaillierter beschrieben ist .In a variety of learning techniques, a likelihood function is used as an optimization criterion for the parameters of the model. A particular implementation here is the expectation-maximization (EM) learning method, which is described in more detail below with reference to a specific model.
Typischerweise ist nicht eine hohe Generalisierungs- fähigkeit des statistischen Modells von Bedeutung, sondern eine gute Anpassung des statistischen Modells an die in der Datenbanktabelle enthaltenen Daten, das heißt eine gute Übereinstimmung der von dem statistischen Modell spezifizierten Wahrscheinlichkeiten der Zufallsvariablen mit den durch die Datenbanktabelleneinträge gegebenen relativen Häufigkeiten .Typically, it is not a high generalizability of the statistical model that is important, but a good adaptation of the statistical model to the data contained in the database table, that is to say a good match of the probabilities of the random variables specified by the statistical model with the relative frequencies given by the database table entries.
Als statistisches Modell wird vorzugsweise ein statistisches Clustering-Modell, insbesondere ein BayesianischesAs a statistical model is preferably a statistical clustering model, in particular a Bayesian
Clustering-Modell, durch welches die Daten in eine Mehrzahl von Clustern (auch als Segmente bezeichnet) unterteilt werden, eingesetzt .Clustering model, which divides the data into a plurality of clusters (also called segments).
Durch den Einsatz eines Clustering-Modells wird die Datenbanktabelle in mehrere kleinere Teile (Cluster, Segmente ) unterteilt, die ihrerseits als separate Datenbanktabellen aufgefasst werden können und aufgrund der geringeren Größe effizienter zu handhaben sind.By using a clustering model, the database table is divided into several smaller parts (clusters, segments), which in turn can be considered as separate database tables and, because of their smaller size, can be handled more efficiently.
Eine effizientere statistische Auswertung der Datenbanktabelle unter Verwendung eines Clustering-Modells kann beispielsweise dadurch erreicht werden, dass bei der statistischen Auswertung der Datenbanktabelle geprüft wird, ob eine vorgegebene Selektionsbedingung dazu führt, dass aus dem statistischen Modell erkennbar wird, dass alle Daten, die die Selektionsbedingungen erfüllen in einem einzigen oder einer Teilmenge der Cluster liegen . Trifft dies zu, so kann man sich -bei der Auswertung auf diese Cluster beschränken . Gleichermaßen ist es möglich, dass eine Beschränkung auf solche Cluster erfolgt, in denen die die vorgegebene Bedingung erfüllenden Daten mit wenigstens einer bestimmten relativen Häufigkeit enthalten sind. Die übrigen Cluster, in denen Daten entsprechend der vorgegebene Bedingung nur in einem geringeren Anteil enthalten sind, können vernachlässigt werden, falls nur approximative Aussagen angestrebt werden . Als statistisches Clustering-Modell wird beispielsweise ein Bayesianisches Clustering-Modell (ein Modell mit einer diskreten latenten Variablen) eingesetzt .A more efficient statistical evaluation of the database table using a clustering model can be achieved, for example, by checking in the statistical evaluation of the database table whether a given selection condition leads to the statistical model recognizing that all the data that contains the selection conditions meet in a single or a subset of clusters. If this is true, then one can restrict oneself to these clusters in the evaluation. Likewise, it is possible to have a restriction to those clusters in which the data satisfying the given condition is included with at least a certain relative frequency. The remaining clusters, in which data according to the given condition are contained only in a smaller proportion, can be neglected, if only approximate statements are desired. As a statistical clustering model, for example, a Bayesian clustering model (a model with a discrete latent variable) is used.
Dies wird im Weiteren genauer beschrieben .This will be described in more detail below.
Gegeben sei ein Satz (K-Tupel) von Zufallsvariablen ( statistischen Variablen) X = (X]_, ... , X^) . Die möglichen Zustände (Ausprägungen) der Zufallsvariablen werden durch die j eweiligen Kleinbuchstaben beschrieben . Die i-teGiven a set (K-tuple) of random variables (statistical variables) X = (X] _, ..., X ^). The possible states of the random variables are described by the respective lower case letters. The i-th
( 1 ≤ i < K ) Zufallsvariable Xj_ kann also beispielsweise die(1 ≤ i <K) Random variable Xj_ can, for example, the
Zustände x -, , XStates x -,, x
1, J , X XrΔ9, ... , xl. ijj_ annehmen, wobei L± eine natürliche Zahl größer gleich Eins ist .1, J, XX r Δ 9 , ..., xl. ijj_, where L ± is a natural number greater than or equal to one.
Es können sowohl diskrete als auch kontinuierliche (reellwertige) Zufallsvariablen verwendet werden .Both discrete and continuous (real-valued) random variables can be used.
In diesem Ausführungsbeispiel werden kontinuierliche Zustände unter Verwendung von entsprechenden Diskretisierungsintervallen diskretisiert . Entsprechend wird angenommen, dass die Zustände der ZufallsvariablenIn this embodiment, continuous states are discretized using corresponding discretization intervals. Accordingly, it is assumed that the states of the random variables
-j_ (für alle i mit 1 < i < K ) diskret sind. -j_ (for all i with 1 <i <K) are discrete.
Ein Datensatz in der Datenbanktabelle enthält einen Wert (Ausprägung) für j ede der Zufallsvariablen X]_, ... , X^ . Der π -te Datensatz der Datenbanktabelle kann dementsprechend in der FormA record in the database table contains a value (expression) for each of the random variables X] _, ..., X ^. The π-th dataset of the database table can accordingly be in the form
χπ = <χf. *κ> geschrieben werden, wobei x für alle χπ = < χ f. * Κ> written, where x is for all
1 < i < K .1 <i <K.
Die Datensätze bilden anschaulich, wenn sie untereinander geschrieben werden, eine Datenbanktabelle (oder Tafel) , die für j ede Zufallsvariable eine Spalte aufweist .When written among each other, the datasets vividly form a database table (or panel) that has a column for each random variable.
Es wird angenommen, dass die Tafel M Einträge hat . Somit kann die gesamte Datenbanktabelle als MatrixIt is assumed that the board M has entries. Thus, the entire database table can be used as a matrix
geschrieben werden .to be written .
Bei der Verwendung eines Clustering-Modells wird zusätzlich eine sogenannte versteckte Variable (Cluster-Variable ) , welche mit Ω bezeichnet wird, verwendet . Die Cluster- Variable weist für jeden Datensatz der Datenbanktabelle einen der Werte ωj_ (i = 1, ... , R) auf. Der Wert der Variable Ω für einen Datensatz gibt an, welchem Cluster (Segment) der Datensatz im Rahmen des Clustering-Modells zugeordnet ist . In diesem Beispiel gibt es somit R unterschiedliche Cluster .When using a clustering model, a so-called hidden variable (cluster variable), which is denoted by Ω, is additionally used. The cluster variable has one of the values ωj_ (i = 1,..., R) for each data record of the database table. The value of the Ω variable for a record indicates which cluster (segment) the record is associated with as part of the clustering model. In this example, therefore, there are R different clusters.
Mit P ( Ω | Θ ) wird die a priori-Verteilung derWith P (Ω | Θ) the a priori distribution of the
Cluster bezeichnet, wobei durch P ( ωj_ I Θ = θ ) das a priori- Gewicht des i-ten Clusters gegeben ist . Das heißt, dass P ( ω± I Θ = θ ) die Wahrscheinlichkeit ist , dass ein ( zufälliger) Datensatz der Datenbanktabelle dem i-ten Cluster angehört . Die a priori-Verteilung beschreibt , welcher Anteil der Daten den j eweiligen Clustern' zugeordnet ist . Der Satz von Zufallsvariablen Θ kann die möglichen Parametervektoren θ des statistischen Modells annehmen .Cluster, where P (ωj_ I Θ = θ) is given the a priori weight of the ith cluster. That is, P (ω ± I Θ = θ) is the probability that a (random) record of the database table belongs to the ith cluster. The a priori distribution describes how much of the data is assigned to the j eweiligen clusters'. The set of random variables Θ can take the possible parameter vectors θ of the statistical model.
Durch P(X | Ω = ωj_, Θ = θ) sei die bedingteLet P (X | Ω = ωj_, Θ = θ) let be the conditional one
Wahrscheinlichkeitsverteilung innerhalb des i-ten Clusters , das heißt die Wahrscheinlichkeitsverteilung der Zufallsvariablen X . = (X^, ... , X^) innerhalb des i-ten Clusters gegeben .Probability distribution within the i-th cluster, ie the probability distribution of the random variables X. = (X ^, ..., X ^) within the ith cluster.
Die a priori-Verteilung P ( Ω | Θ ) und die Verteilungen der bedingten Wahrscheinlichkeiten P(X I Ω - tö±, Θ = θ) (für j eden Cluster) bilden zusammen ein Wahrscheinlichkeitsmodell P(X, Ω I Θ) für (Xi, ... , Xκ, Ω) .The a priori distribution P (Ω | Θ) and the distributions of the conditional probabilities P (XI Ω - tö ±, Θ = θ) (for each cluster) together form a probability model P (X, Ω I Θ) for (Xi , ..., X κ , Ω).
Das Wahrscheinlichkeitsmodell ist gegeben durch das Produkt der a priori-Verteilung und der bedingten Wahrscheinlichkeitsverteilung, das heißt :The probability model is given by the product of the a priori distribution and the conditional probability distribution, that is:
P(X I Θ) = P(Ω I Θ) • P(X | Ω, Θ)P (X I Θ) = P (Ω I Θ) • P (X | Ω, Θ)
bzw .respectively .
RR
P(X I Θ) = ]T P(Ω = ωi I Θ) • P(X I Ω = m±, i=lP (X I Θ) =] T P (Ω = ωi I Θ) • P (X I Ω = m ±, i = l
das heißtthis means
P(X = (X1, ... , xk) I Θ = θ) =P (X = (X 1 , ..., x k ) I Θ = θ) =
RR
^ P(Ω = ©i I Θ = θ) P(X = (Xi, ... , xk) I Ω = W1, Θ = θ) i=l Die Wahrscheinlichkeit P(Ω = <DJ_ | Θ = θ) heißt Gewicht des i- ten Clusters (Segments) .^ P (Ω = i i i Θ = θ) P (X = (Xi, ..., x k ) I Ω = W 1 , Θ = θ) i = l The probability P (Ω = <DJ_ | Θ = θ) is called the weight of the ith cluster (segment).
Die logarithmische Likelihood-Funktion L des Parametervektors θ des Datensatzes p_ ist sei gegeben durchThe logarithmic likelihood function L of the parameter vector θ of the data set p_ is given by
L(θ) = log P(D I Θ = θ) = ∑ log P(X = xπ l≤π≤ML (θ) = log P (DI Θ = θ) = Σ log P (X = x π l≤π≤M
Im Rahmen des Expectation-Maximation (EM) -Lernens wird nun eine Sequenz von Parametervektoren θ^ ' entsprechend der folgenden allgemeinen Vorschrift konstruiert :In the context of expectation-maximization (EM) learning, a sequence of parameter vectors θ ^ 'is now constructed according to the following general rule:
θ(t+1^ = arg max £ £ P(coi ' x*' ^{t)) " log ^**' ωi ' ^ θ l≤π≤M l≤i≤Rθ (t + 1 ^ = ar g m a x £ P P (co i ' x *' ^ {t)) " log ^ ** ' ω i' ^ θ l≤π≤M l≤i≤R
Mittels dieser Iterationsvorschrift erfolgt ein schrittweises Maximieren der Likelihood-Funktion und das Bestimmen eines geeigneten Parametervektors θ , der das statistische Modell spezifiziert . Jeder der Iterationsschritte besteht aus einem E- und einem M- Schritt . Der E-Schritt entspricht dem rechten Teil der obigen Gleichung. Dabei werden für jeden der M Datensätze die Erwartungswerte bzw. die a-posteriori- Wahrscheinlichkeit P(Ω | X = x, Θ = θ) für die Cluster-By means of this iteration rule, a stepwise maximization of the likelihood function and the determination of a suitable parameter vector θ which specifies the statistical model takes place. Each of the iteration steps consists of an E and a M step. The E step corresponds to the right part of the above equation. For each of the M data sets, the expected values or the a posteriori probability P (Ω | X = x, Θ = θ) for the cluster
Variable Ω basierend auf den aktuellen Parametern berechnet, d. h. die Clusterzugehörigkeit des Datensatzes geschätzt . In dem M-Schritt werden dann die neuen Parameter entsprechend obiger Gleichung gesetzt .Calculates variable Ω based on the current parameters, d. H. estimated the cluster affiliation of the record. In the M-step, the new parameters are then set according to the above equation.
Nach dem Lernen des Parametervektors θ (nach der Konvergenz der obigen Iteration) wird j eder Datensatz xπ einem Cluster (Segment) zugeordnet . Die Zuordnung erfolgt dabei mittels der a posteriori- Verteilung P(Ω I X = x, 0 = β) . Der Datensatz x wird dabei dem i-ten Cluster zugeordnet, dessen Gewicht am höchsten ist, das heißt wenn giltAfter learning the parameter vector θ (after the convergence of the above iteration), each record x π is assigned to a cluster (segment). The assignment takes place by means of the a posteriori distribution P (Ω IX = x, 0 = β). The data set x is assigned to the i-th cluster, whose weight is highest, that is to say when valid
P(Qi I X = x, Θ = B) = max P(ω-ϊ | X = x, Θ = θ) . l≤j≤RP (Qi I X = x, Θ = B) = max P (ω-ϊ | X = x, Θ = θ). l≤j≤R
Die Clusterzugehörigkeit jedes Datensatzes kann in einem zusätzlichen Feld des Datensatzes in der Datenbanktabelle gespeichert werden und entsprechende Indizes können vorbereitet werden, um auf die Daten, die zu einem bestimmten Cluster gehören, schnell zugreifen zu können .The cluster membership of each record can be stored in an additional field of the record in the database table and appropriate indexes can be prepared to quickly access the data belonging to a particular cluster.
Wird beispielsweise eine statistische Anfrage der Form "Gib alle Datensätze mit Xx = xχ^,χ und X2 = X2,3 ' sowie die dazugehörige Verteilung über X3 und X4 (also P (X3 | Xx = κl,l rFor example, if a statistical query of the form "Give all data sets with Xx = xχ ^, χ and X2 = X2,3 'and the corresponding distribution over X3 and X4 (ie P (X3 | Xx = κ l, lr
X2 = X23 ) unc* P (X-I I ^l = ^l 11 X-2 = X23 ) ) aus" an die Datenbanktabelle gestellt, so wird folgendermaßen vorgegangen: X 2 = X 23 ) unc * P (XI I ^ l = ^ l 11 X-2 = X 23 )) from "to the database table, the procedure is as follows:
Zunächst wird die a posteriori-Verteilung P ( Ω | Xx = x±f± , X2 = X23 ) ermittelt . Aus dieser Verteilung geht (eventuell nur approximativ) hervor, welcher Anteil der Daten entsprechend der gestellten Bedingung in welchen Clustern der Datenbanktabelle zu finden ist . So ist es möglich, sich bei allen weiteren Vorgängen, j e nach der gewünschten Genauigkeit, auf die Teile (Cluster) der Datenbanktabelle zu beschränken, die entsprechend P ( Ω | Xx = xχ,χ f X2 = X2,3 ) e^-n hohes a posteriori-Gewicht haben und somit anschaulich einen großen Teil der (entsprechend der gestellten Bedingung) relevanten Daten beinhalten. Ein idealer Fall ist gegeben, wenn P ( COjJ X1 = xi,i ,First, the a posteriori distribution P (Ω | Xx = x ± f ±, X2 = X23) is determined. This distribution shows (possibly only approximately) what proportion of the data is to be found in which clusters of the database table according to the specified condition. So it is possible to limit itself to the parts (clusters) of the database table, which correspond to P (Ω | Xx = xχ, χ f X2 = X 2,3) e ^ - depending on the desired accuracy. n have a high a posteriori weight and thus vividly contain a large part of the (according to the condition) relevant data. An ideal case is given if P (COjJ X 1 = xi, i,
X2 = X2,3 ) = ^ für ei-n i unc* dementsprechend P ( COj I Xi = xi i , X 2 = X 2,3) = ^ for e i n i unc * accordingly P (COj I Xi = xi i,
X2 = X2,3 ) = ° für alle j ≠ i gilt, das heißt wenn alle der gestellten Bedingung entsprechenden Daten in einem einzigen Cluster enthalten sind.X2 = X 2,3) = ° applies to all j ≠ i, that is, when all the condition corresponding data made are included in a single cluster.
In einem solchen Fall kann ohne einen Verlust an Genauigkeit bei der weiteren Auswertung eine Einschränkung auf das i-te Cluster vorgenommen werden. Dabei wird die Eigenschaft der hier beschriebenen Clustermodelle ausgenutzt, dass die a posteriori Wahrscheinlichkeit eines Clusters zu einer Selektionsbedingung nur dann 0 ist, wenn in dem Cluster kein einziger Datensatz enthalten ist, der die Bedingung erfüllt . In dieser Hinsicht sind die Modelle also exakt .In such a case, a restriction on the i-th cluster can be made without a loss of accuracy in the further evaluation. In this case, the property of the cluster models described here is exploited that the a posteriori probability of a cluster for a selection condition is 0 only if no single data record satisfying the condition is contained in the cluster. In this respect, the models are exact.
Neben der Identifikation der relevanten Cluster kann das statistische Modell auch verwendet werden, um direkt bestimmte gewünschte Wahrscheinlichkeiten (eventuell approximativ) zu berechnen. Um beispielsweiseIn addition to identifying the relevant clusters, the statistical model can also be used to directly calculate certain desired probabilities (possibly approximatively). For example
Wahrscheinlichkeitsverteilungen für X3 und X4 zu bestimmen, können die gewünschten Verteilungen P (X3 | X1 = X1 \ , X2 = X23 ) und P (X4 | X1 = X1 \ , X2 = X23 ) basierend auf den Parametern des Modells approximativ ermittelt werden, beispielsweise gemäßTo determine probability distributions for X3 and X4, the desired distributions P (X3 | X 1 = X 1 \, X2 = X23) and P (X4 | X 1 = X 1 \, X2 = X23) based approximate the parameters of the model be determined, for example according to
P (X3 I X1 = xlfl , X2 = x2,3 ) =P (X 3 IX 1 = x lfl , X 2 = x 2 , 3) =
∑ P(X3 I Ω = Oi, X1 = xlfl, X2 = x2,3' Θ = β) l≤i≤RΣ P (X 3 I Ω = Oi, X 1 = x lfl , X 2 = x 2 , 3 'Θ = β ) l≤i≤R
P(Ω = CO1 I X1 = xlfl, X2 = x2,3, Θ = θ) Alternativ kann das statistische Modell jedoch auch nur dazu verwendet werden, die für die momentane Anfrage relevanten Cluster zu ermitteln .P (Ω = CO 1 IX 1 = x lfl , X 2 = x 2 , 3, Θ = θ) Alternatively, however, the statistical model can also only be used to determine the clusters relevant for the current request.
Nach Einschränken auf die relevanten Cluster können innerhalb der Cluster genauere Methoden eingesetzt werden . Z . B. kann ein exaktes Auszählen der Statistiken innerhalb des Cluster erfolgen, beispielsweise wenn die Daten gemäß Clusterzugehörigkeit im Speicher oder auf Platte organisiert (und gegebenfalls komprimiert wurden) oder unter Zuhilfenahme eines zusätzlichen Index bzgl . der Clusterzugehörigkeit . Innerhalb der Cluster können dann einfache Zählverfahren im Hauptspeicher, herkömmlichen Datenbank-Reportingverfahren oder OLAP (on-line analytical processing) -Verfahren) verwendet werden, oder es können weitere speziell auf die Cluster angepasste statistische Modelle eingesetzt werden . Eine enge Verzahnung mit OLAP ist insbesondere von Vorteil, da die sogenannte „Sparsity" (Dünnheit ) der Daten in hohen Dimensionen durch das statistische Clustering-Modell ausgenutzt wird und OLAP- Verfahren nur innerhalb der effektiv niedrigdimensionaleren Cluster zum Einsatz kommen.After restricting to the relevant clusters, more accurate methods can be used within the clusters. Z. For example, an exact counting of statistics within the cluster can be done, for example, if the data was organized (and possibly compressed) according to cluster affiliation in memory or on disk, or with the aid of an additional index. the cluster affiliation. Within the clusters, simple counting methods in main memory, conventional database reporting methods or OLAP (on-line analytical processing) methods can be used, or other statistical models specially adapted to the clusters can be used. A close integration with OLAP is particularly advantageous, as the so-called "sparse" data of the high dimensions is exploited by the statistical clustering model and OLAP methods are used only within the effectively lower-dimensional clusters.
Das Einschränken auf relevante Cluster ist insbesondere dann von Vorteil, falls die Cluster im Rahmen einesThe restriction to relevant clusters is particularly advantageous if the clusters within a framework
Datenbank-Abbilds komprimiert vorliegen, wie das unten erläutert wird. In diesem Fall muss nicht das gesamte Datenbank-Abbild, das heißt alle Cluster, bei einer Anfrage dekomprimiert werden .Database image compressed, as explained below. In this case, the entire database image, that is, all clusters, need not be decompressed on a request.
Der Tradeoff aus Geschwindigkeit und Genauigkeit bei der Auswertung ergibt sich aus der Menge der von der Auswertung ausgenommenen Daten : j e mehr Cluster von der Auswertung ausgenommen werden, desto schneller, j edoch auch ungenauer, wird die Antwort auf eine statistischen Anfrage ausfallen . Dem Benutzer kann die Möglichkeit an die Hand gegeben werden, den Tradeoff zwischen Genauigkeit und Geschwindigkeit selbst zu bestimmen. Zusätzlich können automatische exaktere Verfahren angestoßen wenden, wenn aus der Auswertung des Modells eine unzureichende Genauigkeit hervorgeht .The tradeoff of speed and accuracy in the evaluation results from the amount of data excluded from the evaluation: the more clusters are excluded from the evaluation, the faster, but also less accurate, will be the answer to a statistical request. The user can be given the opportunity to determine the tradeoff between accuracy and speed himself. In addition, automatic more accurate methods may be initiated if the model's evaluation yields insufficient accuracy.
Im Allgemeinen werden Cluster von der Auswertung ausgenommen, die unterhalb eines bestimmten minimalenIn general, clusters are excluded from the evaluation below a certain minimum
Gewichtes liegen. Exakte Ergebnisse lassen sich erzielen, indem nur solche Cluster von der Auswertung ausgenommen werden, die ein a posteriori-Gewicht von Null aufweisen .Weight are. Exact results can be obtained by excluding only those clusters having a posteriori weight of zero.
Ein Übertrainieren eines Clustering-Modells ist ohne Belang, weil eine möglichst exakte Wiedergabe von historischen Daten angestrebt ist und nicht eine Prognose für die Zukunft . Gleichwohl neigen stark übertrainierte Clustering-Modelle dazu, eine möglichst eindeutige Zuordnung von Anfragen zu Clustern zu liefern, weshalb bei weiteren Operationen sehr schnell eine Einschränkung auf kleine Teile der Datenbanktabelle möglich ist .Overtraining a clustering model is irrelevant because the goal is to reproduce historical data as accurately as possible, rather than forecasting for the future. However, strongly over-trained clustering models tend to provide the most unambiguous assignment of queries to clusters, which is why further operations can very quickly restrict them to small parts of the database table.
In vorteilhafter Weise werden bei einem eingesetzten Daten- speichermedium die zu einem Cluster gehörenden Daten in einer der Clusterzugehörigkeit entsprechenden Weise gespeichert .In an inserted data storage medium, the data belonging to a cluster is advantageously stored in a manner corresponding to the cluster membership.
Beispielsweise können die zu einem Cluster gehörenden Daten in einem Abschnitt des Speichers 104 gespeichert werden, so dass die zusammengehörenden Daten blockweise schnell gelesen werden können.For example, the data associated with a cluster may be stored in a portion of the memory 104 so that the associated data may be read in blocks quickly.
Wie erwähnt können Zufallsvariable, die kontinuierliche Werte annehmen, diskretisiert werden. Beispielsweise kann eine "Einkommen"-Zufallsvariable, das heißt eine Zufallsvariable, die der Angabe in den Kundendatensätzen des Einkommens des j eweiligen Kunden entspricht, in Einkommensklassen eingeteilt werden . Die Einteilung in Einkommensklassen kann verschieden fein oder grob erfolgen, entsprechend den analytischenAs mentioned, random variables that take on continuous values can be discretized. For example, a "Income" random variable, that is, a random variable that corresponds to the indication in the customer records of the income of the respective customer, are divided into income classes. The division into income classes can be different or coarse, according to the analytical
Anforderungen, das heißt entsprechend den Anforderungen an die Genauigkeit, mittels welcher das Datenbank-Abbild die Datenbanktabelle wiedergeben soll, das heißt die Informationen aus der Datenbanktabelle enthalten soll .Requirements, that is, according to the accuracy requirements, by means of which the database image is to reproduce the database table, that is to say contain the information from the database table.
Für eine sehr genaue Darstellung einer ursprünglich kontinuierlichen Größe kann die Variable zunächst in Intervallen diskretisiert werden. Zusätzlich zu der daraus entstehenden diskreten Variable (die wie in den hier beschriebenen Verfahren komprimiert wird) kann zusätzlich der Mittelwert jedes Intervalls gespeichert werden und zu jedem diskreten Wert die Abweichung von dem Mittelwert . Da dann nur kleine Differenzen gespeichert werden müssen, kann dies sehr speichereffizient geschehen.For a very accurate representation of an initially continuous size, the variable may first be discretized at intervals. In addition to the resulting discrete variable (which is compressed as in the methods described herein), the mean of each interval may additionally be stored and for each discrete value the deviation from the mean. Since then only small differences have to be stored, this can be done very memory efficient.
Ausprägungen von kategoriellen Variablen werden entsprechend kodiert, beispielsweise wird für eine "Geschlecht"- Zufallsvariable die Ausprägung "männlich" mittels einer Null und die Ausprägung "weiblich" mittels einer Eins kodiert .Variants of categorical variables are coded accordingly, for example, for a "gender" random variable the expression "male" is coded by means of a zero and the expression "female" by means of a one.
Weist eine kategorielle Zufallsvariable in der Datenbanktabelle eine Vielzahl von Ausprägungen auf, so können diese bei der Erzeugung des Daten-Abbilds zu Klassen gruppiert werden, sofern dies die Anforderungen an das Datenbank-Abbild erlauben.If a categorical random variable has a multitude of characteristics in the database table, then these can be grouped into classes when the data image is created, as long as this allows the requirements for the database image.
So könnte das Produktverzeichnis des oben erwähnten Baumarkts hierarchisch organisiert sein, beispielsweise könnte das Produkt mit der Bezeichnung "Schraube M4 verzinkt" der Produktgruppe "Maschinenschrauben" angehören. DieFor example, the product index of the above mentioned DIY store could be organized hierarchically, for example the product titled "M4 screw" could be part of the "Machine screws" product group. The
Produktgruppe "Maschinenschrauben" könnte ihrerseits der Produktgruppe "Schrauben" zugeordnet sein, welche ihrerseits der Produktgruppe "Werkzeugzubehör" zugeordnet ist, wobei "Werkzeugzubehör" selbst eine Produktuntergruppe der Produktgruppe "Werkzeuge" ist . Gemäß den Anforderungen an das Datenband-Abbild könnte es nun ausreichen, unterschiedliche Maschinenschrauben nicht zu unterscheiden, sondern diese zu einer Klasse "Maschinenschrauben" zusammenzufassen . Dementsprechend weist beispielsweise jeder Transaktionsdatensatz in dem Transaktionsdatenbanktabelle- Abbild 108 in dem der Produktangabe entsprechenden Feld den Eintrag "Maschinenschrauben" (beziehungsweise einen dieser Ausprägung zugeordneten Wert) auf, wenn der entsprechendeProduct group "machine screws" could in turn be assigned to the product group "screws", which in turn is assigned to the product group "tool accessories", wherein "Tool Accessories" itself is a product subgroup of the product group "Tools". According to the requirements of the data tape image, it might now be sufficient not to differentiate between different machine screws, but to combine them into a class "machine screws". Accordingly, for example, each transaction record in the transaction database table image 108 in the field corresponding to the product specification has the entry "machine screws" (or a value assigned to this characteristic, respectively), if the corresponding one
Transaktionsdatensatz in der Transaktionsdatenbanktabelle 106 in dem Feld, das der Produktangabe entspricht, die Spezifikation einer beliebigen Maschinenschraube enthält .Transaction record in the transaction database table 106 in the field corresponding to the product specification containing specification of any machine screw.
Eine Anfrage an das Datenbank-Abbild kann nun auf Basis dieser Klasseneinteilung der kategoriellen Variable bearbeitet werden. Ist eine genauere Einteilung der Ausprägungen der kategoriellen Variable (zum Beispiel eine Unterscheidung unterschiedlicher Maschinenschrauben) für die Beantwortung der Anfrage erforderlich, so wird auf die Datenbanktabelle zurückgegriffen. In diesem Fall müssen typischerweise jedoch nur noch wenige Detailinformationen aus der Datenbanktabelle abgefragt werden.A query to the database image can now be processed based on this categorical variable's categorization. If a more precise classification of the values of the categorical variable (for example a differentiation between different machine screws) is required to answer the request, the database table is used. In this case, however, typically only a few details have to be queried from the database table.
Anschaulich kann das Datenbank-Abbild dazu verwendet werden, approximative Antworten auf Statistisςhe Anfragen zu liefern.Illustratively, the database image can be used to provide approximate answers to statistical queries.
In einer Ausführungsform wird das Datenbank-Abbild hierarchisch aufgebaut . Anschaulich werden die wie oben beschrieben erzeugten Cluster selbst als Datenbanktabellen aufgefasst und analog zu der gesamten Datenbanktabelle in Segmente unterteilt, das heißt j eder Datensatz in dem i-ten Cluster wird einem j -ten Subcluster von einer Mehrzahl von Subclustern des i-ten Clusters zugeordnet . Analog fortfahrend wird anschaulich ein Baum von Clustern undIn one embodiment, the database image is constructed hierarchically. Clearly, the clusters generated as described above are themselves understood as database tables and subdivided into segments analogously to the entire database table, that is to say each data record in the ith cluster is assigned to a jth subcluster of a plurality of sub clusters of the ith cluster , Continuing analogously, a tree of clusters and vividly becomes
Subclustern aufgebaut, indem der j -te Subcluster des i-ten Clusters selbst einem k-ten Subcluster einer Mehrzahl von Subclustern des j -ten Subclusters des i-ten Clusters zugeordnet wird usw.Subclusters constructed by the j-th subcluster of the i-th Cluster itself to a kth subcluster of a plurality of subclusters of the jth subcluster of the ith cluster, and so on.
Die so entstehende Cluster-Hierarchie ist in Fig.8 dargestellt .The resulting cluster hierarchy is shown in FIG.
Fig.8 illustriert eine Cluster-Hierarchie 800 entsprechend einem Datenbank-Abbild gemäß einem Ausführungsbeispiel der Erfindung.8 illustrates a cluster hierarchy 800 corresponding to a database image according to an embodiment of the invention.
Die Cluster-Hierarchie 800 hat die Form eines Baumes .The cluster hierarchy 800 is in the form of a tree.
Die Datenbanktabelle 801 ist durch die Wurzel des Baumes symbolisiert . Entsprechend dem obigen Beispiel weist die Datenbanktabelle M Datensätze auf, die jeweils Werte der Zufallsvariablen X = (X]_, ... , X^) enthalten.The database table 801 is symbolized by the root of the tree. According to the above example, the database table M has records each containing values of the random variables X = (X] _, ..., X ^).
Für die Datenbanktabelle 801 wird ein statistisches Clustering-Modell bestimmt .For the database table 801, a statistical clustering model is determined.
Die Wahrscheinlichkeitsverteilung der Zufallsvariablen X = (X]_, ... , X) für alle Datensätze (gemäß dem bestimmten statistischen Clustering-Modell) werde mit P (X) bezeichnet . (Im Gegensatz zu oben wird auf die Angabe einesThe probability distribution of the random variables X = (X] _, ..., X ) for all data sets (according to the particular statistical clustering model) is denoted by P (X). (As opposed to above, the indication of a
Parametervektors θ und entsprechend auf die Zufallsvariable Θ verzichtet . Es wird angenommen, dass das statistische Clustering-Modell durch einen entsprechenden Satz von Parametern spezifiziert ist . )Parameter vector θ and waives the random variable Θ accordingly. It is assumed that the statistical clustering model is specified by a corresponding set of parameters. )
Gemäß dem statistischen Clustering-Modell wird die Datenbanktabelle 801 in eine erste Mehrzahl von R]_ ClusternAccording to the statistical clustering model, the database table 801 becomes a first plurality of R] _ clusters
802 unterteilt . Die Wahrscheinlichkeitsverteilung für die Datensätze in dem i-ten Cluster der ersten Mehrzahl von Clustern 802 ist durch P (X | α>j_ ) gegeben. Der i-te Cluster der ersten Mehrzahl von Clustern 802 enthalte N-j_ Datensätze . Die Wahrscheinlichkeit, dass ein Cluster dem i-ten Cluster der ersten Mehrzahl von Clustern 802 angehört sei P ( <ÖJ_ ) , wobei a>± der Wert das Clustervariable Ω ist, der dem i-ten Cluster der ersten Mehrzahl von Clustern 802 entspricht .802 divided. The probability distribution for the data sets in the ith cluster of the first plurality of clusters 802 is given by P (X | α> j_). The i-th cluster of the first plurality of clusters 802 contains N-j_ data sets. The probability that a cluster belongs to the i-th cluster of the first plurality of clusters 802 is P (<OJ_), where a> ± the value is the cluster variable Ω corresponding to the i-th cluster of the first plurality of clusters 802.
Die Cluster der ersten Mehrzahl von Clustern 802 werden ihrerseits in Cluster eingeteilt, so dass eine zweite Mehrzahl von Clustern 803 entsteht . Der i-te Cluster der ersten Mehrzahl von Clustern 802 werde dabei in R2, i (Sub-) Cluster eingeteilt .The clusters of the first plurality of clusters 802, in turn, are clustered to form a second plurality of clusters 803. The i-th cluster of the first plurality of clusters 802 is thereby divided into R2, i (sub-) clusters.
Dem j -ten Subcluster (welches einer der Cluster der zweiten Mehrzahl von Clustern 803 ist) des i-ten Clusters der ersten Mehrzahl von Clustern 802 sei der Wert G>±rj der Clustervariable Ω zugewiesen.The j-th subcluster (which is one of the clusters of the second plurality of clusters 803) of the i-th cluster of the first plurality of clusters 802 is assigned the value G> ± r j of the cluster variable Ω.
Die Wahrscheinlichkeitsverteilung für die Datensätze in dem j -ten Subcluster des i-ten Clusters der ersten Mehrzahl von Clustern 802 ist durch P (X | ω^j ) gegeben . Der j -te Subcluster des i-ten Clusters der ersten Mehrzahl von Clustern 802 enthalte N-^ j Datensätze. Die Wahrscheinlichkeit, dass einThe probability distribution for the records in the j-th subcluster of the i-th cluster of the first plurality of clusters 802 is given by P (X | ω ^ j). The jth subcluster of the ith cluster of the first plurality of clusters 802 contains N j records. The probability that one
Cluster dem j -ten Subcluster des i-ten Clusters der ersten Mehrzahl von Clustern 802 angehört sei P ( OOj^j ) .Clusters of the jth subcluster of the i-th cluster of the first plurality of clusters 802 is P (OOj ^ j).
Die Cluster der zweiten Mehrzahl von Clustern 803 werden jeweils analog zu der ersten Mehrzahl von Clustern 802 weiter in Cluster unterteilt, so dass eine dritte Mehrzahl von Clustern 804 entsteht, für die analog zu oben die Größen P (X | α>i,j,k > ' P ( «t>irj,k ) und Ni r j , k definiert sind.The clusters of the second plurality of clusters 803 are further subdivided into clusters analogously to the first plurality of clusters 802, so that a third plurality of clusters 803 are clustered Clusters 804 are created for which the quantities P (X | α> i, j, k>'P(t> i r j, k) and N ir j, k are defined analogously to the above.
Die Datensätze in der untersten Ebene der Cluster-Hierarchie 800 werden in komprimierter Form abgelegt und beispielsweise in dem Speicher 104 als Datenbank-Abbild gespeichert . (Das Datenbank-Abbild weist zusätzlich zu den gespeicherten Datensätzen weitere Daten auf, beispielsweise den Parametersatz des statistischen (Clustering-) Modells, das bestimmt wurde . )The records in the lowest level of the cluster hierarchy 800 are stored in compressed form and stored, for example, in the memory 104 as a database image. (The database image has additional data in addition to the stored records, such as the parameter set of the statistical (clustering) model that was determined.)
Im Weiteren wird mit Bezug auf Fig. 9 erläutert, wie die Datensätze eines Clusters komprimiert und gespeichert werden.In the following, it will be explained with reference to FIG. 9 how the records of a cluster are compressed and stored.
Fig.9 illustriert einen Cluster 900 gemäß einem Ausführungsbeispiel der Erfindung.9 illustrates a cluster 900 according to an embodiment of the invention.
Das Cluster 900 ist in Form einer Tabelle dargestellt . Jede Zeile einer Mehrzahl von N Zeilen 901, 902 entspricht einem in dem Cluster 900 enthaltenen Datensatz .The cluster 900 is shown in the form of a table. Each row of a plurality of N rows 901, 902 corresponds to a record contained in the cluster 900.
Jede Spalte einer Mehrzahl von K Spalten 903, 904 entspricht einer Zufallsvariable . -Each column of a plurality of K columns 903, 904 corresponds to a random variable. -
Das Folgende wird exemplarisch anhand der π-ten Zeile 902 und der i-ten Spalte 903 erläutert.The following is explained by way of example with reference to the πth row 902 and the ith column 903.
Das Cluster 900 entspreche dem Wert ω der Clustervariable Ω .The cluster 900 corresponds to the value ω of the cluster variable Ω.
Der π-te Datensatz hat wie oben die Form xπ = (x™, ... , x^)The π-th data set has, as above, the form x π = (x ™, ..., x ^)
wobei χ7 e x. , , ... , X, τ > für alle 1 < i < K . Die Werte x- -, , X- o, ... , x. τ (für alle 1 mit 1 < i < K ) sind die möglichen Ausprägungen der Zufallsvariablen X-j_, Lj_ deren Anzahl . Ein Datensatz entspricht somit einem K-Tupel von möglichen Ausprägungen, wobei das K-Tupel an der i-ten Stelle eine der möglichen Ausprägungen der i-ten Zufallsvariable Xj_ aufweist .where χ7 e x. ,, ..., X, τ > for all 1 <i <K. The values x-,, X- o , ..., x. τ (for all 1 with 1 <i <K), the possible occurrences of the random variables X-j_, Lj_ are their number. A data set thus corresponds to a K-tuple of possible occurrences, wherein the K-tuple at the i-th point has one of the possible values of the ith random variable Xj_.
Die Wahrscheinlichkeitsverteilung der Zufallsvariablen für die Datensätze in dem Cluster 900, das heißt die relativenThe probability distribution of the random variables for the records in cluster 900, that is, the relative ones
Häufigkeiten der K-Tupel von Ausprägungen in dem Cluster 900 , sei durch P (X | ω ) gegeben (eventuell nur approximativ, je nachdem, wie genau das bestimmte statistische Modell ist) .Let K-tuple frequencies of occurrences in cluster 900 be given by P (X | ω) (possibly only approximatively, depending on how accurate the particular statistical model is).
Wie oben wird angenommen, dass die x.1 ( χ. or ... , x. τ (für alle i mit 1 < i < K ) diskrete Werte sind . Weisen die Datensätze der zu Grunde liegenden Datenbanktabelle, das heißt der Datenbanktabelle, von der das Datenbank-Abbild erzeugt wurde, kontinuierliche Werte auf, so werden diese diskretisiert . Ein Wert Xi j entspricht deshalb gegebenenfalls einem Diskretierungsintervall .As above, suppose that the x. 1 ( χ. Or ..., x. Τ (for all i with 1 <i <K) are discrete values.) Do the records of the underlying database table, that is, the database table from which the database image was generated, continuous values, these are discretized, so a value Xi j may correspond to a discretization interval.
Gemäß der oben erläuterten Bestimmung eines Clustering- Modells wird die Cluster-Hierarchie 800 so gebildet, dass die Daten innerhalb der Cluster der Cluster-Hierarchie 800 homogener sind als die gesamten Daten in der zu Grunde liegenden Datenbanktabelle . Insbesondere ist für j ede Zufallsvariable ein Wert (eine Ausprägung) ausgezeichnet, welcher in den Datensätzen des Clusters 900 und somit in der Mehrzahl von Zeilen 901, 902 am häufigsten (oder verhältnismäßig häufig) enthalten ist . Der ausgezeichnete Wert für die i-te Zufallsvariable X^ (auch als Default-Wert der i-ten Zufallsvariable oder alsAccording to the above-described determination of a clustering model, the cluster hierarchy 800 is formed so that the data within the clusters of the cluster hierarchy 800 is more homogeneous than the entire data in the underlying database table. In particular, every random variable is given a value (one characteristic) which is most frequently (or relatively frequently) contained in the data records of cluster 900 and thus in the majority of rows 901, 902. The excellent value for the i-th random variable X ^ (also as the default value of the ith random variable or as
Repräsentanten-Wert bezeichnet ) werde mit XJ_ bezeichnet . Der Default-Wert kann unter Verwendung des statistischen Modells berechnet werden, die in den Datensätzen enthaltenen Ausprägungen müssen also nicht jeweils gezählt werden, um deren j eweilige relative Häufigkeit zu bestimmen .Representative value) is called XJ_. The default value can be calculated using the statistical model, so the occurrences contained in the data sets do not have to be counted in each case in order to determine their relative relative frequency.
Für einen Default-Wert gilt anschaulich, dass die bedingteFor a default value, it is clear that the conditional
Wahrscheinlichkeit P(Xj_ = XJ_ | ω-jj verhältnismäßig hoch ist, das heißt, dass in dem i-ten Cluster davon ausgegangen werden kann, dass die i-te Zufallsvariable den Wert κ± hat .Probability P (Xj_ = XJ_ | ω-jj is relatively high, that is, in the ith cluster can be assumed that the i-th random variable has the value κ ±.
Beispielsweise könnte gelten, dass 90% aller (registrierten) männlichen Kunden zwischen 30 Jahren und 40 Jahren des oben genannten Baumarkts ein Tagesgeldkonto besitzen (um dies zu erkennen, muss in der Kundendatenbanktabelle 105 die Information enthalten sein, ob die Kunden ein Tagesgeldkonto besitzen) . Für diese Klasse von Kunden kann also mit hoher Sicherheit angenommen werden, dass sie (jeweils) ein Tagesgeldkonto besitzen. Ergibt sich nun ferner bei der Erzeugung des Clustering-Modells, dass ein Cluster überwiegend aus Kunden dieses Typs besteht, dass beispielsweise die Kunden in diesem Cluster zu 85% männlich, zu 95% zwischen 30 und 40 sind und zu 92% ein Tagesgeldkonto besitzen, so wird für die Tagesgeldkonto-Zufallsvariable, das heißt der Eintrag, ob der entsprechende Kunde ein Tagesgeldkonto besitzt, der Default-Wert "ja" verwendet (wobei "j a" beispielsweise durch den Wert 1 kodiert ist ) .For example, 90% of all (registered) male customers between the age of 30 and 40 years of the above-mentioned hardware store may have a call money account (to recognize this, the customer database table 105 must contain the information as to whether the customers have a call money account). For this class of customers, it can therefore be assumed with a high degree of certainty that they (each) own a call money account. If the generation of the clustering model now also shows that a cluster predominantly consists of customers of this type, for example, the customers in this cluster are 85% male, 95% between 30 and 40, and 92% have a call money account, Thus, the default value "yes" is used for the call money account random variable, ie the entry whether the corresponding customer has a call money account ("yes" being coded, for example, by the value 1).
Anschaulich kann somit der Wert der Clustervarible Ω für einen Cluster zur Prädiktion der Datensätze in dem Cluster verwendet werden, in diesem Beispiel für den Wert der Zufallsvariable, die angibt, ob der entsprechende Kunde ein Tagesgeldkonto besitzt .Thus, the value of the cluster variable Ω for a cluster for prediction of the data sets in the cluster can be illustrated in this example, the value of the random variable that indicates whether the corresponding customer has a call money account.
In diesem Ausführungsbeispiel werden die Datensätze in dem Cluster 900 basierend auf dem Grundprinzip komprimiert, dass stets nur die Abweichung einer Ausprägung einer Zufallsvariable von dem entsprechenden Default-Wert gespeichert wird. Dies erfolgt beispielsweise mittels einer Runlength-Kodierung.In this embodiment, the data sets in the cluster 900 are compressed based on the basic principle that only the deviation of an occurrence of a random variable from the corresponding default value is always stored. This is done, for example, by means of runlength coding.
Anschaulich wird eine Information nur dann kodiert, wenn sie von den dem statistischen Modell entsprechenden Erwartungen abweichen.Clearly, information is only coded if it deviates from the expectations of the statistical model.
Im Folgenden wird die spaltenweise Runlength-Kodierung der in dem Cluster 900 enthaltenen Datensätze erläutert .In the following, the column-wise runlength coding of the data records contained in the cluster 900 will be explained.
Die i-te Spalte wird Runlength-kodiert . Die i-te Spalte enthalte beispielsweise die WerteThe i-th column is runlength encoded. For example, the i-th column contains the values
* * * * * * * * * χi f χi r χj^ 5 I xj_ 2 ' ^i ' ^i ' xi ' 2^i ' ^i 1 ' xi ' ^"i ' ^i ' xi 4 '* * * * * * * * * χ if χ ir χ j ^ 5 I xj_ 2 '^ i' ^ i ' x i' 2 ^ i '^ i 1' x i '^ "i' ^ i ' x i 4 '
Dabei wurde Lj_ > 5 angenommen . Es könnte beispielsweise Xi=X-! o gelten.It was assumed Lj_> 5. For example, it could be Xi = X-! o apply.
Bei der Runlength-Kodierung gemäß diesemIn runlength encoding according to this
Ausführungsbeispiel der Erfindung wird der Default Wert Xi nicht kodiert, sondern nur kodiert, wie oft er in hintereinanderfolgenden Zeilen auftritt . Dementsprechend wird die i-te Spalte zu 2 , κi(5 , 0 , *i,2 ' 4 ' xi,l ' 3 ' xi,4Embodiment of the invention, the default value Xi is not encoded, but only encodes how often it occurs in consecutive lines. Accordingly, the i-th column becomes 2, κ i (5 , 0, * i, 2 ' 4 ' x i, l ' 3 ' x i, 4
kodiert .encoded.
In einer anderen Ausführungsform wird zu der Anzahl der hintereinanderfolgenden Zeilen, in denen der Default-Wert enthalten ist, Eins addiert, sodass die kodierte Spalte dieIn another embodiment, one is added to the number of consecutive lines in which the default value is contained, so that the coded column the
Form 3 , X1 5 , 1 , X12 , 5 , X1 -L , 4 , X14 hat .Form 3, X 1 5 , 1, X 12 , 5, X 1 -L, 4, X 14 has.
Für einen schnellen Zugriff auf die kodierte Spalte ist es nicht erforderlich, diese zu dekodieren . Anschaulich kann auf den Daten in kodierter Form direkt gearbeitet werden, so dass Anfragen schneller beantwortet werden können als in dem Fall , dass die Kompression im Falle einer Anfrage rückgängig gemacht wird (wodurch ein hoher Rechenaufwand entstehen würde ) .For quick access to the encoded column, it is not necessary to decode it. Clearly, the data can be worked on directly in coded form, so that inquiries can be answered faster than in the case that the compression is reversed in the case of a request (which would result in a high computational effort).
Im Folgenden werden einige Beispiele für einen Zugriff auf die kodierte Spalte erläutert .The following are some examples of accessing the coded column.
Beispielsweise kann ohne Dekodieren der kodierten Spalte bestimmt werden, welche Datensätze in der i-ten Spalte einen anderen Wert als den Default-Wert enthalten . Im Falle einer entsprechenden Anfrage wird das Ergebnis gemäß Tabelle 1 geliefert .For example, without decoding the coded column, it may be determined which records in the ith column contain a value other than the default value. In case of a request, the result will be delivered according to Table 1.
Ebenso kann ohne Dekodieren der kodierten Spalte bestimmt werden, welche Datensätze in der i-ten Spalte den Default- Wert enthalten . Im Falle einer entsprechenden Anfrage wird das Ergebnis gemäß Tabelle 2 geliefert .Likewise, it can be determined without decoding the coded column, which records in the i-th column contain the default value. If requested, the result will be shown in Table 2.
Tabelle 2Table 2
Weiterhin kann ohne Dekodieren der kodierten Spalte beispielsweise bestimmt werden, welche Datensätze in der i- ten Spalte den Wert x. 1 enthalten . Im Falle einer entsprechenden Anfrage wird das Ergebnis gemäß Tabelle 3 geliefert .Furthermore, without decoding the coded column, for example, it can be determined which data records in the ith column have the value x. 1 included. In case of a request, the result will be delivered according to Table 3.
Tabelle 3Table 3
In einer anderen Ausführungsform wird das Cluster 900 spaltenweise arithmetisch kodiert .In another embodiment, the cluster 900 is arithmetically coded column by column.
Arithmetische Kodieren (siehe beispielsweise [4] ) ist einArithmetic coding (see, for example, [4]) is a
Kompressionsverfahren, bei welchem ein Datenstrom in eine Bit-Repräsentation eines reellen Intervalls umgewandelt wird. Dabei wird eine vorgegebene Wahrscheinlichkeitsverteilung verwendet .Compression method in which a data stream into a Bit representation of a real interval is converted. In doing so, a given probability distribution is used.
Die Wahrscheinlichkeitsverteilung wird verwendet, um dieThe probability distribution is used to calculate the
Wahrscheinlichkeit, dass der nächste Wert im Datenstrom der Wert x ist, P(nächster Wert = x) , zu bestimmen.Probability that the next value in the data stream is the value x, P (next value = x).
In dem vorliegenden Fall wird der Datenstrom durch die i-te Spalte 904 (oder durch alle hintereinandergeschriebenenIn the present case, the data stream is represented by the ith column 904 (or by all of them written one after the other)
Spalten) gebildet . Die Wahrscheinlichkeit P(nächster Wert = x) wird mittels des bestimmten statistischen Clustering-Modells ermittelt . Die Kompression wird dann entsprechend von einem arithmetischen Kompressor durchgeführt .Columns). The probability P (next value = x) is determined by means of the determined statistical clustering model. The compression is then performed according to an arithmetic compressor.
In dieser Ausführungsform ist es jedoch erforderlich, die kodierte Spalte zu dekodieren, um Anfragen (wie die obigen) zu beantworten.In this embodiment, however, it is necessary to decode the coded column to answer inquiries (such as the above).
In einer anderen Ausführungsform wird eine Kombination aus Runlength-Kodierung und arithmetischer Kodierung verwendet .In another embodiment, a combination of runlength coding and arithmetic coding is used.
In einem ersten Schritt wird die i-te Spalte, beispielsweise gegeben durchIn a first step, the i-th column is given, for example, by
xi ' xi i X2.5 ' xi 2 ' xi ' xi ' xi ' xi ' xi 1 ' xi ' xi ' xi ' xi 4 x i ' x i i X 2.5' x i 2 ' x i' x i ' x i' x i ' x i 1' x i ' x i' x i ' x i 4
analog zu oben durch 3 , xi- ,oc , l, χi. ,z-, , 5, Xx. ,-j,. , 4 , kodiert, wobei wie oben die Werte 3, 5 und 4 j eweils die Lauflänge des Default-Werts plus Eins an der entsprechenden Stelle im Datenstrom angeben . Anschließend wird der Datenstrom 3, x. r , l , χ.0 , 5r xH i r 4, χ. „ mittels arithmetischer Kodierung weiter komprimiert . Die dafür verwendete Wahrscheinlichkeitsverteilung ist folgendermaßen gegeben: Wahrscheinlichkeiten für die Werte, die die Lauflänge angeben, sind gegeben durchanalogous to above by 3, xi-, oc, l, χi. , z-,, 5, Xx. , J ,. , 4, encoded, where, as above, the values 3, 5 and 4 indicate in each case the run length of the default value plus one at the corresponding point in the data stream. Subsequently, the data stream 3, x. r, l, χ. 0 , 5 r x H ir 4, χ. "Further compressed by means of arithmetic coding. The probability distribution used for this is given as follows: Probabilities for the values that specify the run length are given by
P (Lauflänge=n) =P (nächster Wert im Datenstrom=x± ) n~^- (1-P (run length = n) = P (next value in the data stream = x ±) n ~ ^ - (1-
P (nächster Wert im Datenstrom=Xχ ) ) •P (next value in the data stream = Xχ)) •
Wahrscheinlichkeiten für Werte Xj^ x1 sind gegeben durchProbabilities for values Xj ^ x 1 are given by
P (nächster Wert im Datenstrom=Xj_) =P (nächster Wert im Datenstrom=xj_) / ( 1-P (nächster Wert im Datenstrom=xj_ ) ) .P (next value in the data stream = Xj_) = P (next value in the data stream = xj_) / (1-P (next value in the data stream = xj_)).
Auch in dieser Ausführungsform ist es jedoch erforderlich, die kodierte Spalte zu dekodieren, um Anfragen (wie die obigen) zu beantworten .However, in this embodiment as well, it is necessary to decode the coded column to answer queries (such as the above).
In einer anderen Ausführungsform wird nicht spaltenweise vorgegangen, sondern zeilenweise. Analog zu dem spaltenweisen Vorgehen stehen die obigen Möglichkeiten zur Verfügung (Runlength-Kodierung, arithmetische Kodierung, Kombination aus Runlength-Kodierung und arithmetischer Kodierung) .In another embodiment, the procedure is not column by column, but by rows. Analogous to the column-wise procedure, the above options are available (run-length coding, arithmetic coding, combination of run-length coding and arithmetic coding).
Wird bei zeilenweisen Vorgehen arithmetische Kodierung verwendet, so kann die Kompressionsrate weiter erhöht werden, indem für die Wahrscheinlichkeitsverteilung, die für die arithmetische Kodierung verwendet wird, bedingte Wahrscheinlichkeiten verwendet werden. Wird beispielsweise die π -te Zeile xπ = (xj, ... , x^) komprimiert, so kann für die Wahrscheinlichkeit, dass die i- te Komponente xj den Wert XJ_ hat, die WahrscheinlichkeitIf arithmetic coding is used in line-by-line fashion, the compression rate can be further increased by using conditional probabilities for the probability distribution used for the arithmetic coding. If, for example, the π-th row x π = (xj, ..., x ^) is compressed, the probability that the ith component xj has the value XJ_ can be the probability
verwendet werden, welche mittels des bestimmten statistischen Clustering-Modells ermittelbar ist .which can be determined by means of the specific statistical clustering model.
Zusammenfassend wird anschaulich unter Verwendung des ermittelten statistischen (Clustering-) Modells eine Kompression der Datenbanktabelle erreicht (vorausgesetzt, der eingesparte Speicherplatz ist größer als der zum Speichern des statistischen Modells erforderliche Speicherplatz) . Die Clusterhierarchie 800, wie sie in Fig.8 dargestellt ist, wird vorzugsweise soweit aufgebaut, dass durch weitere Segmentierung (das heißt Unterteilen in Cluster) der untersten Ebene von Clustern (in Fig.8 der dritten Mehrzahl von Clustern 804 ) kein zusätzlicher Speicherplatz eingespart werden kann (da der zum Speichern des statistischen Modells erforderliche Speicherplatz in diesem Fall die zusätzlich erreichte Kompression ausgleicht) .In summary, it is clear that the database table is compressed using the determined statistical (clustering) model (provided that the space saved is greater than the space required to store the statistical model). The cluster hierarchy 800, as shown in FIG. 8, is preferably constructed to such an extent that no further storage space is saved by further segmentation (that is, subdivision into clusters) of the lowest level of clusters (in FIG. 8 of the third plurality of clusters 804) in this case, because the space required to store the statistical model offsets the additional compression achieved).
Unabhängig davon, welche Methode zum Komprimieren des Clusters 900 verwendet wird, kann das Cluster 900 anschließend in einem zweiten Schritt mittels eines weiteren Komprimierungsverfahrens komprimiert werden, beispielsweise mittels eines Lempel-Ziv-Kompressionsverfahrens, um eventuell weiterhin vorhandene Redundanzen zu eliminieren. Da mittels eines der obengenannten KompressionsVerfahrens bereits eine Komprimierung des Clusters erzielt wurde, können in dem zweiten Schritt aufwändige Komprimierungsverfahren verwendet werden, ohne dass ein unakzeptabler Rechenaufwand beim Komprimieren und/oder Dekomprimieren erforderlich ist .Regardless of which method is used to compress the cluster 900, the cluster 900 can then be compressed in a second step by means of a further compression method, for example by means of a Lempel-Ziv compression method, in order to eliminate possibly existing redundancies. Since compression of the cluster has already been achieved by means of one of the abovementioned compression methods, complex compression methods can be used in the second step without requiring unacceptable computational overhead in compression and / or decompression.
Ferner können Verfahren zur Kodierung dünn besetzter Tafeln (Sparse-Kodierung) verwendet werden.Furthermore, methods for coding sparse panels (sparse coding) can be used.
Die statistischen Verfahren zur Kqmprimierung und die dabei aufgebauten Datenstrukturen wirken sich nicht nur positiv auf die Größe eines Datenbank-Abbilds aus . Die Datenstrukturen können auch einfach genutzt werden, um analytische Anfragen beschleunigt zu berechnen. Wird z . B. für eine Variable nur ein Wert kodiert, wenn dieser von dem Default-Wert abweicht, muss bei der Ermittlung der Statistik über die verschiedenen Werte auch immer nur für alle gerade selektierten Datensätze Korrekturen um eine Default-Statistik gemacht werden, entsprechend jeder kodierten Abweichung vom Default-Wert .The statistical methods of compression and the data structures built up thereby not only have a positive effect on the size of a database image. The data structures can also be easily used to accelerate analytical queries. If z. For example, if only one value is coded for a variable, if it deviates from the default value, corrections to a default statistic must always be made for all the data records just selected when determining statistics about the different values, corresponding to each coded deviation from the default value.
Die Kodierung des Clusters 900, beziehungsweise der in dem Cluster enthaltenen Datensätze, beispielsweise gemäß einem der oben erläuterten Ausführungsbeispiele, ermöglicht es, zu j edem in dem Cluster 900 enthaltenen Datensatz einen Schlüssel in dem Daten-Abbild zu speichern, mittels welchem der entsprechende Datensatz in der zu Grunde liegenden Datenbanktabelle gefunden werden kann .The coding of the cluster 900 or of the data sets contained in the cluster, for example according to one of the embodiments explained above, makes it possible to store a key in the data image for each data record contained in the cluster 900, by means of which the corresponding data record in FIG the underlying database table can be found.
Jedem Datensatz in der zu Grunde liegenden Datenbanktabelle ist ein Schlüssel zugeordnet . In dem Datenbank-Abbild der Datenbanktabelle ist dieser Schlüssel für jeden wie oben erläutert komprimiert gespeicherten Datensatz enthalten .Each record in the underlying database table has a key associated with it. The database image of the database table contains this key for each compressed record stored as explained above.
Als Schlüssel, der für jeden Datensatz in dem Datenbank- Abbild gespeichert wird, kann jedoch auch ein "natürlicher Schlüssel" der Segmentierung verwendet werden, das heißt, als Schlüssel für einen Datensatz in dem Cluster 900 wird eine Korabination aus einem ersten Schlüssel, der die Clusternummer der Clusters 900 spezifiziert, und einem zweiten Schlüssel , der einer Nummer des Datensatzes entsprechend einer Nummerierung der in dem Cluster 900 enthaltenen Datensätze entspricht, verwendet . Der zweite Schlüssel ist somit anschaulich die Nummer des Datensatzes innerhalb des Clusters 900. Die Clusternummer des Clusters 900 kann eine hierarchische Clusternummer sein, die gemäß der Clusterhierarchie 800 ausgestaltet ist . Beispielsweise können die Subcluster eines Clusters durchgängig nummeriert werden und entsprechend die Subcluster eines solchen Subclusters wieder durchgängig nummeriert werden, so dass sich beispielsweise eine hierarchische Clusternummer des Clusters 900 der Form 1/3/2 ergibt, wenn der Cluster 900 der zweite Subcluster (in der dritten Mehrzahl von Clustern 804 ) des dritten Subclusters (in der zweiten Mehrzahl von Clustern 803 ) des ersten Clusters der ersten Mehrzahl von Clustern 802 ist .However, as a key stored for each record in the database image, a "natural key" of the segmentation may be used, that is, as a key to a record in the cluster 900, a correspondence of a first key containing the Cluster number of clusters 900 specified, and a second key, which corresponds to a number of the record corresponding to a numbering of the records contained in the cluster 900. The second key is thus illustratively the number of the record within the cluster 900. The cluster number of the cluster 900 may be a hierarchical cluster number configured according to the cluster hierarchy 800. For example, the subclusters of a cluster can be numbered consecutively, and the subclusters of such a subcluster can be numbered consecutively again, so that, for example, a hierarchical cluster number of the cluster 900 of the form 1/3/2 results if the cluster 900 the second subcluster (in the third plurality of clusters 804) of the third subcluster (in the second plurality of clusters 803) of the first cluster of the first plurality of clusters 802.
Der zweite Schlüssel, der eine Nummer des Datensatzes entsprechend einer Nummerierung der in dem Cluster 900 enthaltenen Datensätze entspricht, kann typischerweise sehr kurz gewählt werden (ein Byte oder wenige Byte Länge) , da in dem Cluster 900 aufgrund der Segmentierung nur wenige Datensätze enthalten sind.The second key, which corresponds to a number of the record corresponding to a numbering of the records contained in the cluster 900, can typically be chosen to be very short (one byte or few bytes in length) because only a few records are contained in the cluster 900 due to the segmentation.
Die Verwendung dieses "natürlichen Schlüssels" hat den Vorteil, dass nur ein geringer Speicheraufwand bei derThe use of this "natural key" has the advantage that only a small amount of memory in the
Speicherung von Schlüsseln für Datensätze in dem Datenbank- Abbild entsteht .Storage of keys for records in the database image is created.
Die Zuordnung der "natürlichen Schlüssel" zu den in der zu Grunde liegenden Datenbanktabelle verwendeten Schlüsseln (die erforderlich ist, um den einem Datensatz in dem Datenbank- Abbild entsprechenden Datensatz in der Datenbanktabelle zu finden) , kann in Form einer Datenbanktabelle in der Datenbank, die die Datenbanktabelle enthält, selbst gespeichert werden und bei einem Zugriff auf dieThe assignment of the "natural keys" to the keys used in the underlying database table (which is required to find the record corresponding to a record in the database image in the database table) can take the form of a database table in the database the database table contains, itself to be stored and with an access to the
Datenbanktabelle bzw. auf die Datenbank entsprechend ausgelesen werden . Sind mehrere Datenbanktabellen und entsprechend Datenbank- Abbilder vorhanden, beispielsweise entsprechend Fig. l ein Transaktionsdatenbanktabelle-Abbild 108 für eine Transaktionsdatenbanktabelle 106 und ein Kundendatenbanktabelle-Abbild 107 für eineDatabase table or to the database accordingly. If a plurality of database tables and corresponding database images exist, for example, according to FIG. 1, a transaction database table image 108 for a transaction database table 106 and a customer database table image 107 for a
Kundendatenbanktabelle 105, so werden in den Datenbank- Abbildern Schlüssel für die j eweiligen Datensätze gespeichert .Customer database table 105, keys for the respective data records are stored in the database images.
In dem Beispiel gemäß Fig. l können nun, wie es mit Bezug auf Fig.4 und Fig.5 erläutert wurde, bei einer Selektion von Transaktionsdatensätzen in dem Transaktionsdatenbanktabelle- Abbild 108 (beispielsweise gemäß Fig.4) entsprechende Kundendatensätze in dem Kundendatenbanktabelle-Abbild 107 selektiert werden. Dies erfolgt mittels eines gemeinsamen Schlüssels der Kundendatenbanktabelle 105 und der Transaktionsdatenbanktabelle 106, beispielsweise mittels der Kundennummer eines Kunden, dem ein Kundendatensatz entspricht, oder einem Kunden entspricht, der an einer Transaktion beteiligt war, die einem Transaktionsdatensatz entspricht .In the example of FIG. 1, as explained with reference to FIG. 4 and FIG. 5, upon selection of transaction records in the transaction database table image 108 (eg, FIG. 4), corresponding customer records in the customer database table image 107 are selected. This is done by means of a common key of the customer database table 105 and the transaction database table 106, for example by the customer number of a customer corresponding to a customer record or a customer involved in a transaction corresponding to a transaction record.
Bei einer Selektion von Transaktionsdatensätzen in dem Transaktionsdatenbanktabelle-Abbild 108 (beispielsweise gemäß Fig.4) können anhand der in dem Transaktionsdatenbanktabelle- Abbild 108 gespeicherten Schlüssel der Transaktionsdatensätze in dem Transaktionsdatenbanktabelle-Abbild 108 die entsprechenden Transaktionsdatensätze in der Transaktionsdatenbanktabelle 106 identifiziert werden (beispielsweise mittels einer entsprechendenUpon selection of transaction records in the transaction database table image 108 (e.g., as shown in FIG. 4), the corresponding transaction records in the transaction database table 106 may be identified (eg, by means of a transaction database record key stored in the transaction database table image 108 in the transaction database table image 108) appropriate
Zuordnungstabelle) . Mittels den Kundennummern können nun die entsprechend selektierten Kundendatensätze in der Kundendatenbanktabelle 105 bestimmt werden und mittels einer Zuordnungstabelle, die den Schlüsseln der Kundendatensätze des Kundendatenbanktabelle-Abbilds 107 die entsprechendenAllocation table). By means of the customer numbers, the correspondingly selected customer data records in the customer database table 105 can now be determined and, by means of an allocation table, which corresponds to the keys of the customer data records of the customer database table image 107
Schlüssel der Kundendatensätze der Kundendatenbanktabelle 105 zuordnet, die entsprechend selektierten Kundendatensätze in dem Kundendatenbanktabelle-Abbild 107 ermittelt werden und die entsprechende Selektion (beispielsweise gemäß Fig.5) verwendet werden.Assigning customer data records keys to the customer database table 105 which are determined according to selected customer records in the customer database table image 107 and the corresponding selection (for example according to FIG. 5) can be used.
Damit ein Zugriff auf die Kundendatenbanktabelle 105 und die Transaktionsdatenbanktabelle 106 zum Ermitteln der entsprechenden Selektion der Kundendatensätze in dem Kundendatenbanktabellen-Abbild 107 nicht erforderlich ist, weisen das Transaktionsdatenbanktabellen-Abbild und das Kundendatenbanktabellen-Abbild 107 selbst einen gemeinsamen Schlüssel (beispielsweise Kundennummern) auf, die die entsprechende Selektion von Kundendatensätzen in dem Kundendatenbanktabellen-Abbild 107 zu einer Selektion von Transaktionsdatensätzen in dem Transaktionsdatenbanktabellen- Abbild 108 analog zu der oben beschriebenen Vorgehensweise ermöglichen . tSo that access to the customer database table 105 and the transaction database table 106 for determining the corresponding selection of the customer records in the customer database table image 107 is not required, the transaction database table image and the customer database table image 107 itself have a common key (for example, customer numbers) enable the corresponding selection of customer records in the customer database table image 107 to select transaction records in the transaction database table image 108 analogous to the procedure described above. t
Somit weist das vorgeschlagene Verfahren die folgenden Vorteile insbesondere im Zusammenhang mit relationalen Abfragen (also Abfragen, die mehrere Datenbanktabellen betreffen) auf. Durch die Kompression können die Datenbank- Abbilder in einem kleinen aber schnellen Speicher (im Hauptspeicher) gehalten werden. Gleichzeitig sind die Datenbank-Abbilder so konzipiert, dass Schlüssel in die komprimierten Bilder eingespeichert werden können und trotzdem noch einen (nahezu) wahlfreien Zugriff erlauben . Das erlaubt verschiedene Datenbank-Abbilder (so wie ursprünglich verschiedene Tafeln (Datenbanktabellen) in der relationalen Datenbank) über Schlüssel zu verbinden und damit relationale Abfragen zu beantworten. Damit ist ein erheblicher Geschwindigkeitsgewinn gegeben aus den folgenden Gründen :Thus, the proposed method has the following advantages, in particular in the context of relational queries (that is, queries involving multiple database tables). The compression allows the database images to be kept in a small but fast memory (in main memory). At the same time, the database images are designed so that keys can be stored in the compressed images and still allow (almost) random access. This allows different database images (as originally different tables (database tables) in the relational database) to connect via keys and thus to answer relational queries. This gives a considerable speed gain for the following reasons:
• Die Geschwindigkeit des Hauptspeichers ist wesentlich größer als anderen große Massenspeicher (Festplatten) .• The speed of the main memory is much greater than other large mass storage devices (hard disks).
• Die Datenbank-Abbilder sind so konstruiert, dass über die Segmentierung ein schneller Zugriff auf die Daten und ein schnelles Auszählen möglich ist .• The database images are constructed in such a way that segmentation allows fast access to the data and fast counting.
• Im Hauptspeicher hat man einen sog. wahlfreien Zugriff (im Unterschied zu Festplatten) , was besonders vorteilhaft ist, wenn man über Schlüssel bei relationalen Abfragen gezielt auf Elemente in verschiedenen Abbildern zugreifen muss .• There is a so-called random access (as opposed to hard disks) in the main memory, which is especially beneficial when using keys relational queries must access specific elements in different images.
Eine weiterhin gesteigerte Effizienz ist in einer Ausführungsform gegeben, in der ein Datenbank-AbbildA further increased efficiency is given in an embodiment in which a database image
(beispielsweise das Transaktionsdatenbanktabellen-Abbild 108 ) Verweise auf die Datensätze in dem anderen Datenbank-Abbild (beispielsweise dem Kundendatenbanktabellen-Abbild 107 ) enthält .(For example, the transaction database table image 108) contains references to the data records in the other database image (eg, the customer database table image 107).
In einer weiteren Ausführungsform wird eine Steigerung der Effizienz dadurch erreicht, dass die beiden Datenbank- Abbilder nicht unabhängig voneinander generiert werden, sondern dass die Gruppierung von Datensätzen zu Clustern zur Erzeugung eines der beiden Datenbank-Abbildern mit Rücksicht auf das andere Datenbank-Abbild erfolgt .In another embodiment, an increase in efficiency is achieved in that the two database images are not generated independently of each other, but that the grouping of data sets to clusters for generating one of the two database images takes place with regard to the other database image.
Beispielsweise wird das Transaktionsdatenbanktabellen-Abbild 108 mit Rücksicht auf das Kundendatenbanktabellen-Abbild 107 erzeugt, indem alle Transaktionsdatensätze, die demselben Kundendatensatz entsprechen, das heißt, die Transaktionen entsprechen, an denen derselbe Kunde beteiligt war, demselben Cluster zugeordnet werden. Dies ermöglicht es, beispielsweise bei einer Selektion von Kundendatensätzen in dem Kundendatenbanktabellen-Abbild 107, schnell auf die entsprechenden Transaktionsdatensätze in dem Transaktionsdatenbanktabellen-Abbild 108 zuzugreifen, da diese alle demselben Cluster des Transaktionsdatenbanktabellen-Abbilds 108 zugeordnet sind. Dies ist insbesondere dann von Vorteil, wenn die Cluster des Transaktionsdatenbanktabellen-Abbilds 108 komprimiert vorliegen und bei einem Zugriff dekomprimiert werden müssen. Bei einer wie oben erfolgten Gruppierung müssen deshalb nur wenige Cluster bei einer Anfrage dekomprimiert werden.For example, the transaction database table image 108 is generated with respect to the customer database table image 107 by mapping all transaction records that correspond to the same customer record, that is, correspond to the transactions in which the same customer was involved, to the same cluster. This makes it possible, for example when selecting customer records in the customer database table image 107, to quickly access the corresponding transaction records in the transaction database table image 108, since they are all assigned to the same cluster of the transaction database table image 108. This is particularly advantageous when the clusters of the transaction database table image 108 are compressed and must be decompressed on access. In a grouping as above, therefore, only a few clusters need to be decompressed on a request.
Ein aufeinander abgestimmte Cluster-Struktur kann z .B . dadurch erreicht werden, dass zunächst wie üblich Cluster für eine Tafel (d. h . Datenbanktabelle) durch ein Lernverfahren generiert werden. Alle Daten aus der zweiten Tafel, die entsprechend den Schlüsseln zu einem Cluster aus der ersten Tafel gehören, werden dann ohne ein Lernverfahren zu benutzen zu einem Cluster für die zweite Tafel zusammengefasst . In dem Beispiel werden also zunächst die Kunden in typische Kundenklassen zusammengefasst (d. h. ein Clustering der Datensätze der Kundendatenbanktabelle wird durchgeführt) . Die Transkationsdatensätze zu all den Transaktionen, die zu den Kunden einer Kundenklasse gehören, werden dann entsprechend zu einem Cluster für die Transaktionsdaten zusammengefasst . Das Lernen findet dementsprechend nur auf der ersten Tafel statt . Das Clustering auf der zweiten Tafel richtet sich nach den Clustern der ersten Tafel .A coordinated cluster structure can, for example. be achieved by first clustering as usual a blackboard (i.e., database table) is generated by a learning process. All the data from the second panel corresponding to the keys to a cluster from the first panel are then combined into a cluster for the second panel without a learning procedure. In the example, the customers are first grouped into typical customer classes (ie, a clustering of the customer database table data records is performed). The transaction records for all the transactions that belong to the customers of a customer class are then combined into a cluster for the transaction data. Accordingly, learning takes place only on the first board. The clustering on the second panel depends on the clusters of the first panel.
Vorteilhafter Weise kann ein gemeinsames Clustering aber auch durch ein gemeinsames Lernen erreicht werden. Ein gemeinsames Clustering kann z . B . durch gemeinsame EM-Schritte in einem EM-Lernverfahren erreicht werden, wobei eine gemeinsame Cluster-Variable genutzt wird. Wie oben beschrieben werden in einem EM-Lernverfahren zunächst die Clusterzugehörigkeiten geschätzt (E-Schritt ) . In einem gemeinsamen EM-Lernverfahren wird die Zugehörigkeit z . B . eines Kunden aus einer Kundentabelle zu einem Cluster nicht nur an Hand seiner Kundeneigenschaften sondern auch an Hand seiner Transaktionen (gespeichert in der Transaktionstabelle) vorgenommen . Für die zu einem Kunden gehörenden Transaktionen gibt es umgekehrt nicht verschiedene a-posteriori-Schätzungen für dieAdvantageously, a common clustering can also be achieved through joint learning. A common clustering can z. B. can be achieved through common EM steps in an EM learning process, using a common cluster variable. As described above, in an EM learning process, the cluster affiliations are first estimated (E-step). In a common EM learning process, the affiliation z. B. a customer from a customer table to a cluster made not only on the basis of his customer characteristics but also on the basis of his transactions (stored in the transaction table). Conversely, for the transactions belonging to a customer, there are not different a posteriori estimates for the customer
ClusterZugehörigkeit, sondern eine gemeinsame Zuordnung.Cluster affiliation, but a common assignment.
Konkreter kann beispielsweise das gemeinsame Clustering wie folgt erfolgen . Um die a-posteriori-Schätzung für die latente Variable (die Cluster-Variable) für einen Kunden zu erhalten, wird zunächst wie in bekannten Inferenz-Verfahren (siehe z . B . die in [10] beschriebenen Inferenz-Verfahren an Hand von Message Passing Algorithmen) eine Message von jeder der bekannten Variablen (oder von Variablengruppen bzw . Cliques) des Kunden aus der Kundentabelle zu der Cluster-Variable gesendet . Dabei werden wie üblich dieMore concretely, for example, the common clustering can be done as follows. To obtain the a-posteriori estimate for the latent variable (the cluster variable) for a client, first, as in known inference techniques (see, e.g., the inference methods described in [10], using Message Passing algorithms) a message from each of the customer's known variables (or variable groups or cliques) from the customer table to the cluster variable Posted . As usual, the
Wahrscheinlichkeitstafeln entsprechend der Struktur des gewählten Kundenmodells benutzt . In einem zusätzlichen Schritt wird nun auch von jedem Eintrag aus der Transaktionstabelle, die zu dem gerade betrachteten Kunden gehören, eine Message zu der Cluster-Variable gesendet, um die Informationen aus der Transaktionstabelle in der a- posteriori-Schätzung der Zugehörigkeit eines Kunden zu einem Cluster zu berücksichtigen. Für jede Transaktion, die zu einem Kunden gehört, können dabei wiederholt dieProbability charts used according to the structure of the chosen customer model. In an additional step, a message is now sent to the cluster variable from each entry in the transaction table belonging to the customer just considered, in order to obtain the information from the transaction table in the a posteriori estimation of the customer's affiliation To consider clusters. For each transaction that belongs to a customer, the
Wahrscheinlichkeitstafeln eines gewählten „Transaktions- Modells" (ein gemeinsames Wahrscheinlichkeitsmodell für die Variablen aus der Transaktionstabelle und die latente Variable) benutzt werden . Die so entstehende a-posteriori- Schätzung für die Cluster-Variable kann dann die Basis für den M-Schritt bilden . In dem Kunden-Modell ist dies der übliche M-Schritt unter Nutzung des gemeinsam berechneten Posterior für jeden Kunden und Berechnung der „Sufficient Statistics" ( siehe [1] und [3] ) als Summe über alle Kunden . In dem Transaktions-Modell kann die Berechnung der Sufficient Statistics für den M-Schritt als Summe über alle Transaktionen eines Kunden mit dem dazu gehörenden Posterior und als zusätzliche Summe über alle Kunden erfolgen.Probability tables of a selected "transaction model" (a common probabilistic model for the variables from the transaction table and the latent variable) can be used, and the resulting a posteriori estimate for the cluster variable can form the basis for the M step. In the customer model this is the usual M-step using the jointly calculated posterior for each customer and calculation of the "sufficient statistics" (see [1] and [3]) as the sum across all customers. In the transaction model, the calculation of sufficient statistics for the M step can be done as the sum of all transactions of a customer with the associated posterior and as an additional sum across all customers.
Enthält ein Datenbank-Abbild Schlüssel wie oben beschrieben, so kann das Datenbank-Abbild als multidimensionaler Index für eine Datenbank verwendet werden. Dies wird im Folgenden erläutert . Insbesondere erlauben mehrere über eine Schlüssel verbundene Datenbank-Abbilder einen multidimensionalen Zugriff auf eine Datenbank, bei dem Bedingungen aufIf a database image contains keys as described above, the database image can be used as a multidimensional index for a database. This will be explained below. In particular, multiple database-associated database images allow for multidimensional access to a database in conditions
Dimensionen aus verschiedenen Datenbanktabellen gesetzt werden.Dimensions from different database tables are set.
Für eine Datenbanktabellekann zu einer Spalte der Datenbanktabelle ein Index erzeugt werden, der es erlaubt, schnell Datensätze der Datenbanktabelle zu finden, für die die in der Spalte gespeicherte Größe einen bestimmten Wert annimmt . Beispielsweise könnte die Kundendatenbanktabelle 105 eine Spalte aufweisen, in der die Nationalität der Kunden angegeben wird, das heißt jeder Kundendatensatz weist ein Feld auf, in dem eine Spezifikation der Nationalität des entsprechenden Kunden enthalten ist . Erfolgen häufig länderspezifische Abfragen der Kundendatenbanktabelle 105, so ist es von Vorteil, die Schlüssel von Kundendatensätzen, die Kunden einer bestimmten Nationalität entsprechen, in einem Index (das heißt einer Liste) zusammenzufassen . Auf diese Weise können die Kundendatensätze, die Kunden der Nationalität entsprechen, schnell in der Datenbanktabelle gefunden werden. So kann für jede Spalte der Datenbanktabelle ein Index erstellt werden. Weist die Datenbanktabelle j edoch eine Vielzahl von Spalten auf, so entsteht ein erheblicher Aufwand, der insbesondere zu Performance-Schwierigkeiten führt . Im Extremfall, ist es, beispielsweise ausFor a database table, an index can be created for a column of the database table that allows to quickly find records of the database table for which the size stored in the column assumes a certain value. For example, the customer database table 105 could have a column indicating the nationality of the customers, that is, each customer record has a field that contains a specification of the nationality of the corresponding customer. Often, when country-specific queries of the customer database table 105 are made, it is advantageous to group the keys of customer records corresponding to customers of a particular nationality into an index (that is, a list). In this way, the customer records that correspond to customers of nationality can be found quickly in the database table. This allows an index to be created for each column of the database table. However, if the database table has a large number of columns, a considerable outlay arises, which in particular leads to performance difficulties. In extreme cases, it is, for example
Performancegründen, nicht möglich, für jede Spalte der Datenbanktabelle einen Index zu generieren.For performance reasons, it is not possible to generate an index for each column of the database table.
Ein Datenbank-Abbild kann als "multidimensionaler" Index für die Datenbanktabelle verwendet werden, wenn, wie oben erläutert, für die Datensätze in dem Datenbank-Abbild Schlüssel gespeichert sind, die es erlauben, die entsprechenden Datensätze in der zu Grunde liegenden Datenbanktabelle zu finden. So kann zu jeder Selektion von Datensätzen in den Datenbank-Abbild nach vorgegebenenA database image can be used as a "multidimensional" index for the database table if, as explained above, the records in the database image have keys stored that allow them to find the corresponding records in the underlying database table. Thus, for each selection of records in the database image according to predefined
Eigenschaften die entsprechenden Datensätze in der zu Grunde liegenden Datenbanktabelle gefunden werden, ohne dass die vorgegebenen Bedingungen für alle Datensätze der Datenbanktabelle überprüft werden müssen.Properties, the corresponding data records can be found in the underlying database table without having to check the specified conditions for all data records of the database table.
Dies ist insbesondere dann von Vorteil, wenn nur ein kleinerThis is particularly advantageous if only a small
Teil der Daten die Selektionskriterien erfüllt und deshalb nur wenige Datensätze aus der Datenbanktabelle abgerufen werden müssen, man aber ohne das Datenbank-Abbild alle Datensätze hätte durchsehen müssen um zu prüfen, ob sie die Selektionsbedingungen erfüllen. Beispielsweise enthält die Kundendatenbanktabelle für jeden (registrierten Kunden) des Baumarkt einen Kundendatensatz, den neben dem Alter des Kunden, der Kundennummer, dem Geschlecht des Kunden (usw. ) die Adresse des Kunden enthält . In dem Kundendatenbanktabellen-Abbild 107 existiert für jeden Kunden ein Kundendatensatz, der nur einen Teil dieser Informationen enthält, beispielsweise das Geschlecht des entsprechenden Kunden und das Alter des entsprechenden Kunden, insbesondere aber nicht die Adresse des entsprechenden Kunden. Am Ende eines Planungsprozesses könnte nun eine Zielgruppe bestimmt worden sein, beispielsweise alle Kunden zwischen 30 und 40 Jahren mit einem bestimmten Einkommen, welche ledig sind. Das Kundendatenbanktabellen- Abbild 107 kann nun in dem Sinne als multidimensionaler Index für die Kundendatenbanktabelle 105 verwendet werden, dass die Kundendatensätze der Kundendatenbanktabelle 105, die der Zielgruppe entsprechen, mittels der in dem Kundendatenbanktabellen-Abbild 107 gespeicherten Schlüssel schnell ermittelt werden können. Das Kundendatenbanktabellen- Abbild gibt die entsprechenden Schlüssel aus und diePart of the data meets the selection criteria and therefore only a few records from the database table must be retrieved, but without the database image all records would have to look through to check whether they meet the selection conditions. For example, the customer database table for each (registered customer) of the hardware store contains a customer record that contains the customer's address in addition to the age of the customer, the customer number, the gender of the customer (etc.). In the customer database table image 107, there is a customer record for each customer which contains only a portion of this information, for example the gender of the corresponding customer and the age of the corresponding customer, but in particular not the address of the corresponding customer. At the end of a planning process, a target group could have been determined, for example, all customers between the ages of 30 and 40 with a certain income who are unmarried. The customer database table image 107 can now be used as a multidimensional index for the customer database table 105 in the sense that the customer data records of the customer database table 105 that correspond to the target group can be determined quickly by means of the keys stored in the customer database table image 107. The customer database table image outputs the corresponding keys and the
Schlüssel werden an die Datenbank weitergereicht . An Hand der Schlüssel kann die Datenbank unmittelbar die Adressen der Kunden der Zielgruppe aus der Kundendatenbanktabelle 105 abrufen, ohne in einem aufwändigen Prozess die Bedingung, die die Zielgruppe definiert, auf allen Kundendatensätzen prüfen zu müssen.Keys are passed to the database. On the basis of the keys, the database can directly retrieve the addresses of the customers of the target group from the customer database table 105, without having to examine the condition defining the target group on all customer data records in a complex process.
Mit Hilfe über einen Datenbank-Schlüssel relational verbundener Datenbank-Abbilder können in ähnlicher Weise auch sehr schnell Datensätze (Zielgruppen) aus einer Datenbank abgerufen werden, die sich über eine Bedingung definieren, die verschiedene Datenbanktabellen einer Datenbank betreffen. So lassen sich zum Beispiel sehr schnell Adressen zu Kunden aus einer Datenbank ermitteln, die zwischen 30 und 40 Jahre alt sind (=Bedingung an ein Feld aus der Datenbanktabelle mit den Kundestammdaten) und die im Januar Blumenzwiebeln gekauft haben (= Bedingung an ein Feld aus der Transaktionstafel) .Using a database key of relationally connected database images, similarly, data sets (target groups) can be retrieved from a database very quickly, which define themselves via a condition that concerns various database tables of a database. For example, addresses to customers from a database that are between 30 and 40 years old can be determined very quickly are old (= condition to a field from the database table with the customer master data) and that bought flower bulbs in January (= condition to a field from the transaction table).
Wie oben bereits erwähnt wurde, können für eine kategorielle Zufallsvariable die Ausprägungen, die in der Datenbank vorhanden sind, in dem Datenbank-Abbild gruppiert werden, so dass insbesondere für das Datenbank-Abbild weniger Speicher erforderlich ist, da weniger unterschiedliche Ausprägungen kodiert werden müssen. Beispielsweise werden, wie oben erläutert, alle möglichen Maschinenschraube'n zu einer Produktgruppe "Maschinenschrauben" zusammengefasst . Analog kann das Datenbank-Abbild Diskretisierungen von in der Datenbank vorhandenen Ausprägungen enthalten oder es können in dem Datenbank-Abbild verschiedene Werte zu Wertebereichen zusammengefasst sein .As mentioned above, for a categorical random variable, the occurrences present in the database can be grouped in the database image, thus requiring less memory, in particular for the database image, since fewer different occurrences have to be encoded. For example, as explained above, all possible machine screws are combined to form a product group "machine screws". Analogously, the database image may contain discretizations of occurrences existing in the database, or different values may be combined in value ranges in the database image.
Beispielsweise enthält die Kundendatenbanktabelle 105 in j edem Kundendatensatz die Information, in welchem Monat der entsprechende Kunde geboren wurde, so dass das Alter des entsprechenden Kunden auf einen Monat genau bekannt ist . Um einen geringen Speicheraufwand des Kundendatenbanktabellen- Abbilds 107 zu erreichen, weisen die Kundendatensätze des Kundendatenbanktabellen-Abbilds 107 j eweils die Spezifikation des Alters des entsprechenden Kunden nur auf ein Jahr genau auf .For example, the customer database table 105 contains in each customer record the information in which month the corresponding customer was born so that the age of the corresponding customer is known to one month. In order to achieve a low storage cost of the customer database table image 107, the customer data records of the customer database table image 107 always have the specification of the age of the corresponding customer only for one year.
Wird an' das Datenbank-Abbild eine Anfrage gestellt, für die die genaue, nur in der zu Grunde liegenden Datenbanktabelle enthaltenen Informationen erforderlich sind, so kann mittels des Datenbank-Abbilds eine Vorauswahl der Datensätze getroffen werden, mittels der in dem Datenbank-Abbild gespeicherten Schlüssel die der Vorauswahl entsprechenden Datensätze der zu Grunde liegenden Datenbanktabelle bestimmt werden und anschließend durch Zugriff auf dieA request is made to 'the database dump, for the exact, contained only in the underlying database table information is required as a pre-selection, the records will be made by means of the database dump, using the data stored in the database dump Key the pre-selection corresponding records of the underlying database table are determined and then by accessing the
Datenbanktabelle die Anfrage beantwortet werden, wobei nur die der Vorauswahl entsprechenden Datensätze der Datenbanktabelle berücksichtigt werden müssen, wodurch ein Geschwindigkeitsvorteil erreicht wird.Database table the request will be answered, with only the records of the database table corresponding to the preselection must be taken into account, whereby a speed advantage is achieved.
Beispielsweise wird eine Anfrage an dasFor example, a request to the
Kundendatenbanktabellen-Abbild 107 gestellt, die sich auf alle Kunden unter 17 , 5 Jahren bezieht . In dem Kundendatenbanktabellen-Abbild 107 seien in den Datensätzen gemäß obigen Beispiel das Alter der Kunden nur auf ein Jahr bekannt . Mittels des Kundendatenbanktabellen-Abbilds 107 kann die Anfrage für alle Kunden unter 17 Jahren beantwortet werden, da die entsprechenden Datensätze eindeutig bestimmt werden können. Zusätzlich werden mittels des Kundendatenbanktabellen-Abbilds 107 die Schlüssel der Kundendatensätze bestimmt, bei denen die entsprechenden Kunden zwischen 17 und 18 Jahren sind. Mittels dieser Schlüssel kann nun durch Zugriff auf dieCustomer database table image 107, which refers to all customers under 17, 5 years. In the customer database table image 107, in the data sets according to the above example, the age of the customers is only known for one year. By means of the customer database table image 107, the request can be answered for all customers under the age of 17, since the corresponding data records can be uniquely determined. In addition, by means of the customer database table image 107, the keys of the customer data sets are determined, for which the corresponding customers are between 17 and 18 years old. This key can now be accessed by accessing the
Kundendatenbanktabelle 105 überprüft werden, welche dieser Kundendatensätze tatsächlich Kunden entsprechen, die unter 17, 5 Jahren alt sind. Sind diese entsprechend bestimmt, kann die Anfrage vollständig beantwortet werden .Customer database table 105 which of these customer records actually correspond to customers who are under 17, 5 years old. If these are determined accordingly, the request can be completely answered.
Die Funktionsweise als multidimensionaler Index entfaltet besonders dann Vorteile, wenn mehrere Datenbanktabellen in die Abfrage involviert sind, wenn also z . B . die Adressen aller Kunden abgefragt werden sollen, die unter 18 Jahren alt sind, und im Januar Blumenzwiebeln gekauft haben. In der Datenbankabfragesprache SQL bezeichnet man solche Abfragen als „JOINΛΛ . Gerade derartige Abfragen, die eine Verknüpfung mehrerer Datenbanktabellen erfordern, sind in Datenbanken oft langsam. Eine Liste der IDs ( Identifikationen, beispielsweise Kundennummern) solcher Kunden kann, wie in den vorhergehenden Ausführungen bereits ausführlich beschrieben, sehr effizient durch die Verknüpfung zweier geeigneter Datenbank-Abbilder ermittelt werden, die z . B . durch statistische Modellierung eine Kompression erzielen, die es ermöglicht, die Liste komplett im Hauptspeicher zu berechnen .The function as a multidimensional index is particularly advantageous if several database tables are involved in the query, so if z. B. to query the addresses of all customers who are under 18 years old, and bought flower bulbs in January. In the database query language SQL, such queries are called "JOIN ΛΛ . Such queries, which require linking multiple database tables, are often slow in databases. A list of the IDs (identifications, for example customer numbers) of such customers can, as described in detail in the preceding embodiments, be very efficiently determined by the combination of two suitable database images, the z. B. through statistical modeling achieve a compression that makes it possible to calculate the list completely in main memory.
Insbesondere kann ein Datenbank-Abbild anschaulich als transparenter Beschleuniger für eine Datenbank verwendet werden. Statt mittels einer Benutzeroberfläche wird beispielsweise von einem Programm eine Anfrage an die Datenbank übermittelt . Die Anfrage wird unter Verwendung des Datenbank-Abbilds wie oben erläutert schnell beantwortet, indem nur auf die Datenbank zugegriffen wird, wenn dies erforderlich ist, da die Daten in den Datenbank-Abbilds nicht ausreichen . Beispielsweise ist wie oben die Adresse eines Kunden nicht in dem Datenbank-Abbild gespeichert, sondern nur in der dem Datenbank-Abbild zu Grunde liegenden Datenbanktabelle in der Datenbank oder in dem Datenbank- Abbild sind. Dies ist insofern transparent, als für das Programm, das die Anfrage übermittelt, kein Unterschied darin besteht, ob die Anfrage direkt durch Zugriff auf die zu Grunde liegende Datenbanktabelle beantwortet wird, oder unter Verwendung des Datenbank-Abbilds der Datenbanktabelle .In particular, a database image can be graphically used as a transparent accelerator for a database. Instead of using a user interface, for example, a program sends a request to the database. The query is quickly answered using the database image, as explained above, by accessing the database only when necessary because the data in the database image is insufficient. For example, as above, the address of a customer is not stored in the database image, but only in the database image underlying database table in the database or in the database image. This is transparent in that, for the program transmitting the request, there is no difference in whether the request is answered directly by accessing the underlying database table, or by using the database image of the database table.
Somit werden Anfragen einer anderen Software anschaulich von dem Datenbank-Abbild anstelle von der Datenbank entgegengenommen, diese ausgewertet, und dann entweder selbständig aufgrund der in dem Datenbank-Abbild (oder auch mehreren Datenbank-Abbildern) gespeicherten Informationen beantwortet, oder - falls bestimmte benötigte Informationen nicht im Datenbank-Abbild vorliegen - eine ggf . optimierte Anfrage an die Datenbank weitergeleitet, die Ergebnisse abgeholt, ggf. weiterverarbeitet, und das Ergebnis an die anfragende Software übermittelt . Vorgenommene Optimierungen können beispielsweise darin bestehen, dassThus, requests from other software are clearly taken from the database image instead of the database, evaluated, and then either independently answered based on the information stored in the database image (or multiple database images), or - if certain required information not in the database image - a possibly. forwarded optimized request to the database, retrieved the results, possibly further processed, and transmitted the result to the requesting software. For example, optimizations made may be that
Selektionskriterien in der Abfrage entfernt werden, und durch direkte Ansteuerung einzelner Datensätze mit Hilfe einer aus dem Datenbank-Abbild generierten Liste von Schlüsseln entsprechende Selektionen erfolgen.Selection criteria are removed in the query, and by direct control of individual records using a selections corresponding to the database image generated list of keys.
Insbesondere kann die Erfindung Abfragen in der Abfragesprache SQL (structured query language) entgegennehmen und beantworten.In particular, the invention can accept and answer queries in the query language SQL (structured query language).
Insbesondere kann zur Übermittlung der SQL-Abfrage von der anfragenden Software zur Erfindung und zur Rückübermittlung der Ergebnisse einer der Schnittstellen-Standards JDBC (java database Connectivity) oder ODBC (open database Connectivity) zum Einsatz kommen .In particular, to communicate the SQL query from the requesting software for invention and to return the results of one of the interface standards JDBC (java database connectivity) or ODBC (open database connectivity) can be used.
Insbesondere kann die Erfindung als Beschleuniger transparent eingesetzt werden, d. h. so, dass eine Anwendungssoftware, die für direkten Zugriff auf die Datenbank ausgelegt ist, ohne Eingriff durch die Erfindung beschleunigt werden kann. In particular, the invention can be used transparently as an accelerator, ie, such that an application software designed for direct access to the database can be accelerated without intervention by the invention.
In diesem Dokument sind folgende Veröffentlichungen zitiert :This document cites the following publications:
[1] Castillo, Jose Manuel Gutierrez,[1] Castillo, Jose Manuel Gutierrez,
Ali S . Hadi : "Expert Systems and Probabilistic Network Models", Springer, New YorkAli S. Hadi: Expert Systems and Probabilistic Network Models, Springer, New York
[2] Reimar Hofmann : "Lernen der Struktur nichtlinearer Abhängigkeiten mit graphischen Modellen", Dissertation, Berlin, oder David Heckermann, A tutorial on learning Bayesian networks, Technical Report MSR-TR-95-06, Microsoft Research[2] Reimar Hofmann: "Learning the Structure of Nonlinear Dependencies with Graphical Models", Dissertation, Berlin, or David Heckermann, A tutorial on learning Bayesian networks, Technical Report MSR-TR-95-06, Microsoft Research
[3] Martin A. Tanner: "Tools for Statistical Inference", Springer, New York, 1996[3] Martin A. Tanner: "Tools for Statistical Inference," Springer, New York, 1996
[4 ] Moffat, A. , Neal, R. M. , and Witten, I . H . : "Arithmetic coding revisited" , ACM Transactions on Information Systems, vol . 16, pp. 256-294 , 1995[4] Moffat, A., Neal, R.M., and Witten, I. H . : "Arithmetic coding revisited", ACM Transactions on Information Systems, vol. 16, pp. 256-294, 1995
[5] WO 00/65479[5] WO 00/65479
[6] WO 02/101581[6] WO 02/101581
[7 ] A. Orenstein: "Spatial query processing in an object oriented database System" , in SIGMOD, Washington, D . C , pp. 326-236, 1986.[7] A. Orenstein: Spatial query processing in an object oriented database system, in SIGMOD, Washington, D. C, pp. 326-236, 1986.
[8 ] Ramakrishnan Raghu: "Database Management Systems" , McGraw-Hill, 2002[8] Ramakrishnan Raghu: "Database Management Systems," McGraw-Hill, 2002
[9] Charu C. Aggarwal, Philip S . Yu, : "The IGrid index: reversing the dimensionality curse for similarity indexing in high dimensional space" , Proceedings of the sixth ACM SIGKDD international Conference on Knowledge discovery and data mining, Pages : 119 - 129, ACM Press New York, NY, USA, 2000 [10] Finn V. Jensen : "An Introduction to Bayesian Networks" , Springer, 1996, Kap . 4[9] Charu C. Aggarwal, Philip S. Yu,: "The IGrid index: reversing the dimensionality curse for similarity indexing in high dimensional space", Proceedings of the sixth ACM SIGKDD international Conference on Knowledge discovery and data mining, Pages: 119 - 129, ACM Press New York, NY, USA , 2000 [10] Finn V. Jensen: "An Introduction to Bayesian Networks," Springer, 1996, chap. 4
[11] DE 102 52 445 AlDE 102 52 445 A1
[12] US 2002/0029207 Al [12] US 2002/0029207 Al
BezugszeichenlisteLIST OF REFERENCE NUMBERS
100 Computeranordnung100 computer arrangement
101 Computersystem101 computer system
102 Datenbanksystem102 database system
103 Mikroprozessor103 microprocessor
104 Speicher104 memory
105 Kundendatenbank105 customer database
106 Transaktionsdatenbank106 transaction database
107 Kundendatenbank-Abbild107 Customer Database Image
108 Transaktionsdatenbank-Abbild108 transaction database image
109 Explorer-Computerprogramm109 Explorer computer program
110 Bildschirm110 screen
111 Eingabegeräte111 input devices
200 Bildschirmanzeige200 screen display
201-203 Bildschirmfenster mit Analyseergebnissen201-203 Screen with analysis results
204 Selektionsinformationsfeld204 Selection information field
205, 206 Auswahlfenster205, 206 selection window
300 Bildschirmanzeige300 screen display
301-303 Bildschirmfenster mit Analyseergebnissen301-303 Screen with analysis results
304 Selektionsinformationsfeld304 Selection information field
400 Bildschirmanzeige400 screen display
401-403 Bildschirmfenster mit Analyseergebnissen401-403 Screen with analysis results
404 , 405 Balken404, 405 bars
406 Selektionsinformationsfeld406 Selection information field
500 Bildschirmanzeige500 screen display
501-503 Bildschirmfenster mit Analyseergebnissen501-503 Screen with analysis results
504 Selektionsinformationsfeld504 Selection information field
600 Bildschirmanzeige600 screen display
601-603 Bildschirmfenster mit Analyseergebnissen 604 Balken601-603 Screen with analysis results 604 bars
700 Bildschirmanzeige700 screen
701-703 Bildschirmfenster mit Analyseergebnissen701-703 Screen with analysis results
704 Markierung704 mark
800 Cluster-Hierarchie800 cluster hierarchy
801 Datenbank801 database
802 Mehrzahl von Clustern802 plural clusters
803 Mehrzahl von Clustern803 plurality of clusters
804 Mehrzahl von Clustern804 plurality of clusters
900 Cluster900 clusters
901, 902 Zeilen901, 902 lines
903, 904 Spalten 903, 904 columns

Claims

Patentansprüche claims
1. Datenbank-Abfragesystem mit1. Database query system with
- einem ersten Datenbank-Abbild einer ersten Datenbanktabelle mit einer ersten Vielzahl von Datensätzen und einem zweitena first database image of a first database table having a first plurality of data records and a second database
Datenbank-Abbild einer zweiten Datenbanktabelle mit einer zweiten Vielzahl von Datensätzen, wobei j edem Datensatz der ersten Vielzahl von Datensätzen und jedem Datensatz der zweiten Vielzahl von Datensätzen ein Wert eines Datenbank- Schlüssels zugeordnet ist;A database image of a second database table having a second plurality of data records, wherein each record of the first plurality of records and each record of the second plurality of records is assigned a value of a database key;
- einer Eingabeeinrichtung, die eingerichtet ist, eine Analyse-Anfrage an das zweite Datenbank-Abbild zu empfangen;an input device configured to receive an analysis request to the second database image;
- einer Selektionseinrichtung, die eingerichtet ist, einen Teil der ersten Vielzahl von Datensätzen gemäß einer ersten Selektion zu selektieren;a selection device, which is set up to select a part of the first plurality of data records according to a first selection;
- einer Ermittlungseinrichtung, die eingerichtet ist, eine zweite Selektion eines Teils der zweiten Vielzahl von Datensätzen zu ermitteln, wobei gemäß der zweiten Selektion solche Datensätze selektiert sind, denen Werte des Datenbank- Schlüssels zugeordnet sind, die j eweils mindestens einem Datensatz zugeordnet sind, der gemäß der ersten Selektion selektiert ist;a determination device which is set up to determine a second selection of a part of the second plurality of data records, wherein, according to the second selection, those data records are selected which are assigned values of the database key that are in each case assigned to at least one data record is selected according to the first selection;
- einer Verarbeitungseinrichtung, die eingerichtet ist, das Ergebnis der Analyse-Anfrage auf Basis des Teils der zweiten Vielzahl von Datensätzen zu ermitteln.a processing means arranged to determine the result of the analysis request on the basis of the part of the second plurality of data records.
2. Datenbank-Abfragesystem gemäß Anspruch 1, wobei das erste Datenbank-Abbild und/oder das zweite Datenbank-Abbild gemäß einem statistischen Modell erzeugt ist .The database query system of claim 1, wherein the first database image and / or the second database image is generated according to a statistical model.
3. Datenbank-Abfragesystem gemäß Anspruch 2 , wobei das statistische Modell ein graphisches Wahrscheinlichkeitsmodell ist . The database query system of claim 2, wherein the statistical model is a graphical probability model.
4. Datenbank-Abfragesystem gemäß einem der Ansprüche 1 bis 3, wobei die Eingabeeinrichtung ferner eingerichtet ist, eine Selektionsinstruktion zu empfangen und die Selektionseinrichtung eingerichtet ist, den Teil der ersten Vielzahl von Datensätzen gemäß der Selektionsinstruktion zu selektieren.The database retrieval system according to one of claims 1 to 3, wherein the input device is further arranged to receive a selection instruction and the selection means is arranged to select the part of the first plurality of data records according to the selection instruction.
5. Datenbank-Abfragesystem gemäß Anspruch 4, das ferner eine Anzeigeeinrichtung aufweist, die eingerichtet ist, eineThe database query system of claim 4, further comprising a display device that is configured to
Bildschirmanzeige darzustellen, die die Anzeige von möglichen Werten mindestens einer Zufallsvariablen, für die j eder der ersten Vielzahl von Datensätzen einen Wert enthält, aufweist , und die Selektionsinstruktion das Auswählen der Anzeige mindestens eines möglichen Wertes der Zufallsvariablen ist und die erste Selektion darin besteht, dass alle Datensätze der ersten Vielzahl von Datensätzen selektiert sind, die den ausgewählten mindestens einen möglichen Wert enthalten .Display displaying display of possible values of at least one random variable for which each of the first plurality of records contains a value, and the selection instruction is selecting the display of at least one possible value of the random variable and the first selection is that all records of the first plurality of records containing the selected at least one possible value are selected.
6. Datenbank-Abfragesystem gemäß Anspruch 5, wobei die6. The database query system according to claim 5, wherein the
Anzeigeeinrichtung ferner eingerichtet ist, eine weitere Bildschirmanzeige darzustellen, die eine Anzeige des Ergebnisses der Analyse-Anfrage aufweist, und wobei die Anzeigeeinrichtung ferner eingerichtet ist, zwischen der Bildschirmanzeige und der weiteren Bildschirmanzeige zu wechseln.Display device is further configured to display another screen display having an indication of the result of the analysis request, and wherein the display device is further configured to switch between the screen display and the further screen display.
7. Datenbank-Abfragesystem gemäß einem der Ansprüche 1 bis 6, ferner aufweisend eine Zugriffseinrichtung, die eingerichtet ist, auf die zweite Datenbanktabelle zuzugreifen und Daten, die in den gemäß der zweiten Selektion selektierten Datensätzen der zweiten Datenbanktabelle enthalten sind, zu ermitteln und wobei die Verarbeitungseinrichtung eingerichtet ist, das Ergebnis der Analyse-Anfrage unter Verwendung der Daten zu ermitteln .7. The database query system of claim 1, further comprising an access device configured to access the second database table and to determine data contained in the second database table records selected according to the second selection, and wherein the Processing device set up is to determine the result of the analysis request using the data.
8. Datenbank-Abfragesystem gemäß einem der Ansprüche 1 bis 7 , wobei in dem ersten Datenbank-Abbild die erste Vielzahl vonThe database query system of any one of claims 1 to 7, wherein in the first database image the first plurality of
Datensätzen zu einer ersten Mehrzahl von Segmenten gruppiert sind und/oder in dem zweiten Datenbank-Abbild die zweite Vielzahl von Datensätzen zu einer zweiten Mehrzahl von Segmenten gruppiert sind.Data sets are grouped into a first plurality of segments and / or in the second database image, the second plurality of data sets are grouped into a second plurality of segments.
9. Datenbank-Abfragesystem gemäß Anspruch 8 , wobei der Wert des Datenbank-Schlüssels für einen Datensatz des ersten Datenbank-Abbilds aus einer Nummer des Segments, in dem der Datensatz enthalten ist, und einer Nummer des Datensatzes gemäß einer Nummerierung der Datensätze des Segments besteht .The database retrieval system of claim 8, wherein the value of the database key for a record of the first database image consists of a number of the segment in which the record is contained and a number of the record according to a numbering of the records of the segment ,
10. Datenbank-Abfragesystem gemäß Anspruch 8 , wobei der Wert des Datenbank-Schlüssels für einen Datensatz des zweiten Datenbank-Abbilds aus einer Nummer des Segments, in dem der Datensatz enthalten ist, und einer Nummer des Datensatzes gemäß einer Nummerierung der Datensätze des Segments besteht .The database query system of claim 8, wherein the value of the database key for a record of the second database image consists of a number of the segment in which the record is contained and a number of the record according to a numbering of the records of the segment ,
11. Datenbank-Abfragesystem gemäß Anspruch 9 oder 10, wobei für jeden Datensatz der ersten Vielzahl von Datensätzen der Wert des Datenbank-Schlüssels in der ersten Datenbanktabelle und/oder für j eden Datensatz der zweiten Vielzahl von Datensätzen der Wert des Datenbank-Schlüssels in der zweiten Datenbanktabelle gespeichert ist .The database retrieval system according to claim 9 or 10, wherein for each record of the first plurality of records the value of the database key in the first database table and / or for each record of the second plurality of records the value of the database key in the second database table is stored.
12. Verfahren zur rechnergestützten Datenbank-Abfrage unter Verwendung einer ersten Datenbanktabelle mit einer ersten Vielzahl von Datensätzen und einer zweite Datenbanktabelle mit einer zweiten Vielzahl von Datensätzen, wobei jedem Datensatz der ersten Vielzahl von Datensätzen und j edem Datensatz der zweiten Vielzahl von Datensätzen ein Wert eines Datenbank-Schlüssels zugeordnet ist, aufweisend die Schritte :12. A method for computer-aided database query using a first database table with a first plurality of records and a second database table with a second plurality of records, each record of the first plurality of records and j edem Record of the second plurality of records is assigned a value of a database key, comprising the steps:
- Empfangen einer Analyse-Anfrage an die zweite Datenbanktabelle; - Selektieren eines Teils der ersten Vielzahl von Datensätzen gemäß einer ersten Selektion;Receiving an analysis request to the second database table; Selecting a part of the first plurality of data sets according to a first selection;
- Ermitteln einer zweiten Selektion eines Teils der zweiten Vielzahl von Datensätzen, wobei gemäß der zweiten Selektion solche Datensätze selektiert sind, denen Werte des Datenbank- Schlüssels zugeordnet sind, die auch jeweils mindestens einem Datensatz zugeordnet sind, der gemäß der ersten Selektion selektiert ist;Determining a second selection of a part of the second plurality of data records, wherein, according to the second selection, those data records are selected which are assigned values of the database key which are also respectively assigned to at least one data record which is selected according to the first selection;
- Ermitteln des Ergebnisses der Analyse-Anfrage auf Basis des Teils der zweiten Vielzahl von Datensätzen. Determining the result of the analysis request based on the portion of the second plurality of records.
EP05850178A 2004-12-24 2005-12-19 Relational compressed data bank images (for accelerated interrogation of data banks) Withdrawn EP1831804A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004062532 2004-12-24
PCT/DE2005/002287 WO2006066556A2 (en) 2004-12-24 2005-12-19 Relational compressed data bank images (for accelerated interrogation of data banks)

Publications (1)

Publication Number Publication Date
EP1831804A1 true EP1831804A1 (en) 2007-09-12

Family

ID=36097216

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05850178A Withdrawn EP1831804A1 (en) 2004-12-24 2005-12-19 Relational compressed data bank images (for accelerated interrogation of data banks)

Country Status (3)

Country Link
US (1) US20080133573A1 (en)
EP (1) EP1831804A1 (en)
WO (1) WO2006066556A2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101479924B1 (en) * 2005-09-02 2015-01-12 가부시키가이샤 한도오따이 에네루기 켄큐쇼 Anthracene derivative
US8099674B2 (en) 2005-09-09 2012-01-17 Tableau Software Llc Computer systems and methods for automatically viewing multidimensional databases
US7999809B2 (en) * 2006-04-19 2011-08-16 Tableau Software, Inc. Computer systems and methods for automatic generation of models for a dataset
JPWO2010041377A1 (en) * 2008-10-06 2012-03-01 パナソニック株式会社 Representative image display device and representative image selection method
US20110191141A1 (en) * 2010-02-04 2011-08-04 Thompson Michael L Method for Conducting Consumer Research
US8423522B2 (en) 2011-01-04 2013-04-16 International Business Machines Corporation Query-aware compression of join results
US8799240B2 (en) * 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US10621206B2 (en) 2012-04-19 2020-04-14 Full Circle Insights, Inc. Method and system for recording responses in a CRM system
US10599620B2 (en) * 2011-09-01 2020-03-24 Full Circle Insights, Inc. Method and system for object synchronization in CRM systems
US9305045B1 (en) * 2012-10-02 2016-04-05 Teradata Us, Inc. Data-temperature-based compression in a database system
WO2015034905A1 (en) * 2013-09-03 2015-03-12 String Enterprises, Inc. Computer-implemented methods and systems for generating visual representations of complex and voluminous marketing and sales and other data
US20150278214A1 (en) 2014-04-01 2015-10-01 Tableau Software, Inc. Systems and Methods for Ranking Data Visualizations Using Different Data Fields
US9613102B2 (en) 2014-04-01 2017-04-04 Tableau Software, Inc. Systems and methods for ranking data visualizations
US9424318B2 (en) 2014-04-01 2016-08-23 Tableau Software, Inc. Systems and methods for ranking data visualizations
US11474978B2 (en) * 2018-07-06 2022-10-18 Capital One Services, Llc Systems and methods for a data search engine based on data profiles
US11520695B2 (en) * 2021-03-02 2022-12-06 Western Digital Technologies, Inc. Storage system and method for automatic defragmentation of memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0442684A2 (en) * 1990-02-13 1991-08-21 International Business Machines Corporation Joining selected data in tables of a relational data base system
US5960428A (en) * 1997-08-28 1999-09-28 International Business Machines Corporation Star/join query optimization

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620286A (en) * 1984-01-16 1986-10-28 Itt Corporation Probabilistic learning element
DE69032576T2 (en) * 1990-02-27 1999-04-15 Oracle Corp Dynamic optimization of a single relational access
US5583500A (en) * 1993-02-10 1996-12-10 Ricoh Corporation Method and apparatus for parallel encoding and decoding of data
US5765146A (en) * 1993-11-04 1998-06-09 International Business Machines Corporation Method of performing a parallel relational database query in a multiprocessor environment
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5687361A (en) * 1995-02-13 1997-11-11 Unisys Corporation System for managing and accessing a dynamically expanding computer database
US6134564A (en) * 1995-11-20 2000-10-17 Execware, Inc. Computer program for rapidly creating and altering presentation of parametric text data objects and associated graphic images
US5704017A (en) * 1996-02-16 1997-12-30 Microsoft Corporation Collaborative filtering utilizing a belief network
US6026397A (en) * 1996-05-22 2000-02-15 Electronic Data Systems Corporation Data analysis system and method
US5870559A (en) * 1996-10-15 1999-02-09 Mercury Interactive Software system and associated methods for facilitating the analysis and management of web sites
US6226629B1 (en) * 1997-02-28 2001-05-01 Compaq Computer Corporation Method and apparatus determining and using hash functions and hash values
US6205447B1 (en) * 1997-06-30 2001-03-20 International Business Machines Corporation Relational database management of multi-dimensional data
US6807537B1 (en) * 1997-12-04 2004-10-19 Microsoft Corporation Mixtures of Bayesian networks
US6449612B1 (en) * 1998-03-17 2002-09-10 Microsoft Corporation Varying cluster number in a scalable clustering system for use with large databases
US6263337B1 (en) * 1998-03-17 2001-07-17 Microsoft Corporation Scalable system for expectation maximization clustering of large databases
US6012058A (en) * 1998-03-17 2000-01-04 Microsoft Corporation Scalable system for K-means clustering of large databases
US20020039990A1 (en) * 1998-07-20 2002-04-04 Stanton Vincent P. Gene sequence variances in genes related to folate metabolism having utility in determining the treatment of disease
US6263334B1 (en) * 1998-11-11 2001-07-17 Microsoft Corporation Density-based indexing method for efficient execution of high dimensional nearest-neighbor queries on large databases
US6385172B1 (en) * 1999-03-19 2002-05-07 Lucent Technologies Inc. Administrative weight assignment for enhanced network operation
US6728713B1 (en) * 1999-03-30 2004-04-27 Tivo, Inc. Distributed database management system
US6549907B1 (en) * 1999-04-22 2003-04-15 Microsoft Corporation Multi-dimensional database and data cube compression for aggregate query support on numeric dimensions
US6564197B2 (en) * 1999-05-03 2003-05-13 E.Piphany, Inc. Method and apparatus for scalable probabilistic clustering using decision trees
WO2001001260A2 (en) * 1999-06-30 2001-01-04 Raf Technology, Inc. Secure, limited-access database system and method
US6842758B1 (en) * 1999-07-30 2005-01-11 Computer Associates Think, Inc. Modular method and system for performing database queries
US6898603B1 (en) * 1999-10-15 2005-05-24 Microsoft Corporation Multi-dimensional data structure caching
US6981040B1 (en) * 1999-12-28 2005-12-27 Utopy, Inc. Automatic, personalized online information and product services
US6611834B1 (en) * 2000-01-12 2003-08-26 International Business Machines Corporation Customization of information retrieval through user-supplied code
WO2001065421A1 (en) * 2000-02-28 2001-09-07 Siemens Aktiengesellschaft Method and arrangement for modelling a system
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6694301B1 (en) * 2000-03-31 2004-02-17 Microsoft Corporation Goal-oriented clustering
US20020103793A1 (en) * 2000-08-02 2002-08-01 Daphne Koller Method and apparatus for learning probabilistic relational models having attribute and link uncertainty and for performing selectivity estimation using probabilistic relational models
US6795825B2 (en) * 2000-09-12 2004-09-21 Naphtali David Rishe Database querying system and method
WO2002025588A2 (en) * 2000-09-21 2002-03-28 Md Online Inc. Medical image processing systems
US6922660B2 (en) * 2000-12-01 2005-07-26 Microsoft Corporation Determining near-optimal block size for incremental-type expectation maximization (EM) algorithms
US20020129038A1 (en) * 2000-12-18 2002-09-12 Cunningham Scott Woodroofe Gaussian mixture models in a data mining system
US20030028564A1 (en) * 2000-12-19 2003-02-06 Lingomotors, Inc. Natural language method and system for matching and ranking documents in terms of semantic relatedness
WO2002101581A2 (en) * 2001-06-08 2002-12-19 Siemens Aktiengesellschaft Statistical models for improving the performance of database operations
US7113936B1 (en) * 2001-12-06 2006-09-26 Emc Corporation Optimizer improved statistics collection
EP1492439A2 (en) * 2002-01-04 2005-01-05 Canswers LLC Systems and methods for predicting disease behavior
US7003158B1 (en) * 2002-02-14 2006-02-21 Microsoft Corporation Handwriting recognition with mixtures of Bayesian networks
US7266541B2 (en) * 2002-04-12 2007-09-04 International Business Machines Corporation Adaptive edge processing of application data
US6988107B2 (en) * 2002-06-28 2006-01-17 Microsoft Corporation Reducing and controlling sizes of model-based recognizers
US7133811B2 (en) * 2002-10-15 2006-11-07 Microsoft Corporation Staged mixture modeling
DE10252445A1 (en) * 2002-11-12 2004-05-27 Siemens Ag Data-bank information preparation method e.g. for client-computer, involves transferring statistical model from server-computer to client-computer via communications network
US7136850B2 (en) * 2002-12-20 2006-11-14 International Business Machines Corporation Self tuning database retrieval optimization using regression functions
US7110997B1 (en) * 2003-05-15 2006-09-19 Oracle International Corporation Enhanced ad-hoc query aggregation
US7184591B2 (en) * 2003-05-21 2007-02-27 Microsoft Corporation Systems and methods for adaptive handwriting recognition
US7089266B2 (en) * 2003-06-02 2006-08-08 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for the query and visualization of multidimensional databases
US7225200B2 (en) * 2004-04-14 2007-05-29 Microsoft Corporation Automatic data perspective generation for a target variable

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0442684A2 (en) * 1990-02-13 1991-08-21 International Business Machines Corporation Joining selected data in tables of a relational data base system
US5960428A (en) * 1997-08-28 1999-09-28 International Business Machines Corporation Star/join query optimization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OZKARAHAN E.A. ET AL: "JOIN STRATEGIES USING DATA SPACE PARTITIONING", NEW GENERATION COMPUTING, SPRINGER VERLAG, BERLIN, DE, vol. 6, no. 1, 1 January 1988 (1988-01-01), pages 19 - 39, XP000743192, ISSN: 0288-3635 *

Also Published As

Publication number Publication date
US20080133573A1 (en) 2008-06-05
WO2006066556A2 (en) 2006-06-29
WO2006066556A8 (en) 2006-10-05

Similar Documents

Publication Publication Date Title
DE69938339T2 (en) A SCALABLE SYSTEM FOR GROUPING LARGE DATA BENCHES
DE60221153T2 (en) METHOD AND DEVICE FOR SIMILARITY SEARCH AND GROUP FORMATION
DE69802960T2 (en) DATA GROUPING AND DIMENSION REDUCTION OF MULTI-DIMENSIONAL DATA FOR INDICATING AND SEARCHING
DE60121231T2 (en) DATA PROCESSING
DE69809964T2 (en) ONLINE DATABASE EXPLOITATION
DE10028688B4 (en) Method, system, and program for a join operation in a multi-column table and double-valued satellite tables
EP1831804A1 (en) Relational compressed data bank images (for accelerated interrogation of data banks)
DE112016005350T5 (en) SAVING AND RECALLING DATA FROM A DATA CUBE
He et al. Mining a web citation database for author co-citation analysis
Sağlam et al. A mixed-integer programming approach to the clustering problem with an application in customer segmentation
DE69526168T2 (en) Method and device for classifying document information
DE69910219T2 (en) TRANSFORMING THE PERSPECTIVE ON TABLES FROM RELATIONAL DATABASES
DE10120870A1 (en) Navigating index for accessing multidimensional subject database involves displaying cell after user selection of error spreadsheet cell corresponding to selected cell in subject database
DE10120869A1 (en) Multi-dimensional database access method involves generating index comprising multidimensional database, to access subject multidimensional database
US20030065635A1 (en) Method and apparatus for scalable probabilistic clustering using decision trees
DE602004006485T2 (en) METHOD FOR THE AUTOMATED NOTIFICATION OF REPORTS OF MULTIDIMENSIONAL DATA BANKS WITH INFORMATION OBJECTS OF A DATA STORAGE
DE112016001796T5 (en) FINE-BITE IMAGE CLASSIFICATION BY EXPLORING LABELS FROM A BIPARTITE GRAPH
DE60030735T2 (en) PREDICTION OF THE REALIZABILITY OF A CONNECTION PATH
CN109241446B (en) Position recommendation method and system
EP4272087B1 (en) Automated linear clustering recommendation for database zone maps
DE10239292A1 (en) Conflict detection and resolution in connection with a data assignment
DE102012214196A1 (en) Detect ambiguous names in a group of names
DE60032258T2 (en) DETERMINE WHETHER A VARIABLE NUMERIC OR NOT NUMERIC IS
DE60300984T2 (en) Method and computer system for optimizing a Boolean expression for request processing
DE102020129018A1 (en) DEEP USER MODELING THROUGH BEHAVIOR

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20070621

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20080123

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20101214