With Object Query Language (OQL), which actions are supported when constructing queries over collections? Select the most comprehensive answer.
-
AReturn an entire collection of elements including duplicates.
-
BReturn a collection of elements without duplicates.
-
CReturn a specific subset of elements using a given criteria.
-
DAll of the above.
Answer
Correct Answer: All of the above.
Explanation
Introduction / Context:OQL provides SQL-like expressiveness for querying persistent object collections. Similar to SQL, it supports selection, projection, filtering, and duplicate control (e.g., DISTINCT), making it suitable for rich object navigation and aggregation.
Given Data / Assumptions:
- Collections can be returned as-is or filtered.
- Duplicate elimination may be requested (e.g., DISTINCT semantics).
- Predicates (criteria) determine subsets.
Concept / Approach:
OQL queries can return full collections (bags/lists) possibly with duplicates; they can also request duplicate-free results analogous to SQL DISTINCT. Predicates in WHERE clauses (select-from-where) enable returning subsets that match specified conditions.
Step-by-Step Solution:
Return entire collection → simple projection from the extent or relationship.Remove duplicates → apply DISTINCT-like semantics.Restrict subset → apply WHERE with criteria.Verification / Alternative check:
Canonical OQL syntax mirrors SQL capabilities, supporting all three behaviors depending on the query.
Why Other Options Are Wrong:
Each single option is valid but incomplete; only “All of the above” covers the full capability set.
Common Pitfalls:
Forgetting to use DISTINCT when semantics demand uniqueness; returning overly large collections without filtering.
Final Answer:
All of the above.