Abdulrahman A. Mohamed Mobile: +254 713 500 814 Email: abdulrehman@tum.ac.
ke
TECHNICAL UNIVERSITY OF MOMBASA
CCI 4301: ADVANCED DATABASE MANAGEMENT SYSTEMS
WEEK 10: OBJECT DATABASES
OUTLINE
• 1. Shortcomings of the Relational Data Model
• 2. Historical Developments in Object Databases
• 3. Conceptual Object Data Model
• 4. ODMG Standard
• 5. Objects in SQL
1. Shortcomings of the Relational Data Model:
Definition: The Relational Data Model is a widely used model for structuring and
organizing data in databases. While it has many advantages, it also has some limitations or
shortcomings. Let's examine these:
Shortcomings and Explanation: a. Complexity of Queries: Relational databases can become
complex when handling many-to-many relationships. For example, if you have a database
of students and courses, querying for students who have taken multiple courses from
different departments can be challenging.
b. Lack of Support for Complex Data Types: Relational databases are primarily designed
Abdulrahman A. Mohamed Mobile: +254 713 500 814 Email: abdulrehman@tum.ac.ke
for structured data. Handling semi-structured or unstructured data (e.g., JSON, XML) is less
efficient and can require workarounds.
c. Limited Support for Hierarchical Data: Representing hierarchical data structures, such as
organizational charts or file systems, can be inefficient in a relational database. Recursive
queries or additional tables are often needed.
d. Performance Bottlenecks: In some cases, relational databases can experience
performance bottlenecks when dealing with high-velocity data (e.g., real-time data
streams) or very large datasets.
Practical Applications:
• Consider a social media platform that needs to store and query data related to user
interactions. The complexity of modeling friendships, comments, likes, and posts in
a relational database could lead to performance issues.
• E-commerce websites that store product catalogs with varying attributes may find it
challenging to represent these attributes efficiently in a relational database.
2. Historical Developments in Object Databases:
Definition: Object databases are a type of database management system (DBMS) that
extend the capabilities of the relational model to handle complex data structures and
relationships by incorporating object-oriented programming concepts.
Historical Developments and Explanation: a. Emergence of Object-Oriented Databases
(OODBs): In the late 1980s and early 1990s, OODBs emerged as a response to the
limitations of the relational model. They allowed developers to work with data in a more
natural, object-oriented way, leveraging concepts like inheritance and encapsulation.
b. Integration of Object-Relational Databases (ORDBs): Some relational databases started
Abdulrahman A. Mohamed Mobile: +254 713 500 814 Email: abdulrehman@tum.ac.ke
incorporating features from the object-oriented world, leading to the development of
ORDBs. These databases allowed users to define user-defined types, methods, and
inheritance hierarchies within a relational database.
c. Use in Specialized Applications: Object databases found success in specialized
applications like CAD (Computer-Aided Design), GIS (Geographic Information Systems),
and multimedia content management, where complex data relationships were prevalent.
Practical Applications:
• A CAD software application may use an object database to store complex 3D
models, where objects in the model are represented as objects in the database with
properties and methods.
• Geographic information systems (GIS) use object databases to manage spatial data
efficiently, where geographical objects like maps, regions, and coordinates are
represented as objects.
3. Conceptual Object Data Model:
Definition: The Conceptual Object Data Model is a high-level representation of data that
defines the structure, relationships, and constraints of data in an object-oriented database.
It provides a conceptual view of how data should be organized.
Explanation:
• The model defines object classes, their attributes (data members), methods
(functions or procedures associated with objects), and relationships between
objects. It focuses on the logical organization of data without specifying
implementation details.
• In this model, you create a blueprint for the types of objects that will exist in the
Abdulrahman A. Mohamed Mobile: +254 713 500 814 Email: abdulrehman@tum.ac.ke
database, their properties, and how they relate to each other. It abstracts away from
the underlying storage details.
Practical Applications:
• In a library management system, the Conceptual Object Data Model might define
classes such as "Book," "Author," and "LibraryMember." Each class would have
attributes like "title," "name," and "borrowedBooks." Relationships between objects
could represent borrowing history or authorship.
• In a healthcare system, the model could define classes such as "Patient," "Doctor,"
and "MedicalRecord," with attributes like "patientName," "doctorName," and
"diagnosis." Relationships might show patient-doctor associations.
4. ODMG Standard:
Definition: ODMG (Object Data Management Group) Standard is a set of specifications
and standards for object-oriented database management systems (OODBMS). It aims to
ensure interoperability and consistency among different OODBMS implementations.
Explanation:
• The ODMG standard defines a common set of interfaces, data types, and query
languages for object databases. It provides a standardized way for developers to
interact with object-oriented databases, regardless of the specific database system
being used.
• ODMG specifications cover areas such as object query language (OQL), object
definition language (ODL), and object manipulation language (OML). These
standards help developers create portable applications that can work with any
ODMG-compliant database.
Abdulrahman A. Mohamed Mobile: +254 713 500 814 Email: abdulrehman@tum.ac.ke
Practical Applications:
• If a software development team is building an application that needs to work with
multiple object-oriented database systems, adhering to the ODMG standard ensures
that the code written for one OODBMS can be easily adapted to work with others
that support the same standard.
5. Objects in SQL:
Definition: Objects in SQL refer to user-defined data types and structures that can be used
to model complex data within a relational database. SQL standards have evolved to
include support for objects, blurring the lines between relational and object-oriented
databases.
Explanation:
• SQL databases traditionally handle structured data in tables. However, modern SQL
standards, such as SQL:1999 and later, introduced object-relational features. This
allows developers to define custom data types and methods associated with those
types.
• Objects in SQL can have attributes and methods just like objects in object-oriented
programming. They enable more natural modeling of complex data structures and
relationships within a relational database.
Practical Applications:
• In a content management system (CMS), objects in SQL can be used to represent
content items with attributes like "title," "author," and "publicationDate." Methods
associated with these objects could handle content rendering or versioning.
• For a manufacturing database, objects in SQL can represent production orders with
Abdulrahman A. Mohamed Mobile: +254 713 500 814 Email: abdulrehman@tum.ac.ke
attributes like "orderNumber," "productType," and "quantity." Methods might be
used to calculate production costs or track order progress.
Overall, objects in SQL bring more flexibility and expressiveness to relational databases,
making them better suited to handle complex data structures and relationships in various
applications.