0% found this document useful (0 votes)
73 views

CSE202 Database Management Systems: Lecture #6

The document discusses object-oriented database concepts including: 1) Limitations of the relational model and how object-oriented databases address complex relationships like generalization and aggregation. 2) Key concepts like objects, classes, encapsulation, and inheritance. 3) Modeling techniques in object-oriented databases including UML class diagrams, generalization, and complex data types.

Uploaded by

Kedir Waritu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views

CSE202 Database Management Systems: Lecture #6

The document discusses object-oriented database concepts including: 1) Limitations of the relational model and how object-oriented databases address complex relationships like generalization and aggregation. 2) Key concepts like objects, classes, encapsulation, and inheritance. 3) Modeling techniques in object-oriented databases including UML class diagrams, generalization, and complex data types.

Uploaded by

Kedir Waritu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 82

CSE202 Database Management Systems

Lecture #6

Prepared & Presented by Asst. Prof. Dr. Samsun M. BAŞARICI


Learning Objectives

• List several limitations in the relational database model.


• Describe the object-oriented database concept.
• Model data using such complex relationships as
generalization and aggregation, and such concepts as
inheritance and polymorphism.
• Describe the benefits of encapsulation.
• Describe the value of developing abstract data types.
• Explain what an object/relational database is.

2
Outline
• Overview of Object Database Concepts
• Object-Relational Features:
Object Database Extensions to SQL
• The ODMG Object Model and the Object
Definition Language ODL
• Object Database Conceptual Design
• The Object Query Language OQL
• Overview of the C++ Language Binding in the
ODMG Standard
3
Historically Speaking
• For much of IS history the emphasis was on
the programs, with the data structures and
ultimately the data stored in them being a
secondary consideration.

• The IS environment is changing from this


program-centric mentality into a more data-
centric one.

4
Object Orientation
• An alternative approach to information
systems and IS development.

• Began during the 1980s.

• More data-centric.

5
What’s Missing in the Relational Database
Concept?
• Many people would say that nothing is missing
from the relational model.

• Others would point out that for certain kinds


of complex applications, the relational model
is lacking in support for the more complex
data model features they need.

6
What’s Missing in the Relational Database
Concept?
• Does not directly provide support for
generalization/specialization.

• Does not directly provide support for


aggregation.

7
What’s Missing in the Relational Database
Concept?
• Does not have a system in which only a limited, controlled set
of program segments is allowed to update particular data.

• Does not directly support more complex data types such as:
– graphic images
– photo images
– video clips
– audio clips
– long text documents
– mathematical constructs such as matrices

8
Terminology: Object-Oriented Data
Modeling
• Object - describes an advanced data structure
that includes an entity’s attributes plus
methods or operations or procedures
(program code!) that can operate on and
modify the object’s attribute values.

• (object) class - the objects that describe


similar entities.

9
More advantages of Object Oriented
Database Concept
• Each object has an object identifier that is permanent and
unique among all objects of all types in the system.

• Some OODBMSs are implemented as pointer-based systems.


– related objects are “connected” by their storage addresses.

• OODBMSs are the most natural data storage vehicles when


object-oriented programming languages, such as C++,
Smalltalk, and Java, are in use.

10
Unified Modeling Language
• Introduced in 1997 by the Object
Management Group (OMG)

• Has nine standard diagrams that describe:


– the system’s data
– the business processes
– the intended results
– the components of the program code
– the hardware and software architectures.

11
UML Class Diagram
• Describes the system’s data, including
attributes of and relationships between the
“objects.”

12
Object and Object-Relational
Databases
• Object databases (ODB)
– Object data management systems (ODMS)
– Meet some of the needs of more complex
applications
– Specify:
• Structure of complex objects
• Operations that can be applied to these objects

13
Overview of Object Database
Concepts
• Introduction to object-oriented concepts and
features
– Origins in OO programming languages
– Object has two components:
• State (value) and behavior (operations)
– Instance variables
• Hold values that define internal state of object
– Operation is defined in two parts:
• Signature or interface and implementation

14
Overview of Object Database
Concepts (cont’d.)
– Inheritance
• Permits specification of new types or classes that
inherit much of their structure and/or operations from
previously defined types or classes
– Operator overloading
• Operation’s ability to be applied to different types of
objects
• Operation name may refer to several distinct
implementations

15
Object Identity, and Objects versus
Literals
• Unique identity
– Implemented via a unique, system-generated
object identifier (OID)
– Immutable
• Most OO database systems allow for the
representation of both objects and literals (or
values)

16
Complex Type Structures for
Objects and Literals
• Structure of arbitrary complexity
– Contain all necessary information that describes
object or literal
• Nesting type constructors
– Construct complex type from other types
• Most basic constructors:
– Atom
– Struct (or tuple)
– Collection
17
Complex Type Structures for Objects and Literals (cont.)

• Collection types:
– Set
– Bag
– List
– Array
– Dictionary
• Object definition language (ODL)
– Used to define object types for a particular
database application
18
19
Generalization
• Also known as generalization/specialization

• Is a relationship that recognizes that some


kinds of entities can be subdivided into
smaller, more specialized groups.

20
General Hardware Company ERD

• General Hardware
company E-R diagram.

• General Hardware is a
wholesaler.

10-21
General Hardware Company Generalization
Diagram
• Each box represents a class
and has three sections
separated by horizontal
lines.
– At the top, in capital letters, is
the class name

– In the middle are the class


attributes

– At the bottom are the class


operations (not shown)

10-22
General Hardware Company Generalization
Diagram (cont.)
• The upward pointing arrows
indicate generalizations.

• There are three kinds of products


– TOOLs
– LIGHT FIXTUREs
– LUMBER

• There are two kinds of tools


– POWER TOOLs
– NONPOWER TOOLs

10-23
Encapsulation of Operations and Persistence
of Objects
• Encapsulation
– Related to abstract data types and information
hiding in programming languages
– Define behavior of a type of object based on
operations that can be externally applied
– External users only aware of interface of the
operations
– Divide structure of object into visible and hidden
attributes

24
Encapsulation of Operations

• Object constructor
– Used to create a new object
• Destructor operation
– Used to destroy (delete) an object
• Modifier operations
– Modify the states (values) of various attributes of
an object
• Retrieve information about the object
• Dot notation used to apply operations to
object 25
Persistence of Objects
• Transient objects
– Exist in executing program
– Disappear once program terminates
• Persistent objects
– Stored in database and persist after program
termination
– Naming mechanism
– Reachability

26
Type Hierarchies and Inheritance
• Inheritance
– Definition of new types based on other predefined
types
– Leads to type (or class) hierarchy
• Type: type name and list of visible (public)
functions
– Format:
• TYPE_NAME: function, function, ...,
function

27
Type Hierarchies and Inheritance
(cont.)
• Subtype
– Useful when creating a new type that is similar but
not identical to an already defined type
– Example:
• EMPLOYEE subtype-of PERSON: Salary,
Hire_date, Seniority
• STUDENT subtype-of PERSON: Major, Gpa

28
Type Hierarchies and Inheritance
(cont.)
• Extent
– Store collection of persistent objects for each type
or subtype
– Extents are subsets of the extent of class OBJECT
• Persistent collection
– Stored permanently in the database
• Transient collection
– Exists temporarily during the execution of a
program
29
Other Object-Oriented Concepts
• Polymorphism of operations
– Also known as operator overloading
– Allows same operator name or symbol to be
bound to two or more different implementations
– Depending on type of objects to which operator is
applied
• Multiple inheritance
– Subtype inherits functions (attributes and
methods) of more than one supertype
• Selective inheritance 30
Summary of Object Database
Concepts
• Object identity
• Type constructor
• Encapsulation of operations
• Programming language compatibility
• Type hierarchies and inheritance
• Extents
• Polymorphism and operator overloading

31
Object-Relational Features:
Object Database Extensions to SQL
• Type constructors
– Specify complex objects
• Mechanism for specifying object identity
• Encapsulation of operations
– Provided through user-defined types (UDTs)
• Inheritance mechanisms
– Provided using keyword UNDER

32
Object/Relational Database
• OODBMSs were lacking in several areas, including
the superior query capabilities of SQL that everyone
had become accustomed to.

• Relational database and object-oriented database


have come together in the form of hybrid relational
database management systems with object-oriented
features added to them.

33
User-Defined Types and Complex Structures
for Objects
• UDT syntax:
– CREATE TYPE TYPE_NAME AS
(<component declarations>);
• ROW TYPE
– Directly create a structured attribute using the
keyword ROW

34
User-Defined Types and Complex
Structures for Objects (cont’d.)
• Array type
– Reference elements using []
• CARDINALITY function
– Return the current number of elements in an array

35
Object Identifiers Using Reference
Types
• Reference type
– Create unique system-generated object identifiers
– Examples:
• REF IS SYSTEM GENERATED
• REF IS <OID_ATTRIBUTE>
<VALUE_GENERATION_METHOD> ;

36
Creating Tables Based on the UDTs
• INSTANTIABLE
– Specify that UDT is instantiable
– Causes one or more tables to be created

37
Inheritance of Attributes

• The PRODUCT class


indicates that all products
have three common
attributes: Product Number,
Product Name, and Unit
Price.

• All of the classes below


PRODUCT inherit the
attributes shown in
PRODUCT.

10-38
Inheritance of Attributes (cont.)

• The attributes for POWER


TOOLs are:

– (from Product)
• Product Number
• Product Name
• Unit Price

– (from TOOL)
• Weight

– (from POWER TOOL)


• Amperes

10-39
Inheritance of Attributes (cont.)

• The attributes for NONPOWER


TOOLs are

– (from Product)
• Product Number
• Product Name
• Unit Price

– (from TOOL)
• Weight

– (from NON-POWER TOOL)


• Years of Warranty

10-40
Inheritance of Attributes (cont.)

• The attributes for LIGHT


FIXTUREs are

– (from Product)
• Product Number
• Product Name
• Unit Price

– (from LIGHT FIXTURE)


• Number of Bulbs
• Watts per Bulb

10-41
Inheritance of Attributes (cont.)

• The attributes for LUMBER


are

– (from Product)
• Product Number
• Product Name
• Unit Price

– (from LUMBER)
• Type of Wood
• Dimensions

10-42
Operations

• Operations have now


been added to the UML
Diagram.

• There are three kinds of


operations:
– Constructor
– Query
– Update

10-43
Operations: Constructor

• Creates a new instance


of a class, that is, a new
object.

• Example: Add Lumber


– an operation that will
add a new instance of
LUMBER, that is, a new
object, to the database.

10-44
Operations: Query

• Returns data about the


values of an object’s
attributes but does not
update them.

• Example: Calculate Discount


– calculates a discount for a
particular customer buying a
particular product and
returns the result to the user
who issued the query, but
does not store the result in
the database.

10-45
Operations: Update

• Updates an object’s
attribute values.

• Example: Change Unit Price


– a product’s unit price
may have to be changed,
and the result is stored
in the database as the
new unit price.

10-46
Polymorphism

• Modification or refinement
of operations as they are
inherited downward.

• The operations that are


performed differently in the
lower level objects can have
modified names and will
perform differently for the
different kinds of objects.

10-47
Polymorphism (cont.)

• Looking at “Calculate Discount”:


– Since there is nothing more said
about the discount further down
the hierarchy, the discount is
calculated in the same way for all
kinds of products.

• Looking at “Calculate Extended


Warranty Price”:
– polymorphism occurs in the
Calculate Extended Warranty
Price operation because it is
performed differently for power
tools and nonpower tools.

10-48
Aggregation

49
Aggregation (cont.)

• A class is shown to be
composed of other
classes.

• FRAMEs and BULBS are


not kinds of LIGHT
FIXTUREs; rather, each
is a part of a LIGHT
FIXTURE.

10-50
General Hardware Company Class
Diagram

51
Good Reading Bookstores Class Diagram

• A generalization hierarchy
has been created under
PRODUCT, which indicates
that there are four kinds of
products: BOOK,
PERIODICAL, CD, and
VIDEO/DVD.

• The PERIODICAL class, and


only this class, is associated
with the ARTICLE class.

10-52
World Music Association Class Diagram

• A generalization
hierarchy has been
constructed with
subordinate classes
ORCHESTRA, CHAMBER
GROUP, and JAZZ
GROUP.

10-53
Lucky Rent-A-Vehicle Class Diagram

• Lucky Rent-A-Car has expanded


to become Lucky Rent-A-Vehicle!

• A two-level generalization
hierarchy under VEHICLE.

• The diamond-shaped symbol on


the branch under the TRUCK class
indicates that there is an
aggregation diagram under it.

10-54
Encapsulation

• The attributes of a class or even an individual object are “encapsulated,” stored


together on the disk, with the operations that will act upon them.

• OODBMS will only permit the attributes of the encapsulated objects to be


updated by the encapsulated update-type operations, thereby improving data
integrity.

10-55
Encapsulation (cont.)

• When an application program requires encapsulated data, it


sends a message to one of the object’s encapsulated
operations to trigger it into action.

• The application program sends along any input data needed


for the operation.

10-56
Abstract Data Types

• Object-oriented
database allows the
creation of new,
abstract data types and
operations that are
associated with them.

10-57
Encapsulation of Operations
• User-defined type
– Specify methods (or operations) in addition to the
attributes
– Format:
CREATE TYPE <TYPE-NAME> (
<LIST OF COMPONENT ATTRIBUTES AND THEIR TYPES>
<DECLARATION OF FUNCTIONS (METHODS)>
);

58
Encapsulation of Operations (cont.)
• Constructor function TYPE_T( )
– Returns a new object of that type
– Format
DECLARE EXTERNAL <FUNCTION_NAME>
<SIGNATURE>
LANGUAGE <LANGUAGE_NAME>;

59
Specifying Inheritance and Overloading of
Functions
• Inheritance rules:
– All attributes inherited
– Order of supertypes in UNDER clause determines
inheritance hierarchy
– Instance of a subtype can be used in every context
in which a supertype instance used
– Subtype can redefine any function defined in
supertype

60
Specifying Inheritance and
Overloading of Functions (cont.)
– When a function is called, best match selected
based on types of all arguments
– For dynamic linking, runtime types of parameters
is considered

61
Specifying Relationships via
Reference
• Component attribute of one tuple may be a
reference to a tuple of another table
– Specified using keyword REF
• Keyword SCOPE
– Specify name of table whose tuples referenced
• Dot notation
– Build path expressions
• –>
– Used for dereferencing
62
The ODMG Object Model and the
Object Definition Language ODL
• ODMG object model
– Data model for object definition language (ODL)
and object query language (OQL)
• Objects and Literals
– Basic building blocks of the object model
• Object has five aspects:
– Identifier, name, lifetime, structure, and creation
• Literal
– Value that does not have an object identifier
63
The ODMG Object Model and the
ODL (cont.)
• Behavior refers to operations
• State refers to properties
• Interface
– Specifies only behavior of an object type
– Typically noninstantiable
• Class
– Specifies both state (attributes) and behavior
(operations) of an object type
– Instantiable
64
Inheritance in the Object Model of
ODMG
• Behavior inheritance
– Also known as IS-A or interface inheritance
– Specified by the colon (:) notation
• EXTENDS inheritance
– Specified by keyword extends
– Inherit both state and behavior strictly among
classes
– Multiple inheritance via extends not permitted

65
Built-in Interfaces and Classes in the Object
Model
• Collection objects
– Inherit the basic Collection interface
• I = O.create_iterator()
– Creates an iterator object for the collection
• Collection objects further specialized into:
– set, list, bag, array, and dictionary

66
Built-in Interfaces and Classes in the Object Model
(cont.)

67
Atomic (User-Defined) Objects
• Specified using keyword class in ODL
• Attribute
– Property; describes some aspect of an object
• Relationship
– Two objects in the database are related
– Keyword inverse
• Single conceptual relationship in inverse directions
• Operation signature:
– Operation name, argument types, return value
68
Extents, Keys, and Factory Objects
• Extent
– Contains all persistent objects of class
• Key
– One or more properties whose values are unique
for each object in extent
• Factory object
– Used to generate or create individual objects via
its operations

69
The Object Definition Language
ODL
• Support semantic constructs of ODMG object
model
• Independent of any particular programming
language

70
71
Object Database Conceptual
Design
• Differences between conceptual design of
ODB and RDB, handling of:
– Relationships
– Inheritance
• Philosophical difference between relational
model and object model of data
– In terms of behavioral specification

72
Mapping an EER Schema to an ODB
Schema
• Create ODL class for each EER entity type
• Add relationship properties for each binary
relationship
• Include appropriate operations for each class
• ODL class that corresponds to a subclass in the
EER schema
– Inherits type and methods of its superclass in ODL
schema

73
Mapping an EER Schema to an ODB Schema
(cont.)
• Weak entity types
– Mapped same as regular entity types
• Categories (union types)
– Difficult to map to ODL
• An n-ary relationship with degree n > 2
– Map into a separate class, with appropriate
references to each participating class

74
The Object Query Language OQL
• Query language proposed for ODMG object
model
• Simple OQL queries, database entry points,
and iterator variables
– Syntax: select ... from ... where ... structure
– Entry point: named persistent object
– Iterator variable: define whenever a collection is
referenced in an OQL query

75
Query Results and Path
Expressions
• Result of a query
– Any type that can be expressed in ODMG object
model
• OQL orthogonal with respect to specifying
path expressions
– Attributes, relationships, and operation names
(methods) can be used interchangeably within the
path expressions

76
Other Features of OQL
• Named query
– Specify identifier of named query
• OQL query will return collection as its result
– If user requires that a query only return a single
element use element operator
• Aggregate operators
• Membership and quantification over a
collection

77
Other Features of OQL (cont.)
• Special operations for ordered collections
• Group by clause in OQL
– Similar to the corresponding clause in SQL
– Provides explicit reference to the collection of
objects within each group or partition
• Having clause
– Used to filter partitioned sets

78
Overview of the C++ Language Binding in the
ODMG Standard
• Specifies how ODL constructs are mapped to
C++ constructs
• Uses prefix d_ for class declarations that deal
with database concepts
• Template classes
– Specified in library binding
– Overloads operation new so that it can be used to
create either persistent or transient objects

79
General Hardware Company as an
Object/Relational Database

80
Next Lecture

XML & SQL Programming

81
References
• Ramez Elmasri, Shamkant Navathe; “Fundamentals
of Database Systems”, 6th Ed., Pearson, 2014
• Mark L. Gillenson; “Fundamentals of Database
Management Systems”, 2nd Ed., John Wiley, 2012
• Universität Hamburg, Fachbereich Informatik,
Einführung in Datenbanksysteme, Lecture Notes,
1999

82

You might also like