Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Database Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College of Engineering San José State University One Washington Square San José, CA 95192-0180 http://www.engr.sjsu.edu/~fayad 2003 SJSU -- CmpE -- M.E. Fayad L6-S1 MLPQ Lesson 6: The MLPQ System 2 2003 SJSU -- CmpE -- M.E. Fayad L6-S2 MLPQ Lesson Objectives Objectives Understand the MLPQ System Learn about: The Database’s System Architecture MLPQ Input Files MLPQ Graphical User Interface Database Setup 3 2003 SJSU -- CmpE -- M.E. Fayad L6-S3 MLPQ MLPQ MLPQ 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 2003 SJSU -- CmpE -- M.E. Fayad L6-S4 MLPQ 4 Two Main Application Areas Operations 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. This System allows the ability to go beyond two or three dimensions of 5 mutually constrained data. 2003 SJSU -- CmpE -- M.E. Fayad L6-S5 MLPQ The MLPQ Database System Architecture System consists of six main modules: – Representation – Query Evaluation – Visualization – Approximation – Update – Export Conversion Refer to Chapter 18 for a diagram and more details 2003 SJSU -- CmpE -- M.E. Fayad L6-S6 MLPQ 6 MLPQ Input Files Each Input File has this structure: begin %moduleName% 1 2 . . n end %moduleName% Where i is a Datalog Rule or Rational Linear Constraint Tuple. 7 2003 SJSU -- CmpE -- M.E. Fayad L6-S7 MLPQ Differences between Datalog and MLPQ Input File Each Linear constraint has the form: a 1x 1 + a 2 x 2 + … + a nx n 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 operators: max, min, MAX, MIN, sum_max, sum_min, and f is a liner function of the variables in the rule. 8 2003 SJSU -- CmpE -- M.E. Fayad L6-S8 MLPQ Differences ( continued ) For negation the symbol ! Is used instead of the word 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 2003 SJSU -- CmpE -- M.E. Fayad L6-S9 MLPQ 9 Example Database file – regions.txt begin%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% 2003 SJSU -- CmpE -- M.E. Fayad L6-S10 10 MLPQ The MLPQ Graphical User Interface 11 2003 SJSU -- CmpE -- M.E. Fayad L6-S11 MLPQ SQL Query Find 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” 2003 SJSU -- CmpE -- M.E. Fayad L6-S12 12 MLPQ Preparing a SQL Query 13 2003 SJSU -- CmpE -- M.E. Fayad L6-S13 MLPQ Results 14 2003 SJSU -- CmpE -- M.E. Fayad L6-S14 MLPQ Many Operators 15 2003 SJSU -- CmpE -- M.E. Fayad L6-S15 MLPQ Where to get the MLPQ DB System Go to Dr. Fayad’s web site for this course Click the MLPQ-PRESTO System executable and sample database link near the bottom of the page. Also read the Getting started, Tips, and Specification documents 16 2003 SJSU -- CmpE -- M.E. Fayad L6-S16 MLPQ Database Setup There is not a installer included with this database Just create a directory, unzip the contents of the archive file into this directory Locate and double click the mlpq_nt.exe file. 17 2003 SJSU -- CmpE -- M.E. Fayad L6-S17 MLPQ Questions? 18 2003 SJSU -- CmpE -- M.E. Fayad L6-S18 MLPQ