Forum Topics OMG Roundtable Dec. 11, 2007
Background Forum is part of the ODBMS.ORG Moderated by Dr. Roberto Zicari Started on 10/16/07 (last post 12/8/07) Great place to discuss and post issues:
Main Topics Discussed Query Language/ Object Store API –Requirements/scope of the QL/API? –Adoption; other options related issues –How to define semantics? –Required optimizations? How to express their semantics? Other DB Essential Facilities –Threading, Triggers, Views –Client/Server, ACID, Replication, Synchronization of clients Object Store Model –Do we need a model? –What are the goals/scope of this effort/model? –Specific requirements for model?
Object Store QL/API Requirements Easy to adopt –Programming Language integrated (NQ) e.g. Java, Ruby, LINQ –Existing: JDO, JPA, HQL, EJB, current vendors QLs, de-facto Expressive power 1.Ability to do: insert, delete, update (or retrieve+modify) 2.Ability to support collections of different types ( lang. / user defined) 3.Strong type-checking/ Type safe 4.Support transactions 5.Integration with PL control structures, e.g. loops, if_then) 6.Integration with PL abstractions, e.g. procedures, methods, modules 7.Expressive of DB abstractions, e.g. triggers, updatable views, Integrity constraints 8.As expressive as SQL and more i.e. able to express UML diagrams; e.g. associations, collections
Object Store QL/API Requirement (continued) Expressive power (continues) 9.DB Schema language that corresponds to UML 10.Query optimizations (with semantics), e.g. indexing, activation 11.Bindings to prominent OO PLs 12.Need to be “complete” (define!) How to define semantics? –We need to clearly define semantics for the QL/API –One way: based on a model –Any other way? based on sets of “compliance tests” ? Reference implementations Define in Phases? What’s in phase1? –Dr. Subieta says 1-8 of above requirements
Object Store API Optimizations Requirements –Indexing, –Transparent Persistence (activation/store) –Caching, Pipelining –Handling large collections –Aggregates sum, avg., there exists, min, max, etc. –Adapt to different storage technologies –Optimize existing PLs Define Behavior. How?
Other DB Essential Facilities Concurrent Access and Client/Server support Multi-threading Client/Server protocol Concurrency Control Rollbacks Integrity (in face of failures) Replication between databases Synchronization of clients Interoperability facilities (translation to/from relational dbs and XML repositories) Administration (de-fragmentation, meta info, etc.)
Object Store Model Do we need a model? –Mike Card: it’s one of the major criticism of OODBs –Dr. Subieta: needed to define semantics, consistency –Can we do with “compliance tests” instead? What are the goals/scope of this effort/model? –Support a strong, consistent QL/API –Define operational semantics for the API –Define expected behavior for optimization, facilities
Summary What’s the strength of Object Database? How are they used? What do customers need from them? How is it different than Relational DBs? Do we need to compare with SQL? Schemas? UML? Requirements for QL – more? drop some? Defining semantics – besides a model is there another way? Programming Language Integrated QL/API or not? A theoretical model needed or not? What’s its purpose? Different model? Why? Other optimization areas? How do we define expected behavior? Additional Facilities? Do it in 1 phase or more? How do we increase probability of adoption? –Approaches? –Mechanisms? –What are the inhibitors?