This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
magik-demo:user:school-example [2013/05/13 17:47] admin created |
magik-demo:user:school-example [2017/07/06 15:24] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{:magik-demo:magik-logo.jpg?900|}} | + | {{:magik-demo:magik_logo.png?nolink&500|}} |
Line 12: | Line 12: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | The motivation for MAGIK comes from a project to create a school information system (SIS) that can give | + | In database applications such as information integration and decision support, |
- | guarantees about the completeness of the school data. Typically, data in SIS is notoriously incomplete. | + | one is in interested in data sets that are complete, in the sense that the data |
- | Consequently, the school management is not able use this data for the decision support. | + | represent all relevant facts that hold in the real world. In many situations, though, |
+ | it is only possible to guarantee partial completeness of the data, which means that | ||
+ | for certain aspects of the application domain the data are complete, but not for others. | ||
+ | In such a situation, one would like to know at least whether the available data are | ||
+ | sufficient to answer a given query completely, that is, whether the answers to the | ||
+ | query over the avalable data are the same as if the data set were complete. | ||
+ | |||
+ | An example is the management of school data in the province of Bolzano, which motivated | ||
+ | the work reported here. Data in the school information system of the province are often | ||
+ | incomplete because each school individually is responsible for inserting its data into | ||
+ | the system and because for certain kinds of data the contribution is optional. | ||
+ | Decision makers, however, need to know whether or not the statistics on which they base | ||
+ | the allocation of resources to schools are derived from complete data. | ||
The problem statement that MAGIK solves is the following: | The problem statement that MAGIK solves is the following: | ||
Given a collection of table completeness (TC) statements | Given a collection of table completeness (TC) statements | ||
(meta-statements that states which parts of tables are certainly complete) | (meta-statements that states which parts of tables are certainly complete) | ||
- | that hold over an instance | + | that hold over a database instance |
D, we can ask whether they entail that for | D, we can ask whether they entail that for | ||
- | a certain query Q the set of answers Q(D) is complete, that is, | + | a query Q the set of answers Q(D) is complete, that is, |
- | whether Q(D) contains all answer records that one would expect if | + | whether Q(D) contains all answer records that one would expect |
- | D were complete. | + | if D were complete (it contains all information). |
- | In the following we will illustrate main reasoning featutes of MAGIK, by the means of examples. | + | In the rest we illustrate main reasoning featutes of MAGIK using the following |
- | We consider the following toy schema: | + | toy schema: |
<code sql> | <code sql> | ||
pupil(name,level,code), | pupil(name,level,code), | ||
Line 221: | Line 234: | ||
Query Q4 returns a pupil if such a pupil learns French language. Each pupil will be returned at most once, considering ''DISTINCT'' command in the | Query Q4 returns a pupil if such a pupil learns French language. Each pupil will be returned at most once, considering ''DISTINCT'' command in the | ||
- | ''SELECT''. In this case appearance of ''l2'' is absolute superfouls. | + | ''SELECT''. In this case appearance of ''l2'' is absolute superfouls. |
On the other hand, query Q5 returns each | On the other hand, query Q5 returns each |