EP1831804A1 - Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken) - Google Patents

Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken)

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
English (en)
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/de
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

Es wird ein Datenbank-Abfragesystem bereitgestellt, bei dem zwei oder mehr Datenbanktabellen mittels eines gemeinsamen Schlüssels oder mehrerer Schlüssel, die jeweils mindestens zwei Datenbanktabellen gemeinsam sind, verknüpft sind. Bei einer Analyse-Anfrage und einer Selektion von Datensätzen in der ersten Datenbank wird eine der Selektion gemäß dem gemeinsamen Schlüssel entsprechende Selektion der Datensätze in der zweiten Datenbank ermittelt und unter Verwendung der so selektierten Datensätze in der zweiten Datenbank die Analyse-Anfrage beantwortet.

Description

Beschreibung
Relationale komprimierte Datenbank-Abbilder (zur beschleunigten Abfrage von Datenbanken)
Die Erfindung betrifft ein Datenbank-Abfragesystem und ein Verfahren zur rechnergestützten Datenbank-Abfrage .
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 .
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.
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.
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 .
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 .
Trotz der heutzutage verfügbaren verhältnismäßig leistungsfähigen Computersysteme ist dies eine nichttriviale Aufgabe .
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 .
Bei herkömmlichen Datenbanksystemen können ferner bestimmte Anfragen gar nicht oder nur mit einem hohen Aufwand beantwortet werden.
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 .
Der Baumarkt könnte ferner über eine Transaktionsdatenbanktabelle verfügen, in welcher
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.
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.
Der Verkaufsmanager kann diese Frage jedoch nicht mit einer Abfrage der ersten Datenbanktabelle oder der zweiten Datenbanktabelle beantworten.
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.
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 .
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 komplizierte
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.
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ötigten
Informationen letztendlich' in einer einzigen Datenbanktabelle enthalten sind.
Die Frage könnte durch eine Abfrage der ersten Datenbanktabelle beantwortet werden, wenn jeder
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 .
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 .
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 .
Diese Vorgehensweise hat jedoch eine Kundendatenbanktabelle von unakzeptabler Größe zur Folge .
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" ) .
Eine akzeptable Größe der Kundendatenbanktabelle kann erreicht werden, wenn Informationen (aus der Transaktionsdatenbanktabelle) in aggregierter Form in die
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.
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 [1] werden Wahrscheinlichkeitsmodelle, wie Bayesianische Netze und Markov-Netze, beschrieben .
[2 ] offenbart Verfahren zum Lernen von Abhängigkeitsstrukturen, die einem Datensatz zu Grunde liegen, mit Hilfe von Bayes-Netzen und Markov-Netzen.
In [3] sind verschiedene statistische Lernverfahren beschrieben .
[4] offenbart ein Verfahren zur arithmetischen Codierung von Daten .
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 .
[ 6] offenbart die Erzeugung eines statistischen Clustering- Modells für eine Datenbank, mittels welchem Anfragen an die
Datenbank effizient approximativ beantwortet werden können.
Verschiedene Verfahren sind bekannt, die das Strukturieren, effiziente Speichern und Analysieren von Daten ermöglichen:
In [7] ist Z-Ordering beschrieben.
In [8] sind K*-Bäume beschrieben . In [ 9] ist der IGrid index beschrieben.
In [10] sind Inferenz-Verfahren beschrieben.
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 ein
Koramunikationsnetz zu einem Client-Computer übertragen. Das empfangene erste statistische Abbild wird von dem Client- Computer weiterverarbeitet .
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.
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.
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 .
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, das
Ergebnis der Analyse-Anfrage auf Basis des Teils der zweiten Vielzahl von Datensätzen zu ermitteln.
Ferner wird ein Verfahren zur rechnergestützten Datenbank- Abfrage ' gemäß dem oben beschriebenen Datenbank-Abfragesystem bereitgestellt .
Anschaulich sind die Datensätze der ersten Datenbanktabelle und die Datensätze der zweiten Datenbanktabelle, die zusammengehörige Informationen beinhalten, mittels eines
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 .
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) .
Anschaulich wird eine Anfrage an die zweite Datenbanktabelle, also eine Anfrage an das zweite Datenbank-Abbild, zu deren Beantwortung auch Informationen aus der ersten
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 .
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 .
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 einem
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 .
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 erste
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 .
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 zweiten
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 .
Somit können effizient und einfach für den Benutzer komplizierte statistische Analysen durchgeführt werden.
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 .
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.
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 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 .
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.
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 .
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) .
Die Erfindung betrifft anschaulich die Verknüpfung mehrerer solcher Datenbanktabellen. Die Datenbanktabellen können aus derselben Datenbank stammen, aber auch aus unterschiedlichen Datenbanken.
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 .
In einer Ausführungsform sind das erste komprimierte Datenbank-Abbild und das zweite komprimierte Datenbank-Abbild voneinander unabhängig erstellte Datenbank-Abbilder.
Vorzugsweise ist das statistische Modell ein graphisches Wahrscheinlichkeitsmodell . Beispielsweise wird ein Bayesianisches Netz als Wahrscheinlichkeitsmodell verwendet .
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.
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.
Anschaulich kann ein Benutzer durch Selektion von Datensätzen eine Anfrage genauer spezifizieren und Ergebnisse für komplizierte Anfragen ermitteln.
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 .
Auf diese Weise kann ein Benutzer auf einfache Weise, beispielsweise durch Klicken auf eine Ausprägung einer Zufallsvariable mittels einer Computermaus, Datensätze selektieren .
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.
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 .
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.
Dies ist insbesondere dann von Vorteil, wenn nur ein kleiner Teil der Datensätze die Selektionskriterien der zweiten
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 .
Anschaulich wird das zweite Datenbank-Abbild als multidimensionaler Index der zweiten Datenbanktabelle verwendet . Dies wird weiter unten genauer erläutert .
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.
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 .
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 .
Als Datenbank-Schlüssel wird anschaulich ein "natürlicher
Schlüssel" verwendet, der sich auf natürliche Weise aus der Einteilung in Cluster ergibt , wobei innerhalb der Cluster die Datensätze durchnummeriert werden.
Der "natürliche Schlüssel" wird anschaulich anstatt eines
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 .
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 .
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 .
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 Schritte
- 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;
- 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 ;
- 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 .
Ferner wird eine Anordnung, ein computerlesbares Speichermedium und ein Computerprogramm-Element entsprechend dem oben beschriebenen Verfahren zum Erzeugen eines komprimierten Abbilds einer Datenbanktabelle bereitgestellt .
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 enthaltenen
Werts der statistischen Variablen sein . Insbesondere wird der zweite Kodierungswert vorzugsweise gespeichert .
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 .
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 .
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.
Anschaulich wird also das statistische
Wahrscheinlichkeitsmodell dazu verwendet, zu bestimmen, welcher Wert sich als Repräsentanten-Wert für die statistische Variable in dem Segment eignet .
Auf diese Weise kann der Repräsentanten-Wert mit geringem Rechenaufwand bestimmt werden.
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 .
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 .
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.
Vorzugsweise ist das statistische Wahrscheinlichkeitsmodell ein graphisches Wahrscheinlichkeitsmodell . Beispielsweise wird ein Bayesianisches Netz als Wahrscheinlichkeitsmodell verwendet .
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 .
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 .
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) .
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 mit
- 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;
- einer Auswahleinrichtung, mittels welcher ein Benutzer das erste Anzeigeelement auswählen kann und an den Ort des zweiten Anzeigeelements verschieben kann;
- einer Erfassungseinrichtung, die eingerichtet ist, zu erfassen, ob das erste Anzeigeelement an den Ort des zweiten Anzeigeelements verschoben ist;
- 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;
- wobei die Anzeigeeinrichtung eingerichtet ist, das dritte Analyseergebnis anzuzeigen .
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.
Ein Anzeigeelement, das die Anzeige einer Bezeichnung eines ersten Analyseergebnisses , das eine statistische Größe betrifft, und/oder die Anzeige des Analyseergebnisses ist, ist beispielsweise
- 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 ;
- die Bezeichnung einer Ausprägung einer statistischen Variablen oder die Bezeichnung einer Gruppe von Ausprägungen einer statistischen Variablen;
- die Bezeichnung einer statistischen Variablen oder die Bezeichnung einer Gruppe von statistischen Variablen .
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 .
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.
Beispielsweise ist die erste Datenbanktabelle eine Transaktionsdatenbanktabelle, die Daten über in einem
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" (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.
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 .
Die Anzeigeeinrichtung ist vorzugsweise ein Computerbildschirm.
Die Auswahleinrichtung ist vorzugsweise eine Computermaus .
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 .
Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Weiteren näher erläutert .
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.
Figur 3 zeigt eine zweite Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .
Figur 4 zeigt eine dritte Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .
Figur 5 zeigt eine vierte Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .
Figur 6 zeigt eine fünfte Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.
Figur 7 zeigt eine sechste Bildschirmanzeige eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.
Figur 8 illustriert eine Cluster-Hierarchie entsprechend einem Datenbank-Abbild gemäß einem Ausführungsbeispiel der Erfindung.
Figur 9 illustriert einen Cluster gemäß einem Ausführungsbeispiel der Erfindung .
Fig. l zeigt eine Computeranordnung 100 gemäß einem Ausführungsbeispiel der Erfindung. Ein Computersystem 101 ist mit einem Datenbanksystem 102 gekoppelt .
Das Computersystem 101 ist gemäß diesem Ausführungsbeispiel eine Personal Computer (PC) , kann j edoch auch ein anderer Computer sein, beispielsweise eine 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.
Das Datenbanksystem 102 ist ein Computersystem zum Speichern von Datenbanktabellen. Das Datenbanksystem 102 kann dementsprechend ein Computer sein, der mit einer hohen
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.
In dem Datenbanksystem 102 sind eine Kundendatenbanktabelle 105 und eine TransationsDatenbanktabelle 106 gespeichert, die weiter unten genauer beschrieben werden .
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.
Die Art der Komprimierung sowie die Struktur des Kundendatenbanktabelle-Abbilds 107 und des
Transaktionsdatenbanktabelle-Abbilds 108 werden weiter unten detailliert beschrieben .
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 das
Transaktionsdatenbanktabelle-Abbild 108 abgespeichert sind, sodass insbesondere auf das Kundendatenbanktabelle-Abbild 107 und das Transaktionsdatenbanktabelle-Abbild 108 schnell zugegriffen werden kann .
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 des
Transaktionsdatenbanktabelle-Abbilds 108 (und somit der Transaktionsdatenbanktabelle 106) auf dem Bildschirm 110 graphisch darzustellen.
Dies wird im Folgenden genauer erläutert . Fig.2 zeigt eine erste Bildschirmanzeige 200 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .
Die erste Bildschirmanzeige 200 zeigt Ergebnisse einer statistischen Analyse des Kundendatenbanktabelle-Abbilds 107 und somit Ergebnisse einer statistischen Analyse der Kundendatenbanktabelle 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 der
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 .
Das Kundendatenbanktabelle-Abbild 107 enthält entsprechend diese Informationen über die Kunden des Baumarkts in komprimierter Form, wie es weiter unten erläutert wird.
Das Explorer-Computerprogramm 109 erlaubt die Analyse der in dem Kundendatenbanktabelle-Abbild 107 enthaltenen Daten und die graphische Anzeige von Ergebnissen einer solchen Analyse .
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.
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 .
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 .
Das Ergebnis dieser Analyse der Altersverteilung wird in einem zweiten Fenster 202 der ersten Bildschirmanzeige 200 auf dem Bildschirm 110 angezeigt .
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.
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.
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.
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 .
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 .
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.
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 verkaufte
Produkt gekauft hat . Diese Informationen sind entsprechend in dem Transaktionsdatenbanktabelle-Abbild 108 in komprimierter Form enthalten .
Die zweite Bildschirmanzeige 300 zeigt in einem ersten
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.
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 .
Dieses Analyseergebnis wird dadurch erzielt, dass alle
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 .
In einem zweiten Fenster 302 wird das Ergebnis einer Analyse angezeigt, wie sich die Zahl der Transaktionen auf das Jahr verteilt .
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 .
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.
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.
Fig .4 zeigt eine dritte Bildschirmanzeige 400 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung .
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 .
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 .
Der erste Balken 404 zeigt an, dass nun nur
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 .
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 .
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 .
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 .
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 der
Transaktionsdatensätze 100% aller selektierten Transaktionen im März 2003 durchgeführt, was durch die Zahl 100 in dem zweiten Balken 405 dargestellt ist .
Ein nichttriviales Analyseergebnis ist hingegen in dem dritten Fenster 403 dargestellt .
Beispielsweise ist ersichtlich, dass bei 82 , 45% aller selektierten Transaktionen der Bruttoverkaufswert unter 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.
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 .
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.
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 .
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 .
Fig.5 zeigt eine vierte Bildschirmanzeige 500 eines Explorer- Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.
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.
Dies erfolgt dadurch, dass in dem
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 .
Anschaulich wird die Kundennummer als Datenbank-Schlüssel verwendet, der zusammengehörige Kundendatensätze und Transaktionsdatensätze miteinander verknüpft .
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)
Kunden des Baumarkts im März 2003 mindestens eine Beet- und Balkonpflanze gekauft haben .
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 .
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.
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.
Den Verkaufsmanager interessiert in diesem Beispiel jedoch das Ergebnis der Analyse, dessen Ergebnis in dem zweiten Fenster 502 angezeigt ist .
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.
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% ) .
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.
Anschaulich liegen die Daten in dem oben beschriebenen
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 die
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.
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 zweiten
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 weiteren
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 weitere
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.
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 .
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 dritten
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.
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.
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 .
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.
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.
Die fünfte Bildschirmanzeige 600 geht aus der dritten Bildschirmanzeige 400 hervor.
Die fünfte Bildschirmanzeige 600 enthält (teilweise) ein erstes Fenster 601, das dem ersten Fenster 301 der zweiten Bildschirmanzeige 300 entspricht . Die fünfte
Bildschirmanzeige 600 enthält ferner (teilweise) ein zweites Fenster 602 , das dem dritten Fenster 303 der zweiten Bildschirmanzeige 300 entspricht .
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 .
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 .
Anschaulich wird die Ausprägung "unter 5 Euro" der
Zufallsvariable "Brutto-Verkaufswert" über die Produktgruppen aufgeschlüsselt . Der Benutzer des Explorer-Computerprogramms 109 kann die fünfte Bildschirmanzeige 600 aus der dritten
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) .
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 eine
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) .
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 einen
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 .
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 .
Fig.7 zeigt eine sechste Bildschirmanzeige 700 eines Explorer-Computerprogramms gemäß einem Ausführungsbeispiel der Erfindung.
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 .
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 .
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.
Anschaulich wird der mittlere Brutto-Verkaufswert (der Brutto-Verkaufswerte aus allen Transaktionsdatensätzen) über die verschiedenen Produktgruppen aufgeschlüsselt .
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 .
Anschaulich wird somit der Gesamtumsatz auf verschiedene Produktgruppen aufgeschlüsselt .
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 .
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 .
Analog können bei Analysen, die die Transaktionsdatenbanktabelle 106 betreffen, Transaktionen nach ihrem Umsatzanteil gewichtet werden.
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.
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 .
Im Folgenden wird die Form und Struktur eines Datenbank- Abbilds einer Datenbanktabelle gemäß einem
Ausführungsbeispiel der Erfindung erläutert , beispielsweise des Kundendatenbanktabelle-Abbilds 107.
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 .
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% .
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.
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:
P (Kunde ist 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.
Sobald ein statistisches Modell erzeugt wurde, kann dieses dazu verwendet werden, die relativen Abhängigkeiten zwischen den
Zuständen der Zufallsvariablen, das heißt die Korrelation der Zufallsvariablen, zu studieren .
So können beispielsweise die relativen Häufigkeiten (Wahrscheinlichkeiten) der Zustände von bestimmten
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 .
Als statisti sches Modell wird beispielsweise ein graphisches Wahrscheinlichkeitsmodell (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 .
Ein statistisches Modell kann beispielsweise durch Strukturlernen in Bayesianischen Netzen erzeugt werden, wie es beispielsweise in [2 ] beschrieben ist .
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 .
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 .
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 .
Als statistisches Modell wird vorzugsweise ein statistisches Clustering-Modell, insbesondere ein Bayesianisches
Clustering-Modell, durch welches die Daten in eine Mehrzahl von Clustern (auch als Segmente bezeichnet) unterteilt werden, eingesetzt .
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.
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 .
Dies wird im Weiteren genauer beschrieben .
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-te
( 1 ≤ i < K ) Zufallsvariable Xj_ kann also beispielsweise die
Zustände x -, , X
1, J , X XrΔ9, ... , xl. ijj_ annehmen, wobei L± eine natürliche Zahl größer gleich Eins ist .
Es können sowohl diskrete als auch kontinuierliche (reellwertige) Zufallsvariablen verwendet werden .
In diesem Ausführungsbeispiel werden kontinuierliche Zustände unter Verwendung von entsprechenden Diskretisierungsintervallen diskretisiert . Entsprechend wird angenommen, dass die Zustände der Zufallsvariablen
-j_ (für alle i mit 1 < i < K ) diskret sind.
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 Form
χπ = <χf. *κ> geschrieben werden, wobei x für alle
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 .
Es wird angenommen, dass die Tafel M Einträge hat . Somit kann die gesamte Datenbanktabelle als Matrix
geschrieben werden .
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 .
Mit P ( Ω | Θ ) wird die a priori-Verteilung der
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 .
Durch P(X | Ω = ωj_, Θ = θ) sei die bedingte
Wahrscheinlichkeitsverteilung innerhalb des i-ten Clusters , das heißt die Wahrscheinlichkeitsverteilung der Zufallsvariablen X . = (X^, ... , X^) innerhalb des i-ten Clusters gegeben .
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κ, Ω) .
Das Wahrscheinlichkeitsmodell ist gegeben durch das Produkt der a priori-Verteilung und der bedingten Wahrscheinlichkeitsverteilung, das heißt :
P(X I Θ) = P(Ω I Θ) • P(X | Ω, Θ)
bzw .
R
P(X I Θ) = ]T P(Ω = ωi I Θ) • P(X I Ω = m±, i=l
das heißt
P(X = (X1, ... , xk) I Θ = θ) =
R
^ P(Ω = ©i I Θ = θ) P(X = (Xi, ... , xk) I Ω = W1, Θ = θ) i=l Die Wahrscheinlichkeit P(Ω = <DJ_ | Θ = θ) heißt Gewicht des i- ten Clusters (Segments) .
Die logarithmische Likelihood-Funktion L des Parametervektors θ des Datensatzes p_ ist sei gegeben durch
L(θ) = log P(D I Θ = θ) = ∑ 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 :
θ(t+1^ = arg max £ £ P(coi ' 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-
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 .
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 gilt
P(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 .
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 r
X2 = X23 ) unc* P (X-I I ^l = ^l 11 X-2 = X23 ) ) aus" an die Datenbanktabelle gestellt, so wird folgendermaßen vorgegangen:
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 ,
X2 = X2,3 ) = ^ für ei-n i unc* dementsprechend 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.
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 .
Neben der Identifikation der relevanten Cluster kann das statistische Modell auch verwendet werden, um direkt bestimmte gewünschte Wahrscheinlichkeiten (eventuell approximativ) zu berechnen. Um beispielsweise
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äß
P (X3 I X1 = xlfl , X2 = x2,3 ) =
∑ P(X3 I Ω = Oi, X1 = xlfl, X2 = x2,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 .
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.
Das Einschränken auf relevante Cluster ist insbesondere dann von Vorteil, falls die Cluster im Rahmen eines
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 .
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 .
Im Allgemeinen werden Cluster von der Auswertung ausgenommen, die unterhalb eines bestimmten minimalen
Gewichtes liegen. Exakte Ergebnisse lassen sich erzielen, indem nur solche Cluster von der Auswertung ausgenommen werden, die ein a posteriori-Gewicht von Null aufweisen .
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 .
In vorteilhafter Weise werden bei einem eingesetzten Daten- speichermedium die zu einem Cluster gehörenden Daten in einer der Clusterzugehörigkeit entsprechenden Weise gespeichert .
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.
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 analytischen
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 .
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.
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 .
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.
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. Die
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 entsprechende
Transaktionsdatensatz in der Transaktionsdatenbanktabelle 106 in dem Feld, das der Produktangabe entspricht, die Spezifikation einer beliebigen Maschinenschraube enthält .
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.
Anschaulich kann das Datenbank-Abbild dazu verwendet werden, approximative Antworten auf Statistisςhe Anfragen zu liefern.
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 und
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.
Die so entstehende Cluster-Hierarchie ist in Fig.8 dargestellt .
Fig.8 illustriert eine Cluster-Hierarchie 800 entsprechend einem Datenbank-Abbild gemäß einem Ausführungsbeispiel der Erfindung.
Die Cluster-Hierarchie 800 hat die Form eines Baumes .
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.
Für die Datenbanktabelle 801 wird ein statistisches Clustering-Modell bestimmt .
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 eines
Parametervektors θ und entsprechend auf die Zufallsvariable Θ verzichtet . Es wird angenommen, dass das statistische Clustering-Modell durch einen entsprechenden Satz von Parametern spezifiziert ist . )
Gemäß dem statistischen Clustering-Modell wird die Datenbanktabelle 801 in eine erste Mehrzahl von R]_ Clustern
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 .
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 .
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.
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 ein
Cluster dem j -ten Subcluster des i-ten Clusters der ersten Mehrzahl von Clustern 802 angehört sei 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.
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 . )
Im Weiteren wird mit Bezug auf Fig. 9 erläutert, wie die Datensätze eines Clusters komprimiert und gespeichert werden.
Fig.9 illustriert einen Cluster 900 gemäß einem Ausführungsbeispiel der Erfindung.
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 .
Jede Spalte einer Mehrzahl von K Spalten 903, 904 entspricht einer Zufallsvariable . -
Das Folgende wird exemplarisch anhand der π-ten Zeile 902 und der i-ten Spalte 903 erläutert.
Das Cluster 900 entspreche dem Wert ω der Clustervariable Ω .
Der π-te Datensatz hat wie oben die 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 .
Die Wahrscheinlichkeitsverteilung der Zufallsvariablen für die Datensätze in dem Cluster 900, das heißt die relativen
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) .
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 .
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 als
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 .
Für einen Default-Wert gilt anschaulich, dass die bedingte
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 .
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 ) .
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 .
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.
Anschaulich wird eine Information nur dann kodiert, wenn sie von den dem statistischen Modell entsprechenden Erwartungen abweichen.
Im Folgenden wird die spaltenweise Runlength-Kodierung der in dem Cluster 900 enthaltenen Datensätze erläutert .
Die i-te Spalte wird Runlength-kodiert . Die i-te Spalte enthalte beispielsweise die Werte
* * * * * * * * * χi f χi r χj^ 5 I xj_ 2 ' ^i ' ^i ' xi ' 2^i ' ^i 1 ' xi ' ^"i ' ^i ' xi 4 '
Dabei wurde Lj_ > 5 angenommen . Es könnte beispielsweise Xi=X-! o gelten.
Bei der Runlength-Kodierung gemäß diesem
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,4
kodiert .
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 die
Form 3 , X1 5 , 1 , X12 , 5 , X1 -L , 4 , X14 hat .
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 ) .
Im Folgenden werden einige Beispiele für einen Zugriff auf die kodierte Spalte erläutert .
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 .
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 .
Tabelle 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 .
Tabelle 3
In einer anderen Ausführungsform wird das Cluster 900 spaltenweise arithmetisch kodiert .
Arithmetische Kodieren (siehe beispielsweise [4] ) ist ein
Kompressionsverfahren, bei welchem ein Datenstrom in eine Bit-Repräsentation eines reellen Intervalls umgewandelt wird. Dabei wird eine vorgegebene Wahrscheinlichkeitsverteilung verwendet .
Die Wahrscheinlichkeitsverteilung wird verwendet, um die
Wahrscheinlichkeit, dass der nächste Wert im Datenstrom der Wert x ist, P(nächster Wert = x) , zu bestimmen.
In dem vorliegenden Fall wird der Datenstrom durch die i-te Spalte 904 (oder durch alle hintereinandergeschriebenen
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 .
In dieser Ausführungsform ist es jedoch erforderlich, die kodierte Spalte zu dekodieren, um Anfragen (wie die obigen) zu beantworten.
In einer anderen Ausführungsform wird eine Kombination aus Runlength-Kodierung und arithmetischer Kodierung verwendet .
In einem ersten Schritt wird die i-te Spalte, beispielsweise gegeben durch
xi ' xi i X2.5 ' xi 2 ' xi ' xi ' xi ' xi ' xi 1 ' xi ' xi ' xi ' xi 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 durch
P (Lauflänge=n) =P (nächster Wert im Datenstrom=x± ) n~^- (1-
P (nächster Wert im Datenstrom=Xχ ) ) •
Wahrscheinlichkeiten für Werte Xj^ x1 sind gegeben durch
P (nächster Wert im Datenstrom=Xj_) =P (nächster Wert im Datenstrom=xj_) / ( 1-P (nächster Wert im Datenstrom=xj_ ) ) .
Auch in dieser Ausführungsform ist es jedoch erforderlich, die kodierte Spalte zu dekodieren, um Anfragen (wie die obigen) zu beantworten .
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) .
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 Wahrscheinlichkeit
verwendet werden, welche mittels des bestimmten statistischen Clustering-Modells ermittelbar ist .
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) .
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 .
Ferner können Verfahren zur Kodierung dünn besetzter Tafeln (Sparse-Kodierung) verwendet werden.
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 .
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 .
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 .
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 .
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.
Die Verwendung dieses "natürlichen Schlüssels" hat den Vorteil, dass nur ein geringer Speicheraufwand bei der
Speicherung von Schlüsseln für Datensätze in dem Datenbank- Abbild entsteht .
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 die
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 eine
Kundendatenbanktabelle 105, so werden in den Datenbank- Abbildern Schlüssel für die j eweiligen Datensätze gespeichert .
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 .
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 entsprechenden
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 entsprechenden
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.
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 . 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 :
• Die Geschwindigkeit des Hauptspeichers ist wesentlich größer als anderen große Massenspeicher (Festplatten) .
• Die Datenbank-Abbilder sind so konstruiert, dass über die Segmentierung ein schneller Zugriff auf die Daten und ein schnelles Auszählen möglich ist .
• 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 .
Eine weiterhin gesteigerte Effizienz ist in einer Ausführungsform gegeben, in der ein Datenbank-Abbild
(beispielsweise das Transaktionsdatenbanktabellen-Abbild 108 ) Verweise auf die Datensätze in dem anderen Datenbank-Abbild (beispielsweise dem Kundendatenbanktabellen-Abbild 107 ) enthält .
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 .
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.
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 .
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 die
ClusterZugehörigkeit, sondern eine gemeinsame Zuordnung.
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 die
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 die
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.
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 auf
Dimensionen aus verschiedenen Datenbanktabellen gesetzt werden.
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 aus
Performancegründen, nicht möglich, für jede Spalte der Datenbanktabelle einen Index zu generieren.
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 vorgegebenen
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.
Dies ist insbesondere dann von Vorteil, wenn nur ein kleiner
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 die
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.
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) .
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 .
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 .
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 die
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.
Beispielsweise wird eine Anfrage an das
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 die
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 .
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 .
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 .
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, dass
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.
Insbesondere kann die Erfindung Abfragen in der Abfragesprache SQL (structured query language) entgegennehmen und beantworten.
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 .
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 diesem Dokument sind folgende Veröffentlichungen zitiert :
[1] Castillo, Jose Manuel Gutierrez,
Ali 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
[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
[5] WO 00/65479
[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.
[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
[11] DE 102 52 445 Al
[12] US 2002/0029207 Al
Bezugszeichenliste
100 Computeranordnung
101 Computersystem
102 Datenbanksystem
103 Mikroprozessor
104 Speicher
105 Kundendatenbank
106 Transaktionsdatenbank
107 Kundendatenbank-Abbild
108 Transaktionsdatenbank-Abbild
109 Explorer-Computerprogramm
110 Bildschirm
111 Eingabegeräte
200 Bildschirmanzeige
201-203 Bildschirmfenster mit Analyseergebnissen
204 Selektionsinformationsfeld
205, 206 Auswahlfenster
300 Bildschirmanzeige
301-303 Bildschirmfenster mit Analyseergebnissen
304 Selektionsinformationsfeld
400 Bildschirmanzeige
401-403 Bildschirmfenster mit Analyseergebnissen
404 , 405 Balken
406 Selektionsinformationsfeld
500 Bildschirmanzeige
501-503 Bildschirmfenster mit Analyseergebnissen
504 Selektionsinformationsfeld
600 Bildschirmanzeige
601-603 Bildschirmfenster mit Analyseergebnissen 604 Balken
700 Bildschirmanzeige
701-703 Bildschirmfenster mit Analyseergebnissen
704 Markierung
800 Cluster-Hierarchie
801 Datenbank
802 Mehrzahl von Clustern
803 Mehrzahl von Clustern
804 Mehrzahl von Clustern
900 Cluster
901, 902 Zeilen
903, 904 Spalten

Claims

Patentansprüche
1. 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, 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;
- einer Eingabeeinrichtung, die eingerichtet ist, eine Analyse-Anfrage an das zweite Datenbank-Abbild zu empfangen;
- einer Selektionseinrichtung, die eingerichtet ist, einen Teil der ersten Vielzahl von Datensätzen gemäß einer ersten Selektion zu selektieren;
- 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;
- einer Verarbeitungseinrichtung, die eingerichtet ist, das Ergebnis der Analyse-Anfrage auf Basis des Teils der zweiten Vielzahl von Datensätzen zu ermitteln.
2. Datenbank-Abfragesystem gemäß Anspruch 1, wobei das erste Datenbank-Abbild und/oder das zweite Datenbank-Abbild gemäß einem statistischen Modell erzeugt ist .
3. Datenbank-Abfragesystem gemäß Anspruch 2 , wobei das statistische Modell ein graphisches Wahrscheinlichkeitsmodell ist .
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.
5. Datenbank-Abfragesystem gemäß Anspruch 4, das ferner eine Anzeigeeinrichtung aufweist, die eingerichtet ist, eine
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 .
6. Datenbank-Abfragesystem gemäß Anspruch 5, wobei die
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.
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 .
8. Datenbank-Abfragesystem gemäß einem der Ansprüche 1 bis 7 , wobei in dem ersten Datenbank-Abbild die erste Vielzahl von
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.
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 .
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 .
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 .
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 :
- Empfangen einer Analyse-Anfrage an die zweite Datenbanktabelle; - Selektieren eines Teils der ersten Vielzahl von Datensätzen gemäß einer ersten Selektion;
- 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;
- Ermitteln des Ergebnisses der Analyse-Anfrage auf Basis des Teils der zweiten Vielzahl von Datensätzen.
EP05850178A 2004-12-24 2005-12-19 Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken) Withdrawn EP1831804A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004062532 2004-12-24
PCT/DE2005/002287 WO2006066556A2 (de) 2004-12-24 2005-12-19 Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken)

Publications (1)

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

Family

ID=36097216

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05850178A Withdrawn EP1831804A1 (de) 2004-12-24 2005-12-19 Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken)

Country Status (3)

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

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1928828B1 (de) * 2005-09-02 2012-03-14 Semiconductor Energy Laboratory Co., Ltd. Anthracenderivat
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
WO2010041377A1 (ja) * 2008-10-06 2010-04-15 パナソニック株式会社 代表画像表示装置及び代表画像選択方法
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
US9613102B2 (en) 2014-04-01 2017-04-04 Tableau Software, Inc. Systems and methods for ranking data visualizations
US20150278214A1 (en) 2014-04-01 2015-10-01 Tableau Software, Inc. Systems and Methods for Ranking Data Visualizations Using Different Data Fields
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 (de) * 1990-02-13 1991-08-21 International Business Machines Corporation Verbinden von ausgewählten Daten in Tabellen eines relationellen Datenbanksystems
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 (de) * 1990-02-27 1999-04-15 Oracle Corp Dynamische Optimierung eines einzelnen relationalen Zugriffs
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
US6012058A (en) * 1998-03-17 2000-01-04 Microsoft Corporation Scalable system for K-means clustering of large databases
US6263337B1 (en) * 1998-03-17 2001-07-17 Microsoft Corporation Scalable system for expectation maximization 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
US6643648B1 (en) * 1999-06-30 2003-11-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
JP2003525497A (ja) * 2000-02-28 2003-08-26 シーメンス アクチエンゲゼルシヤフト システムのモデリング方法及びシステムのモデリング装置
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
US20030013951A1 (en) * 2000-09-21 2003-01-16 Dan Stefanescu Database organization and searching
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
JP2004532488A (ja) * 2001-06-08 2004-10-21 シーメンス アクチエンゲゼルシヤフト データバンク操作の性能を向上させるための統計モデル
US7113936B1 (en) * 2001-12-06 2006-09-26 Emc Corporation Optimizer improved statistics collection
CA2471725A1 (en) * 2002-01-04 2003-07-17 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 (de) * 2002-11-12 2004-05-27 Siemens Ag Verfahren und Computer-Anordnung zum Bereitstellen von Datenbankinformation einer ersten Datenbank und Verfahren zum rechnergestützten Bilden eines statistischen Abbildes einer Datenbank
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 (de) * 1990-02-13 1991-08-21 International Business Machines Corporation Verbinden von ausgewählten Daten in Tabellen eines relationellen Datenbanksystems
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 (de) 2006-06-29
WO2006066556A8 (de) 2006-10-05

Similar Documents

Publication Publication Date Title
EP1831804A1 (de) Relationale komprimierte datenbank-abbilder (zur beschleunigten abfrage von datenbanken)
DE69938339T2 (de) Ein skalierbares system zum gruppieren von grossen datenbänken
DE60221153T2 (de) Verfahren und vorrichtung für ähnlichkeitssuche und gruppenbildung
DE69802960T2 (de) Datengruppierung und dimensionsverringerung mehrdimensionaler daten zum indizieren und suchen
DE60121231T2 (de) Datenverarbeitungsverfahren
DE69809964T2 (de) Online-datenbank ausbeutung
DE112016005350T5 (de) Speichern und abrufen von daten eines datenwürfels
DE10028688B4 (de) Methode, System und Programm für eine Verbindungsoperation in einer mehrspaltigen Tabelle sowie in Satellitentabellen mit doppelten Werten
He et al. Mining a web citation database for author co-citation analysis
DE69526168T2 (de) Verfahren und Gerät zur Klassifikation von Dokumentinformationen
DE69910219T2 (de) Transformation der perspektive auf tabellen von relationalen datenbanken
Sağlam et al. A mixed-integer programming approach to the clustering problem with an application in customer segmentation
DE10120870A1 (de) Navigieren in einem Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
DE202017007212U1 (de) System zur inkrementellen Clusterwartung einer Tabelle
DE10120869A1 (de) Verwendung eines Index für den Zugriff auf eine mehrdimensionale Subjektdatenbank
DE602004006485T2 (de) Verfahren zur automatisierten anmerkung von berichten mehrdimensionaler datenbanken mit informationsobjekten eines datenspeichers
DE102020126569A1 (de) Systeme und verfahren für die dynamische bedarfserfassung
DE102014204827A1 (de) Auflösen ähnlicher Entitäten aus einer Transaktionsdatenbank
DE60030735T2 (de) Voraussage der realisierbarkeit eines verbindungsweges
EP4272087B1 (de) Automatisierte lineare clustering-empfehlung für datenbankzonenkarten
DE10239292A1 (de) Konflikterfassung und -lösung in Zusammenhang mit einer Datenzuweisung
DE102012214196A1 (de) Erkennen nicht eindeutiger Namen in einer Gruppe von Namen
DE60032258T2 (de) Bestimmen ob eine variable numerisch oder nicht numerisch ist
DE60300984T2 (de) Methode und Computersystem für die Optimierung eines Boolschen Ausdrucks für Anfragebearbeitung
DE112021001743T5 (de) Vektoreinbettungsmodelle für relationale tabellen mit null- oder äquivalenten werten

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