This approach brings down the costs involved, the chances of delay in product release and the gives the user an option to update their requirements in successive iterative steps (Jacobson & Rumbaugh 1999, pp. 3-13).
Oracle and Microsoft SQL Server are among the most widely used databases with a large range of features with regards to their techniques of development and deployment. Both the Oracle 10g and SQL Server 2005 are equipped with a similar feature set with regards to how they aid in SOA (service Oriented Architecture) based application development. They vary in their simplicity of usage. SQL Server 2005 has its different features combined in the database server. Oracle has sections of its functionality distributed among its different products. The application server is not integrated with the database to the same extent as SQL Server. Most of its API's use Java-based services. Oracle does not have any of their editions offered for free as compared to SQL Server 2005 which has its Express edition available for free. Oracle Lite is the least expensive among all its editions but still not free. It does not offer any support for PL/SQL which is the main language for its database and is required to execute the procedures and triggers.
Blob (or Binary Large Object) data is a type of field which has the ability to contain a large quantity of data in each record. This can exist in either text or binary format. Using SQL Server to work on Blob data can have developers encounter with over 8k of data in one record. Many kinds of data types have been used to store blob data over the years. These have been static for a long time until the introduction of SQL Server 2005 where Microsoft came up with several new data types. In earlier versions of SQL Server, such as the 2000 and before, the only data types available were Image, Text and Ntext. The data type Text is meant to store blob data of the non-unicode type while Ntext is meant to store the Unicode type. The Image data type is used for the files in the binary format such as data in compressed form, images and general documents. These can be both in Unicode and non-unicode form. Varchar, Varbinary, NVarchar and Xml are some of the data types used for blob in SQL Server 2005. Most of these require the size of the maximum data which can be stored, to be specified. The maximum field size needs to be decided before blob data can be allocated to them. This can reach as high as 2 gigabytes for each record. This can be 2^31bytes in case the data is of binary or character type or 2^30 in case it is of Unicode type. The costs associated with the SQL Server blob storage can be lowered by using a kind of design known as tiered storage. This method allows the data which is regularly used to be saved on more expensive storage. The remaining inactive data can be saved on cheaper storage. Blob data is not used that frequently. Slower hard drives are utilized to create a Raid array. These Raid arrays developed from the cheaper hard drives are used for storing the second group of files. Considering the amount of data accumulated in the blob columns, tiered storage is the best option in terms of cost. In Tiered storage, the blob data is organized inside a file group created separately. This is done at the time of table creation with the help of the Textimage_On parameter. Each SQL Server table has its blob data stored discrete file group. If the blob data needs to be separated into more than one file, the table can be divided into 2 tables followed by assigning a file group to each.
Oracle has introduced features to support large objects as well. They help in dealing with files such as video, audio and pictures. In versions before Oracle 8, these kinds of media types were associated to Long Raw data types. However it had a several restrictions which made it easier for large object data to be stored outside the database and apply Oracle to link to those locations. Since the advent of Oracle 8, developers have had the option to choose from various new data types for large objects along with the related tools and techniques used to deal with them. Large object data types in oracle can be broadly classified into external and internal. The Binary large object or Blob, Character large object or Clob and the National character large object or Clob constitute the internal type. The external kind or Bfile can be defined as a locator which points to a file which exists outside. The internal data types can be saved in line with a limit of up to 4k bytes or externally up to 4 gigabytes (based on the size available).
Both Oracle 10g and SQL Server 2005 support the development of XML based applications. XML has come forth as an effective method of exchanging data with its applicability ranging over several applications. It is used in different areas of SOA and web services. These databases support XML based applications by storing XML-based documents for future updates and queries. Both SQL Server and Oracle have the option to authenticate XML documents according to an XML schema before being stored in the database. XQuery and Xpath can be used to query the XML documents which are saved.
Indexing is important to speed up the query processing. SQL server 2005 has the option of B*Tree indexing for the attributes of the XML field such as its paths and values. Apart from that, Path, Property and Value have their individual indexing options available. Oracle on the other hands has the option of text and functional indexing, none of which are directed towards XML. XQuery in its usual form has the option to obtain the XML content without caring about its updates in the database. Oracle uses two methods to face this issue. In a situation where the document is saved in the database as a text object, Oracle allows the complete document to be substituted by another one. Another approach causes the XML document to be broken down and saved in the database as an object-relational object so that traditional methods can be used to revise different sections of the XML document. Both have disadvantages as the former one does not work that well on larger documents where updates be carried out on all parts and the latter one need the developer to have an accurate understanding of how the XML document is related to the underlying objects. SQL server solves this issue by broadening the XQuery functionality by allowing functionalities for updating, adding and deleting values. SQL Server 2005 is capable of storing discrete XML documents in a single XML column. The SQL server XML schema collection confines the kinds of XML documents which can be stored in that column. Additional schema components can be attached onto the existing namespaces. Oracle lacks any equivalent feature. It has another schema where top level element needs to be changed to make room for the updated schema.
The SQL server 2005 and Oracle 10g can both serve as providers and consumers of web services. However some differences show up with regards to the .NET platform. Oracle needs another application known as the Oracle Application Server to act as a web service producer and consumer. This is available for purchase and not included in the Oracle package. This asks the users to devote extra time to learn how it works and lowers productivity. SQL server 2005 on the other hand does not need any such products. The web service functionality of Oracle 10g requires the users to be proficient in Java along with PL/SQL. These functionalities are not combined with Visual studio but instead require the use of the JDeveloper IDE provided by Oracle.
Asynchronous communication linking distributed segments of a program is an essential constituent of SOA based applications. Both SQL server 2005 and Oracle 10 g offer the basic functionalities in this regard. SQL server allows a greater abstraction by making the use of Service Broker easier for developers. Oracle on the other hand uses its advanced queuing method has API's which use enqueue and dequeue based on the Java Messaging Service interface.
SQL server 2005 allows developers to create applications which notify users about events and updates. It can be produced and delivered to the user every time the event associated to it occurs or in a scheduled format decided by the user. There is no exact equivalent feature available in Oracle. It can be organized when multiple technologies such as job scheduling, advanced queuing, triggering and its application server are brought together.
SQL server 2005 allows its queries to be equipped with the notification support system. Every time a command is…