Variables For Oracle 9 I Object Types example essay topic
But SQL and various programmatic interfaces to Oracle -- including PL / SQL, Java, Oracle Call Interface, Pro C / C++, OO 4 O -- have been enhanced with new extensions to support objects. The result is an object-relational model, which offers the intuitiveness and economy of an object interface while preserving the high concurrency and throughput of a relational database. Type Inheritance Type inheritance adds to the usefulness of objects by enabling you to create type hierarchies by defining successive levels of increasingly specialized subtypes that derive from a common ancestor object type. Derived subtypes inherit the features of the parent object type but extend the parent type definition. For example, specialized types of customers -- a corporate Customer type or a government Customer type -- might be derived from a general Customer object type. The specialized types can add new attributes or redefine methods inherited from the parent.
The resulting type hierarchy provides a higher level of abstraction for managing the complexity of an application model. Type Evolution Using an ALTER TYPE statement, you can modify -- "evolve" -- an existing user-defined type to make the following changes: Add and drop attributes Add and drop methods Modify a numeric attribute to increase its length, precision, or scale Modify a varying length character attribute to increase its length Change a type's FINAL and INSTANTIABLE properties Dependencies of a type to be changed are checked using essentially the same validations applied for a CREATE TYPE statement. If a type or any of its dependent types fails the type validations, the ALTER TYPE statement rolls back; no new type version is created, and dependent schema objects remain unchanged. Metadata for all tables and columns that use an altered type are updated for the new type definition so that data can be stored in them in the new format.
Existing data can be converted to the new format either all at once or piecemeal, as it is updated. In either case, data is always presented in the format of the new type definition even if it is still stored in the format of the older one. Object Views In addition to natively storing object data in the server, Oracle allows the creation of an object abstraction over existing relational data through the object view mechanism. You access objects that belong to an object view in the same way that you access row objects in an object table.
Oracle materializes view objects of user-defined types from data stored in relational schemas and tables. By using object views, you can develop object-oriented applications without having to modify existing relational database schemas. Object views also let you exploit the polymorphism that a type hierarchy makes possible. A polymorphic expression can take a value of the expression's declared type or any of that type's subtypes. If you construct a hierarchy of object views that mirrors some or all of the structure of a type hierarchy, you can query any view in the hierarchy to access data at just the level of specialization you are interested in. If you query an object view that has sub views, you can get back polymorphic data -- rows for both the type of the view and for its subtypes.
SQL Object Extensions To support the new object-related features, SQL extensions -- including new DDL -- have been added to create, alter, or drop object types; to store object types in tables; and to create, alter, or drop object views. There are DML and query extensions to support object types, references, and collections. PL / SQL Object Extensions PL / SQL is Oracle's database programming language that is tightly integrated with SQL. With the addition of user-defined types and other SQL types introduced in Oracle 8 i, PL / SQL has been enhanced to operate on user-defined types seamlessly. Thus, application developers can use PL / SQL to implement logic and operations on user-defined types that execute in the database server. Java Support for Oracle Objects Oracle's Java VM is tightly integrated with the RDBMS and supports access to Oracle Objects through object extensions to Java Database Connectivity (JDBC), which provides dynamic SQL, and SQL, which provides static SQL.
Thus, application developers can use the Java to implement logic and operations on user-defined types that execute in the database server. With Oracle 9 i, you can now also create SQL types mapped to existing Java classes to provide persistent storage for Java objects. External Procedures Database functions, procedures, or member methods of an object type can be implemented in PL / SQL, Java, or C as external procedures. External procedures are best suited for tasks that are more quickly or easily done in a low-level language such as C, which is more efficient at machine-precision calculation. External procedures are always run in a safe mode outside the address space of the RDBMS server.
"Generic" external procedures can be written that declare one or more parameters to be of a system-defined generic type. The generic type permits a procedure that uses it to work with data of any built-in or user-defined type. Object Type Translator The Object Type Translator (OTT) provides client-side mappings to object type schemas by using schema information from the Oracle data dictionary to generate header files containing Java classes and C structures and indicators. These generated header files can be used in host-language applications for transparent access to database objects. Client-Side Cache Oracle provides an object cache for efficient access to persistent objects stored in the database. Copies of objects can be brought into the object cache.
Once the data has been cached in the client, the application can traverse through these at memory speed. Any changes made to objects in the cache can be committed to the database by using the object extensions to Oracle? Call Interface programmatic interfaces. Oracle Call Interface Object Extensions Oracle Call Interface provides a comprehensive application programming interface for application and tool developers seeking to use the object capabilities of Oracle.
Oracle Call Interface provides a run-time environment with functions to connect to an Oracle server, and control transactions that access objects in the server. It allows application developers to access and manipulate objects and their attributes in the client-side object cache either navigation ally, by traversing a graph of inter-connected objects, or associatively by specifying the nature of the data through declarative SQL DML. Oracle Call Interface also provides a number of functions for accessing metadata information at run-time about object types defined in the server. Such a set of functions facilitates dynamic access to the object metadata and the actual object data stored in the database. Pro C / C++ Object Extensions The Oracle Pro CTM precompiler provides an embedded SQL application programming interface and offers a higher level of abstraction than Oracle Call Interface.
Like Oracle Call Interface, the Pro C precompiler allows application developers to use the Oracle client-side object cache and the Object Type Translator Utility. Pro C supports the use of "C" bind variables for Oracle 9 i object types. Furthermore, Pro C provides new simplified syntax to allocate and free objects of SQL types and access them by either SQL DML, or through the navigational interface. Thus, it provides application developers many benefits, including compile-time type checking of (client-side) bind variables against the schema in the server, automatic mapping of object data in an Oracle 9 i server to program bind variables in the client, and simple ways to manage and manipulate database objects in the client process. OO 4 O Object Extensions Oracle 9 i Oracle Objects For OLE (OO 4 O) is a set of COM Automation interfaces / objects for connecting to Oracle 9 i database servers, executing queries and managing the results. Automation interfaces in OO 4 O provide easy and efficient access to Oracle 9 i features and can be used from virtually any programming or scripting language that supports the Microsoft COM Automation technology.
This includes Visual Basic, Visual C++, VBA in Excel, VBScript and JavaScript in IIS Active Server Pages.