Database Management Systems: Review in the context of GIS Applications
This move was realized by Microsoft, which was the first to include features for data warehousing and data analysis (also called online analytical processing, or OLAP) into its database, starting with SQL Server 7.0. Oracle and IBM later did the same.The latest innovation—offered in Oracle9i—is integrated data mining, which helps business people do advanced data analysis.
Oracle Database
Oracle’s family of industry-leading database, networking and gateway products enable corporations to access any data, on any server, over any network, from any client device.
The Oracle Database has been designed for the emerging hosted application market on the internet. With transparent, rapid-growth clustering capabilities, powerful and cost effective security measures, zero-data-loss safeguards and real-time intelligence, Oracle DB is a complete and simple software infrastructure for the internet’s next generation.
The Oracle9i Database Server was designed to consolidate data or Internet Content from many specialized data sources. Through a comprehensive data extensibility architecture, the Oracle Database provides facilities to efficiently store, manage, index, search and access large volumes of:
Structured Data modelled either as Relational structures or Object-relational structures (object types and collections) including those with inheritance.
Data in Large Objects (LOBs) which can be either BLOBs, CLOBs, NCLOBs, or BFILEs. Multimedia Data consisting of Text, Image, Audio, Video, or Spatial data.
Files through the Internet File System which allows any file to be stored and managed in the Oracle Database; and XML Data through support of the new XMLType which allows both structured and unstructured XML Data and Documents to be stored, managed, and accessed efficiently.
Specialized Data consisting of e-mail, Unified Messaging, Enterprise Messaging, and LDAP Directory Data.
In addition, these different kinds of data are simply treated as different datatypes within the Oracle Database and, as a result, it is very easy to combine these different types of data within a single SQL query expression or an application.
Besides, the Oracle9i is an object-relational database and it provides the most complete solution for addressing the object functionality needs of the mainstream business market.
It enables the management of complex Java or multimedia data in developing applications for the Internet.
It provides support for the graph- or tree-structured C++ and Java data encountered in vertical industry applications, such as in telecommunications, energy, and finance.
It facilitates flexible, maintainable code for traditional database applications.
It enables the database to be customized for specific application domains.
Combining these capabilities in a single data store, which is also the industry’s highest performing, most robust and scalable deployment platform, the Oracle9i object-relational technology defines the next generation of databases.
Databases have four fundamental requirements:
Modelling Business Processes Better
Businesses constantly search for ways to manage the complexity of modelling their complicated and constantly changing processes. The model must be flexible and capable of supporting complexity. Applications need to be able to treat these business abstractions in the same way across all tiers of a IT infrastructure, as complete entities, whether they reside in the database or manipulated outside of it.
This requires the database to:
Allow the native representation of complex business objects in the database.
Provide ways to query over these objects.
Provide mechanisms for the database to seamlessly map the stored business objects to client-side applications or mid-tier servers.
Allow access to business objects from multiple languages and interfaces.
Integrating All Data in a Single Store
Early information systems dealt with simple, structured data. Gradually, the ability to model the real world better has led to a progressive growth of data-complexity in such systems. It has become clear that the prevailing technologies are no longer universally adequate to handle the complex, content-rich data that applications demand. In industry, the answer has been to use the basic constructs of object technology to rapidly standardize on complex data models.
The Internet has brought a new infrastructure over which rich, multimedia information can be easily exchanged. Users demand a richer semantic from applications. People want to deal with images and HTML, not characters and lines. As businesses rise to exploit the Web, they are looking for new ways to combine rich, unstructured multimedia information with their business information. Finally, a number of new initiatives, such as a standard Extensible Markup Language (XML), are being pursued in the World Wide Web Consortium. These bring yet another kind of data into play – semi structured data whose format is not known a priori, but deduced from the data itself. To facilitate all these applications, the database must provide a single store where customers can store and query on all the various kinds of data they use to compose their business objects. These objects include structured data (simple or complex), unstructured rich multimedia data, as well as the semi-structured data arising from XML, or other interchange formats.
Leveraging The Web
In order that databases continue to seamlessly serve thousands of intranet/internet users, it is imperative that there be native support in the database for Web technologies. The database must provide support for Java, and Java objects must be seamlessly represented in the database. There must be support for storing retrieving data in popular Web formats such as HTML and XML.
Exploiting Extensible, Component-Based Architectures
Corporate intranets and the public Internet are rapidly becoming the deployment environments for many mission-critical applications. Spurred by the escalating cost of building systems from scratch, and the simultaneous proliferation of public component-based standards, such as Enterprise JavaBeans (EJBs) and the Common Object Request Broker Architecture (CORBA), corporations now find it feasible to build applications by assembling prefabricated components. Component technology rests on the notion of reusable objects, and it is imperative that all the tiers of an enterprise architecture leverage the advantages of object technology. The database infrastructure must allow the plugging-in of modular components, to easily extend itself to new requirements and new data.
Using New Technology to Evolve Existing Applications
To protect and leverage customers’ existing investments in technology, their existing relational databases must be enriched with object technology. In evolving their relational databases, customers must be provided with a smooth evolutionary path that meets three requirements:
It must allow users to leverage their knowledge of existing products.
It must provide predictable performance, scalability, reliability, and manageability.
It must conform to open industry standards.
Oracle9i’s ‘objects and extensibility’ technology meets all these new requirements on databases. Let us look more closely at Oracle’s approach.
Defining Oracle’s Approach
The object-relational technology in 9i has five basic design guidelines. It has to be:
- Evolutionary
- Integrated
- Pragmatic
- Open
- Comprehensive
Evolutionary
With Oracle9i, Oracle is bringing the next generation of relational database technology to the mainstream market, by providing users the ability to define and store business objects in the database, and by extending support for rich, multimedia datatypes. Oracle9i integrates object data and relational data, allowing customers to treat object data as relations and also relational data as objects. For example, Oracle allows users to use SQL to access objects and to use object views to compose objects from relational data. New features designed for use with objects, such as fully updatable views, can be used with relational tables. Oracle9i does not require users to migrate any of their existing Oracle7 applications. This creates a smooth evolutionary path that allows object types and relational tables to coexist in the same database, and existing Oracle7 applications and tools to coexist with Oracle9i applications. It leverages existing investments in four important ways:
It integrates relational data with objects in the same data store.
It exploits proven Oracle technology to provide customers with a robust, scalable deployment platform.
It allows customers to use their huge base of existing applications, without needing to migrate them.
It leverages customers’ knowledge of existing application development products and tools.
Integrated
Oracle has chosen to offer a tightly integrated object solution with Oracle9i. Object technology permeates the Oracle9i server and is not offered as a thin veneer on top of an existing relational database. Oracle9i is an integrated product in three important ways:
It has a single architecture for both objects and relational data.
The object technology is combined with the latest advances in functionality for data warehousing and OLTP, such as partitioning and parallel queries.
It has consistent, interchangeable interfaces for accessing both relational data and objects (such as SQL, the Oracle Call Interface, Pro*C, SQLJ, JDBC, Oracle Objects for OLE, and so on).
Pragmatic
Oracle has taken a pragmatic approach to delivering object functionality in the server. We deliver the needed functionality in phases, addressing the most important and clearly understood customer needs first, while giving customers sufficient time to absorb and effectively use the advances in the server. As a result, with Oracle9i, users can store business objects or multimedia data in the server, run Java objects in the server, and also easily extend the database for new kinds of data. In subsequent releases, we will carefully phase in features, such as inheritance. Our basic goal is to ensure operational viability and mission-critical readiness. To this end, we have eschewed an en masse addition of new features.
Open
Oracle continues its commitment to open standards with Oracle9i in a number of different areas:
SQL-99: SQL-99, the current internationally-accepted SQL Standard, replaces the Standard’s earlier version, SQL-92. Oracle took a leading role in moving the SQL-99 specification forward. We intend to comply with the SQL-99 specification. The object-relational technology in Oracle9i closely tracks the semantics of SQL-99.
JDBC, SQLJ: Oracle is providing a comprehensive suite of Java products with Oracle9i. Not only is there a new, standard Java Virtual Machine (JVM) in the database, we also provide standard JDBC that complies with the standard JDBC specification from Javasoft, at both the .binary and .class levels. SQLJ, a new technology that allows programmers to use their knowledge of SQL in Java programs, is a new ANSI standard.
CORBA: A CORBA-compliant ORB is provided in the database, as part of the Java infrastructure.
Comprehensive
In bringing object technology to the mainstream market, Oracle has adopted a comprehensive, company-wide effort for integrating the features in the Oracle9i server with application development products and tools. Various language interfaces (such as the SQL, PL/SQL™, Java (JDBC and SQLJ), the Oracle Precompilers™ and Oracle Objects for OLE™) all support objects. Oracle Designer™ and Oracle Developer™ provide tool-support for objects.
Oracle9i is functionally rich, containing a number of important technological advances, such as object types, object IDs, object views, an object cache, and Java in the database. These bring object technology to the mainstream market and are discussed in more detail in the next section.
Oracle 9i Solution
Having identified the kinds of business needs that Oracle aimed to solve and the strategy it adopted to solve them, this section follows with a description of the fundamental technical components of Oracle9i’s object functionality
Object Types
Oracle has extended SQL (DDL and DML), to allow users to define their own types (that represent their business objects), store them as base or native types within the database (either within a column of a table or as tables themselves), and query, insert, and update them. They can contain one business object inside of another, point from one business object to another (using a pointer called a REF), and access and manipulate collections or sets of these objects, using structures called VARRAYS and Nested Tables. Users can define operations on business objects as methods of the objects. Methods can be implemented as PL/SQL stored procedures. Objects have globally unique identifiers, called Object IDs, that capture references between objects. Oracle9i allows a user to treat object data relationally and relational data as objects. For example, users can use SQL to query on object data in the same way that they access relational data. Users can access an object (using SQL DML for the query), the object types attributes and methods, with extended path expressions (for example, object.attribute). They can also use SQL to perform explicit joins between objects in tables. In addition, Oracle9i lets users perform implicit joins between objects, by traversing or navigating the REF from one object to the other. Object types are indexable, using MAP or ORDER methods to convert them to scalar values, which can then be indexed.
Oracle9i’s object constructs have a close correspondence with the relational constructs with which Oracle’s customers are familiar. For example, a REF is very similar to a foreign key, methods are stored procedures (which can be written in Java, PL/SQL or C/C++), the security and transaction models that operates on object types are exactly the same that Oracle defined for relational tables.
The object type system essentially raises the level of abstraction with which database programs are written. Instead of dealing with NUMBERs, CHARs, and so on, programs can deal with application-domain constructs, such as Customer, Portfolio, or Money. This leads to many benefits, not the least of which is a better modelling of your business in the database.
Object Views
Object Views allow you to synthesize a business object from data that continues to be stored either in relational tables or as object types. Object Views provide an easy way to:
- Define objects you can use in your applications without migrating any relational data.
- Combine objects developed for one application in different ways, for use with other applications. Objects in an object view have much of the functionality that those in object tables have. They can have methods, be part of collections, point to one another, have object identity, and be accessed from SQL or via pointer traversal. Further, Oracle has extended the view mechanism, to use special INSTEAD OF triggers to provide fully updatable views. Oracle is the only vendor that provides an object view mechanism.
Java Support
Oracle offers a complete solution to develop and deploy enterprise, business critical applications in Java. To enable this, Oracle offers three sets of Java products:
An enterprise-class Java server platform for running Java applications: Oracle9i and the Oracle Application Server (OAS).
Industry-standard programming interfaces (APIs) to:
- Develop enterprise applications in Java: Java stored procedures, Enterprise JavaBeans, CORBA Services, and Java Servlets.
- Access databases from Java applications: JDBC and SQLJ (embedded SQL in Java).
A productive Java development tool that is integrated with the server platform, making it easy to develop enterprise Java applications: JDeveloper.
Oracle9i’s Java VM was specifically designed to provide unmatched performance, scalability, availability, portability, and manageability. The Java VM complies 100% with JavaSoft’s JDK specification. It is JDK 1.1-compliant and can run any standard Java program.
Java components, such as EJBs, can be stored inside the database.
Large Objects
Application developers who use object types and collections to store their structured business object data in Oracle9i also want to store rich, multimedia data as text, graphic images, still video clips, full motion video, and sound waveforms in the Oracle database. The Large Object (LOB) data types store blocks of such rich and unstructured multimedia data in the Oracle database. Oracle9i supports two types of LOB:
Those that are stored in the database, either in-line or in a separate tablespace (such as BLOB, CLOB, and NCLOB).
Those types of LOB that are stored as operating system files (such as BFILEs). Oracle9i’s support for LOB data types improves upon the support for LONG and LONG RAWs in Oracle7 in several ways
LOB Capacity: With Oracle9i, LOBs can store up to 4GB of data. This doubles the 2GB of data that LONG and LONG RAW data types could store.
Number of LOB columns per table: An Oracle9i table can have multiple LOB columns. Each of these LOB columns in the same table can be of a different type. Oracle7 Release 7.3 tables are limited to a single LONG or LONG RAW column.
Random piece-wise access: LOBs support random access to data, but LONGs support only sequential access. Further, to improve the speed with which a LOB can be brought from the server-side to the client, the LOB can be broken into chunks that can then be brought in a single round trip back to the client. LOB types store values, called locators, that specify the location of large objects stored out-of-line or in an external file. Database columns of type BLOB, CLOB, NCLOB, or BFILE store only the locators. BLOB, CLOB, and NCLOB data is stored out-of-line inside the database. BFILE data is stored in operating system files outside the database. Oracle9i provides programmatic interfaces and PL/SQL support for access to and operations on LOBs.
Intermedia
While LOBs provide the infrastructure within the database to store multimedia data, Oracle9i also provides developers with additional functionality for the most commonly used multimedia types. The multimedia types include text, image, locator, and audio/video data.
Oracle9i introduces the interMedia bundle, a collection of specialized data types. Text data, spatial location, images, audio, and video data are all supported. Users can use efficient SQL queries to access objects of the type, manipulate its contents (trim an image), read and write its contents, and convert the data from one format to another. In turn, the specialized data types use Oracle9i’s infrastructure to define the object types, methods, and LOBs necessary for representing these specialized types of data in the database.
Rather than require each development team to define their own sets of objects to represent the most common types of multimedia data, Oracle9i’s specialized data types provide a predefined set of objects and operations. This facilitates application development with these types. The Text specialized data type (interMedia Text) is used in Web search engines, document repositories, and online help systems. The Spatial specialized data type can be used in route planning and asset management applications. Video data is used in online training, video documentation, and sophisticated Web applications.
Application Development Interfaces And Tools
Oracle9i provides a robust infrastructure to facilitate application development and a broad set of application development products (languages, programmatic interfaces, and tools).
With Oracle9i, SQL, PL/SQL, Java (JDBC and SQLJ), the Oracle Precompilers, and Oracle Objects for OLE can all be used to program, using the object-relational constructs. We provide two utilities (the Object Type Translator and JPublisher) for creating language bindings between objects in the database and applications, and for automatically marshalling the data between the application and data store. Oracle also provides an object cache into which objects can be fetched from the server, operated on as entities, and flushed back to the server while minimizing network traffic.
The Oracle Extensibility Oracle Architecture
Oracle9i gives application developers control over user-defined data types, not only enabling the capture of domain logic and processes associated with the data, but also enabling customization of the manner in which the server stores, retrieves, or interprets this data. The Oracle9i database contains a series of database extensibility services, which enable the packaging and integration of domain types and behaviour into server-based, managed components. Such components are called Specialized Data Types.
Specialized Data Types are the mechanisms that extend the capabilities of the Oracle9i. Specialized Data Types are a safe, solution-oriented means to package domain-specific data and behaviour, and integrate such packages with the server. For example, a spatial specialized data types may provide comprehensive functionality for a geographic domain, such as being able to store spatial data, perform proximity/overlap comparisons on such data, and also integrate spatial data with the server, by providing the ability to index on such data. Specialized data types can have horizontal utility (such as imaging, time series, spatial data), or vertical focus (such as chemical structures, gene sequences or telephone networks). Oracle is building some of the horizontal specialized data types, such as ones for image, spatial, and text data (packaged as interMedia). At the same time, the specialized data type programming-interface is publicly available to Oracle’s partners and customers that are interested in building their own specialized data types.
Normally, the database provides a set of services — for example the basic storage service, a query processing service, services for indexing, query optimization, and so on. Applications use these services to avail themselves of database functionality.
The Oracle Extensibility Architecture makes these services customizable for specific application domains. When some aspect of a native service that the database provides is not adequate for specialized processing that a business requires, a specialized data type developer may provide a more specific implementation. For example, if a developer builds a Genomic Specialized Data Type for storing information on gene sequences, they may need the capability to create special indexes to query on genomes. Oracle9i allows the creation of such special indexes and directs the server to use these indexes when dealing with special queries.
Indexing is only one example of a service that can be customized. By allowing the database to be flexible enough to accommodate special processing as such processing becomes important to a business, Oracle9i can freely grow to accommodate all of its data needs.
Deployment Considerations – Performance And Scalability
With Oracle9i, Oracle has integrated object technology with a proven, robust, high performance, scalable deployment platform. Oracle9i continues to provide many advances that Oracle first brought to market and that customers have come to take for granted, such as scalable connectivity, read consistency, Oracle® Parallel Server (OPS), and views.
Oracle9i delivers many technological advances that ensures it continues to provide industry leading performance and scalability. Among these are Net8 Connection Manager, advances in the new OCI, and better internal memory management. Oracle has also integrated a number of features into Oracle9i, specifically to improve performance, security, and scalability when applications that use Oracle9i objects are deployed. In 9i, there has been a major initiative to address the operational completeness of object-relational technology, including support for export/import, loading, parallel query, partitioning, and so on.
Improved concurrency: Oracle9i provides object-level locking, permitting applications that use Oracle9i objects to support a large number of concurrent users.
Improved performance: Oracle9i provides a Complex Object Retrieval capability. This allows an application to fetch a complete graph of connected objects from the database to the application in a single round trip.
Guaranteed security: Oracle9i provides the same, proven security model with objects as it does for relational tables and stored procedures.
Oracle Spatial
Oracle Spatial is an integrated set of functions and procedures that enables spatial data to be stored, accessed, and analyzed quickly and efficiently in an Oracle9i database.
Spatial data represents the essential location characteristics of real or conceptual objects as those objects relate to the real or conceptual space in which they exist.
Oracle Spatial, often referred to as Spatial, provides a SQL schema and functions that facilitate the storage, retrieval, update, and query of collections of spatial features in an Oracle9i database. Spatial consists of the following components:
A schema (MDSYS) that prescribes the storage, syntax, and semantics of supported geometric data types
A Spatial Indexing Mechanism
A set of operators and functions for performing area-of-interest queries and spatial join queries
Administrative utilities
The spatial attribute of a spatial feature is the geometric representation of its shape in some coordinate space. This is referred to as its geometry.
Mobile Databases
The flourishing of mobile devices is driving businesses to deliver data to employees and customers wherever they may be. The potential of mobile gear with mobile data is enormous.
Mobile databases are often stripped-down versions of their server-based counterparts. They contain only basic SQL operations because of limited resources on the devices. In addition to storage requirements for data tables, the database engines require from 125K to 1MB, depending on how well the vendor was able to streamline its code.
Platform support is a key issue in choosing a mobile database: No organization wants to devote development and training resources to a platform that may become obsolete. Microsoft’s mobile database supports Win32 and Windows CE. The IBM, Oracle, and Sybase products support Linux, Palm OS, QNX Neutrino, Symbian EPOC, Windows CE, and Win32.
Mobile databases replicate data among themselves and with a central database. Replication involves examining a database source for changes due to recent transactions and propagating the changes asynchronously to other database targets. Replication must be asynchronous, because users don’t have constant connections to the central database.
Transaction-based replication, in which only complete transactions are replicated, is crucial for integrity across the databases: Replicating partial transactions would lead to chaos. Serial transaction replication is important to maintain the same order in each database. This process prevents inconsistencies among the databases. Another consideration in mobile database deployment is how conflicts over multiple updates to the same record will be resolved.
Though the market is still evolving, there’s already a sizeable choice of sturdy products that will extend your business’s data to mobile workers.
Oracle Lite
Oracle9i Lite provides infrastructure and application services that enables the delivery of secure and personalized applications using a broad range of mobile devices. Oracle9i Lite is an add-on to the Oracle9iAS and complements Oracle9iAS Wireless, providing a complete, integrated, therefore simple mobile e-business framework. Oracle9i Lite includes two major components:
Mobile Server: This middle tier infrastructure server acts like a gateway between the mobile devices (such as PDAs, cellular phones, automotive computers, as well as traditional laptops) and the e-business application services those devices need to access. Mobile Server provides the necessary functions required to support mobile, disconnected devices. The following major functional areas are provided as9i\F:
Data Synchronization – Enables mobile devices to operate applications “off-line”, and synchronize off-line activities with an Oracle database server when connectivity is re-established.
Application Distribution – Synchronization of corporate data requires that related applications be deployed on the mobile device. This service enables the IT department to centrally control and manage secure application and file distribution.
Software Distribution – Enables IT department the capability to manage and distribute runtime libraries or Mobile Client bundles. There are over 30 pre configured bundles ready with each installation of Mobile Server.
Application Provisioning – Enables administrator to centrally register and provision mobile, offline applications.
Mobile Persistency – A small relational database residing on the mobile device. Oracle Lite Database is a lightweight, Java enabled database designed for laptops, handheld computers, PDAs and smartphones.
User Management/Security – Provides the user and device authentication capabilities which enable a single, device independent user log-on, and pass-through of authentication information to any directory server such as Oracle Internet Directory or LDAP
Client Authentication/Encryption – Mobile Server and Mobile Client are designed to enable comprehensive end-to-end security
System Management – Provides a comprehensive set of management services including server status, activity log, remote site inspection, and remote job control
Reliability, Scalability – Mobile Server provides highly scalable caching functions. In addition, Mobile Server load-balances HTTP requests across multiple Mobile Server for better scalability and performance
Connectivity – Provides security-rich wired and wireless connectivity such as HTTP, HTTPS, Hotsync, and IP based wireless transports such as CDPD and 802.11b
Mobile Development Kit
This SDK provides the facilities, tools, APIs and sample code to develop mission critical mobile, disconnected applications. Developers have the options to choose amongst three different application models:
Native – Applications uses ODBC to access the Oracle Lite Database on the mobile device. C++, Visual Basic for Windows CE (ADOCE), Satellite Forms or Oracle Forms are typically used to build native, device specific applications. A native application developed in C++ might be recompiled and run on multiple devices without recoding
Java – These Java application invoke JDBC functions to access Oracle Lite Database on the mobile device. The UI could be build using AWT or SWING classes. Java provides reusability and cross platform capability which makes it the choice for applications which must run on multiple devices
Web – Enables the developer to run existing web applications using the J2EE Java Servlets/JSP in a disconnected mode without modifying the code base. This unique feature makes it very easy to extend web applications to mobile, disconnected devices.
Mobile Development Kit supports Windows, Palm Computing, EPOC, and different flavours of Windows CE such as Pocket PC, HPC-Pro on different chip sets such as StrongARM, MIPS, SH3, and SH4.

