Title: Automating the Design and Construction of Query Forms
1Automating the Design and Construction of Query
Forms
- Authors Magesh Jayapandian and H.V. Jagadish
- Chris Truszkowski
2- Introduction
- Forms, forms, forms
- Form Generation
- Class and Analysis
- Query Generation
- Evaluation
3Introductionclass, database form Database form,
class. Introductions made
- DatabaseQuery Form relationship
- Good form time consuming
- Query-gtForm translation not obvious
- Query/schema complexity -gt Form generation
harder - Tools exist, but do not shoulder entire burden
4Forms (N) a definition
- A visual representation of a query operation.
- Meaningful layout crucial to understanding
- Form elements
- Constraint
- Result
- Aggregate
- Ordering
- Disjunction
- Join
5(No Transcript)
6Generationafter generation
- Query Analysis
- Selection
- Projection
- Sort
- Aggregate
- Join
- Disjunction
- Structure
- Query vs. Schema grouping
7Class analysis time
- Similarity analysis
- Shared elements
- Jaccard distance
- Clustering
- Classes of similar queries
- Complexity
8Query generationReverse reverse
Algorithm GenerateQuery Input A filled form
F Output An XQuery expression X foreach
join-element j ? T, the relationship tree of F
do Create a new binding variable v1 for the
entity referenced by the left-hand side of the
join condition (if it does not already
exist) Create a binding variable v2 for the
entity referenced by the right-hand side of the
join condition (if it does not already
exist) Assign v1, v2 to the group containing
j if j denotes a nested relationship
then Construct a new query block b and record the
current query block as its parent Add b to B,
the set of query blocks if no join-element found
then Create a single binding variable v and
assign it to the root group foreach form-group g
? T do Partition the form-elements in g between
the two binding variables by schematic
similarity foreach binding variable v do Assign
v to the lowest common ancestor of schema
entities (referenced by elements) that are
assigned to it foreach query block b ? B
do Assign a unique variable name to b and denote
its associated schematic entity as its
scope Create a for clause using the variable
name and scope Create a predicate for each
constraint-specification or join-specification
element and add it to the where clause Create a
projection for each result-display element and
add it to the return clause Create an orderby
attribute for each result-ordering element and
add it to the orderby clause foreach query block
b ? B do Construct a let-clause that connects b
to its parent block Construct the XQuery
expression X recursively using a DFS traversal of
the query blocks
- Simple Queries
- No Join
- Single Group
- Complex Queries
- Binding variable
9Evaluation
- Size of form set
- Complexity of forms
- Expresivity
- Complexity vs Expresivity
10Questions? Preguntas? Fragen?