The object/relational DBMS in nowadays market provided by several vendors such as Oracle, IBM, Microsoft or even Open-Source DBMS. In this presentation would provide a brief report of comparison of Oracle against other O/R DBMS product. So, PostgreSQL and Db40 were chosen. In order to compare three majority of ORDBMS, three criteria would be involved which are including 1. Usability 2. Performance 3. Security
Usability in context of Object/Relational Database Management System could have fours attributed which are Ease of Installation, Features, Documentation, and Support. Ease of InstallationWhen installing Oracle in the system that take large amount of time to finish and many processes would be involved such as creating instance, setup port.PostgreSQL is easy to install as we can see on its documents. It is not complicated like Oracle and doesn’t need administrative rights to install. Additionally, new version of PostgreSQL can be installed on Windows easily without using CywinDb4o performs as a library for Java or .Net, it can be put into a project directory and make a dynamic link to it as other APIs.Feature- Oracle support all relational features and object-relational features such as User Define Type, Collection Type, Reference type and Inheritance etc. However, Oracle not allows to used object-relational features in triggers such as reference type.sPostgreSQL calls itself as advanced open source object-relational database system and they also supports relational features such as joins, views or even triggers and stored procedures As we know that Db4o is a embeded database. So, they supports O/R features that can be used in Java or .NET platform.
Documentation is an important key in context of usability of ORDBMS- Oracle is a commercial product that cost very expensive. So, Oracle provides documents for every features in their on website and books. Oracle is widely used so, they will also have many documents made up by third party as we can see from several website.PostgreSQL is an open source product but it still provide very good and very complete documentations. In other hand, they have few documents that made up by third party website. This is an only way to get know PostgreSQL is to go to it’s website directly. Db4o is not widely used in they have only 1 book in the market, which published in 2006, and have only document on its website that may not enough to do something advance. That is a problem of using Open Source product.SupportThis only way to get support from Oracle is to buy their support. However, in internet, they have many website, forum, mailling-list, IRC which people talking about problems and the ways to solve problems. PostgreSQL is a huge open source DBMS and users can manage to support themselves by using mailling-list, IRC. In addition, there are many companies across the word are providing PostgreSQL support. Db40 is driven by community. They have forums that users can go and ask questions. In they forums, they classify type of sub forums and languages. They also provide a commerical support from a company that working behind Db40
Performance is an importance when developing a database application- Query Optimisation Oracle provides its optimiser which having four components which are SQL transformations, Execution plan selection, Cost model and statistics and Dynamic runtime optimizationSQL transformations , Oracle will transforms SQL statement during optimization into a semantically equivalent SQL Statement that makes the statement more efficiently Execution plan selection, the optimiser will consider and choose the best SQL statement for each plan of each statement.Cost model and statistics, in order to do execution plan the optimiser will calculate possible cost estimate about resources such as I/O, CPU.Dynamic runtime optimisation. The goal of this component is complete optimal performance on query. PostgreSQL provides Genetic Query Optimization that using genetic algorithm that perform on query plans which uses the standard planner code to manipulate plans for in each relations Db40 provide SODA query API that allows to write statement that having direct access to nodes of query graphs that provide maximum querying performance IndexThey all support several indexing schemes but in Db40 the only scheme that can be found on the document is index field and it is very limited.
The security section have four characteristics that should be considered to compare ORDBMS which including User Management, Access Control, Encryption and Maintaining User Management The user management concept of Oracle and PostgreSQL are slightly similar to each other in user management. They classify users into specific group and also can assign specific list of roles similar to UNIX In Db4o, I have not found the information about user management so I assumed that the user management would manage by application which written in Java or .NET) Access Control Oracle and PostgreSQL again are slightly similar to each other. They can specific multi-levels security such as table, row, column and functions. So, Db4o has not provided information about Access Control, however, for example, by developing Java Application they have several security frameworks that enables to access control in level of code.
Encryption is another important security feature that every DBMS should have.Oracle provides several encryption types and this an example of encryption type in Oracle. Transparent data encryption is to encrypt data byusing AES with up to 256 bits, or 3DES168 at column level or the table space transparently. Backup encryption is to encrypt data when your backup the data. Encryption For Data In Transit is a solution that to encrypt all data from Oracle Database that send over the network with using SSL/TLS- PostgreSQL offers encryption level in this example are Password Storage, Specific column, as similar as Oracle, although, they might be implemented in a different techniqueDb4o provides two encryption schemes which is Build-In Simple Encryption and provides ability to plug customer encryption as well as Custom Encryption Adapter
In context of security, the monitoring should be involved by morning the activity Oracle Audit Vault allows DBA monitoring, collect audit, transform data into a security for detecting unauthorised activity on database. And now in Oracle11g supports Microsoft SQL Server ,IBM DB2 UDB ,Sybase ASE to use signle mornitoringPostgreSQL offer a tools called Statistic collector which have ability for retrieving all information of server activity. PostgreSQL also uses standard UNIX tools to view the process. Another useful tool is to view data in table pg_locks.Db4o has not monitoring tools to monitor a key of security but for embedded database, the tools may not need because the security should be concerned in level of application.
All object/relational DBMSOracle is suit for a company that can afford the price and have to use a complex database and contain load of data. Oracle provide full range of support including documentation, configuration, or training PostgreSQL would be another choice which provide very good features and many big companies such as Tsutaya which is video rental chain that uses PostgreSQL for storing billion-record-plus business information database. So, we ensure that PostgreSQL is able to support large amount of dataFor Db4o should be treat as embedded database because it is small, flexible. It’s not yet supporting scalability so, they’re not suite for using in applications that storing load of data.
ORDBMS Comparative Report
Object-relational database management system comparisons<br />ErawatChamanont<br />Postgraduate Software Engineering Student<br />University of Sunderland<br />firstname.lastname@example.org<br />
Object/Relational DBMS<br />Major Object Database Vendors<br />Oracle<br />PostgreSQL<br />Db4o<br />The comparison will take three criteria which following:<br />Usability<br />Performance<br />Security<br />
Usability<br />Ease of Installation<br />Oracle – takes amount of time to install<br />PostgreSQL – easy and quick according to its documentation, no admin right required<br />Db4o - just place in a library part of a application as API library <br />Features<br />Oracle – full supports relational and object-relational features<br />PostgreSQL – full supports for foreign keys, joins, views, triggers, and stored procedures and objects<br />Db4o – .NET and Java, client centric, support O/R features<br />
Usability Cont.<br />Documentation<br />Oracle – provides fully documentations in different levels of users e.g. DBA, Developer, or End-User<br />PostgreSQL – provides clear and complete documentations<br />Db4o – less documentation and example compared to Oracle and PostgreSQL<br />Support<br />Oracle – provides commercial support<br />PostgresSQL – mailing-list, IRC and commercial support from external companies<br />Db4o – forum driven by community and commercial support<br />
Performance<br />Query Optimisation<br />Oracle –provides Oracle’s optimiser. <br />PostgeSQL – provides Genetic Query Optimization <br />Db40 – provides SODA query API which db4o's low level querying API<br />Index<br />Oracle – supports several indexing schemes e.g. B-tree, B-tree cluster, Bitmap indexes<br />PostgeSQL – support B-Tree, R-tree, Hash, and GiST<br />Db4o – Provides index fields<br />
Security<br />User Management<br />Oracle – privileged user control <br />PostgreSQL – using the concept of roles<br />Db40 – application manage (Java or .NET)<br />Access Control<br />Oracle – multi-levels security, row and column level security , based on classification, user privilege control<br />PostgresSQL – access privilege, multi-level security e.g. table, column, function<br />Db4o - code access permission (Java or .NET)<br />
Security Cont.<br />Encryption<br />Oracle – Transparent data encryption, Backup encryption, Encryption For Data In Transit <br />PostgreSQL - offers encryption at several levels e.g. Password Storage, Specific columns, Data Across a Network<br />Db4o - Built-In Simple Encryption, Custom Encryption Adapters<br />
Security Cont.<br />Monitoring<br />Oracle – Provides Oracle Audit Vault to monitor user activities<br />PostgreSQL – Provides statistics collector, able to use Standard Unix Tools, Viewing Locks table<br />Db40 – No monitoring tools for security.<br />
Summary <br />Oracle<br />Suitable for big companies that can afford the price. Oracle provide good resource and support for their client and database engine is support large and load of information<br />PostgreSQL<br />It is an powerful open source DBMS product which provides features including relational and object/relational and it suites for any size of company.<br />Db4o<br />Suitable for specific applications not for using in applications then storing load of data. <br />
References <br />Falsken E (2009) db4o Reference Documentation - http://developer.db4o.com/documentation/reference/db4o-7.12/java/reference/ (accessed 3 June 2010)<br />Oracle (undefined) Oracle Advanced Security, http://www.oracle.com/technology/deploy/security/database-security/advanced-security/index.html (accessed 3 June 2010)<br />Undefined (2009) PostgreSQL 8.4.4 Documentation - http://www.postgresql.org/docs/8.4/interactive/index.html<br />Oracle (2009)Cost Effective Security and Compliance with Oracle Database 11g Release 2, http://www.oracle.com/technology/deploy/security/database-security/pdf/owp-security-database-11gr2.pdf (accessed 3 June 2010)<br />Undefined (2008) Oracle® Database Object-Relational Developer's Guide11g Release 1 (11.1) [internet] available at: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28371/adobjint.htm#CHDCHDHB (accessed 1 June 2010) <br />