210 likes | 373 Views
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:
E N D
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 result Mediator query result query result Wrapper Wrapper query result query result Source 1 Source 2
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
Queries from mediator Results Templates Driver Table Wrapper generator Queries Result Source
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!