0% found this document useful (0 votes)
166 views61 pages

Chapter 12

DB

Uploaded by

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

Chapter 12

DB

Uploaded by

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

CHAPTER 12

Object and Object-Relational


Databases

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 1- 1


Chapter 12 Outline
 Overview of Object Database Concepts
 Object-Relational Features
 Object Database Extensions to SQL
 ODMG Object Model and the Object Definition
Language ODL
 Object Database Conceptual Design
 The Object Query Language OQL
 Overview of the C++ Language Binding

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 2


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 3


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 (attributes)
 Hold values that define internal state of object
 Operation is defined in two parts:
 Signature (interface) and implementation (method)

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 4


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 5


Object Identity, and Objects versus
Literals
 Object has 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 (simple
or complex values)

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 6


Complex Type Structures for Objects
and Literals
 Structure of arbitrary complexity
 Contain all necessary information that describes
object or literal
 Nesting type constructors
 Generate complex type from other types
 Type constructors (type generators):
 Atom (basic data type – int, string, etc.)
 Struct (or tuple)
 Collection

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 7


Complex Type Structures for Objects
and Literals (cont’d.)
 Collection types:
 Set
 Bag
 List
 Array
 Dictionary
 Object definition language (ODL)
 Used to define object types for a particular
database application

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 8


Figure 12.1 Specifying the object types EMPLOYEE, DATE, and DEPARTMENT
using type constructors.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 9


Figure 12.2 Adding operations to the definitions of EMPLOYEE and DEPARTMENT.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 10


Encapsulation of Operations
 Encapsulation
 Related to abstract data types
 Define behavior of a class of object based on
operations that can be externally applied
 External users only aware of interface of the
operations
 Can divide structure of object into visible and
hidden attributes

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 11


Encapsulation of Operations

 Constructor operation
 Used to create a new object
 Destructor operation
 Used to destroy (delete) an object
 Modifier operations
 Modify the state of an object
 Retrieve operation
 Dot notation to apply operations to object

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 12


Persistence of Objects

 Transient objects
 Exist in executing program
 Disappear once program terminates
 Persistent objects
 Stored in database, persist after program termination
 Naming mechanism: object assigned a unique name
in object base, user finds object by its name
 Reachability: object referenced from other persistent
objects, object located through references

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 13


Figure 12.3 Creating persistent objects by naming and reachability.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 14


Type (Class) 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 (attributes or operations)
 Format:
 TYPE_NAME: function, function, ...,
function

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 15


Type (Class) Hierarchies and
Inheritance (cont’d.)
 Subtype
 Useful when creating a new type that is similar but
not identical to an already defined type
 Subtype inherits functions
 Additional (local or specific) functions in subtype
 Example:
 EMPLOYEE subtype-of PERSON: Salary,
Hire_date, Seniority
 STUDENT subtype-of PERSON: Major, Gpa

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 16


Type (Class) Hierarchies and
Inheritance (cont’d.)
 Extent
 A named persistent object to hold collection of all
persistent objects for a class
 Persistent collection
 Stored permanently in the database
 Transient collection
 Exists temporarily during the execution of a
program (e.g. query result)

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 17


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
 Type of objects determines which operator is
applied
 Multiple inheritance
 Subtype inherits functions (attributes and
operations) of more than one supertype

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 18


Summary of Object Database
Concepts
 Object identity
 Type constructors (type generators)
 Encapsulation of operations
 Programming language compatibility
 Type (class) hierarchies and inheritance
 Extents
 Polymorphism and operator overloading

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 19


Object-Relational Features:
Object DB Extensions to SQL
 Type constructors (generators)
 Specify complex types using UDT
 Mechanism for specifying object identity
 Encapsulation of operations
 Provided through user-defined types (UDTs)
 Inheritance mechanisms
 Provided using keyword UNDER

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 20


User-Defined Types (UDTs) and
Complex Structures for Objects
 UDT syntax:
 CREATE TYPE <type name> AS
(<component declarations>);
 Can be used to create a complex type for an
attribute (similar to struct – no operations)
 Or: can be used to create a type as a basis for a
table of objects (similar to class – can have
operations)

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 21


User-Defined Types and Complex
Structures for Objects (cont’d.)

 Array type – to specify collections


 Reference array elements using []
 CARDINALITY function
 Return the current number of elements in an array
 Early SQL had only array for collections
 Later versions of SQL added other collection
types (set, list, bag, array, etc.)

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 22


Object Identifiers Using Reference
Types
 Reference type
 Create unique object identifiers (OIDs)
 Can specify system-generated object identifiers
 Alternatively can use primary key as OID as in
traditional relational model
 Examples:
 REF IS SYSTEM GENERATED
 REF IS <OID_ATTRIBUTE>
<VALUE_GENERATION_METHOD> ;

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 23


Creating Tables Based on the UDTs
 INSTANTIABLE
 Specify that UDT is instantiable
 The user can then create one or more tables
based on the UDT
 If keyword INSTANTIABLE is left out, can use
UDT only as attribute data type – not as a basis for
a table of objects

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 24


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)>
);

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 25


Figure 12.4a Illustrating some of the object features of SQL. Using UDTs as types
for attributes such as Address and Phone.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 26


Figure 12.4b Illustrating some of the object features of SQL. Specifying UDT for
PERSON_TYPE.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 27


Specifying Type Inheritance
 NOT FINAL:
 The keyword NOT FINAL indicates that subtypes
can be created for that type
 UNDER
 The keyword UNDER is used to create a subtype

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 28


Figure 12.4c Illustrating some of the object features of SQL. Specifying UDTs for
STUDENT_TYPE and EMPLOYEE_TYPE as two subtypes of PERSON_TYPE.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 29


Figure 12.4c (continued) Illustrating some of the object features of SQL.
Specifying UDTs for STUDENT_TYPE and EMPLOYEE_TYPE as two subtypes of
PERSON_TYPE.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 30


Specifying Type Inheritance
 Type inheritance rules:
 All attributes/operations are inherited
 Order of supertypes in UNDER clause determines
inheritance hierarchy
 Instance (object) of a subtype can be used in
every context in which a supertype instance used
 Subtype can redefine any function defined in
supertype

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 31


Creating Tables based on UDT

 UDT must be INSTANTIABLE


 One or more tables can be created
 Table inheritance:
 UNDER keyword can also be used to specify
supertable/subtable inheritance
 Objects in subtable must be a subset of the
objects in the supertable

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 32


Figure 12.4d Illustrating some of the object features of SQL. Creating tables
based on some of the UDTs, and illustrating table inheritance.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 33


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 34


Figure 12.4e Illustrating some of the object features of SQL. Specifying
relationships using REF and SCOPE.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 35


Summary of SQL Object Extensions
 UDT to specify complex types
 INSTANTIABLE specifies if UDT can be used to
create tables; NOT FINAL specifies if UDT can be
inherited by a subtype
 REF for specifying object identity and inter-
object references
 Encapsulation of operations in UDT
 Keyword UNDER to specify type inheritance and
table inheritance

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 36


ODMG Object Model and 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
Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 37
The ODMG Object Model and the ODL
(cont’d.)
 Behavior refers to operations
 State refers to properties (attributes)
 Interface
 Specifies only behavior of an object type
 Typically noninstantiable
 Class
 Specifies both state (attributes) and behavior
(operations) of an object type
 Instantiable

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 38


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 39


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
 To loop over each object in a collection
 Collection objects further specialized into:
 set, list, bag, array, and dictionary

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 40


Figure 12.6 Inheritance hierarchy for the built-in interfaces of the object model.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 41


Atomic (User-Defined) Objects
 Specified using keyword class in ODL
 Attribute
 Property; describes data in an object
 Relationship
 Specifies inter-object references
 Keyword inverse
 Single conceptual relationship in inverse directions
 Operation signature:
 Operation name, argument types, return value

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 42


Figure 12.7 The attributes, relationships, and operations in a class definition.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 43


Extents, Keys, and Factory Objects
 Extent
 A persistent named collection object that contains
all persistent objects of class
 Key
 One or more properties whose values are unique
for each object in extent of a class
 Factory object
 Used to generate or create individual objects via
its operations

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 44


Object Definition Language ODL
 Support semantic constructs of ODMG object
model
 Independent of any particular programming
language
 Example on next slides of a UNIVERSITY
database
 Graphical diagrammatic notation is a variation of
EER diagrams

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 45


Figure 12.9a An example of a database schema. Graphical notation for
representing ODL schemas.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 46


Figure 12.9b An example of a database schema. A graphical object database
schema for part of the UNIVERSITY database (GRADE and DEGREE classes are not
shown).

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 47


Figure 12.10 Possible ODL schema for the UNIVERSITY database in Figure
12.9(b).

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 48


Figure 12.10 (continued) Possible ODL schema for the UNIVERSITY database in
Figure 12.9(b).

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 49


Interface Inheritance in ODL
 Next example illustrates interface inheritance in
ODL

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 50


Figure 12.11a An illustration of interface inheritance via “:”. Graphical schema
representation.

continued on next slide

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 51


Figure 12.11b An illustration of interface inheritance via “:”. Corresponding
interface and class definitions in ODL.

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 52


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 53


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 54


Mapping an EER Schema to an ODB
Schema (cont’d.)
 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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 55


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 56


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 57


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 58


Other Features of OQL (cont’d.)
 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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 59


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

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 60


Summary
 Overview of concepts utilized in object databases
 Object identity and identifiers; encapsulation of
operations; inheritance; complex structure of
objects through nesting of type constructors; and
how objects are made persistent
 Description of the ODMG object model and object
query language (OQL)
 Overview of the C++ language binding

Copyright © 2017 Ramez Elmasri and Shamkant B. Navathe Slide 12- 61

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy