Content deleted Content added
Reverted good faith edit(s) by 92.62.114.146 using STiki |
RProgrammer (talk | contribs) Re-wrote Characteristics section to use better English, provide more clarity in explanations, have a more logical ordering, and be more respectful of dynamic and diverse systems. |
||
Line 78:
The efficiency of such a database is also greatly improved in areas which demand massive amounts of data about one item. For example, a banking institution could get the user's account information and provide them efficiently with extensive information such as transactions, account information entries etc. The [[Big O Notation]] for such a database paradigm drops from O(n) to O(1), greatly increasing efficiency in these specific cases.
==ODBMS
{{cleanup section|date=October 2011}}
Object database systems commonly possess these characteristics, a certain subset of which are mandatory for being considered an "object database".
=== Mandatory ===▼
* '''Encapsulation''': Encapsulation has two views: programming language view and the database adaptation of that view. Encapsulation is the representation of the data object by its attributes and the various methods specified to manipulate those data objects. In this, the operations performed on the data objects are visible but the data and the implementation are hidden in those objects.▼
These are features which are common to many ODBMS's and are considered central to their respective implementing systems.
* '''Types and Classes''': '''Type''' refers to the particular set of Objects in the system, which has two parts,interface and the implementations. Generally interfaces are visible to the user and the implementations are hidden. '''Class''' is a template for creating the objects of a particular types having their own implementations. The new objects can be created by performing ''new '' operation on the class.▼
* '''Inheritance''': Inheritance is the most important feature of the object database as it gives the hierarchical relationships between different objects at different levels and gives code reusability. It helps in factoring and out shared the implementations and specifications in system. There are different types of inheritance like substitution inheritance, constraint inheritance, inclusion inheritance and specialization inheritance.▼
* '''Persistence''': Like any database, it must have the ability to insure the data's survival between sessions, after shutdown and subsequent restart of the server software/hardware.
* '''Complex Objects''': Complex objects are built by using the basic data objects like integers, strings, reals, and booleans. There are various complex data objects such as array, list, indices, tuples, etc. We can define methods to manipulate these new complex types.▼
* '''Object Identity''': It is important that each object is uniquely identified
▲* '''Encapsulation''': Encapsulation
* '''Extensibility''': Database system has its own predefined set of data types, which we can use to write new types and there is no usage difference between the one which system has and the one we written, but there may be strong difference in the way two are supported.▼
* '''Computational completeness''': This property says that we can define or implement any kind of computable function for the ODB, using DML of database system. Computational complete system almost gives all the operation implementation.
▲* '''Complex Objects''': Complex objects are built by using the basic data objects like integers, strings, reals, and booleans. There are various complex data objects such as array, list, indices, tuples, etc. We can define methods to manipulate these new complex types.
* '''Secondary storage management''': The data in system is managed, so as to get the quick and easier access. It is supported using different techniques, including data clustering, indexing, query optimization, data buffering and access path selection. These all are invisible to user. It has two levels of management: logical and physical.▼
▲* '''Extensibility''':
▲* '''Types and Classes''': '''Type''' refers to the particular set of Objects in the system, which has two parts, the interface and the
* '''Recovery''': This feature also provides same level of service and should recover itself to original state if system suffers from the hardware or software failures.<ref>K.R. Dittrich, ``Object-Oriented Database System : The Notions and the issues'', in : Dittrich, K.R. and Dayal, U. (eds): Proceedings of the 1986 International Workshop on Object-Oriented Database Systems, IEEE Computer Science Press</ref><ref>K. R. Dittrich, ``Preface'', In : Dittrich, K.R. (ed): Advances in Object-Oriented Database Systems, Lecture Notes in Computer Science, Vol, 334, Springer-Verlag, 1988</ref><ref>W. Kim, ``A foundation for object-oriented databases'', MCC Technical Report, 1988</ref>▼
▲* '''Inheritance''': Inheritance is often considered one of the most important
* '''Overriding and overloading''': The intentional use of the same name for multiple implementations of an object's method or operation to represent the same data in different ways, for conciseness when multiple similar operations are involved, and/or to alter the implementation of an inherited method to make it more suitable for the narrower definition of the object's data.
▲* '''Secondary storage management''':
=== Optional ===▼
* '''Transactions and Concurrency''': Modifications should be grouped into logical 'transactions' both for concurrency and rollback. Concurrency: multiple simultaneous accesses to the database which don't conflict with each other should be able to actually execute simultaneously (to some degree). Rollback: if, during the transaction, the application decides to cancel the transaction, the system should be able to logically 'undo' any modifications already made during it. Another provision commonly granted by transactions is atomicity--the insurance that if not all of the modifications in the transaction are completed, none of them will be (by effectively rolling back the partial transaction).
▲* '''Recovery''':
* Type checking and inferencing▼
This category includes ancillary features which can be added to give the object database greater functionality and applicability.
* Distribution
* Design transactions
* Versioning of data (objects)
===
This category deals with implementation issues and holistic system issues.
* System
* Programming paradigm
* Representation system
* Uniformity
==Standards==
|