This research address the problem of relational query optimization for general purpose parallel machines. The principle objective of this project to develop query optimizer that will generate efficient query plans for parallel machines. The three main components of a database query optimizer are its query plan representation, its cost model, and its search algorithm. This project addresses the issue of developing a plan representation that incorporates intra- and inter-operator parallelism, as well as pipelining. Furthermore, cost models will be developed which distinguish between the total work done, i.e. the (sequential) time it would take on a uni-processor and total (parallel) time taken on a multi-processor. The cost model depends on the query and database parameters, as well as architecture parameters. A cost-based search algorithm selects efficient (low cost) query plans. Since the search space is much larger than that found in uni-processor query optimization, this research will develop new heuristics to prune the search space. Furthermore, since a multiprocessor is available, the research will also investigate applicability of parallel processing to the optimization process itself. The results of this research will have an impact on efficient query processing in parallel relational databases.