Вы находитесь на странице: 1из 21

Wrappers in Mediator-Based Systems

Chapter 21.3 Information Integration Presented By Annie Hii Toderici

Outline
Templates for Query Patterns Wrapper Generators Filters Other Operations at the Wrapper

Extractors in Data Warehouse

Extractors (wrapper) consist of:


Predefined queries that are executed at the source to produce data for the warehouse Suitable communication mechanisms
Pass specific queries to the source Receive responses from the source Pass information to the warehouse

user query

result

Warehouse

Combiner

Extractor

Extractor

Source 1

Source 2

Wrappers in Mediator Systems


Mediator systems require more complex wrappers than warehouse systems Must be able to accept a variety of queries from the mediator and translate any of them to the terms of the source

query

resul t Mediator

query

resul t

query

Wrapper
query resul t Source 1

resul t Wrapper resul t Source 2

query

Wrapper
Wrapper connects a mediator to a source Wrapper (aka adapter) translates incoming queries and outgoing answers Wrappers are defined by templates The wrapper generator creates tables of all possible templates The driver and tables constitute the wrapper

Templates for Query Patterns

Design a wrapper
Classify the possible queries that the mediator can ask into templates

Templates are queries with parameters that represent constants (e.g., red) Uses the notation T=>S

Template T is turned by the wrapper into the source query S

Templates
Suppose we want to build a wrapper for the source of Dealer 1 Dealer 1

Cars(serialNo, model, color, autoTrans, navi, )

Mediator
AutosMed(serialNo, model, color, autoTrans, dealer)

Template: cars of a given color ($c)


SELECT * FROM AutosMed WHERE color = $c; => SELECT serialNo, model, color, autoTrans, dealer1 FROM Cars WHERE color = $c;

Templates

Other templates would be needed to deal with other queries


Type of models: parameter $m Type of transmission: parameter $t Seat type: parameter $s

N attributes, 2n possible templates Number of templates could grow unreasonably large, it is possible to simplify

Wrapper Generators
A collection of templates is given to the wrapper generator (WG) WG creates a table that holds the various query patterns contained in the templates, and the source queries that are associated with each

Templates

Queries from mediator

Results

Wrapper generato r

Tabl e

Driver
Queries
Sourc e

Result

Task of the driver


Accept a query from the mediator Search the table for a template that matches the query The source query is sent to the source The response is processed by the wrapper, and then returned to the mediator

Filters
Not always realistic to write a template for every possible form of query To have the wrapper filter the results of queries that it poses to the source The wrapper has a template that returns a superset of what the query wants, then filter the returned tuples at the wrapper and pass only the desired tuples to the mediator

Example Filter: blue Civic


SELECT * FROM AutosMed WHERE color = $c; => SELECT serialNo, model, color, autoTrans, dealer1 FROM cars WHERE color = $c; Set $c = blue TempAutos(serialNo, model, color, autoTrans, dealer) SELECT * FROM TempAutos WHERE model = Civic;

Other Operations at the Wrapper

To transform data in other ways


Columns may be projected out of the tuples before transmission to the mediator To take aggregations or joins at the wrapper and transmit the result to the mediator

Mediator: find blue Civic and retrieve serial #, transmission type and dealers
SELECT * FROM AutosMed WHERE color = $c; => SELECT serialNo, model, color, autoTrans, dealer1 FROM cars WHERE color = $c; Set $c = blue TempAutos(serialNo, model, color, autoTrans, dealer) SELECT serialNo, autoTrans, dealer FROM TempAutos WHERE model = Civic;

Examples

Mediator: find dealers s.t there are two red cars of the same model, one manual and one automatic Query from mediator to wrapper: SELECT A1.model A1.dealer FROM AutosMed A1, AutosMed A2 WHERE A1.model = A2.model AND A1.color = red AND A2.color = red AND A1.autoTrans = no AND A2.autoTrans = yes;

Example (Continued)

RedAutos(serialNo, model, color, autoTrans, dealer)

SELECT * FROM AutosMed WHERE color = red;

SELECT DISTINCT A1.model, A1.dealer FROM RedAutos A1, RedAutos A2 WHERE A1.model = A2.model AND A1.autoTrans = no AND A2.autoTrans = yes;

Thank You!

The End!

Вам также может понравиться