Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Microsoft SQL Server wikipedia , lookup
Concurrency control wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
ContactPoint wikipedia , lookup
Clusterpoint wikipedia , lookup
Relational algebra wikipedia , lookup
Versant Object Database wikipedia , lookup
Abstract State Machines and Computationally Complete Query Languages Andreas Blass, U Michigan Yuri Gurevich, Microsoft Research & U Michigan Jan Van den Bussche, U Limburg Outline • Databases and queries • Query languages: – whilenew, whilenewsets – ASMs • Notions of polynomial time • Comparisons Relational databases • Database schema = Finite set S of relation names with associated arities • Database B over S = Finite structure over S – Finite domain D of atomic values – For each R S, a k-ary relation RB on D Relational databases • Database schema = Finite set S of relation names with associated arities • Database B over S = Finite structure over S – Finite domain D of atomic values – For each R S, a k-ary relation RB on D arity associated to R in S Relational databases • Database schema = Finite set S of relation names with associated arities • Database B over S = Finite structure over S – Finite domain D of atomic values – For each R S, a k-ary relation RB on D E.g. Graph: arity associated to R in S Relational databases • Database schema = Finite set S of relation names with associated arities • Database B over S = Finite structure over S – Finite domain D of atomic values – For each R S, a k-ary relation RB on D arity associated to R in S E.g. Graph: 1 2 3 4 Relational databases • Database schema = Finite set S of relation names with associated arities • Database B over S = Finite structure over S – Finite domain D of atomic values – For each R S, a k-ary relation RB on D arity associated to R in S E.g. Graph: 1 2 3 4 D 1 2 3 4 E (1,2) (2,3) (2,4) (3,4) Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Q(B) is the answer to the query Q on database B. Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Q(B) is the answer to the query Q on database B. • Arity 0: {( )} or { } Boolean query Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Q(B) is the answer to the query Q on database B. • Arity 0: {( )} or { } Boolean query E.g. On a graph: – Give all pairs of nodes that are targets of a common source. Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Q(B) is the answer to the query Q on database B. • Arity 0: {( )} or { } Boolean query E.g. On a graph: – Give all pairs of nodes that are targets of a common source. – Is f(m)=2000? Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Q(B) is the answer to the query Q on database B. • Arity 0: {( )} or { } Boolean query E.g. On a graph: – Give all pairs of nodes that are targets of a common source. – Is f(m)=2000? number of edges in graph Queries • General definition of query: a (partial, computable) mapping Q – from databases (over a common schema) – to relations (of a common arity) Q(B) is the answer to the query Q on database B. • Arity 0: {( )} or { } Boolean query E.g. On a graph: – Give all pairs of nodes that are targets of a common source. – Is f(m)=2000? arbitrary computable function on N The consistency criterion • The answer of a query on a database can depend only on information that is logically contained in that database. If h is an isomorphism B B, then h is also an isomorphism Q(B) Q(B). Query languages • In practice: SQL first-order logic + counting, summation, … E.g. Give all pairs of nodes that are targets of a common source: Query languages • In practice: SQL first-order logic + counting, summation, … E.g. Give all pairs of nodes that are targets of a common source: select E1.target, E2.target from E E1, E E2 where E1.source = E2.source Query languages • In practice: SQL first-order logic + counting, summation, … E.g. Give all pairs of nodes that are targets of a common source: select E1.target, E2.target from E E1, E E2 where E1.source = E2.source (x,y) z (E(z,x) E(z,y)) Expressiveness of first-order logic (FO) • Many useful queries are expressible in FO. • But many others are not: – Connectivity: Is the graph connected? – Is f(m)=2000, where f(m) = 2000 if m is even 0 if m is odd Expressiveness of first-order logic (FO) • Many useful queries are expressible in FO. • But many others are not: – Connectivity: Is the graph connected? – Is f(m)=2000, where f(m) = (parity query) 2000 if m is even 0 if m is odd Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) relation variable of arity j Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) FO-formula over db relations and relation variables Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) – sequential composition Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) – sequential composition – while-loops: while do … od Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) – sequential composition – while-loops: while do … od FO-sentence Towards a complete language: while • Make FO basis of a small programming language for working with relations: – relation variables (typed by fixed arities) – operations on relations provided by FO – assignment: X (x1,…,xj)(x1,…,xj) – sequential composition – while-loops: while do … od • Chandra & Harel [1982] Example while-program • Connectivity query: Seen(2) ; Path(2) E; while Path Seen do Seen Path; Path Path (x,z) y (Path(x,y) E(y,z)); od. Example while-program • Connectivity query: Seen(2) ; Path(2) E; while Path Seen do Seen Path; Path Path (x,z) y (Path(x,y) E(y,z)); od. • Parity query: Example while-program • Connectivity query: Seen(2) ; Path(2) E; while Path Seen do Seen Path; Path Path (x,z) y (Path(x,y) E(y,z)); od. • Parity query: Not! A complete language: whilenew • S. Abiteboul & V. Vianu [1988] • Allow introduction of new domain elements in the computation. • New operator: A complete language: whilenew • S. Abiteboul & V. Vianu [1988] • Allow introduction of new domain elements in the computation. • New operator: new A complete language: whilenew • S. Abiteboul & V. Vianu [1988] • Allow introduction of new domain elements in the computation. • New operator: new X(3) new R(2) X a c f b d g R a b c a c f b d g A complete language: whilenew • S. Abiteboul & V. Vianu [1988] • Allow introduction of new domain elements in the computation. • New operator: new X(3) new R(2) X a c f b d g R a b c a c f b d g • Every partial computable query can be programmed in whilenew. Parity in whilenew 1 Easy to check parity of a set S equipped with a successor relation: Even(0) true; Visit(1) first element of S ; while Visit do Even Even; Visit succ(x)Visit(x) od. Parity in whilenew 2 Make a set S of new elements, one for each edge: S0 new E; S 3(S0); Parity in whilenew 3 Compute a successor relation on S: Impossible! Parity in whilenew 3 Compute the tree T of all m! successor relations, where m = |S|: T new ; Seen ; Extend r,xTr Sx; while Extend do X new Extend; T T 3X; succ succ 1,3X; Seen Seen n,x n Xn,x,n xx Seenn,x; Extend n,xn 3X Sx Seen(n,x od. We can’t do better! • whilenew-PSPACE: class of whilenew-programs running in polynomial space. Theorem: [Abiteboul–Vianu 1991] The parity query cannot be done in whilenew-PSPACE. • Intuition: In whilenew you cannot make arbitrary choices (recall consistency criterion) Instead of choosing one successor relation, we must work with them all. • whilenew-PTIME: class of whilenew-PSPACEprograms running in polynomial time. BGS • Blass, Gurevich, Shelah [1996]: – How can we formalize algorithms that never have to make arbitrary choices? – What can such algorithms still do in polynomial time? Instantiation of ASMs for expressing database queries. BGS ASMs • Universe: HF(D) – every x D is in HF(D); – every finite set of elements of HF(D) is itself in HF(D). • Infinite, but at any point only finitely many sets are “active”. • Set-theoretic static functions: – pairing – bounded set-construction • forall do (parallel ASMs) Connectivity with a BGS-ASM if Mode 0 then forall x D do Frontierx x enddo, Mode 1 endif, if Mode 1then forall x D do Reachedx := Reachedx Frontierx Frontierx := y D z Frontierx Ez,y y Reachedx Frontierx enddo, Halt Frontierxx D endif. BGS-PTIME • BGS-PTIME: class of BGS-ASMs – running for at most polynomially many steps – constructing at most polynomially many sets • “Choiceless polynomial time” BGS-PTIME versus whilenew-PTIME? • Structure In : • • • • • • n 2n BGS-PTIME versus whilenew-PTIME? • Structure In : • • • • • • n 2n • There is a PTIME BGS-program that outputs: BGS-PTIME versus whilenew-PTIME? • Structure In : • • • • • • n 2n • There is a PTIME BGS-program that outputs: – true on every In with n even; BGS-PTIME versus whilenew-PTIME? • Structure In : • • • • • • n 2n • There is a PTIME BGS-program that outputs: – true on every In with n even; – false odd. BGS-PTIME versus whilenew-PTIME? • Structure In : • • • • • • n 2n • There is a PTIME BGS-program that outputs: – true on every In with n even; – false odd. (Just construct all red subsets of even size.) BGS-PTIME versus whilenew-PTIME? • Structure In : • • • • • • n 2n • There is a PTIME BGS-program that outputs: – true on every In with n even; – false odd. (Just construct all red subsets of even size.) Theorem: There is no such PSPACE whilenewprogram (let alone PTIME). Sets versus lists • BGS programs can construct sets. • whilenew programs can only construct lists. – operator new works tuple- ( list-) based. • Lists are ordered; sets can be unordered. • If you want to simulate something unordered by something ordered, you have to work with all orders. – (Recall parity in whilenew.) BGS-PTIME strictly encompasses whilenew-PTIME. The language whilenewsets • Theory of object-based query languages, studied late 80s – early 90s. • Operator new from whilenew is really tuple-new. We need also a set-new! Language whilenewsets set-new Y2 set-new R2 R a a b b c c c d e e d e f g set-new Y2 set-new R2 R a a b b c c c d e e d e f g set-new Y2 set-new R2 R a a b b c c c d e e d e f g set-new Y2 set-new R2 Y a a b a c b R a a b b c c c d e e d e f g Equivalence results • whilenewsets and BGS can simulate each other. • Simulation: – linear step overhead – polynomial space overhead BGS-PTIME whilenewsets-PTIME whilenew-PTIME Concluding remarks • ASMs and query languages are quite related, and share the common concern of computation on the “logical” level. • Purely mathematically, – basic parallel ASMs – whilenew are essentially the same thing. • ASMs clearly win from query languages in flexibility, appeal to practitioners, developed philosophy, and people like Yuri and Egon. • whilenew never “escaped” database theory! • Challenge: the Web (querying XML, WWW, …)