Database DesignSlide 2Slide 3MLPQTwo Main Application AreasThe MLPQ Database System ArchitectureMLPQ Input FilesDifferences between Datalog and MLPQ Input FileDifferences ( continued )Example Database file – regions.txtThe MLPQ Graphical User InterfaceSQL QueryResultsMany OperatorsRecursive Queries© 2003-2006 M.E. FayadSJSU -- CmpEDatabase Design Dr. M.E. Fayad, ProfessorComputer Engineering Department, Room #283I College of EngineeringSan José State UniversityOne Washington SquareSan José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S2 MLPQ 2Lesson 08-II: The MLPQ System© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S3 MLPQ Lesson ObjectivesObjectives 3 Understand the MLPQ System Learn about: Database System Architecture MLPQ Input Files MLPQ Graphical User Interface Recursive Queries© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S4 MLPQMLPQMLPQ is short for Management of liner programming queries.MLPQ is a constraint database system for rational linear constraint databases.It allows:–Datalog Queries–Minimum and maximum aggregation operations over linear objective functions–And other operators 4© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S5 MLPQTwo Main Application AreasOperations research when the available data in a database needs to be reformulated by some database query before we can solve a problem by linear programming.Dealing with spatial and spatiotemporal data. The MLPQ allows the ability to go beyond two or three dimensions of mutually constrained data. 5© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S6 MLPQSystem consists of six main modules:–Representation–Query Evaluation–Visualization–Approximation–Update–Export ConversionRefer to Chapter 18 for a diagram and more details The MLPQ Database System Architecture 6© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S7 MLPQMLPQ Input FilesEach Input File has this structure:begin %moduleName%12..nend %moduleName%Where n is a Datalog Rule or rational linear constraint tuple. 7© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S8 MLPQDifferences between Datalog and MLPQ Input FileEach Linear constraint has the form:a1x1 + a2x2 + … + anxn b Where each ai is a constant and each xi is a variable, and i is a relation operator of the from =, <, >, <=, or >=.The optional aggregate operator has the from OP(f) where OP is one of the aggregate optators: max, min, MAX, MIN, sum_max, sum_min, and f is a liner function of the variables in the rule. 8© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S9 MLPQDifferences ( continued )For the negation the symbol ! Is used instead of not.The Module Name controls what type of query evaluation methods will be used. It should be one of these strings:–MLPQ – to evaluate only non-recursive Datalog Queries.–RECURSIVE – to evaluation recursive Datalog Queries–GIS – to evaluate both Datalog and iconic queries 9© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S10 MLPQExample Database file – regions.txtbegin%Test%country(id,x,y,t):- id = 1, x >= 0, x <= 4, y >=5 , y <= 15, t >=1800 , t <=1950.country(id,x,y,t):- id = 1, x >= 0, x <= 8, y >=5, y <=15, t >=1950 , t <= 2000.country(id,x,y,t):- id = 2, x >= 4, x <= 12, y >=5 , y <=15 , t >= 1800, t <=1950 .country(id,x,y,t):- id = 2, x >= 8, x <= 12, y >=5 , y <=15 , t >= 1950, t <= 2000.country(id,x,y,t):- id = 3, x >= 0, x <= 12, y >=0 , y <=5 , t >= 1800, t <= 2000.location(c,x,y):- x = 3, y = 2, c = 101.location(c,x,y):- x = 7, y = 3, c = 102.location(c,x,y):- x = 5, y = 6, c = 103.location(c,x,y):- x = 7, y = 10, c = 104.location(c,x,y):- x = 10, y = 8, c = 105.location(c,x,y):- x = 1, y = 7, c = 106.location(c,x,y):- x = -8, y = 6, c = 107.growth(t,c,p):- c = 101, p = 10000 , t >=1800 , t <= 2000.growth(t,c,p):- c = 102, p = 20000 , t >=1800 , t <= 2000.growth(t,c,p):- c = 103, p = 10000 , t >=1800 , t <= 2000.growth(t,c,p):- c = 104, p = 30000 , t >=1800 , t <= 2000.growth(t,c,p):- c = 105, p = 40000 , t >=1800 , t <= 2000.growth(t,c,p):- c = 106, p = 35000 , t >=1800 , t <= 2000.end%Test%10© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S11 MLPQThe MLPQ Graphical User Interface11© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S12 MLPQSQL QueryFind all cities that in 1900 belonged to the USA and had a population of over 10000.Click [Qs], click SQL - Basic button In Create View field enter: “cityUSA1900” In Select field enter: “growth.c, location.x, location.y” In From field enter: “growth, location, country” In Where field enter: “growth.c = location.c, location.x = country.x, location.y = country.y, growth.t = 1900, growth.p > 10000, country.id = 1, country.t = 1900”12© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S13 MLPQResults13© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S14 MLPQMany Operators14© 2003-2006 M.E. FayadSJSU -- CmpE -- M.E. Fayad L8-2-S15 MLPQRecursive QueriesRecursive Datalog queries are entered the same way as non-recursive queries except that the module name is changed to RECURSIVE. This activates some special evaluation routines that are applicable for recursive queries
View Full Document