Query optimization is a function of many relational database management systems in which multiple query plans for satisfying a query are examined and a good query plan is identified. This may or not be the absolute best strategy because there are many ways of doing plans. There is a trade-off between the amount of time spent figuring out the best plan and the amount running the plan. Different qualities of database management systems have different ways of balancing these two.
more from Wikipedia

Distance (graph theory)

In the mathematical field of graph theory, the distance between two vertices in a graph is the number of edges in a shortest path connecting them. This is also known as the geodesic distance because it is the length of the graph geodesic between those two vertices. If there is no path connecting the two vertices, i.e. , if they belong to different connected components, then conventionally the distance is defined as infinite.
more from Wikipedia

Graph labeling

In the mathematical discipline of graph theory, a graph labeling is the assignment of labels, traditionally represented by integers, to the edges or vertices, or both, of a graph. Formally, given a graph G, a vertex labeling is a function mapping vertices of G to a set of labels. A graph with such a function defined is called a vertex-labeled graph. Likewise, an edge labeling is a function mapping edges of G to a set of "labels". In this case, G is called an edge-labeled graph.
more from Wikipedia

Strongly connected component

A directed graph is called strongly connected if there is a path from each vertex in the graph to every other vertex. In particular, this means paths in each direction; a path from a to b and also a path from b to a. The strongly connected components of a directed graph G are its maximal strongly connected subgraphs. If each strongly connected component is contracted to a single vertex, the resulting graph is a directed acyclic graph, the condensation of G.
more from Wikipedia

Graph partition

In mathematics, the graph partition problem is defined on data represented in the form of a graph G= (V,E), with V vertices and E edges, such that it is possible to partition G into smaller components with specific properties. For instance, a k-way partition divides the vertex set into k smaller components. A good partition is defined such that the number of edges running between separated components is small.
more from Wikipedia

Shortest path problem

In graph theory, the shortest path problem is the problem of finding a path between two vertices (or nodes) in a graph such that the sum of the weights of its constituent edges is minimized. An example is finding the quickest way to get from one location to another on a road map; in this case, the vertices represent locations and the edges represent segments of road and are weighted by the time needed to travel that segment.
more from Wikipedia

Directed graph

In mathematics, a directed graph or digraph is a graph, or set of nodes connected by edges, where the edges have a direction associated with them. In formal terms a digraph is a pair (sometimes) of: a set V, whose elements are called vertices or nodes, a set A of ordered pairs of vertices, called arcs, directed edges, or arrows (and sometimes simply edges with the corresponding set named E instead of A).
more from Wikipedia

Precomputation

In algorithms, precomputation is the act of performing an initial computation before run time to generate a lookup table that can be used by an algorithm to avoid repeated computation each time it is executed. Precomputation is often used in algorithms that depend on the results of expensive computations that don't depend on the input of the algorithm.
more from Wikipedia