|
||
The course covers advanced aspects of the most important database query languages over the broadly used
logical models (relational, tree, and graph), with an emphasis on a mutual comparison of these languages and
their key features. The part focusing on more theoretical aspects is devoted to the topic of evaluation and
optimization of SQL queries, and a comparison of the expressive power of relational languages. The more
practical part addresses query constructs, syntax, and semantics within SQL, Datalog, XPath, XQuery, SPARQL,
MongoDB, and Cypher languages.
Last update: Zavoral Filip, RNDr., Ph.D. (07.05.2024)
|
|
||
SQL language: data model, query constructs, three-valued logic, CUBE and ROLLUP operators, recursive queries.
SQL evaluation and optimization: access methods, external sort, joining tables using nested loops, merging and hashing, query evaluation plan, statistical optimization, algebraic optimization.
Expressive power: relational algebra, domain relational calculus, database query, expressive power, equivalence of relational languages, transitive relation closure, smallest fixed point.
Datalog: without recursion, with recursion, with negation, stratification.
XPath and XQuery: XML format, XDM data model, path expressions, comparisons, atomization, constructors, FLWOR expressions, other types of expressions.
MongoDB: JSON format, data model, find method, selection operators, projection, aggregation queries, MapReduce queries.
SPARQL: RDF format, basic notation, Turtle notation, graph patterns, active graph, filters, query forms.
Cypher: Neo4j system, data model, graph patterns, query constructs, chaining of clauses. Last update: Zavoral Filip, RNDr., Ph.D. (07.05.2024)
|