Query Evaluation Techniques for Large Databases