object oriented database and uml
Download
Skip this Video
Download Presentation
Object Oriented Database and UML

Loading in 2 Seconds...

play fullscreen
1 / 90

Object Oriented Database and UML - PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on

Object Oriented Database and UML. MIS 304 Winter 2006. And now for Something Completely Different…. Class Objective. Understand the basic concepts of Object Orientation. Understand how the OO approach differs from the Relational approach. Apply the concepts of OO to Database management.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Object Oriented Database and UML' - bruis


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
class objective
Class Objective
  • Understand the basic concepts of Object Orientation.
  • Understand how the OO approach differs from the Relational approach.
  • Apply the concepts of OO to Database management.
  • Understand the UML Modeling Language and how it applies to databases
object orientation and its benefits
Object Orientation and Its Benefits
  • Object orientation is a modeling and development methodology based on object-oriented (OO) concepts.
  • Definition of Object Orientation:A set of design and development principles based on conceptually autonomous computer structures known as objects. Each object represents a real-world entity with the ability to interact with itself and with other objects.
  • Think of objects as “Nouns” with the “Verbs” already attached to them.
additional information on parc
Additional Information on PARC
  • Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age , Michael Hiltzik, Texere, 2001, ISBN 1842030000
  • Triumph of the Nerds, Robert Cringley, PBS, 1995.
the evolution of oo concepts
The Evolution of OO Concepts
  • From traditional to object-oriented programming (OOP)
    • Before OOP, data and procedures were isolated from each other. Data were treated as the passivecomponent, while procedures manipulated the data as the active component.
    • Procedural languages (e.g., COBOL) encouraged the rigid distinction between data and procedure.
    • In an OOP environment, the programmer asks Objects to perform operations on themselves.
    • OO concepts first appeared in some programming languages and set the stage for more refined OO concepts.
the evolution of oo concepts1
The Evolution of OO Concepts
  • Main Objectives of Object-Oriented Programming Languages (OOPL)
    • To provide an easy-to-use software development environment.
    • To provide a powerful software modeling tool for applications prototyping.
    • To decrease development time by reducing the amount of code.
    • To improve programmer productivity by making that code reusable.
the evolution of oo concepts2
The Evolution of OO Concepts
  • Important Attributes of OO Environment
    • The data set is no longer passive.
    • Data and procedures are bound together, creating an object.
    • The object has an innate ability to act on itself.
object oriented concepts
Object-Oriented Concepts
  • Overview
    • Objects: Components and Characteristics
    • Object Identity
    • Attributes (Instance Variables)
    • Object State
    • Messages and Methods
    • Classes
    • Protocol
    • Superclasses, Subclasses, and Inheritance
    • Methods Overriding and Polymorphism
    • Abstract Data Types
    • Object Classification
object oriented concepts1
Object-Oriented Concepts
  • Objects: Components and Characteristics

An object is an abstract representation of a real-world entity that has a unique identity, embedded properties, and the ability to interact with other objects and itself.

object oriented concepts2
Object-Oriented Concepts
  • Object Identity
    • The object’s identity is represented by an object ID (OID), which is unique to that object.
    • The OID is assigned by the system at the moment of the object’s creation and cannot be changed under any circumstance.
    • The OID can be deleted only if the object is deleted, and that OID can never be reused.
object identity
Object Identity
  • Based on an Object Identifier (OID)
  • Must be guaranteed to be unique in the space in which the object exists.
  • Syntax options
    • Dotted 1.2.3.4.5.6.7
    • GUID Semi-Random number {}
object oriented concepts3
Object-Oriented Concepts
  • Attributes (Instance Variables)
    • Objects are described by their attributes, known as instance variables. (See Table 11.2)
    • Attributes have a domain. The domain logically groups and describes the set of all possible values that an attribute can have.
    • An attribute can be single valued or multivalued.
    • Attributes may reference one or more other objects.
object oriented concepts4
Object-Oriented Concepts
  • Object State
    • The object stateis the set of values that the object’s attributes have at a given time.
      • If we change the object’s state, we must change the values of the object attributes.
      • To change the object’s attribute values, we must send a message to the object.
      • This message invokes a method.
object oriented concepts5
Object-Oriented Concepts
  • Messages and Methods
    • Every operation performed on an object must be implemented by a method.
      • Methods represent real-world actions and are equivalent to procedures in traditional programming languages.
    • Every method is identified by a name and has a body.
      • The body is composed of computer instructions written in some programming language to represent a real-world action.
object oriented concepts6
Object-Oriented Concepts
  • Messages and Methods
    • To invoke a method you send amessage to the object.
      • A message is sent by specifying a receiver object, the name of the method, and any required parameters.
      • The internal structure of the object cannot be accessed directly by the message sender. The ability to hide the object’s internal details (attributes and methods) is known as encapsulation.
      • An object may send messages to change or interrogate another object’s state. (See Figure 11.3)
object oriented concepts7
Object-Oriented Concepts
  • Classes
    • Objects that share common characteristics are grouped into classes. A class is a collection of similar objects with shared structure (attributes) and behavior (methods).
    • Each object in a class is known as a class instance or object instance. (See Figure 11.4)
    • Classes are general and extensible
    • Example: STUDENT class (See Figure 11.5)
slide22

Class Illustration

Animal

Living

Vertebrates

Living

Backbone

object oriented concepts8
Object-Oriented Concepts
  • Protocol
    • The class’s collection of messages, each identified by a message name, constitutes the object or class protocol.
    • The protocol represents an object’s public aspect; i.e., it is known by other objects as well as end users.
    • The implementation of the object’s structure and methods constitutes the object’s private aspect.
    • A message can be sent to an object instance or the class. When the receiver object is a class, the message will invoke a class method.
flashlights demo
Flashlights Demo
  • Example of basic OO concepts
object oriented concepts9
Object-Oriented Concepts
  • Superclasses, Subclasses, and Inheritance
    • Classes are organized into a class hierarchy.
      • Example: Musical instrument class hierarchy (Figure 11.8)
        • Piano, Violin, and Guitar are a subclass of Stringed instruments, which is, in turn, a subclass of Musical instruments.
        • Musical instruments defines the superclass of Stringed instruments, which is, in turn, the superclass of the Piano, Violin, and Guitar classes.
    • Inheritance is the ability of an object within the hierarchy to inherit the data structure and behavior (methods) of the classes above it.
object oriented concepts10
Object-Oriented Concepts
  • Two variants of inheritance:
    • Single inheritance exists when a class has only one immediate superclass above it.
      • Most of the current OO systems support single inheritance.
      • When the system sends a message to an object instance, the entire hierarchy is searched for the matching method in the following sequence:
        • Scan the class to which the object belongs.
        • If the method is not found, scan the superclass.
      • The scanning process is repeated until either one of the following occurs:
        • The method is found.
        • The top of the class hierarchy is reached without finding the message.
object oriented concepts11
Object-Oriented Concepts
  • Two variants of inheritance:
    • Multiple inheritance allow a class to be derived from several parent superclasses located above that class.
    • Single inheritance exists when a class has only one immediate (parent) superclass above it.
object oriented concepts12
Object-Oriented Concepts
  • Method Overriding and Polymorphism
    • We may override a superclass’ method definition by redefining the method at the subclass level. (See Figure 11.12)
    • Polymorphism allows different objects to respond to the same message in different ways. (See Figure 11.13)
object oriented concepts13
Object-Oriented Concepts
  • Object Classification
    • A simple object contains only single-valued attributes and none of its attributes refer to another object.
    • A composite object contains at least one multivalued attribute and none of its attributes refer to another object.
    • A compound object contains at least one attribute that references another object.
    • A hybrid object contains a repeating group of attributes, and at least one of the repeating attributes refers to another object.
    • An associative object is used to represent a relationship between two or more objects.
characteristics of an oo data model
Characteristics of an OO Data Model
  • An Object-Oriented Data Model Must:
    • Support the representation of complex objects.
    • Be extensible; i.e., it must be capable of defining new data types as well as the operations to be performed on them.
    • Support encapsulation; i.e., the data representation and the method’s implementation must be hidden from external entities.
    • Exhibit inheritance; an object must be able to inherit the properties (data and methods) of other objects.
    • Support the notion of object identity (OID).
oodm and previous data models
OODM and Previous Data Models
  • Object, Entity, and Tuple
    • An OODM object has additional characteristics such as behavior, inheritance, and encapsulation.
    • Such characteristics make OO modeling much more natural than E-R and relational modeling.
slide42

An Invoice Representation

But remember the object has “methods” attached to it too.

oodm and previous data models1
OODM and Previous Data Models
  • Class, Entity Set, and Table
    • Class is a more powerful concept that allows not only the description of the data structure but also the description of the behavior.
    • A class allows both the concept and the implementation of abstract data types.
  • Encapsulation and Inheritance
    • An object belonging to a class inherits all the properties of its superclasses.
    • Encapsulation hides the data representation and the method’s implementation from other objects and the user.
oodm and previous data models2
OODM and Previous Data Models
  • Object ID
    • Object ID is not supported in either the E-R model or the relational model.
    • The hierarchical and the CODASYL models support some form of ID.
  • Relationships
    • Relationships in an OODM can be of two types: interclass references or class hierarchy inheritance.
    • E-R and relational models use a value-based relationship approach.
oodm and previous data models3
OODM and Previous Data Models
  • Access
    • E-R and relational models use an ad hoc, set-oriented query language.
    • OODM is suited to support both navigational and set-oriented access.
how oo affects database design
How OO Affects Database Design
  • OO database design approach provides both the data identification and the procedures or data manipulation to be performed.
  • OO database design forces us to think of data and procedures as a self-contained entity.
  • OO design is iterative and incremental in nature.
  • DBA’s role is likely to change with more programming responsibilities.
  • Lack of standards affects OO database design.
oodbms advantages and disadvantages
OODBMS: Advantages and Disadvantages
  • Advantages
    • More semantic information.
    • Support for complex objects.
    • Extensibility of data types.
    • Improved performance with efficient caching.
    • Versioning.
    • Faster development and easy maintenance through inheritance and reusability.
    • Technology-driven product for next generation DBMS.
    • Potential to integrate DBMSs into a single environment.
oodbms advantages and disadvantages1
OODBMS: Advantages and Disadvantages
  • Disadvantages
    • Strong opposition from the established players.
    • Lack of theoretical foundation.
    • Retrogressive to the old pointer systems.
    • Lack of standard ad hoc query language.
    • Lack of business data design and management tools.
    • Steep learning curve.
    • Lack of resources.
how oo concepts have influenced the relational model
How OO Concepts Have Influenced the Relational Model
  • New Features for Extended Relational (Object/Relational) Model
    • Extensibility of new user-defined (abstract) data types
    • Complex objects
    • Inheritance
    • Procedure calls (rules or triggers)
    • System-generated identifiers (OID surrogates)
how oo concepts have influenced the relational model1
How OO Concepts Have Influenced the Relational Model
  • Philosophy that guides the relational model’s enhancements:
    • Semantic and object-oriented concepts are necessary to support the new generation of applications.
    • These concepts can and must be added to the relational model.
    • The benefits of the relational model must be preserved to protect the investment in relational technology and to provide downward compatibility.
the next generation of dbms
The Next Generation of DBMS
  • The next generation of DBMS is likely to incorporate features borrowed from:
    • Object-oriented database systems
    • Artificial intelligence systems
    • Expert systems
    • Distributed database
    • The Internet
so how do we model it
So how do we model it?
  • Need a new modeling methodology that accounts for these new features.
unified modeling language

Unified Modeling Language

MIS 304 Winter 2006

class objective1
Class Objective
  • Understand the Reasons for the development of a UML
  • Apply the concepts of UML to Databases
  • Be able to construct some simple UML models.
tower of babel
Tower of Babel
  • You have already seen 4 different “Modeling Languages”
    • The two in the book (actually 4 were mentioned)
    • MS Access “Relationships”
    • Basic “Objects”
  • There are dozens of others.
modeling goals
Modeling Goals
  • One of the goals of modeling is to improve communication.
  • When two IT people got together to compare models they often waste a lot of time explaining their models syntax to one another.
  • You learn one in school and the organization you work for uses another.

What to do?

the solution
The Solution

Put all of the World’s “Modeling Experts” in a room and push pizza under the door every 5 hours but don’t let them out until they agree on a single way of modeling a “system”.

the result uml
The Result - UML
  • An “Object Oriented” approach to modeling.
  • A common modeling notation.
  • A common modeling language.
  • Defines several related model notations for representing all aspects of a system.
uml goals
UML Goals
  • To represent complete systems, not just software.
  • Establish a explicit coupling between concepts and executable code.
  • Take into account scaling factors.
  • Make the model understandable to humans and machines.
uml models
UML Models
  • The Class Model for static structures.
  • The State model expresses dynamic behavior.
  • The Use Case describes the requirements of the user.
  • The Interaction Model represents scenarios and message flows.
  • The Implementation Model shows the work units
  • The Deployment Model provides details that pertain to process allocation.

And a special subset for Databases

a uml model of uml models
A UML Model of UML Models

0..M

0..1

Package

Model

0..1

0..*

References

Includes

0..*

0..*

Element

Model Element

Visual Element

1..*

0..*

Projection

uml diagrams
UML Diagrams
  • The Diagram provides the reader with a means of Visualizing and manipulating model elements.
  • The level of detail is suitable to the Context.
  • The common building block is the Element.
  • Mechanisms provide a way to link and describe the elements.
uml diagrams1
UML Diagrams
  • Class Diagram 
  • Sequence Diagram 
  • Collaboration Diagram
  • Object Diagram 
  • Statechart Diagram
  • Activity Diagram 
  • Use Case Diagram 
  • Component Diagram
  • Deployment Diagram
packages
Packages
  • Provide a way to partition a model
  • Defines a namespace
  • Packages can be contained in other packages.

Package Name

class diagrams
Class Diagrams
  • A general way to describe static structure.
  • Describes a classic object “class”
  • No real change from traditional OO model notation

Class Name

Properties

Operations

class example
Class Example
  • Flashlight class

Flashlight

Handle

Shape

Bulbs

OnOff( )

associations
Associations

An Association

Tools

Flashlight

A Link

Flashlight

Maglight

associations1
Associations
  • Describe how elements are linked together.
    • 1 One and only one
    • 0..1 0 to 1
    • M..N Many to many
    • 0..* 0 to any integer
    • 1..* 1 to any integer
slide72

Associations

0..M

0..1

Package

Model

0..1

0..*

References

Includes

0..*

0..*

Element

Model Element

Visual Element

1..*

0..*

Projection

class hierarchy
Class Hierarchy

Animal

Legs

Food

2 Legs

4 Legs

Carnivore

object diagrams
Object Diagrams
  • Show a static state.
  • Primarily used to show context.
  • Look like Class diagrams.
use case
Use Case
  • Describes how the people involved “Use” the system.
  • Simple diagram that lays out the actors interfaces and associations.
  • One of the first steps in system design.
use case for automobile
Use Case for Automobile

Drive

«uses»

«uses»

Customer

Service

«uses»

Repair

Mechanic

activity diagrams
Activity Diagrams
  • Represents the activities or behaviors of a system.
activity diagram
Activity Diagram

Look up Person

SELECT PersonID, Name FROM Person WHERE p.PersonID = a.PersonID

Identify Person

Name

Supply SSNa.PersonID

slide79

Activity Diagram With Swimlanes

Teacher

Student

Board

Teach

Learn

Supervise

Exam

Take Exam

Evaluate

sequence diagrams
Sequence Diagrams
  • Used to display interactions between objects.
  • Focuses on expressing interactions.
  • Defines the sequence of actions between objects.
slide81

Sequence Diagrams

Caller

Phone

Recipient

Picks Up

Dial Tone

Dial

Ring

Ring

Picks Up

Hello

uml patterns
UML Patterns
  • How humans solve problems.
    • Look at a problem.
    • Try to find an analog in our experience.
    • Adapt the analog to our problem.
  • In a formal system you can do this in a standardized way.
  • In UML these are called “Patterns”
  • In UML Patterns are identified by a Name.
uml database patterns
UML Database Patterns
  • Singleton
  • Composite
  • Flyweight
  • Analysis Patterns
    • Party
    • Geographical location
    • Process
    • Document
singleton
Singleton
  • The Problem
    • One object instance
    • Used in hierarchy where the entity is part of the structure. (A manager is an Employee)
  • The Solution
    • Single relationship with itself.
singleton1
Singleton

Singleton

#Data: Any

+Instance( ) Singleton

+AnyOperations( ): Any

1

The Data and AnyOperation elements represent the class-specific attributes an d operations

1..1

composite
Composite
  • Models the basic “Parent-Child” relationship.
  • Used things for Organization Charts, Header-Detail structures or any similar pattern.
composite erd
Composite ERD

1

M

Table1

Table2

Has

(x,y)

(x,y)

Key1

Attr1

Key2

Key1

generating sql from uml
Generating SQL From UML

A

A1 : String

A2 : String

SetPrimaryKey(A_Id)

CREATE TABLE A (

A_Id Number (5),

A1 VARCHAR(),

A2 VARCHAR(),

PRIMARY KEY(A_Id)

)

references
References
  • Database Design for Smarties Using UML for Data Modeling, Robert J. Muller, Academic Press, 1999, ISBN 1-55860-515-0
ad