Under the ODMG model, is an attribute's value either a literal or an object identifier (OID), or are attribute values limited to literals while OIDs are used implicitly for object identity and relationships?

Difficulty: Easy

Correct Answer: Does not apply — attribute values are literals; OIDs are not attribute values

Explanation:


Introduction / Context:
Object identity (OID) is fundamental in object databases but should not be confused with attribute values. This question clarifies that distinction by asking whether attributes may directly hold OIDs or whether attributes are strictly literal-valued in ODMG.



Given Data / Assumptions:

  • Attributes in ODL are declared with literal types (atomic, collection, structured).
  • Objects are identified by OIDs managed by the system; programmers do not store OIDs in literal attributes for navigation.
  • Relationships provide the standard mechanism for object-to-object references.



Concept / Approach:
Keeping OIDs out of attribute values preserves a clean separation of concerns: values belong to attributes; identity and links belong to objects and relationships. This supports robust navigation, referential integrity, and schema evolution without leaking identity details into the value space.



Step-by-Step Solution:
Declare attributes with literal domains only.Define relationships to link objects; use inverses for bidirectional consistency.Avoid storing identifiers in attributes to simulate foreign keys; use relationships instead.Ensure queries traverse relationships rather than parsing identifiers from attributes.Rely on the DBMS to manage OIDs under the hood for persistence and identity.



Verification / Alternative check:
ODMG examples and the ODL grammar do not provide syntax for “attribute of type OID.” Identity is implicit for objects and explicit in relationship declarations.



Why Other Options Are Wrong:
Option b is incorrect because it conflates identities with values. Options c–e introduce unrelated special cases that do not change the rule that attributes hold literals only.



Common Pitfalls:
Modeling foreign keys as literal attributes rather than relationships; creating brittle schemas that hardcode identifier formats; losing navigational advantages by not using the relationship/inverse features.



Final Answer:
Does not apply — attribute values are literals; OIDs are not attribute values

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion