Your SlideShare is downloading. ×
0
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Completeness Criteria for Object-Relational Database Systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Completeness Criteria for Object-Relational Database Systems

553

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
553
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Completeness Criteria for Object-Relational Database Systems by Won Kim April 2002 Sang Ho Lee School of Computing, Soongsil University [email_address]
  • 2. <ul><ul><li>The purpose of this paper is to propose a practical metric for object-relational completeness, so it may serve as a reference for determining whether a product is an ORDB, and for determining the degree of completeness of the product </li></ul></ul><ul><ul><li>Seven major categories </li></ul></ul><ul><ul><li>Each category consists of “primary” and “secondary” capabilities </li></ul></ul>
  • 3. Data Model - primary (1) <ul><li>Classes, instances, atomic attributes </li></ul><ul><li>A class is a table in an RDB with </li></ul><ul><ul><li>Methods </li></ul></ul><ul><ul><li>Set-valued attributes </li></ul></ul><ul><ul><li>Attributes whose domains may include references to classes </li></ul></ul><ul><ul><li>Abstract data type </li></ul></ul><ul><li>OID per instance </li></ul><ul><ul><li>An instance has a unique and immutable identifier, OID </li></ul></ul><ul><li>Encapsulation </li></ul><ul><ul><li>The user may write a method and attach it to a class </li></ul></ul>
  • 4. Data Model– primary (2) <ul><li>Inheritance </li></ul><ul><ul><li>Multiple inheritance of attributes, methods, integrity constraints on attributes </li></ul></ul><ul><ul><li>name-conflict resolution (not prevention) </li></ul></ul><ul><li>Arbitrary domain </li></ul><ul><ul><li>Alphanumeric type </li></ul></ul><ul><ul><li>Abstract data types (ADTs) </li></ul></ul><ul><ul><li>Class reference </li></ul></ul><ul><ul><ul><li>Class reference as domain of an attribute </li></ul></ul></ul><ul><ul><ul><li>OID-based object references </li></ul></ul></ul><ul><ul><ul><li>Expedite an navigational access in a nested object </li></ul></ul></ul><ul><li>Set-valued attributes </li></ul><ul><ul><li>May be a set, a multiset, or a sequence </li></ul></ul>
  • 5. Data Model– primary (3) <ul><li>OID references </li></ul><ul><ul><li>Single OIDs </li></ul></ul><ul><ul><li>Set of OIDs </li></ul></ul>
  • 6. Data Model - secondary <ul><li>Free-floating functions </li></ul><ul><ul><li>These do not belong to any particular class, as such are not inherited </li></ul></ul><ul><ul><li>Built-in functions, user-definable functions, stored procedures </li></ul></ul><ul><li>Inheritance hierarchy of a classes as domain </li></ul><ul><ul><li>Set-inclusion semantics associated with an inheritance hierarchy </li></ul></ul><ul><ul><li>One of the fundamentals of the OO paradigm </li></ul></ul><ul><li>Class attribute, class method </li></ul><ul><ul><li>Example: aggregate properties of all instances of a class (e.g. average weight of all Automobile instances) </li></ul></ul><ul><ul><li>Meta-class, meta-meta-class, … </li></ul></ul>
  • 7. Query Language – primary (1) <ul><li>An ORDB must support an SQL-like and its API (function calls) </li></ul><ul><li>SQL-92 support </li></ul><ul><ul><li>Entry level </li></ul></ul><ul><ul><li>Advance level </li></ul></ul><ul><li>Query involving nested objects </li></ul><ul><ul><li>A query construct known as “path expression” is necessary </li></ul></ul><ul><li>Query involving set-valued attributes </li></ul><ul><li>Query involving methods/functions in search predicates </li></ul><ul><li>Query involving an ADT </li></ul>
  • 8. Query Language – primary (2) <ul><li>Views </li></ul><ul><ul><li>A view is a subset of a database that satisfies user-defined query conditions </li></ul></ul><ul><ul><li>Full RDB views </li></ul></ul><ul><li>Oid-based fetch </li></ul><ul><ul><li>Access objects by OIDs </li></ul></ul><ul><ul><li>An capability to successively “fetch next” objects </li></ul></ul>
  • 9. Query Language – secondary <ul><li>Query involving an inheritance hierarchy </li></ul><ul><ul><li>All instances of a class or all instances of an inheritance hierarchy rooted at that class </li></ul></ul><ul><li>Views </li></ul><ul><ul><li>An ORDB should not allow a view in the inheritance hierarchy of classes </li></ul></ul><ul><ul><li>Inheritance hierarchy of views </li></ul></ul><ul><ul><ul><li>The user should construct an inheritance hierarchy of views, separate from an inheritance hierarchy of classes </li></ul></ul></ul><ul><ul><li>View reference as domain of an attribute </li></ul></ul>
  • 10. Computational Model <ul><li>Workspace memory control </li></ul><ul><ul><li>Lock caching </li></ul></ul><ul><ul><li>Automatic garbage collection </li></ul></ul><ul><ul><li>Object swapping </li></ul></ul><ul><ul><li>Query processing involving updated objects in the workspace </li></ul></ul><ul><ul><li>Support for dynamic schema changes on objects in the workspace </li></ul></ul><ul><li>Pointer swizzling </li></ul><ul><ul><li>Conversion of the storage format of objects between the database format and the memory format </li></ul></ul><ul><li>An ORDB should support both facilities </li></ul>
  • 11. Database Tools (1) <ul><li>Important object modeling capabilities include set-valued attributes, ADTs, nested objects </li></ul><ul><li>Pre-compiler for OO SQL </li></ul><ul><li>Database administration tool </li></ul><ul><ul><li>Full RDB tool capabilities </li></ul></ul><ul><li>Query generator/result viewer </li></ul><ul><ul><li>Full RDB tool capabilities </li></ul></ul><ul><ul><li>Generating and viewing OO queries </li></ul></ul>
  • 12. Database Tools (2) <ul><li>Schema designer/editor </li></ul><ul><ul><li>Full RDB tool capabilities </li></ul></ul><ul><ul><li>OO extensions (class as domain of an attribute, inheritance hierarchy of classes, methods, free-floating user-definable functions, set-valued attributes) </li></ul></ul><ul><li>GUI application development tool </li></ul><ul><ul><li>Full RDB tool capabilities </li></ul></ul><ul><ul><li>OO extensions (set-valued attributes, OID references) </li></ul></ul>
  • 13. Performance - primary <ul><li>It must be comparable (within 20%) to that of a major RDB in executing pure relational operations against a pure RDB </li></ul><ul><li>It must be comparable (within 20%) to that of an OODB in executing OID-based navigational access in a database and in executing pointer-based navigational access in memory </li></ul><ul><li>It must be satisfactory to the users in performing database access involving object extensions to SQL (path expression, set, ADT, method, user functions, inheritance hierarchy) </li></ul>
  • 14. Mission-Critical Database Services – primary (1) <ul><li>Automatic query optimization and query processing </li></ul><ul><ul><li>Full optimization of RDB queries </li></ul></ul><ul><ul><li>Optimization of OO queries </li></ul></ul><ul><ul><ul><li>Query with path expressions </li></ul></ul></ul><ul><ul><ul><li>Query with retrieves set-valued attributes </li></ul></ul></ul><ul><ul><ul><li>Query with methods </li></ul></ul></ul><ul><ul><ul><li>Query with user-definable free-floating functions </li></ul></ul></ul><ul><ul><ul><li>Query that retrieves ADT-valued functions </li></ul></ul></ul><ul><ul><ul><li>Query that retrieves instances from an inheritance hierarchy of classes </li></ul></ul></ul>
  • 15. Mission-Critical Database Services – primary (2) <ul><li>Indexing (create index, drop index, multi-attribute index, concurrency control, recovery) </li></ul><ul><ul><li>Full RDB indexing </li></ul></ul><ul><ul><li>Indexing for OO queries </li></ul></ul><ul><ul><ul><li>Query with path expressions </li></ul></ul></ul><ul><ul><ul><li>Query that retrieves set-valued attributes </li></ul></ul></ul><ul><ul><ul><li>Query that retrieves ADT-valued attributes </li></ul></ul></ul><ul><ul><ul><li>Query that retrieves instances from an inheritance hierarchy of classes </li></ul></ul></ul><ul><li>Concurrency control </li></ul><ul><ul><li>Full RDB concurrency control </li></ul></ul><ul><ul><li>Object-level locking </li></ul></ul><ul><ul><li>Concurrency control for dynamic schema changes </li></ul></ul><ul><ul><li>Concurrency control for queries and updates involving an inheritance hierarchy of classes </li></ul></ul>
  • 16. Mission-Critical Database Services – primary (3) <ul><li>Authorization </li></ul><ul><ul><li>Full RDB authorization </li></ul></ul><ul><ul><li>Object-level authorization </li></ul></ul><ul><ul><li>Authorization on methods </li></ul></ul><ul><ul><li>Authorization on free-floating user-definable functions </li></ul></ul><ul><li>Triggers </li></ul><ul><ul><li>Full RDB triggers </li></ul></ul><ul><li>Stored procedures </li></ul>
  • 17. Mission-Critical Database Services – primary (4) <ul><li>Dynamic schema evolution </li></ul><ul><ul><li>Full RDB schema changes </li></ul></ul><ul><ul><li>Add/drop methods to a class </li></ul></ul><ul><ul><li>Add/drop a superclass to a class </li></ul></ul><ul><ul><li>Add/drop class methods </li></ul></ul><ul><ul><li>Add/drop class attributes </li></ul></ul>
  • 18. Mission-Critical Database Services- secondary <ul><li>Security </li></ul><ul><ul><li>Full RDB security </li></ul></ul><ul><ul><li>Security on OO extensions </li></ul></ul><ul><ul><ul><li>Methods and free-floating user-definable functions </li></ul></ul></ul><ul><ul><ul><li>Inheritance hierarchy of classes </li></ul></ul></ul><ul><ul><ul><li>OID access </li></ul></ul></ul><ul><ul><ul><li>Workspace object access </li></ul></ul></ul><ul><ul><ul><li>Set-valued attribute access </li></ul></ul></ul><ul><ul><ul><li>ADT-valued attribute access </li></ul></ul></ul><ul><li>Replicate service </li></ul>
  • 19. Harnessing the Power <ul><li>Data type extensibility </li></ul><ul><ul><li>Function library for each specific non-alphanumeric type of data of interest to customers </li></ul></ul><ul><li>Data unification </li></ul><ul><ul><li>Automatic distributed query optimization and processing </li></ul></ul><ul><ul><li>Automatic distributed transaction processing </li></ul></ul><ul><ul><li>Facilities for homogenizing schema differences in local databases </li></ul></ul><ul><ul><li>Gateway for local database systems </li></ul></ul>
  • 20. Discussion <ul><li>Now what do you think about his view? </li></ul>

×