* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download OODBMS and ORDBMS - UBC Department of Geography
Extensible Storage Engine wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Relational algebra wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Clusterpoint wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Versant Object Database wikipedia , lookup
OODBMS and ORDBMS Background • Object-oriented software, based on the principles of user-defined datatypes, along with inheritance and polymorphism, is firmly established in the software industry (consider C++, Java, Visual Basic, C#, etc.) • However, the popularity of OO software has no relation with the popularity, or not, of OODBMS. Background • The debate between relational versus oo within the DB community parallels the debate between vector and raster in the GIS community during the 70’s and 80’s. • Market adoption of OODBMS has been limited. This has implications: – Reduced financial and engineering resources to performance-tune products. – SQL has retained its dominance as the lingua franca of the database world. Background • Relational databases that incorporate ADTs and other principles of oo design are called object relational DBS (OR-DBMS). • These databases have taken the steam out of the OO engine, and appear to have the upper hand in ‘modern’ DMBS. Background • Recall that RDBMS represents themes through relations (tables). – A geographic object is one tuple (row) of such a relation. – Each column is an attribute. • Attributes have alphanumeric types (e.g., character, string, time, date, real, logical). BLOBS are a recent addition. • Relationships are not explicit, but implied by values in specific fields (e.g., foreign keys). RDBMS? • To incorporate spatial concepts into a RDBMS requires considerable reorganization of the RDBMS database structure, which violates the data independence principle (you need to know far more about a theme in order to determine what type of spatial entity it is, and what type of operations are permissible). RDBMS • Performance suffers greatly as a result of the significant modifications required to incorporate space. • Topology is not implicit. • As a result, most systems were based on a loose coupling approach (e.g., Arc / Info). OO DBMS • OO systems were first developed in the 1980s, when oo programming languages such as Simula and Smalltalk first emerged. • The initial reaction was that, within a few years, all databases would be oo databases. Such predictions were obviously way off the mark. OO Advantages • OO principles brought to databases: – New modeling power – Extensibility of systems – Code reuse – Easy maintenance of programs • However, it is only recently that OO programming has itself really taken off. OODBMS Terminology • Object Identity: An object is denoted in a unique way in the database system, using an identifier or OID (object identifier) that the objects keeps during its entire lifetime, independently of its attribute values. OODBMS Terminology • Type: the type of an object corresponds to its structure and to the operations that can be performed on it. – Atomic types, such as strings and integer – Complex types are defined using ‘constructors’ (tuples or set constructors). • An object (o) can have as an atomic value not only a string or real but also the OID of another object o’. Object o is said to consist of object o’ OODBMS Terminology • Objects with the same type are grouped into classes. • Classes encompass objects having the same structure and behaviour, which is expressed by the set of methods or operations applicable to the objects they contain. • Encapsulation: A class corresponds to the implementation of an abstract data type (ADT). – Encapsulation means that neither the structure of the ADT nor its implementation is visible from the outside world. – Programmers will know how the ADT is implemented, whereas end users only know the specification. OODBMS Terminology • ADTs: Abstract data types – combinations of data types (e.g., polygon) and their operations (e.g., PolygonArea [an operation that would compute the area of a polygon]). Note that the DBMS need not have any knowledge on the ADT implementation (i.e., the code corresponding to the operations). • ADTs are encapsulated in the sense that they are accessible only through the operations that are defined on them. • ADTs have been ‘regularized’ in the sense that the geographic dimension (e.g., points, line segments [nodes only have two arcs], complex polylines [nodes can have two or more connected arcs], polygons) is used to clearly distinguish between them. OODBMS Terminology • Inheritance: Subclasses are defined from an existing superclass with a refinement of its structure. – Subclasses inherit methods and structures from the superclass (e.g., all methods defined for the superclass can be used in the subclass). – However, a subclass can redefine a method defined in the superclass. – A subclass can also have methods defined only for that subclass. This leads to polymorphism. • The subclass is a specialization of the superclass, and the superclass is a generalization of the subclass. • A subclass can inherit from many superclasses. • Most OO DBMS use OQL rather than SQL as their query language. • OQL is aware of the complex structures present in the OODBMS, and can return complex results. • SQL is used as the DDL, DQL and DML (data definition, data query, and data manipulation language). • In OODBMS, the primary means of developing the database is through the native OO language. OR DBMS • PostgresSQL is the best known OR DBMS • It allows the user to extend the system by incorporating new data types—a user can integrate geometric types and operations, as well as spatial indexing. • ORDBMS incorporate ADTs, but still use tables. • OR SQL contains extensions to standard SQL than enable access to ADTs. • Software such as ESRI’s SDE is based on an ORDBMS approach.